In this tutorial I will show you some of the new soft circuits techniques I learned, as well as how to use an 8-bit latch.
- Conductive Thread
- 8 bit latch (74HC595)
- 24 LilyPad LEDs (7 for each arrow, 8 for the latch, 1 for each indicator light)
- LilyPad Arduino
- Lilypad Power Supply and AAA battery
- Fusible Interfacing
- Stretch Conductive Fabric
- 2 Buttons
Step 1: Wiring Diagram
For any project, it's always good to start sketching how your electronics will be connected. I've attached my sketch below. Notice the green line coming from the left button switch crosses the Positive and Negative lines from the power supply. This happened because I actually didn't sketch out a wiring diagram before I started. Nevertheless, it was easy to sew over the lines by insulating the thread with non-conductive beads. This will be demonstrated in a few steps. For now let's lay out the components on the sweatshirt
Step 2: Layout
Start by by placing the LilyPad in a centered area of the upper region of the sweatshirt. Draw two chalk lines for each arrow. Referring back to the wiring diagram, the arrows should start from pins 6 and 7 for the Left arrow and pins 11 and 12 for the Right arrow. (We are going to use Arduino to declare pins 7 and 12 to be ground).
Step 3: Sewing Arrows
I used a sewing machine to sew the arrow lines down. Use the conductive thread as the bobbin and for the top thread....pick any color your like. I chose electric green. Make sure to pull out extra bobbin thread to sew into the pins on the LilyPad.
Use a sewing hoop to stretch out of the fabric and with the power lines sewn down we can simply attach LEDs on the arrow. Make sure to test the LEDs as you go. If your lights aren't lighting, reinforce the connections by sewing from along the negative line from LED to LED.
After you finishing sewing both arrows, attach the power supply on the left side of the chest and test the lights. Again, if the lights aren't working or if they are flickering reinforce the stitching.
Step 4: Fusible and Conductive Fabric
We want to control the turn signals with buttons sewn on to the sleeves. We also need 3 individual lines: the indicator light, the ground line, and the input for the button. I could've sewn the lines by hand but wanted to take the opportunity to try another soft circuit technique.
Fusible interfacing is a magical product that when sandwiched between two fabrics, acts as a glue and bonds the two fabrics together. I used the strip version of steam-a-seam, a fusible web, to fuse strips of stretch conductive fabric to the inside sleeve.
First measure the length of the sleeve. Then, cut a strip of the stretch conductive fabric and place the stickier side of the interfacing on the fabric. Next, place the strip (interfacing face down) on the sleeve and heat with an iron on the highest setting. Move the iron up and down for 10-20 seconds.
Repeat this 3 times for each side of the sleeve. Make sure to leave enough room between strips so the don't overlap. You could add another lay of non-conductive fabric to the strips if you want to ensure that the lines are isolated, however, I relied on the arm filling out the sleeve and thereby separating the strips.
After ironing on the conductive fabric, designate your lines. Note: the ground will be connected to both one side of the button and the negative side of the LED. You can use any button or switch you like. I used very cheap buttons from Tyco. When the button is depressed diagonal pins are connected. Therefore, connect one side to ground and connect the pin diagonal to the strip connect to the pin on the Arduino (check your wiring diagram).
Step 5: 8-Bit Latch
If we want all the first light on (2^0) we send the value 1 to the register, just the second light (2^1) we send the value 2 to the register and so on until (2^7) we reach the value 128. If you want all the lights on you have to add 2^0+2^1...2^7 which is 255.
When I say send, something not to terribly complicated but nontrivial happens. The full 8 bits always has to be filled. Going back to our examples of, the first light on would be 00000001 and all lights on would be 11111111. Each bit has to "clocked in". This means the register has to be give a high then low signal in addition to the value of the bit. Finally ,when all the bits of the register have been set, the register must be told to latch onto the bit and send the values to the outputs. We need 3 pins on the LilyPad to control the 8 outputs: 1 pin to set the value, 1 pin to act as the clock and 1 pin to tell the register to latch onto the bits and send the values to the output. I reserved pin 8 as a clock pin, 9 as the latch pin, and 10 as the data/value pin, which can be seen in the wiring diagram.
Luckily, Carlyn Maw and Tom Igoe wrote a wonderful library and tutorial to accomplish this for the Arduino. it can be found here.
The 74HC595 has 16 pins so you need a 16 pin socket. Grab your protoboard and place the socket in the center. We will need to filp the board over, so placing piece of tape over the socket should hold it in place. Before soldering, first consult the data sheet or the Arudino tutorial (linked above) for your shift register. Next, solder the socket. 8 output lines, and power lines to the board. (Note: you don't actually need output lines, you could just sew directly to the board. For some great sewing IC techniques check out Hanna Perner-Wilson's website: http://www.kobakant.at/DIY/?p=54 or here Instructables Page. Lastly, test your board before stitching!
I placed the board with the shift register in the center of the jacket. Next, I used a piece of chalk to draw 8 lines to help guide my stitching. Connect the Positive side of the LEDs to the output pins and connect all the negative lines together and sew onto the negative power line of one of the arrows
With the latch tested everything sew down you are read to program!
You can choose whatever functionality you want. I chose something similar to Prof. Buechley's, when the button is depressed: flash the lights in the back as well as the indicator light.
This material is based upon work supported by the National Science Foundation under Grant No. 0855886. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.