Step 1: Prepare 64 ping pong balls
I ordered a gross of cheap ping pong balls off the net. If I were to do it again, I'd probably order balls which were actually suitable for playing. These were definately "craft" quality balls at best. I'm guessing that better balls would have acted as better diffusers. These worked pretty well nevertheless.
First I found a screw with a nice sharp point. I then poked a little hole in the ball just to get the final hole started. Then I took a 3/16 drill bit and manually twisted it into the tiny hole to make it just large enough to put the tip of the LED into the ball while the base of the LED kept the whole LED from going into the ball.
Ok, just do this 64 times. (The grid of LEDs will be 8 by 8)
Step 2: Prepare the LEDs
Again, I needed 64 of these.
Step 3: Glue an LED into each ball
Step 4: Prepare the base for the LED matrix
I needed a firm base which would be large enough for the matrix so I went a local Target to see what I could find. I ended up getting a black plastic drain board. As you can see from the image, the size worked pretty well.
Since I only had 8.5" x 11" paper I prined 4 copies of the PDF template and taped them together and then taped them on the board. At first, I used a sharp nail to poke a small indentation in the board to guide my drilling, but that was kind of a bad plan. The plastic actually shattered a bit in a few spots. Oh well, nothing a little hot glue couldn't fix. Next time I'd probably just drill the holes through the template and skip the nail. For the holes in the board, I used a 5/32 bit which was wide enough for the leads of the LEDs to fit through without bending. I applied more hot glue to the base of each LED and then pushed it into place. For good measure, I squirted more hot glue into the holes on the underside of the board. I really didn't want any of the balls to pop off.
Step 5: Wire up the LEDs
Step 6: Solder the LEDs to the driver board
So, at this point, I soldered the leads from the LEDs into the underside of the circuit board where Paul intended the LEDs to be soldered in directly. After the wires were soldered into place, I snipped the excess wire that was sticking out of the silkscreened side of the board.
Step 7: Solder the LED driver components
Step 8: Make a jumper to connect to the arduino
Step 9: Strap it all together
Now, to really complete the display portion of the costume, I needed to write some code for the Arduino to accept commands via USB from the laptop and then drive the LED driver board accordingly. My plan was not to store any image patterns in the Arduino, but rather accept images from the laptop and then light up the LEDs based on that. The sample code that Paul provides on his site made for both a great way to test to make sure that everyting was wired properly and as a base for my own code. Lucky for me, when I ran his sample code on my setup, it worked the first time.
Step 10: Assemble the audio hardware
Step 11: Wireless keypad
Step 12: Time to program the show
Java is my language of choice so I wrote a framework and a simulator for my light show. In order to play audio, I used the Java Media Framework and in order to access the serial port to talk to the Arduino, I used the RXTX library. I wanted to keep things simple, so I'm only writing data to the USB port and not trying to read any responses.
In order to sync the animations with the music, I just wrote a little code to start playing the song and then each time I pressed a key, it would mark a timestamp. Not the most precise method, but it worked well enough. I then used the timestamps to know when to switch to the next desired animation.
Once the code was written, I added some code to receive key events from the wireless keypad and the technical side of the costume was pretty much complete.
I ran a battery drain test and even using the laptop's USB port to power the Arduino and LEDs, it was able to run for just over 3 hours. I ended up moving all of the files to a RAM disk in hopes of being able to power down the hard drive and run the system longer. We'll see.
Here's a video of the rig in action:
Step 13: Make it wearable
Now that everything was complete, I put the speakers around my neck, then wore a black fleece jacket over them. I then put the LED panel around my neck and wore a black backpack to hold the laptop.
Here's the final result: