Although the Sunstar Back to the Future 1:18 DeLorean models are awesome on their own, I really wanted to hear sound bites from the movies and see some fire under the tire action every time I walked by my display case. Using the Arduino and Adarfruit Wave Shield, I can play music and quotes from the movies with the push of a button. In addition, I installed several LED lights underneath the models and hacked an Under-Cabinet Light so that it can be controlled by my Arduino. Not only does my setup play sound, LEDs light up the DeLorean from the corresponding clip. Right now my system plays 13 different clips taken from all three movies. The grand finale is a fully choreographed light show to the BTTF theme song! Check out my videos to see it in action!
This does not necessarily have to be used for BTTF model cars. You can use these same techniques to add lighting to any model car display case. Also, you can add sound clips from any tv show or movie to complement your particular model on display.
You will need basic soldering skills and general knowledge of LEDs, buttons, and transistors for this project. The wave shield and breadboard power supply kit need to be soldered. Feel free to ask me any questions if you need more detail or clarification on something.
What you Need:
-Sunstar BTTF models!
-Imex Showcase Black Base
-Imex Showcase Clear Base
-Trumpeter 1/18 Display Case (Optional)
-Rite Lite Four Head, LED Under-Cabinet Light
-BTTF Sound Bites
-Any Arduino. I used a Diecimila, but any will do. It might be nicer to use a Mega since it has more pins with PWM for fading the LED lights.
-Adafruit Wave Shield for Arduino Kit
-Barrel connector for Arduino
- Power Adapter
-Metal Pushbutton with Blue LED Ring – 16mm Momentary
-9 Blue 5mm LED
-14 Orange 5mm LED
-Adafruit Adjustable breadboard power supply kit
-5 2N2222 NPN Transistors
-Drill and Drill Bits
Step 1: Hack the Overhead Spotlights
I used my multimeter to measure the voltage and current going to each light head before and after it was wired to the circuit board. When the lights were connected to a +5V power supply with the circuit board removed, the current and voltage going to the LEDs was higher then what it was out of the box. I added two 8.2 Ohm 1 Watt resistors to each of the two power cables going to the lights to protect the LEDs. I used electrical tape to organize and rout the wires in order to make the light easier to install. I may make a separate instructable on the hacking of this style of light.
Once the light is wired up, mount it above the models using the hardware that comes with the light. Also, drill a hole in the back of the bookcase so that you can feed the wires up to your Arduino/breadboard.
Step 2: Wire the BTTF I Showcase
Measure and drill 14 holes in the base for the orange (fire) LEDs. These should be in line with the tires. I also drilled holes for four blue LEDs for some extra effect. I installed these behind each tire so they are shielded from direct eyesight. Using an input voltage of 4.5V, the 14 fire LEDs have to be connected in a 2x7 array using 27 ohm resistors. The four blue LEDs have to be connected in parallel using 68 ohm resistors. Use hot glue to hold the LEDs in place.
Once this display case is wired and ready to go, drill a hole in the back of the bookcase to run the wires. Position the case on the shelf and run the wires to your Arduino.
Step 3: Wire the BTTF II Showcase
Once this is wired, this case can sit on top of the BTTF I display case. I ran these wires through the hole that was drilled in the previous step.
Step 4: Wire and Install the Pushbutton
Drill a hole in the shelf for the button to rest in. Also, drill a hole in the back of the bookcase so that you can feed the wires up to the Arduino.
Step 5: Optional - Make a Custom Display Case for BTTF III Car
Step 6: Wire and Program the Arduino
I used a radio shack adjustable voltage DC power adapter set to 6V to power everything. On the Adafruit breadboard power supply, I set the voltage of the adjustable rail to +5V. Instead of using a separate power supply or battery to power my Arduino, I powered it off of the breadboard power supply. I sacrificed a battery holder by cutting the barrel connector off of it. I soldered short pieces of solid core wire onto the end of the connector so that it could plug directly into the breadboard. I connected it to the unregulated voltage rail of the breadboard.
Because the LEDs draw so much power, transistors need to be used so that you can power them with the breadboard power supply. I used 2N2222 NPN Transistors from Radio shack. Connect the Pinout wires from the Arduino to the base of the transistors (center pin). A resistor needs to be added between the Pinout wires and the center pin of the transistors (see picture). Wire the collector pin (rightmost pin) to ground. Wire the positive lead of the LED wire to the +5V of the power supply. Wire the negative lead of the same LED to the transistor emitter (leftmost pin). Make sure that the flat side of the transistor is facing you. To determine what resistors to use I did a lot of experimentation to get the correct brightness and voltage/current to the LEDs. I used a combination of 480 ohm, 220 ohm, and 510 ohm resistors for this.
I wired the LEDs to the following Arduino pins:
#define fire 6
#define small_blue 16
#define big_blue 17
#define lights_left 18
#define lights_right 19
You need wav files to play on the waveshield. I got some of my sound clips from here:
I also grabbed some directly from the blu-ray discs using audacity. There is a great tutorial on Adaruit’s website on making and converting files for use with the wav shield. I would recommend checking it out if you are going to be making clips for the wave shield. I have attached all of the wav files that are used in program except for the BTTF I theme song. The theme song was too big to upload, but you can grab it from that website. If you dump them on the SD card that goes into your wav shield, my program will be able to call and play them. Right now I have 13 different clips set up. I use a case switch structure to cycle through the different clips.
I am using a cheap pair of logitech computer speakers. I bought ones that plug into a wall outlet for power since they do not get that loud when powered by the wave shield. There is a headphone jack on the wave shield for the speakers to plug into.
I took the wave shield sample code and picked out the parts that I needed to play a wav file. Be sure to use to use the playfile() command and not the playcomplete() command. You will not be able to execute other commands if you call playcomplete(). Playfile() on the other hand will let you drive the LEDs while wav files are playing. For example, if I wanted to play Remotecontrol.wav, I would use the command:
I am not the best programmer in the world, so I am sure my code can be improved. I did not use anything fancy to control the lights, just good ole’ delay() commands. It is really tedious work to synchronize the lights to music, but I have not found a better way. There is an example on the Adafruit website where lights can be illuminated automatically by the code depending on the volume of the audio, but it was not yielding good results for me. I also programmed a timer into the program that changes that state of the lights after a couple minutes of no activity (no one presses the button). I could not get the .ino file to upload so I put my code into a .txt file. Sorry, but some of my code did not save. The last 1/3 of the choreographed lights to the theme song is not in the code that I uploaded. I will try to redo this code when I get a chance.