This project is great if you like blinky lights, simple electronics, or programming. There are several ideas for customizations at the end.
Main Body Parts:
8x8 shadow box
white vellum (available at most craft stores)
rgb led strip
5v power supply (this must be a 5v switching/regulated power supply)
Soldering supplies (soldering iron, wire strippers, solder, flux, etc.)
hot glue gun
Step 1: Electronics
The LED strip has cut lines and solder pads between every pair of LEDs. Use these cut lines to arrange the strips into a 6x6 grid with the corners removed (because there are only 32 LEDs.) The second image shows the pattern. Tack the strips down to cardboard with masking tape or hot glue.
The outputs (right side) of each strip needs to be wired to the inputs (left side) of each subsequent strip. This is where the soldering comes in. It simplifies the wiring a little if the ground and 5v pads are all soldered on one side of the board, but it also helps keep the voltage stable across long LED strips.
This is a good time to test the strip. If you have not already, download the LPD8806 library from https://github.com/adafruit/LPD8806 and load up the stdrandtest program. Be sure to update the pin assignments as necessary. This is actually the same Teensy that is later embedded in the project after the headers were removed.
Mount the Teensy on the back of the cardboard holding the array and wire it all together. DI is wired to pin 22 (labeled D4) and CI to pin 10 (labeled C7) on the Teensy. It is convenient to wire ground and 5v to the power pins (unlabeled) on the end of the board. Tack everything down with hot glue. Adding a few strips of cardboard on either side adds additional rigidity to the board making it more durable.
Be sure to use a switching power supply in this project or you risk harming the LED strip and the micro-controller. There are three pins on the jack: ground, 5v, and a sensor allowing one to determine if something is plugged in. This third pin which is on the side can be cut off to make mounting easier. Be sure to test pin assignment with a meter before removing pins. Bending the bottom pin back also makes some additional space, simplifying mounting.
The last image shows how the jack is wired to the Teensy. The mounting options are detailed later, but do note the springy loops in the wire. This makes it easier to disassemble for modification or repair.
Step 2: Shadow Box Preparation
- Placing the glass before the vellum gives a nice matte finish but is less durable and hard to clean. Alternatively, placing the glass in front of the vellum may attract finger prints (my co-workers think this is a touchscreen?)
- The distance from the LED strips to the vellum will set the size of the projected dots. More space may be more visually appealing but leave room for the micro-controller.
Unless the plastic strips are the correct thickness to separate the glass and LED array, replace it with a few strips of cardboard as pictured. Don't glue them in yet; it will be easier to address the barrel jack mounting with the glass removed.
This particular frame is composed of a foam compound and plastic shell, making it easy easy to cut through with a hobby knife. Use tools appropriate for your frame to cut a notch out of the bottom center, just large enough to snugly hold the barrel jack. Epoxy will hold the jack in much better than hot glue.
Clean out the enclosure and the glass, then begin assembling it. Place the vellum and glass in the box, then tack on the cardboard spacers with hot glue. Lay the LED array on top of the spacers and keep it in place with more hot glue. Finally close it off with the original backing of the shadow box.
If you want the array to be easily re-programmable, cut out a slot in the back to provide easy access to the micro-controller. The last two images show the box fully assembled.
Step 3: Programming
This step may be a little tricky because there are a few prerequisites and your particular micro-controller may have special programming caveats. Whether you want to use the canned software or write your own, start at https://github.com/querry43/rgbdisplay-v1. This is ready to use code which displays several alternating widgets.
Current installation instructions should be in the readme file. Be sure to read the requirements section which points to other necessary software packages.
Step 4: Ideas for Customization
Add a light sensor to adjust brightness relative to the ambient light.
The display can easily be too right in dark spaces. An additional light sensor could read the ambient light level and adjust the brightness, dimming it in darker spaces.
Make it responsive to the environment.
Adding a sound sensor and make it respond to noises in the environment. It could make fireworks when people talk, or pulse to the music. Be cautious of the limited refresh rate.
Increase the LED density.
Adafruit has recently come out with a cheaper and higher-density pixel strip, called the NeoPixel. This would double the dot count in each direction. Be sure to read about the limitations of this newer strip before using it.
Use serial or ethernet to make the display announce tweets or emails.
If you leave a USB line connected, a computer can communicate with and control the display. The display could scroll tweets, or be controllable across the web. Alternatively, add an ethernet controller. Note that USB may not provide enough current to power the display.