Today an order of parts arrived. Included was an RS-485 transceiver. This will allow the Arduino to receive the DMX-512 signal from a light board. I found a DMX library
for the Arduino and figured after I could receive the DMX signal the rest should be pretty easy. I was right. After putting the transceiver on the breadboard and connecting it to the Arduino it was less than a minute before I had control of an LED using the library--everything just worked. I spent the rest of the night setting up the code to drive the LEDs. I assigned 4 channels to a single RGB strip. The 4th selector is a mode select, and I currently have 4 modes: RGB, HSL, strobe, and fade. RGB mode just sends the levels from channels 1-3 to each of the LED PWMs. Nothing to that. HSL was something I had been toying with over the past week and I created a function to translate hue/saturation/lightness to RGB. This works pretty good. In strobe mode, I use the first channel to select the color of the strobe effect (hue), the second channel for how long between pulses, and the third channel for the duration of the pulse. This does allow blinking, but the LEDs don't seem to be fast/bright enough to really good a strobe effect like one can with a Xenon strobe tube. The last mode is a fade. It uses the first channel to determine the speed of the fade, the second channel for saturation, and the third for lightness.
While the code needs some cleanup, I was surprised at how quickly this all came together. The Arduino makes these kind of project move very quickly without the the need to really dig into the details of anything. Having been an embedded programer for over 17 years I am not use to the ease of a project like this. Things like this usually involve more datasheets, register setup, and a painful learning curve for the tools.
The only thing I didn't get working right away was a blank Atmel chip. I picked up the same chip as the Arduino, but didn't realize the Arduino requires the chip be programmed with a bootloader. I will have to look into getting the chip programmed so the system can be built up as a standalone system. For now, however, the setup works great and both Xiphos and I are very pleased.