Saturday, December 14, 2013

Tardis Christmas Tree Topper

This year for Christmas, my Wife and I wanted a Doctor Who Tardis Christmas Tree Topper. Unfortunately, there doesn't seem to be one that exists, so what is a guy to do? Make one of Course!

The Tardis is from a Doctor Who ice bucket (No, I'm not kidding) we bought off of Amazon. Its decently sized, and probably bigger than I needed. I then took out the actual Ice bucket, and strategically drilled holes in the bottom for wires and the tree, I also added two partitions on the inside to keep the tree from going straight through the top.

The original windows are conveniently a black plastic that I removed, and replaced with simple white paper to act as a diffuser. I then drilled a small hole through to the lantern, and hot glued an RGB LED. I then coiled a 1M strip of SW2801 LEDS so they would fit appropriately in the window.

I used a spare Arduino Duemilanove I had laying around. And wired it very simply using jumper wires.

After making it all fit, I then used the FAST_SPI Library to create a number of patterns. This was a quick and dirty project, but I am very satisfied with it. The next step is of course to add a speaker to play the Tardis sound effect on command!

For the code, I used a number of tricks I picked up to get the effects I wanted. This includes using a Bezier curve function to generate the fading lights, time based functions to keep consistent programing, and creating core functions such as writing to rows and columns to simplify patterns.

I also wrote most patterns so they could control the Lantern(Top LED) and the windows separately, allowing me to still have the Lantern flashing blue, while the windows did other things.

The patterns I was able to quickly implement with this code and in the video:
  1. Fading White Windows, and a Red/Green Lantern on top!
  2. Random Fading Colors
  3. Fading White Windows with a Blue Lantern
  4. Fading through a rainbow(HSV Shift)
  5. White Sparkling Windows with a blue Lantern
  6. Random Sparkles with a Random Lantern
  7. Scrolling Up Blue
  8. Scrolling up Rainbow
  9. Scrolling Red/Green
  10. Scrolling Dual Rainbow(HSV offset)
  11. Horizontal Scrolling White, with blue Lantern
  12. Horizontal Scrolling Rainbow
  13. Dual Horizontal Scrolling White
  14. Dual Horizontal Scrolling Red & Green
  15. Dual Horizontal Scrolling Dual Rainbow
  16. Full Plasma Rainbow around windows.

Wednesday, September 29, 2010

LED Coat Project Update

So, for Burning Man this year I decided to go over the top. I wanted to create a large fur coat that lit up at night and was a step farther then a coulpe of other designs I had seen. I was definitely inspired by the Faux Fur LED Coat, Glow Fur, and the Cubatron.

This is the result:

The Amazing Technicolor LED Fur Coat from Arren Parker on Vimeo.

It had to meet a few design restrictions:
  • Be completed in 3 months
  • Programmable
  • Battery powered
  • Durable (I was taking it to Burning Man)
  • Affordable (I probably missed this mark)
The Coat

LED Coat - Unlit
 My original plan was to go with an existing fur coat, however I was unable to find a coat that quite met what I wanted. I ended up deciding to make my own jacket so that I could easily modify it to what I needed and hopefully save some money (Although not necessarily time and complication).

The design I ended up going with is the McCall's pattern 4222 Reversible Jacket Coat. It is a fairly simple pattern, and people have used it before for fur coats for Burning Man. Although it is an incredibly hard pattern to find so I would recommend looking at other options in full length coats. I found my pattern via Ebay.

I have some sewing experience (Thanks Mom!) and that portion went easily enough, other then shedding fur all over the place. In order to choose the fur I wanted I went through Distinctive Fabrics, they have an awesome free sample option that I used to try out different swatches of fur.

I modified the pattern a bit to include side pockets, and changed the hood into a collar. I also haven't finished off the bottom and sleeves properly to allow access inside the lining. I would reccomend creating a test version of your pattern in muslin or other cheap fabric first to ensure it will work for you. In a future version, I would also use an inside layer to attach the heavier components.

The LEDs
The LEDs in the coat are arranged in a 16x16 alternating offset pattern (256 RGB LEDs). After doing some testing with the fur samples and LEDS I got from different sources, I ended up using 5mm common anode diffused RGB LEDs poked through the fur. I ended up going with LEDs from Evil Mad Science as the price was competitive and the color response and brightness from them was excellent, especially compared to Hong Kong LEDs off Ebay.

LED in Fur

To attach the LEDs to the fur, I ended up designing and ordering about 300 tiny custom PCBs. The only company I found that was able to produce the tiny PCBs was Futurlec. Although they are very limited in their specs, I was truly impressed with the turnaround and quality on 300 itty bitty little boards. Each one connects a 5mm RGB LED to a 4-pin Micromatch Ribbon Cable Connector.
Connector, Board, and LED
In order to simplify my wiring, I decided to go with Ribbon connectors to easily connect to each led. I used 3 wires for the RGB lines, and 1 line for the common anode.

Wiring for the LEDs

The Controller
To control the coats LED I ended up deciding to go with Arduino. This was mostly for ease and simplicity. I'm already quite familiar with Arduino code, and I had a few chips laying around. Additionally the community resources are excellent and most of the major components for the code I was able to find easily.

LED Coat Controller Board

In order to increase brightness, I broke it into a 32x8 RGB LED matrix (96x8) so I was only refreshing each LED 1/8th of the time instead of 1/16th. To break this out I used 6 x TLC5940NT PWM drivers. Each chip provides 16 channels of 12bit (4096 levels) pwm control. For the rows I am using a high frequency 595 shift register M74HC59581 with TIP120 Power Transistors.

The code uses a timer interrupt to refresh the display and change the rows. In order to do that I am taking advantage of the fact that the TLC5940s and the 595s use the same protocol for communication and control to have them daisy-chained.

I designed the control board in Eagle and used Advanced Circuits to fabricate the PCB for me. It was a bit of a challenge to get all of the components on a board that would fit in a large pocket. I am still working on a permanent solution for the case of the board and had a bulky temporary solution for Burning Man.

Unfortunately, one of the biggest limitations of the ATMEGA328P is the 2kb of RAM, the array that stores a single frame of data to drive the TLC5940 chips is about 1kb, leaving very little room for program overhead. I could only end up programming simple low memory designs and stuck with a color plasma pattern with a randomly moving center point.

I would still like to redesign the power supply. At its max the coat can draw 5amps at 5volts. I ended up using a Pico-PSU because it provides a steady 5volt line at up to 5amps for between an 8-36 volts inputs. (the link is to the 12-36volt version) I also ended up drawing too much current off of a 12 volt pack of AA's and causing one of them to leak.

A future version of the coat will likely have a more powerful controller that can do more involved programs and include better user control and music reactive capabilities.

Resources I used
Arduino & SparkFun - Ardunio Kits, misc components, and ideas.
Texas Instruments - Free samples of the TLC5940, Yay!
Futurlec - Misc Components, TLC5940, 595 Shift Register, & LED PCBs.
Mouser Electronics - More Misc. Components, MicroMatch Connectors
Avnet Electronics - Even More Misc. Components
Evil Mad Science - RGB LEDs and Microcontroller kits
EBay - A whole bunch of random crap :-)
Advanced Circuits - The main controller PCB
Eagle by Cadsoft - PCB design software, highly reccomend the Sparkfun Eagle Tutorials
Distinctive Fabrics - Awesome Fur and Brocade Fabric

Other Images:

LED Fur Coat from the back, lit.

LED fur coat from the Back

LED Coat from the front

Close up of LED Coat Fur lit up.