Elizabeth Ziemer
Published

Lane Tech HS - PCL- Furby Alarm

Turn a Furby into a calendar alarm notifier!

IntermediateFull instructions provided4 hours225
Lane Tech HS - PCL- Furby Alarm

Things used in this project

Hardware components

Furby
1999/1998 model
×1
Dual H-Bridge motor drivers L293D
Texas Instruments Dual H-Bridge motor drivers L293D
×1
Shift Register- Parallel to Serial
Texas Instruments Shift Register- Parallel to Serial
×1
LED (generic)
LED (generic)
×6
Argon
Particle Argon
×1
perf board
×1
Through Hole Resistor, 120 ohm
Through Hole Resistor, 120 ohm
×2

Software apps and online services

IFTTT
Particle Build Web IDE
Particle Build Web IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Scissor, Electrician
Scissor, Electrician

Story

Read more

Schematics

schematic_lcNomRY5Ol.png

Code

furb_arduino.ino

Arduino
Main project file
int motorPin1 = 6;
int motorPin2 = 7;

// define pins for shift register
int dataPin = 3;
int latchPin = 4;
int clockPin = 5;

void setup() {
    
    // configure pins for shift register
    pinMode(dataPin, OUTPUT);   
    pinMode(latchPin, OUTPUT);
    pinMode(clockPin, OUTPUT);
    
    //subscribe to alert IFTTT trigger
    Particle.subscribe("alert", alertHandler);
    
    // subscribe to alert IFTTT trigger
    Particle.subscribe("notif", notifHandler);
    
    // subscribe to alert IFTTT trigger
    Particle.subscribe("info", infoHandler);
    
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    
}

void loop() {
    
    // hi

}


void alertHandler(const char *event, const char *data){
    for (int i = 3; i--; i == 0) {
        digitalWrite(latchPin, LOW);                       
        shiftOut(dataPin, clockPin, MSBFIRST, 36); 
        delay(1000);
        digitalWrite(latchPin, HIGH);   
        digitalWrite(motorPin1, LOW);
        digitalWrite(motorPin2, HIGH);
        delay(1000);
        shiftOut(dataPin, clockPin, MSBFIRST, 0); 
        digitalWrite(latchPin, LOW); 
        digitalWrite(motorPin2, LOW);
    }
    
}

void notifHandler(const char *event, const char *data){
    for (int i = 3; i--; i == 0) {
        digitalWrite(motorPin1, HIGH);
        
        digitalWrite(latchPin, LOW);                       
        shiftOut(dataPin, clockPin, MSBFIRST, 18); 
        delay(1000);
        digitalWrite(latchPin, HIGH);   
        digitalWrite(motorPin1, LOW);
        digitalWrite(motorPin2, HIGH);
        delay(1000);
        shiftOut(dataPin, clockPin, MSBFIRST, 0); 
        digitalWrite(latchPin, LOW); 
        digitalWrite(motorPin2, LOW);
    }
}
    
void infoHandler(const char *event, const char *data){
    for (int i = 3; i--; i == 0) {
        digitalWrite(motorPin1, HIGH);
        
        digitalWrite(latchPin, LOW);                       
        shiftOut(dataPin, clockPin, MSBFIRST, 9); 
        delay(1000);
        digitalWrite(latchPin, HIGH);   
        digitalWrite(motorPin1, LOW);
        digitalWrite(motorPin2, HIGH);
        shiftOut(dataPin, clockPin, MSBFIRST, 0); 
        delay(1000);
        digitalWrite(latchPin, LOW); 
        digitalWrite(motorPin2, LOW);
    }
    
    
}

Credits

Elizabeth Ziemer

Elizabeth Ziemer

3 projects • 4 followers
[school account] human-centered robotics, ionosphere, and 00's internet meme enthusiast.

Comments