Introduction: Programmable LED Umbrella
The solution: using conductive thread, sew an 8x8 matrix of LEDs into collapsable umbrella, then add a MAX7219 LED Controller, a voltage converter and an arduino mini pro.
The result: a twinkling blue light show that can fold up to go with you virtually anywhere.
Step 1: Materials
Here's what you'll need (In the photo, clockwise from the umbrella):
- The umbrella: I found a clear "bubble" umbrella at Target for $17. This turned out to be absolutely perfect for this project.
- Arduino pro mini 328 5V/16MHz: Shown here with headers already attached. The Lilypad arduino would have also worked just fine. The pro mini and the Lilypad are so small partially because they exclude the USB circuitry necessary to talk to your computer, so something like the FTDI board below is also necessary with these boards to hook up the arduino to your co
- FTDI Basic Breakout: This small board hooks up to the arduino mini pro on one end & to a mini usb on the other end. You attach the FTDI board to the arduino to program it, but once programmed, you can leave it behind.
- MAX7219 LED display driver: This is a great little chip that takes care of multiplexing the LEDs. It 's drives a 64 led matrix. One major drawback is that the intensity is set for all LEDs; it doesn't allow setting different LEDs to different intensities. More info available here.
- Protoboard: I decided it would be easier to hook up the MAX7219, resistor & capacitors via a protoboard than directly on the umbrella. I ended up using a smaller one (1.75" x 1.75") than what is pictured here.
- LEDs: I used 64 clear blue "super bright" LEDs from SparkFun. I recommend using diffused rather than directional clear variety since your umbrella will be viewed from every direction.
- Heat shrink tube
- Headers: 90 degree headers used on the Arduino - it comes without headers attached. Also used to make battery removable.
- Wire: I used standard 22 AWG solid core wire. Using two colors is definitely helpful in keeping track of what's what.
- Conductive thread: I used the heavier 234/34 4ply thread & went through almost an entire 75 yard spool. This was my first time using conductive thread & I found it easy to use.
- Heavy sewing thread: I used some heavy sewing thread to attach the circuit boards to the umbrella. I tried using clear plastic thread (like thin fishing line) but it did not work well for me.
- Lithium Polymer Balance charger: this special charger is required for the battery I selected...
- 11.1V 900mAh Lithium Polymer battery: This is almost definitely overkill but I wanted something light & compact that would power the umbrella all night long.
- An old nylon strap & some velcro: I sewed these together to make a holster for the battery.
- Small metal rings: I soldered these to the ends of the wires coming off the MAX7219 board to make it easier to attach to the conductive thread. I happened across these amongst jewelry making supplies in the craft section of a big box store.
- zip ties: to help hold the battery in place
- Lilypad slide switch: to turn the umbrella on & off
- 1 resistor: 1kO (rset on MAX7219 circuit diagram)
- 2 capacitors: 10uF & 100nF
- An old car cigarette-lighter phone charger: this is a great trick I picked up in the comments right here on Instructables!. Crack the case off a car phone charger and you have a low cost 12V to 5V converter/regulator, suitable for powering the arduino.
- Sparkfun electret mic & op amp breakout board: to synchronize LEDs with music
Step 2: Tools
In the photo, clockwise from the top:
- Helping hands: indispensable. (Pro tip: Put heat shrink tube over the alligator clips so its more gentle on your components.)
- LED tester (optional): this is just a 9V batter, a resistor & some alligator clips to test the rows and columns of LEDs as they're sewed together. Optional, but satisfying to see each row light up as you finish sewing them.
- Soldering iron & stand
- Locking forceps: helpful in threading near the top of the umbrella where its difficult to reach.
- Seam ripper: for mistakes.
- Tape measure: For spacing the LEDs on the umbrella
- Large-eye needles
- Wire Cutter
- Needle-nose pliers
- Breadboard: I find its always a good idea to test my circuits before making them permanent. I tested the ardunio in conjunction with the MAX7219 board on a tiny 8x8 LED matrix I had around.
- lighter: for the heat shrink tube
- Solder sucker: mistakes were made
- Wire stripper
That's it. Lets get building...
Step 3: The LEDs
The first step is to insert the LEDs into the umbrella.
We're building an 8x8 matrix and this umbrella has 8 ribs, so each rib gets 8 LEDs. I placed my LEDs about 3.25" apart vertically, straddling the rib. Poking the legs of the LEDs through the plastic shouldn't require any tools: the legs are sharp enough to puncture the plastic. Its important to always place the anode (longer leg) on the same side to simplify the connections later.
After each LED is pushed through the plastic, use a needle nose pliers or forceps to twist each leg into a circle (see image), making sure that the legs are not touching each other
Next, using the conductive thread, sew all the anodes (longer leg) together in each row.
Then sew all the cathodes in each column together. Where a column crosses over a row, be sure that the thread for the column is on the opposite side of the plastic from the row to avoid a short circuit.
Step 4: MAX7219 Breakout Board
On a 1.25" x 1.25" prototyping board, I soldered the MAX7219, the two capacitors and a single resistor as described in the excellent Arduino Plaground article on the MAX7219 here. You can ignore any wires going to "next MAX72xx" in the diagram because we only use one.
I cut 4 wires to about 5 inches each to go from the Vcc, Ground, Load, Clock and DIn pins on the MAX breakout board to female headers which will eventually connect to the arduino.
Next I cut 16 wires to 2.5", soldering a metal ring to one end of each and soldering the other end to each of the 8 seg and 8 dig pins (the 8 rows and columns of our LED array).
Next, using regular thread, I sewed the breakout board to the inside of the umbrella.
Finally, using conductive thread, I sewed the ring of each of the 16 wires first to the panel to hold it in place, and then to connect one wire to one row or column. The seg pins connect to the rows, the dig pins to the columns.
The electret mic breakout board in the photo is optional. It grabs power & ground from the MAX breakout board & sends the signal to an analog input on the arduino.
Step 5: Power Supply & Arduino
The arduino requires a 5V regulated power supply. Using a trick I learned right here on Instructables, I cracked open an old car-cigarette lighter type phone charger & pulled out the circuit board. I hooked it up to my 11.1V battery on the cigarette lighter side and the arduino on the phone side. Be sure to test the voltage output from the charger with a multimeter to make sure you're really getting about 5V, significantly more could fry your arduino. I added a tiny Lilypad slide switch between the power supply and the battery to allow me to turn the umbrella on & off.
I sewed a holster for the battery using old nylon strap. Velcro allows me to open and close the holster to replace the battery. I then zip-tied the holster to inside top of the umbrella around a rib and the main tube.
Finally, sewed the arduino and the power supply to the umbrella and hooked up all the wires.
Step 6: Programming
I used the well-documented LedControl library to facilitate controlling the MAX7219. I've included an arduino sketch with some basic testing code here to get you started; these are the patterns you see in the video.
That's it! Enjoy!
Write some algorithms of your own, turn out the lights and take joy in your creation.
Things to try:
- Algorithms, algorithms, algorithms! Make amazing, beautiful patterns
- RGB LEDs- Matching LED Galoshes
- Wirelessly synchronized umbrellas