Skills Dev IV

Made by Ben Oppenheim · UNLISTED (SHOWN IN POOLS)

This project allows you to attach a notification "flag" to any device. When you get a notification from a single desired individual, this device gently waves a flag at you as a subtle reminder.

Created: December 4th, 2022

0

Outcome

The device uses a servo motor to create a physical manifestation of a digital notification from a specific individual when they call you. Once a notification is passed to the particle cloud, the device initiates a wave of the flag, a gentle notification that runs 3 times to let you know the individual you have specified has sent you a notification. For example, if your partner calls you, this device allows you to see that they have tried to get in touch with you even if you have put your phone away for focus time. With further iteration we could implement different patterns of notification depending on the severity of the situation, but for now, just a gentle reminder is useful.

0
Skills Dev IV
1000Grand - https://youtu.be/86DpFkHEQLU
0
//Skills Dev 4

//Set Servo pin
int servoPin = A3;
//Setup my servo command
Servo myServo;

//Initialize Servo position
int servoPos = 0;

//Jitter loop length
int jitterLength = 5;

void setup() {
    
    // attaches the servo on the A3 pin to the servo object
    myServo.attach( A3 );
    
    //Register our Particle to control the servo
    Particle.function("Best Friend Alert", servoControl);

    // Keep a cloud variable for the current position
    Particle.variable(  "servoPos" , &servoPos , INT );
    
    //Test that servo is initiated and move through motions
    myServo.write(60);
    delay(200);
    myServo.write(170);
    delay(200);
}

void servoJitter() {
    //Raise Flag
    for (int i = 0; i < 3; i++ ) {
        
        myServo.write(170);
        delay(200);
        //Wave Flag
        for (int i = 0; i < jitterLength; i++) {
            myServo.write( 80 );
            delay(100);
            myServo.write( 100 );
            delay(100);   
        } 
        //Lower Flag
        myServo.write(170);
        delay(1000);
    }
    
}


int servoControl(String command) {
    //Flag process
    servoJitter();
    return 1;
    
}

void loop() {
 
}
Click to Expand
0

Process

I first explored the movement of the servo motor by sending angle information and learning what type of movement the device supported. I then created a few loops to test different notification types and the used that to identify the kind of movement I wanted. From there, I realized that the flag notification would be a great way to play with the servo's movement capability. During the build process, the motor started to fail and I had to troubleshoot that process, eventually leading to using a different motor. This was very difficult to diagnose because I didn't know if it was failing because of my actions or something else.

0

Reflection

I had a lot of difficulty with the servo motor itself. I was testing the interactions of the motor after I had finished the code and started to notice strange behavior such as the motor not moving when given an input to slow movement, to delayed and jittery movement. I had a suspicion that the motor was not working and learned that these are quite fragile and testing them can lead to them breaking. If I was going to use a servo motor again, I would have multiple on hand that I could use to ensure that if one breaks I could continue to test if the problem was self inflicted or a hardware failure.

x
Share this Project

This project is only listed in this pool. Be considerate and think twice before sharing.


Courses

About

This project allows you to attach a notification "flag" to any device. When you get a notification from a single desired individual, this device gently waves a flag at you as a subtle reminder.