Today’s project is the software for a microcontroller-based LED system for the grooviks-cube project. We’re using Arduino boards; each board will drive four RGB channels, and a central computer will control the arduino boards via USB. Four channels times three components equals twelve individual outputs; the board will drive an LED at each output using PWM, which basically means flipping the current on and off faster than the brain’s persistence-of-vision threshold. The ratio of on-time to off-time determines the apparent brightness. The controller basically spends all of its time in a loop, flipping lights on and off, in order to maintain the right ratios of brightness and thus the right color.
The project is a lot of fun, and it’s reawakening my interest in interesting blinky electronic stuff. The Arduino board is an Atmel chip with an FTDI TTL->USB interface, power regulation, a timing crystal, and all the other stuff you need so that you literally just plug in a USB cable and go. Programming it consists of typing in your code and pushing “upload”; the board resets, reprograms itself, and runs your new program. Couldn’t be any easier.