(Also you can use this array for all kinds of POV experiments, but than with more than the usual 8 LED's!)
The number of skills involved make the whole project (dress with 3 flexible rings of programmable LED's) is quite advanced. In the end, to have your dress with programmable LED rings you have to be able to solder, to program, to sew and to design a dress! These seem to be incompatible skills, but ... when I have succeeded, who cannot?
What do you need:
LED's, about 25, the same voltage LED's! (otherwise they are not evenly bright, but you can use different colors). (You can use more LED's! Same principle)
thin wire (thin to make the array as flexible as possible)
batteries (two 1.4 volt, to get around 3 Volt you need for the micro-controller, and also to use LED's without a resistor)
a micro-controller ( I used ATTINY2313, cheap and sufficient memory, but you can use an ATMEGA168, ATMEGA328P or something)
pincher or knife to get the wires clean
programmer ( I use AVR mkII but you could use an ARDUINO)
(sewing machine, if you want to make the textile, dress or vest)
some program for making patterns with the LED's (interrupt) for example my zip
a piece of wood to drill holes in for holding the LED's while soldering.
By the way, in the picture you see that the (felted) dress is not quite finished!
It will be soon, here is a blog where you can see some of the things I made using the same principles:
Step 1: Making the Mold for the LED's
Search a piece of wood, MDF, at the right length
Test if all the LED's, if they have the same, or the right color....:-( I didn't!) and are of the same voltage.
Look if you have 5 mm LED's or 3 mm, for the diameter of the right drill.
Measure the length of the ring, or use some math doing it with the diameter (my ring isn't exactly a circle so I measured.
Divide the length by the number of LED's (in my case 5 groups of 5 LED's
Drill the holes, put in the LED's, looking at the long and the short leg of the LED's (short at one side).
Step 2: Soldering the LED's
The 25 LED's are divided into 5 groups, 1-5, 6-10, 11-15, 16-20, 21-25
These groups are connected on the short leg of the LED's.
Then the long leg is connected otherwise:
(If you have more LED's, like 64, you have to use groups of 8, which is the "normal" LED-,matrix)
I use a wire and carefully cut the plastic isolation of the wire without cutting the copper. So I have a wire with four open copper spots, and I solder these to the appropriate legs of the LED's. This save me time and effort. Otherwise you have to make very small pieces of wire.
As usual, first solder the copper of the wire and the leg and than solder the parts together, clean your soldering iron regularly!
You can finish the wires at both end's, since this has to become a circle. The ends will come together.
At the ends, leave enough wire to connect to your chip.
The wires are in a mess! These will be tidied up soon using thread. I use red thread because this is the color of the felt used.
Coloring the wires: normally I use coding like red-VCC, black GND etc. In this case I use purple and red, because of the color of the felt.
Step 3: Adding the Microcontroller
As indicated before, I used a ATTINY2313. This chip is cheap, and in my program it waits for commands which patterns to use on the RX PIN (using UART).
You have to make a PCB add a base for the chip and attached the groups of wires to the right PIN's. You can do it differently of course!
Basically I use
PB7 group 1
PB6 group 2
PB5 group 3
PB4 group 4
PB3 group 5
PB2 group ground 1
PB1 group ground 2
PB0 group ground 3
PD6 group ground 4
PD5 group ground 5, see the first picture.
I use the internal clock, so no extra oscillator is required (setting the fuses for this necessary!) The oscillator on the picture is not used and can be saved for other projects.
If you look at the ATTINY2313 pdf, you see there are PIN's left, this means you can make the array bigger!
And you have to add VCC and GND.
I also add six wires and a connector for my programmer. See the drawing on the wood of the connector. Most of the time I don't remove this programmer connection: I like changing the patterns and adding more "meaning" later on.
So here is the zip:
(the file names are still referring to the astronomer vest :-)
Please modify the script to your needs! (And have fun...)
In the end three rings will be used for the dress (5 of these are included in the astronomer vest). So there will be a central chip steering the patterns of the single ATTINY2313's. This central chip ATMEGA328P will be attached to sensors (for instance tilt or LDR) and depending on that ask for patterns in the LED rings.
Step 4: Programming the LED's
If you are not familiar with this technique, just use the script.
The principle is used for POV (Persistence of vision) and many other applications.
Funny is playing with the prescaler, making the LED's flicker a bit sometimes.
The script in the zip is prepared to receive a command over the RX pin of the ATTINY2313. This char received is used to give another pattern.
The script has several functions:
function main, setting the interrupt starting up fancy(), and waiting for a char
function choosing the PIN-numbers
function fancy (starting up, saying "hello world" with LED's
The patterns are made using a counter. Other patterns can be made easily. Like groups of LED's on or off, or two LED's running against each other.
Really, the LED patterns are another layer of design. Making the LED ring is technology, making meaningful expression of media is what I consider designing "primitive interfaces".
Step 5: Trying Out the LED's on a Skirt!
Also when still on the wood: I use sewing thread to make the wires neatly in a bundle.
Also I use the sewing machine to zig zag over the wires, getting a textile look and having the wires together.
Then you make it a circle and attach the ends, now the wires can be ordered to make the circle.
Add the circle to a nice spot on the dress, I use it around a hole in the dress to make a reflection on the skin, more than shining the LED's into your face.
And the dress finished? Images of that will we shown soon!