Introduction: Persistence of Vision(POV) Glove
Introduction:
This wearable electronic that uses an Arduino Lilypad, resistors and LEDs to create a wearable POV display that can display a single word in lights.
Persistence of vision works because the human eye and brain can only process 10 to 12 separate images per second, retaining an image for up to a fifteenth of a second. If a subsequent image replaces it in this period of time it will create the illusion of continuity.
This project will connect 7 LEDs in a column and it will display fonts by changing them rapidly. Moving the glove from right to left while LEDs flicker will display the message. (It does take some practice)
Picture the column of LEDs lit (x) to display the font.
LED 1 X X 2 X X x 3 X X 4 XXXX X 5 X X X 6 X X X 7 X X X
Supplies
Required:
- Glove (just one your choice. I picked left for this demo)
- 7-resistors (220 ohm)
- 7-Leds (red but any color should work)
- Thin conductive thread ( and needle)
- Arduino LilyPad and FTDI or Arduino Lilypad with USB.
- Power source (4.5v-5v ) battery, phone charger batter
- Needle nose pliers
Option items:
- Black thread
- Solder and Solder iron.
- Wires
- Alligator clip test leads set
- Thimble
- Clear nail polish
Step 1: Sew Lilypad on Glove
The LilyPad Arduino is designed for e-textiles and wearable projects. It can be sewn to fabric and similarly mounted power supplies, sensors and actuators with conductive thread
Picking the right glove is important. The sewing needle needs to be able to pass though the material, but you don't want it loose that the conductive thread can touch. I tried many gloves but ended up with a work glove. I found it worked far better to sew the components into place with regular thread. Using regular thread I sewed the Lilypad 180 degrees with connectors my wrist. This allows me to use i/o 6-12 for the LEDs
There is no "circuit board" but the schematics would look like this:
Step 2: Add Resistors to Project
I used seven 220 Ohm resistors. They are connected to the Lilypad with conductive thread.
To sew resistors onto the glove we must first roll the wire leads of the resistor into hoops using a needle nose pliers.
Once all the resistors are prepared, loop the conductive thread 4 or 5 times around the hole in the Lilypad and the resistor to make good contact. Sewing the conductive thread to the resistors also holds the top of the Lilypad and the bottom of the resistors in place.
Tip: Paint the ends of the conductive thread with clear nail polish helps keep it from unraveling.
Step 3: Add Light Emitting Diodes (LEDs) to the Project
Prepare the LEDs the same as the resistors, by rolling up the leads with needle nose pliers. Mark the positive side (Long side) of the LED with a marker to help keep it straight once it is wound up. The LEDs have a flat spot on the ground side. You need to bend the loops back to make feet for the LED so it can sit upright on the glove.
The LEDs are sewn into the palm of the glove with the ground side on the right. I found that sewing them in place with normal thread worked to keep the spacing. Once they are all in place run conductive thread from the ground (-) on the Lilypad to the ground side on all the LEDS. In the diagram the Green line is this run of conductive tread.
On my glove (left hand) I ran the thread from the (-) , under the thumb and straight up the palm. Try to wrap each connection 4 or 5 times to ensure a good contact.
At this point you can test the connection by clipping an alligator test lead from the Resistor to the positive side of the LED and running the blink program. Always make sure you have a resistor between power and the led or it can burn out.
Step 4: Complete the Circuit
At this point you have a choice. You can use conductive thread and connect the resistor the to the LED. I found in my case I was just not able to sew the thread close enough to keep it from shorting out.
Alternately you can use wire. Strip the end and roll up like you did the resistors and LEDs. Use conductive thread to sew the resistor to one end and the LED on the other.
Be sure to connect the I/O #6 to the bottom LED (closer to wrist ) and work up to I/O12 to the top LED(closer to fingers)
Step 5: Upload the Arduino Sketch
There are two kinds or lilypads that I know of. One uses USB to upload the sketch, the other uses FTDI. I have the FTDI version.
You need to check the pinout of your FTDI, mine had to be flipped to get the pins to match the lilypad. If you have a 3.3v/5v switch on theFTDI, you want to make sure its set to 3.3v.
Download the sketch from my github: https://github.com/aapicella/POV-Glove
Steps to load lilypad with POV-Glove sketch:
- Get Arduino IDE software from Arduino.cc
- Click on software
- Then downloads
- I use version 1.8.12
- Load sketch into the Arduino IDE.
- In the Tools menu: Set Board to Lilypad Arduino, Lilypad USB. If those don't work use Arduino Mini.
- Connect FTDI to Lilypad
- Connect FTDI to computer's USB.
- Pick FTDI port. in the tools menu.
- Upload program.
There are many Instructables on loading Arduino software and using FTDI.
The Code is fairly straight forward:
Global variables/tunables:
1) Array of pins used to turn on LEDs.
int leds[]={6,7,8,9,10,11,12};
2) Delay between led changes
const byte myDelay=5;
3) Delay before start of program
const int startDelay=250; // quarter of a second
4) Message to display
char textString[] = " Hi ";
Functions:
1) Loop
main program loop
2) printLetter
Loops through the font array for a given letter
3) sendByteOut
converts the Font array cell pass from printLetter function into lights
by turning on and off the leds based on the binary value
Step 6: Wave to Spell "Hi"
Once you attach a battery to the power input on the lilypad, there is a delay then the LEDs will start blinking very quickly.
The program reads an array of font letters, and displays one column at a time with a very quick delay between.
To run:
- Add power.
- Press reset on the lilypad
- The Built-in LED will light just before the leds flicker.
- Wave from right to left to display the word.
- To change the word from "Hi" to on the line:
- char textString[] = " Hi ";
Note: propeller POV displays have the advantage of constant movement and timing or haul sensors. This POV only works by moving your hand from right to left quickly. You may need to practice in front of a mirror to get the timing down.
Have Fun and please vote for my project.