Control per-pole LED lighting in a grand space
The key elements of this project are:
o Multiple inexpensive AVR-based RS-485-connected RGB LED controller "nodes"
o One network "master" node that sends out color events to each light node.
o One or more input devices that sense the environment (light, sound, user-manipulation, etc) to influence the master node
o Power and wiring to span the 6,000 sq ft of installation space
The RGB nodes themselves are quite simple: an AVR ATmega processor with an RS-485 interface chip (75176 or similar) and three transistors on three PWM-enabled output pins with enough drive to light 20 RGB LEDs (250mA per channel) running a simple sketch to listen for DMX packets coming in from the master node.
The master node is also quite straightforward: a Linux-based machine with Open Source application code that processes input from a wireless input device into 48 channels (R, G, and B for eight pairs of pillars), wraps them up into a 512-channel DMX packet, and blasts it over the wire to all the lights in the room.
The input devices are also AVR-based, with Bluetooth or X-Bee or other simple wireless serial extender, and consist of an input stage (MEMS accelerometer, buttons, sliders, microphone, pressure sensor, etc), some code to translate the widely-varying raw input to a small list of actionable commands (up, down, raise, lower, slide, cycle, etc) that are meaningful to the master node.
Two years ago, the members of the Columbus Idea Foundry got our first glimpses of what has become our new home: a 65,000 multi-level former shoe factory at the edge of downtown Columbus, two blocks from the Center of Science and Industry (where we hold the Columbus Mini-Maker Faire). Over the next 18 months, we made our plans, secured funding to build out the first floor, packed our shop, and moved into the new space. The first floor holds our metal shop, wood shop, laser and 3D printer room, welding room, classroom space, studio space, and more. The second floor is still largely the same as when we first saw it, wooden floors, high ceilings, and support posts every 15 feet in a big, open, empty space. Down the middle of this space is a 45' x 140' clerestory. In time for our open house in May, we received a surplussed motorized projection screen that I installed near one end of the clerestory. For now, we mostly use the upstairs for overflow classroom space, for presentations, and movie night. The lighting upstairs is somewhat absent, and with my experience making computer-controlled LED lamps and displays, I thought the layout of the space cried out for more than simple illumination, it needed to be dynamic and multipurpose.
With the geometry of the clerestory and the placement of the screen in the middle of a forest of tall posts, the arrangement that seemed to fit best is an intellegent controller for each post driving about 2 feet of passive LED strip, interconnected with power and serial. The nodes all tie back to a central machine with application code to send out the color control commands. There are eight sets of pillars down the axis of the clerestory, and with a left-side and right-side of the central aisle, that's sixteen nodes with three colors each for 48 controllable channels.
Fortunately for my design, I had 18 ATmega168-based boards from a prototype run for an LED clock ripe for reuse. It was a quick matter to remove the parts of the clock board that were only needed for the clock and add in a few parts and connections needed for the new role. So far, that mod is three TO-220 N-Channel MOSFETs, seven wires, an RS485 driver chip (75176 or equivalent), and 6 wires to connect it. The firmware is centered around Matthias Hertel's DMXserial library https://github.com/mathertel/DmxSerial (available under the BSD license).
So the lights themselves are pretty uncomplicated, just larger than most lighting rigs (1800 red, blue, and green LEDs in 48 color channels over 6,000 sq ft). The other aspect of this is the input controller. To inject a little theater into the rig, I'm borrowing from the ThinkGeek Technomancer Hoodie to build an accelerometer-based gestural controller - a battery-powered AVR, a MEMS accelerometer, and Xbee or Bluetooth to send the processed gestures back to the Linux DMX master box.
Prototyping has begin. The PCBs for the controllers are already made and awaiting assembly. LEDs have arrived. Code snippets are already working independently. The next few weeks will see the elements come together in epic bursts of light.