Introduction: Space Ghost Glove

A Space Ghost Glove - this project was for me to practice button activated events but I thought others might like it.

Step 1: Ingredients

You'll need the following:

Arduino board (I used an Uno during prototyping but would probably go with a Lilypad, Micro, etc.)
LED strips (Neopixel strips would be cool too but I used standard strips so they'd all light at once)
Pull-up button
Wire
Battery
Battery harness
Glove
Soldering iron and wire
Wire strippers

Step 2: Wiring It Up

The most difficult part of this build is the soldering. The LED strips require a delicate touch. I recommend you apply some solder to the contact pads first and then solder the wires to the pads. It's probably a good idea to try to protect these confections, maybe use electrical tape or hot glue. I didn't make mine as a long term project so I didn't do this.

The strips I used are common anode but it was easier for me to wire them up backwards and reverse the code. In other words to light the strips I used digitalWrite LOW. To turn them off use digitalWrite HIGH. this also means that we use analogWrite 0 to make each color full brightness. (at least I think this is why I had to change the programming haha)

After you solder the strips you should solder the R, G, B, and + wires together in groups (all the Rs, etc). Now you can connect them to the Arduino.
Connect + to the + of the battery. The - of the battery to ground. Or if you will run the Arduino off the same battery then spice the + from the battery harness so you can run one lead to the lights and plug the other end in.

Connect Green to Pin 6 or suitable PWM pin.

Connect Red to Pin 5 or suitable PWM pin.

Connect Blue to Pin 3 or suitable PWM pin.

Connect one side of the button to one of the GND pins and the other to Pin 2

My strips are also 12v so I used a 9v battery, it also powers the Arduino.

Step 3: Programming

I borrowed code from Adafruit (https://learn.adafruit.com/rgb-led-strips/example-... and (https://github.com/adafruit/Adafruit_NeoPixel/tree... and mashed them together. I made a few changes and this is the result:

// color swirl! connect an RGB LED to the PWM pins as indicated
// in the #defines

// public domain, enjoy!

#define REDPIN 5

#define GREENPIN 6

#define BLUEPIN 3

#define BUTTON_PIN 2

#define FADESPEED 5 // make this higher to slow down

bool oldState = HIGH;

int showType = 0;

int r = 255;

int g = 255;

int b = 255;

int f = 0; // counter for flashing lights

void setup() {

pinMode(REDPIN, OUTPUT);

pinMode(GREENPIN, OUTPUT);

pinMode(BLUEPIN, OUTPUT);

pinMode(BUTTON_PIN, INPUT_PULLUP);

}

void loop() {

bool newState = digitalRead(BUTTON_PIN);

// Check if state changed from high to low (button press).

if (newState == LOW && oldState == HIGH) {

// Short delay to debounce button.

delay(20);

// Check if button is still low after debounce.

newState = digitalRead(BUTTON_PIN);

if (newState == LOW) {

showType++;

if (showType > 4)

showType=0;

startShow(showType);

}

}

oldState = newState;

}

void startShow(int i) {

switch(i){

case 0: digitalWrite (REDPIN, HIGH); // Black/off

digitalWrite (BLUEPIN, HIGH);

digitalWrite (GREENPIN, HIGH);

delay(500);

for (f = 0; f < 4; r++) {

digitalWrite (REDPIN, LOW); // White - blink 3 times

digitalWrite (BLUEPIN, LOW);

digitalWrite (GREENPIN, LOW);

delay(200);

digitalWrite (REDPIN, HIGH); // Black/off

digitalWrite (BLUEPIN, HIGH);

digitalWrite (GREENPIN, HIGH);

delay(500);

}

break;

case 1: digitalWrite (REDPIN, LOW); // White fade to red
digitalWrite (BLUEPIN, LOW);

digitalWrite (GREENPIN, LOW);

delay(500);

analogWrite (REDPIN, 255); // Red

delay(2000);

digitalWrite (REDPIN, HIGH); // Black/off

digitalWrite (BLUEPIN, HIGH);

digitalWrite (GREENPIN, HIGH);

break;

case 2: digitalWrite (REDPIN, LOW); // White to green
digitalWrite (BLUEPIN, LOW);

digitalWrite (GREENPIN, LOW);

delay(500);

analogWrite (GREENPIN, 255); // Green

delay(2000);

digitalWrite (REDPIN, HIGH); // Black/off

digitalWrite (BLUEPIN, HIGH);

digitalWrite (GREENPIN, HIGH);

break;

case 3: digitalWrite (REDPIN, LOW); // White to blue

digitalWrite (BLUEPIN, LOW);

digitalWrite (GREENPIN, LOW);

delay(500);

analogWrite (BLUEPIN, 255); // Blue

delay(2000);

digitalWrite (REDPIN, HIGH); // Black/off

digitalWrite (BLUEPIN, HIGH);

digitalWrite (GREENPIN, HIGH);

break;

case 4: // fade from blue to violet

for (r = 0; r < 256; r++) {

analogWrite(REDPIN, r);

delay(FADESPEED);

}

// fade from violet to red

for (b = 255; b > 0; b--) {

analogWrite(BLUEPIN, b);

delay(FADESPEED);

}

// fade from red to yellow

for (g = 0; g < 256; g++) {

analogWrite(GREENPIN, g);

delay(FADESPEED);

}

// fade from yellow to green

for (r = 255; r > 0; r--) {

analogWrite(REDPIN, r);

delay(FADESPEED);

}

// fade from green to teal

for (b = 0; b < 256; b++) {

analogWrite(BLUEPIN, b);

delay(FADESPEED);

}

// fade from teal to blue

for (g = 255; g > 0; g--) {

analogWrite(GREENPIN, g);

delay(FADESPEED);

}

break;

}

Step 4: TEST!

make sure everything is working correctly and fix any problems you might have

Step 5: Stitch It Up

once everything is tested you can stitch it up and take it out and play! For more fun you could add a buzzer to get that PEW! PEW! PEW! sound

It shouldn't be that hard. It might be easier with half-finger gloves or starting from the end of the LED strips back towards the wrist.

Make it Glow!

Participated in the
Make it Glow!

Superheroes and Supervillains Contest

Participated in the
Superheroes and Supervillains Contest