The 3D model was created in 123D. The model comes in two parts, the stand, which screws into the base of the tree. The tree itself is hollowed out so that the tree can be wired with lights. The print took fourteen hours to compete at medium resolution.
The model has built in Christmas bulbs as well as a 3D star on top. The holes for the LEDs were drilled post printing. This was necessary as the LEDs were not available for sizing holes at the time of print.
The model is painted with green acrylic paint, as well as other assorted colors for accent.
The tree is wired to an Arduino Uno board. There are ten 3 volt LEDs in five different colors spaced evenly across the tree on all sides. The board has a standard Firmata sketch loaded into the board so that I could put together multiple applications that used the tree in different ways.
I started this project using python, but after getting deeper into the project I felt that a more flexible approach was to use the same platform that Arduino is built on. This allowed me to create multiple applications that can all run on the same board running Firmata. The sketches are as follows:
This is just a basic sketch that runs thru the ten pins and blinks each light on and off in sequence. It uses Processing Arduino class.
This sketch uses twitter4j as well as a Twitter application that I set up with my account. It allows the user to type in any keyword to listen in on.
Once a word is entered, it starts a connection to the Twitter stream to listen in and capture tweets with the keyword. As it grabs them it instructs the Arduino to flash a random pin to create a twinkle effect.
Milestone light sequences where also built in @ 10, 50 and 100 to let the user know when their keyword search hit a major milestone. The application also displays the tweets as they go by and keeps a total in the corner. This is just to prove out that the tweets are really controlling the lights.
One interactive idea is to have a unique hash tag like #OhSimkoTree! People can then tweet that hash tag to make the tree blink.
MpTree and TreeTunes
These applications use Minim with Beat listener. For TreeTunes you also have to use a 3rd party application such as BOOM to control your systems sound input and output.
Basically the way it works is that Minim allows you to capture the frequency data through an output connection or a line-in connection. The frequency data is then ran thru the beat listener with a frequency range and threshold.
For every frame refresh (50) per second each range is reviewed to see if the frequency meets or exceeds the threshold. If it returns true, the pin that is matched up with the frequency is given the signal to light up.
I hope you enjoy this 3D print as much as I did when building it.
Full video showing everything at play. This will show TreeLamp, TwitterTree and TreeTunes. The visual timing may be off a bit due to the way I had to create this,but I think it gets the point across.
This is just a quick look at the model and the Arduino hookup.