Programmable RGB LED Orb Tool Tutorial
Programmable RGB LED Orb Tool!
Here it is! Ugly and simple but it gets the job done! ;-)
This device works on exactly the same principle as the Digital Light Wand and uses addressable RGB LEDs. This one specifically uses an RGB LED chain that has the WS2801 chip built into it. This chip is what makes it addressable and is what gives it the ability to have so many colors! The great thing about this is, the LightWand Code Generator software that Phil Wright created to easily import an image and generate the programming code for the Digital Light Wand can be used to generate code to drive THIS as well!
I will start this off by saying this. Don't be afraid of the technology you see here! Look at it this way, your computer is made of a bunch of electronics on the inside but you still are able to use it without knowing the specifics of how it works. The software running on your computer is what makes it easy for you to use. This is no different. That little electronics board is nothing but a little computer and there is software to make it do it's thing. You don't need to know anything about electronics or be a programmer to make this work. Anyone can do this! ;-) And if you have any questions or run into any problems at all, there are plenty of folks out there that can give you answers, including me! :-)
Here are the basics but I will try to find some time to make a video tutorial to make one of these to show the details. Please use the preceding photos in the photostream to see some of the details of the construction.
■ Arduino Mega (about $50 but you can use a cheaper model or even an Arduino "clone" such at the Boarduino, MHVBoard, Diavolino, RBBB (Really Bare Bones Board), and a host of others I am sure. You can even buy kits to solder your own together if you want to be really adventurous and save a bit more money. See note below also.)
■ Addressable RGB LED chain (about $45) (I only used 12 LEDs from the chain)
■ Header Pins (Not totally necessary but they do make it easier to plug into the Arudio boards. The 90 degree angled header pins are the easiest to deal with, to me anyway. You can also just solder the end of the wires and press them into the header holes on the Arduino board as well and skip the use of the header pins)
■ Plastic food storage container
(Round, about 4 inches tall and 3 inches in diameter) ( I guess you could use a square one too, but it won't be as aerodynamic! Ha! ;-) )
■ Wire Coat Hanger
■ String or Nylon cord
■ About 7 feet of Speaker Wire (about 18 Gauge)
■ Electrical Tape
Once you have the items you need, you will need to pay close attention specifically to the how the RGB LED Chain that you have is wired. There have been differences with how this is done on different chains produced in the past so this is very important. You can read about and see specifics of what to look for on this web page. There is an INPUT and OUTPUT side of each of the LED Modules and you will need to make sure you connect the INPUT side of the chain to the Arduino board. You also need to pay attention to which wire is the Data wire and which wire is the Clock wire so that you connect them to the right pins on the Arduino board.
1) Prepare the LED chain by cutting the wire so that you have 12 LED modules in the chain and stripping about 1/8th of an inch of the insulation off the end of the wire to expose the inner conductor. Make sure this is on the INPUT side of the module as explained above!
2) Then solder two, two-piece headers to the wires (One for the power connection to +5v and GRND on the Arduino board, and one for the Data and Clock. The Data wire needs to be connected to Pin 51 on the Arduino and the Clock wire needs to be connected to Pin 52 on the Arduino board.
3) Prepare the plastic food container by drilling holes to accept the 12 (or however many you choose to use) LED modules and place them into the holes. I used a smaller drill bit first and then went to a larger one. Be careful doing this because the drill will want to grab the plastic and spin it violently! Yes, experience is speaking here! :-)
4) Make sure the LED modules are in place and snug and place the Arduino board in the assembly with the Power and USB connectors at the top so that you can get to them later. You can use some hot glue to hold them in place if you need to but if the holes are the right size, they will fit right.
5) You can use the lid that came with the food container to help hold the assembly in place if you wish, but this is not necessary. I cut a hold in the lid with a knife to allow the Arduino board to stick through.
6) You will need to cut the wires coming from the 9 volt battery holder and insert a length of speaker wire so that you will be able to hold the battery and switch in one hand while swinging the orb tool with your other hand. Make sure the length of wire you use is long enough for you to do this. Use solder and electrical tape to secure the connections and make sure they are insulated from one another. Also play close attention to the polarity here. (Positive (+) and Negative (-) connections need to remain the same as they were before you cut the wire)
7) Cut the wire coat hanger into pieces so that you can bend three pieces into a holder for the food container as shown in the pics. This will help keep it centered and will be used to relieve the strain of the swinging force from the power wire.
8) Use string or nylon cord to run along the power wire and allow the wire to have some slack so that you will not pull the connection out of the Arduino board while swinging. The string should be tied around the hanger wire pieces and the string will need to take the full force of tension while swinging the tool to make an orb.
Note: Other Arduinos can be used as well but the pin numbers will be different. Memory is not really that much of an issue since the programs to drive one of these are very small. So I would almost be willing to bet that ALL of the Arduinos could be used including the tiny Arduino LilyPad! But I would stick with the ones that have a USB interface built in so you won't have to jump through hoops to get it programmed. I would also stick with the boards that have a 5v regulated Power supply as well unless you want to deal with powering the LED Lights from a separate source.
Here are some that I would recommend:
Arduino Uno - Connect to pins 11(MOSI (data)) and 13(SCK (Clock))
Arduino Duemilanove - Connect to pins 11(MOSI (data)) and 13(SCK (Clock))
Arduino Mega - Connect to pins 51(MOSI (data)) and 52(SCK (Clock))
Arduino Nano - Connect to pins 11(MOSI (data)) and 13(SCK (Clock))
Now... this is a very basic orb tool other than the electronic brain that is added to it. So it has the same problem other basic orb tools have in that after spinning it for a little while, the wires inside the speaker wire will be constantly bent and ultimately break. Which will stop those precious little electrons from flowing to the board and leave it without power. So you may have to periodically cut a section of wire out where it breaks and put in a new section to keep it going. :-) Usually this will happen right in the middle of spinning your best orb of the night, but don't blame me... it's Murphy's fault! ;-) If you would like instructions on spinning a basic orb, then click here.
Please let me know if you have any questions. This is just a brief tutorial so I might have missed something in the process of writing it all up. :-)
You will need the Arduino Software and will also need the Lightwand Code Generator software mentioned above to program this tool. You can follow the link for the Digital Light Wand above and there is further information on that blog entry about the software. You do not need to be a programmer at all to use this, the Lightwand Code Generator does all of that for you! :-)
Oh, and as a side note, you can use this setup mounted to some wood trim or anything really and it becomes a Digital Light Wand! Lot of possibilities here. :-)
If you are interested in learning more about Light Painting Photography, I have written an eBook on the subject. You can find out more about the book here. :-)