LilyPad Arduino Blinking Bike Safety Patch

by bekathwia in Circuits > Arduino

22942 Views, 57 Favorites, 0 Comments

LilyPad Arduino Blinking Bike Safety Patch

fatlabanimatedledbag.gif
3427698992_0eca7f4bda.jpg
3426890597_8621ac3bd4.jpg
LilyPad Arduino Blinking Bike Safety Patch (2009) // Becky Stern

I made this embroidered patch in a different instructable, but here I'll show you how to add flashing LEDs to your backpack for fun and safety. I used a LilyPad Arduino with a rechargeable lithium-polymer battery for flatness and re-usability. The LEDs blink in a marquee pattern, two at a time, in patriotic red, white and blue.

To keep up with what I'm working on, follow me on YouTube, Instagram, Twitter, Pinterest, and subscribe to my newsletter.

Materials and Tools

3426888917_6d895aff1f.jpg
3426888965_7e3e662e3b.jpg
Materials and Tools:
-scissors
-needlenose pliers
-sewing needle
-LilyPad Arduino with programmer and USB cable - Maker Shed

Power:
-LiPower board - Sparkfun
-lithium-polymer battery (and charger) - Sparkfun
OR
-LilyPad AAA battery holder (comes with the Maker Shed kit linked above)

-conductive thread - Lame Lifesaver
-conductive velcro - Less EMF
-sticky-back velcro (I got mine at Michael's)
-bag or backpack
-fabric patch to mount circuit
-small scrap of fabric for switch
-thread
-source code and schematic

Coil the leads of each LED: make the longer lead (positive) into a square spiral, and the shorter lead (negative) into a round spiral.

Sew the LED Grounds

3427697728_038c1cc29c.jpg
schmaticweb.jpg
3427697806_10de42bf03.jpg
Check out the schematic. Using your conductive thread, sew a line around the perimeter of the patch, stopping to sew the round leads of each LED into the line. Leave a space on one edge for the conductive velcro (don't sew the velcro yet).

Sew the Power Supply and LilyPad

3426889201_fc0203e382.jpg
3426889437_3ea44942ba.jpg
schmaticweb.jpg
Cut one side of the conductive velcro in half, and sew the bottom half over the edge of the patch where you left that space earlier. Sew it down and sew a line over to the + on the LiPower unit (you can also use the LilyPad AAA battery board). The picture shows it sewn to ground, but don't pay attention to that! =]

Sew the other conductive velcro tab down next to (but not touching) the previously-sewn tab. Stitch a line to the + on the LilyPad Arduino. I reinforced these two power leads a few times to reduce the resistance of this switchable area.

Stitch the ground of the power supply to the line of grounds around the edge. Same goes for the LilyPad Arduino. Look at that schematic for help placing the traces.

Sew the LilyPad Pins to the LED Positive Leads

schmaticweb.jpg
3427698434_88ce7b8a46.jpg
This part can take some time. According to the schematic, sew the positive (square-coiled) leads of the LEDs to their respective pins on the LilyPad Arduino. Be sure not to cross any threads, and tie tight knots with close-trimmed ends to prevent fraying fibers from shorting your circuit. I stopped often to let the needle dangle and untwist the thread as I worked, as it likes to get tangled and caught.

At this point you can plug the battery into the LiPower and turn the thing on. Use the other piece of conductive velcro to bridge the two patch tabs and see if your LilyPad boots up. Press the reset button a few times and watch that little green LED on board blink a little. Now you know it's working!

Program the Board

3426889623_dee726cf50.jpg

Here's the Arduino code! Load it on your LilyPad by hooking up your programmer and USB cable (or FTDI cable if you have a newer LilyPad). For more info about getting the code onto the Lilypad, check out this page at the Arduino website: http://web.media.mit.edu/~leah/LilyPad/04_lights.html

--begin code

int timer = 100; // The higher the number, the slower the timing.
int pins[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; // an array of pin numbers
int num_pins = 12; // the number of pins (i.e. the length of the array)

void setup()
{
int i;

for (i = 0; i < num_pins; i++) // the array elements are numbered from 0 to num_pins - 1
pinMode(pins[i], OUTPUT); // set each pin as an output
}

void loop()
{
int i;

for (i = 0; i < num_pins/2; i++) { // loop through each pin state (there are six)
digitalWrite(pins[i], HIGH); // turn one LED on,
digitalWrite(pins[i+num_pins/2], HIGH); //then turn its opposite LED on (six positions away)

//now turn the previous LEDs off:

if (i == 0){ //turn the last LED off from the previous go 'round
digitalWrite(pins[num_pins-1], LOW); //
} else{
digitalWrite(pins[i-1], LOW); // turn off each previous LED
}
digitalWrite(pins[(i+num_pins/2)-1], LOW);

delay(timer); // pausing

}

}

Affix With Velcro

3426890597_8621ac3bd4.jpg
3426890401_e3056a1985.jpg
I decided to affix the entire circuit patch with velcro instead of sewing it down to my bag, with air travel in mind specifically. It's easy to remove, inspect, and replace. I live in Arizona, so rain isn't too much of a concern, but it should also be removed during rain. You can choose to just remove the battery, as the rest of the circuit won't be damaged by water, so long as you wait for it to be completely dry before plugging the battery back in.

Sticky-back velcro is easier, but any kind will do!

All Done!

fatlabanimatedledbag.gif
3427698992_0eca7f4bda.jpg
Now go ride your bike!