This post
will describe the electronics I used to drive and control the LEDs for my
element display. These were designed by my good friend and very skilled
electrical engineer Bill Porter (www.billporter.info)
and built by him and myself. To read about the project as a whole, see the introductory post.
I’m not an
electrical engineer, but I will try to describe what I can here. Bill has a
much deeper knowledge of this sort of thing, and has posted a much more
in-depth article about how all this works on his website, which he has dubbed the Elemental Illuminator.
My
original plan for the display’s illumination was to simply wire the whole thing
in a “constant on” fashion, so that I could “plug in” the display and
everything would turn on at once. Bill convinced me that a programmable display
would be much cooler, so he got to work and designed all the control circuitry
himself for my project. This consists of 9 microcontroller boards that the LEDs
wire into, which are arranged in series. At one end of the chain is a master
controller Arduino shield that Bill also designed. This is mounted to the bottom left front corner of the display - it appears on the front for easy upgrading and to facilitate Mode #4 below.
The
microcontroller boards on the back of the display can handle up to 16 LED strips, meaning theoretically I
would need 8 boards total to cover all 120 LED strips. I actually ended up
needing 9 boards, because of the backboard being broken up into sections. This
meant that all the LEDs for a circuit board had to be located on the same
section of backboard, so no wires would cross a gap. The layout is such that
there are only two electrical connections between adjacent backboard segments –
one for data and one for power. We used a phone cord for data transfer, and thick gauge speaker wire for power.
Currently there are four modes
programmed into the controller, switchable by power cycling the device. These
are most easily seen in the video posted in the intro post, but I’ll describe them here as well. Fun fact: the master controller has
1 kB of RAM, and the current programming leaves just 5 bytes left over!
Mode 1: Slave
This mode allows the master
controller to accept commands. For now, this mode does nothing. I plan on
writing a program to interface with the display in this mode that will allow me
to control the lighting through a GUI interface on a tablet PC. The overall
vision is to have a graphical periodic table displayed on the tablet, where the
user can tap a particular element, group of elements (alkali metals, noble
gases, etc.), or state of matter and have the corresponding elements light up
on the display. It could even have a “quiz mode” where a multiple choice
question will be asked, the potential answers will be illuminated on the
display, and after an answer is chosen the correct one will blink. Stay tuned!
Mode 2: “Breathing”
This mode slowly fades the brightness
of every LED from zero to maximum, then back down to zero. It makes for a nice
stress test of the display, as it takes it to full power on all LEDs.
Mode 3: Twinkle
This mode randomly selects an
element, a brightness value, and a time value, and fades the LED strip to the
chosen brightness over the chosen duration. This is done for 15 elements
simultaneously, to achieve a nice “starry sky” effect. The rest of the display
remains on at half brightness. This will be the default mode for display, because
the light is not too bright at any given time and the twinkle effect gives the
table a bit of motion.
Mode 4: Equalizer
This is the fun one, and was a last
minute surprise addition by Bill. This converts the entire display into an
equalizer, allowing it to listen to ambient noise (via a small microphone on
the Arduino shield) and display the spectrum on the columns of the table. This
one you really have to see to appreciate, courtesy of Bill's channel:
All this was the most expensive single part of the whole project. The Arduino master controller, the 9 microcontroller boards, and all the necessary wiring came out to about a third of the total cost. The control this affords and the possibilities it opens up for future software modifications, though, makes it definitely worth the price. Check out the following links for more info on the other portions of the project: the backboard, acrylic shelves, and the LEDs themselves!
No comments:
Post a Comment