Instructables
This tutorial will show you how to build a jacket with turn signals that will let people know where you're headed when you're on your bike. We'll use conductive thread and sewable electronics so your jacket will be soft and wearable and washable when you're done. Enjoy!

A version of this tutorial is also on my website.


 
Remove these adsRemove these ads by Signing Up

Step 1: Supplies

Picture of supplies
.
Get your supplies. You need:

-- LilyPad Arduino main board
-- FTDI connector
-- mini USB cable
-- LilyPad power supply
-- 16 LilyPad LEDs (note: these aren't available from SparkFun yet, but will be soon)
-- 2 push button switches
-- a spool of 4-ply conductive thread
-- a digital multimeter with a beeping continuity tester. This is the one I have.
-- a garment or a piece of fabric to work on
-- a needle or two, a fabric marker or piece of chalk, puffy fabric paint, a bottle of fabric glue, and a ruler
(Available at your local fabric shop or Joann Stores.)
-- a pair of scissors
-- double sided tape (optional)
-- a sewing machine (optional)

disclosure: I designed the LilyPad, so I'll make some $ if you buy one.
1-40 of 206Next »
jason0003 days ago

Hi everyone

can anyone do this project for some $? the person doesn't reply!.

victordoes6 days ago

Every one on a bike should have this! Nice idea!

TylerB213 days ago

Is there a reason you didn't use interrupts and sleep mode? I think it would make some of the logic simpler(of course the interrupt registration code itself would add some more lines) and reduce power consumption. You could even put the processor to sleep between LED flashing state changes and use timers, if you were really looking to reduce power consumption...

Hi! I'd just like to know its power consumption. Great project by the way!

danmellow1 month ago

super cool.. and stylish as well

ChrisW31 month ago

I love that you used the Lilypad, it adds style! :D

tnjiti1 year ago
I was not able to get the code for the behavior...can u kindly post it ?

http://lilypadarduino.org/?p=1478

Kelly021 year ago
nice project.
RadarTech1 year ago
Thanks for the good work. I'm using this as a blueprint for my own project.

Have you thought of using Bluetooth to remotely operate the switches?
Really cool, Nice work, Leah.

We had a guy bring something like that to our Portland chapter of DorkbotPDX meeting. He also made an LED bike polo scoreboard.

I didn't even know there WAS such a thing as bike polo!
HI can I use a normal powersupply instead of the lilypad powersupply?
raptor881 year ago
you ride one handed for just that second
I think it's still better than turning my head twice or treble to check for cars. This invention could save a lot of effort and troubles.
sorry i meant to send this comment to matthieutje65, i agree whenever i am biking on the road i look behind me all the time as well as right and left
Really a nice concept

Find another unseen concepts with Arduino based electronics Projects
Gato Nipon1 year ago
I always ride my bike with bakcpack, so do you think it can be done with the shoulder stripes of the back pack instead of in the wrists??? I live in spain, where the bike use isn't really opened well yet, so this could be a great invention to a lot of people that are constantly harrased by agro cars. I cannot overstate how fascinated I am about this. Bravo.
double_g1 year ago
Nice Instructable!! I ride my bike a lot and something like this would be awesome! I'm on a college student's budget so I think I'm going to throw together a little bit cheaper circuit. I'm thinking I'll just use a 555 timer and some toggle switches. I think I'll make the resistors for the LEDs with the "wire", the only tough part will be getting the resistance down since I only have 80 ohms between the toggle and the LEDs to create the right resistance, I might have to "reinforce" my lines a lot haha. Thanks again for the instructable, this is going to be a fun project!
This is a great idea, but I see one problem (don't know if it allready has been posted). while riding your bike your holding the handlebars, How are you going to press the Left/Right Button on your wrist? This is just a small adjustement that can easily be solved but thought it was worth sharing.
u got a point there .riding 1 handed while planning to turn is a bad idea and reaching over to other side of handlebar is about the worst move one can make :d ,id prefer to use my chin to use the gadget,with the switch being left and right of the zip,just below it,maybe 2 touch sensitve foils could handle that?
Bikers signal by putting their arm out in the direction they are turning as such you would be riding one handed anyways right before your turn. If you do change it so you don't have to remove your arm from the handle bars make sure you still turn and check what the traffic behind you is doing. I've had a few motorists speed up when I motioned my intent to move to the left lane either because they didn't see me or didn't want to be behind a slow bicyclist.
da831 year ago
thanks for the project
DeanGPotts1 year ago
i love this project, but how much did all these arduino bits cost to make the project? please dont think im having a go, but when i saw it i immedietly thought this kit would work just as well using a simple oscillator circuit, using a few capacitors and resistors with a rocker switch on each handle bar, maybe $4 worth of bits.
cthang1 year ago
U are awesome
hi

Can anyone tell me what arduino software was used to program the LilyPad Arduino main board?can i use any software? or does it have a specific software designed for lilypad arduino only? is it possible to put it in a hat? or is ther a problem considering the short length of the conductive thread to be used?

I'm hoping for a reply because I'm using this as my project to be passed about a month from now. Thank you.

if anyone would like to share their knowledge.or can answer this questions pls contact me at rafbeb1905@yahoo.com
hi

Can anyone tell me what arduino software was used to program the LilyPad Arduino main board?can i use any software? or does it have a specific software designed for lilypad arduino only? is it possible to put it in a hat? or is ther a problem considering the short length of the conductive thread to be used?

I'm hoping for a reply because I'm using this as my project to be passed about a month from now. Thank you.
hoffmmd2 years ago
Nice idea, reminded me of the simpsons when Bart had the utility belt, was being chased by the bullies, turned on his blinker, but ran the opposite side, and got away. classic.
CAN I USE A SMD STRING LED ? THAT IS SOLD AT HOOBYKING? INSTEAD OF LILYPAD LED?

THANKS
How do we make this project waterproof? I understand it not being machine washable, of course, but I need some way to clean it, some insurance that it's not going to short and burn me because it started raining...
I WAS going to suggest Liquipel (http://www.thedailyserge.com/2012/03/tech-tuesdays-vol-25-waterproof.html?spref=fb) until I remembered that Liquipel is more of a SERVICE than a product. Add to that I don't even know if the machinery is equipped for clothing. NEVER FEAR: The solution is once again back into the capable hands of the DIY-er:

http://www.floatingpath.com/2012/02/18/nano-tech-waterproof/

This Never Wet superhyrophobic stuff works great with clothing.

Hope that the product reaches retail soon.
lizrincon3 years ago
I was testing the sewing on the jacket, and found that the left signals were not blinking.

I tested resistance, all was fine, so I went into the code and first changed left to right signals.

Once I was sure I had not messed up with the sewing, I modified the loop code so that both blink when testing, helping me make sure that connections are correct.

I wanted to share it here, in case someone else is testing it and wants both signals to flash:


int ledPin = 13; // the LED on the LilyPad
int leftSignal = 9; // my left turn signal is attached to petal 9
int rightSignal = 11; // my right turn signal is attached to petal 11
int signalLow = 10; // the - sides of my signals are attached to petal 10

void setup()
{
pinMode(ledPin, OUTPUT); // sets the ledPin to be an output
pinMode(leftSignal, OUTPUT); // sets the leftSignal petal to be an output
pinMode(rightSignal, OUTPUT); // sets the rightSignal petal to be an output
pinMode(signalLow, OUTPUT); // sets the signalLow petal to be an output
digitalWrite(signalLow, LOW); // sets the signalLOW petal to LOW (-)
}

void loop() // run over and over again
{
delay(1000); //wait for 1 second
digitalWrite(rightSignal, HIGH); // turn the right signal on
delay(1000); // wait for 1 second
digitalWrite(rightSignal, LOW); // turn the right signal off
delay(1000); // wait for 1 second
digitalWrite(leftSignal, HIGH); // turn the left signal on
delay(1000); // wait for 1 second
digitalWrite(leftSignal, LOW); // turn the left signal off
delay(1000); // wait for 1 second
}


Thanks. +1
scottstead2 years ago
and an FYI, I'm buying a 1966 Vespa (they didn't start putting turn signals on them until 1974) - which means no turn signals. While they are not required because they're grandfathered in I feel I'll be much safer wearing my turn signals...so thanks for the idea!
scottstead2 years ago
The turn signal code fortunately was cached by google! This should be the final code to get it working...

START CODE:

int boardLED = 13;
int leftSignal = 9;
int rightSignal = 11;
int signalLow = 10;
int rightLow = 4;
int leftSwitch = 6;
int rightSwitch = 12;
int leftLED = 5;
int rightLED = 3;
int x, y;
int mode = 0;
int DAY = 0;
int NIGHT = 1;

void setup() // run once, when the sketch starts
{
pinMode(boardLED, OUTPUT);

pinMode(leftSignal, OUTPUT);
pinMode(rightSignal, OUTPUT);

pinMode(signalLow, OUTPUT);
pinMode(rightLow, OUTPUT);

pinMode(leftSwitch, INPUT);
digitalWrite(leftSwitch, HIGH);
pinMode(rightSwitch, INPUT);
digitalWrite(rightSwitch, HIGH);

pinMode(leftLED, OUTPUT);
pinMode(rightLED, OUTPUT);

digitalWrite(boardLED, HIGH);
digitalWrite(signalLow, LOW);
digitalWrite(rightLow, LOW);
}

void loop() // run over and over again
{
checkLeft();
checkRight();
if (mode == NIGHT)
night();
else
day();
}

void checkLeft()
{
if (digitalRead(leftSwitch) == LOW)
{
digitalWrite(boardLED, LOW);
while (digitalRead(leftSwitch) == LOW)
{
if (digitalRead(rightSwitch) == LOW)
{
while (digitalRead(rightSwitch) == LOW | digitalRead(leftSwitch) == LOW);
mode = 1-mode;
digitalWrite(boardLED, HIGH);
return;
}
}
leftTurn();
}
}

void checkRight()
{
if (digitalRead(rightSwitch) == LOW)
{
digitalWrite(boardLED, LOW);
while (digitalRead(rightSwitch) == LOW)
{
if (digitalRead(leftSwitch) == LOW)
{
while (digitalRead(leftSwitch) == LOW | digitalRead(rightSwitch) == LOW);
mode = 1-mode;
digitalWrite(boardLED, HIGH);
return;
}
}
rightTurn();
}
}

void leftTurn()
{
for (x=0;x<10;x++)
{
digitalWrite(leftSignal, HIGH);
digitalWrite(leftLED, LOW);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(leftSwitch) == LOW)
{
while (digitalRead(leftSwitch) == LOW);
digitalWrite(leftSignal, LOW);
digitalWrite(leftLED, LOW);
return;
}
}
digitalWrite(leftSignal, LOW);
digitalWrite(leftLED, HIGH);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(leftSwitch) == LOW)
{
while (digitalRead(leftSwitch) == LOW);
digitalWrite(leftSignal, LOW);
digitalWrite(leftLED, LOW);
return;
}
}
digitalWrite(leftLED, LOW);
}
}

void rightTurn()
{
for (x=0;x<10;x++)
{
digitalWrite(rightSignal, HIGH);
digitalWrite(rightLED, LOW);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(rightSwitch) == LOW)
{
while (digitalRead(rightSwitch) == LOW);
digitalWrite(rightSignal, LOW);
digitalWrite(rightLED, LOW);
return;
}
}
digitalWrite(rightSignal, LOW);
digitalWrite(rightLED, HIGH);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(rightSwitch) == LOW)
{
while (digitalRead(rightSwitch) == LOW);
digitalWrite(rightSignal, LOW);
digitalWrite(rightLED, LOW);
return;
}
}
digitalWrite(rightLED, LOW);
}
}

void night()
{
digitalWrite(boardLED, LOW);

digitalWrite(rightSignal, HIGH);
digitalWrite(leftSignal, HIGH);
digitalWrite(leftLED, LOW);
digitalWrite(rightLED, LOW);
delay(100);
digitalWrite(rightSignal, LOW);
digitalWrite(leftSignal, LOW);
digitalWrite(leftLED, HIGH);
digitalWrite(rightLED, HIGH);
delay(100);
digitalWrite(leftLED, LOW);
digitalWrite(rightLED, LOW);
}

void day()
{

digitalWrite(boardLED, HIGH);
delay(1);
digitalWrite(boardLED, LOW);
digitalWrite(leftLED, HIGH);
delay (1);
digitalWrite(leftLED, LOW);
digitalWrite(rightLED, HIGH);
delay(1);
digitalWrite(rightLED, LOW);
delay (5);
}
Hi,

I'm really excited for this project. I'm using a Mac 10.6.8. I'm following the directions on the arduino page, but I didn't notice where or how to install the drivers and the lilypad arduino is not being recognized as a serial port. Any suggestions?
lyakunina2 years ago
"We're sorry ... the requested page cannot be found on the Computer Science Department website: /~buechley/LilyPad/build/turn_signal_code.txt"

Can you upload code again?
kperezdupa2 years ago
this idea is really helpful, but after you do it, is it washable????
I'd like to know the answer to this question, or if it can be worn while in the rain
reverpas2 years ago
donde puedo encontrar el codigo de este proyecto ?? se los agradeceria please
1-40 of 206Next »