Introduction: Arduino Powered Haunted Mansion Singing Busts
Last year I wanted to put together a Halloween display emulating my favorite Disneyland/world ride of all time. Originally this was just going to be four heads on a table with the Haunted Mansion's "Grim Grinning Ghosts" playing on a loop. But that all changed after I picked up my first Arduino UNO.
After I started learning to program my Ardunio this evolved into a photocell actuated video "on demand" Halloween display. I used an example I found on Arkadian.eu to control a Dell Mini 9 netbook running AutoHotKey. When the photocell switch is tripped the Arduino sends a serial message to the Dell laptop which is converted to a keystroke by AAC Keys which in turn triggers the below AutoHotKey Script and finally plays back using VLC. The "AAC Keys" could probably be replaced by setting up your Arduino as a USB HID but at the time this was all a foreign language to me.
So, lets get to the build!
Step 1: Hardware: Don't Lose Your Head Over This.
In addition to the switch my hardware list included:
- 4 styrofoam heads (found on eBay)
- Dell Mini 9 netbook for video playback
- A 800x600 VGA projector
- Old Karaoke machine for audio playback
- Arduino UNO
- Radioshack project box to keep the Arduino dry and happy
- And the previously mentioned photocell and 12v wall wart
Step 2: Software: Lets Go to the Head of the Class
As I said in the introduction I primarily used four pieces of software to run this project (all of which are free) they are:
- My programmed Arduino UNO
- AutoHotKey (Windows macro program)
- AAC Keys (Turns serial input into keystrokes)
- VLC (video playback)
Here's the code for the AutoHotKey script:
a::
Run, c:\Program Files\VideoLAN\VLC\vlc.exe -I rc "VIDEO_FILE_NAME"
Sleep, 61000 ; Pause for video to play, prevents triggering multiple times.
Process, close, vlc.exe ; Kill vlc and make sure it stays dead.
Return
As you can see it's pretty simple. When the "a" key is pressed VLC is launched with arguments to hide everything but the video itself. The script waits for the length of the video (61 seconds) then it closes VLC to reset and run again.
The Arduino sketch isn't much more complicated it waits until the photocell is triggered, then sends the "a" key to the computer over USB (which AAC Keys turns into a keystroke) and waits for 61 seconds before it can be triggered again.
/*
Serial Keyboard
Used to send keystrokes to a Windows PC running AACKeys.exe which
turns serial data into keystrokes. Best used in conjunction with
AutoHotKey.
Examples and idea based on the work of http://www.arkadian.eu and
information from http://wwww.ladyada.net
TheNewHobbyist 2010 <http://www.thenewhobbyist.com>
*/
// Initialize variables
const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;
// Set inpout/output and start serial
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
// Main code loop
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.print("a"); // send key to PC to start video playback
delay(61000); // ignore input until video ends
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
Step 3: Putting It All Together: Heads Up!

Second Prize in the
Halloween Decorations Challenge

Participated in the
4th Epilog Challenge
40 Comments
3 years ago
Question... is the photo cell necessary if I am planning on running it on a continuous feed in a haunted house, not on a motion, light, or sensor based trigger?
5 years ago
DO you have detailed, I mean step by step, instructions on how to do this? I mean down to exactly what to type, where to type it, what and where to download the stuff you need. This is all way to technical, I am in healthcare not tech :( I would love to do this but simply put, it is beyond me unless I have step by step instructions. If you have them would you please consider emailing them to me at shotokahn@yahoo.com
Ricky
Reply 3 years ago
I use an Epson 2045 pricey but worth it a micca media player playing an HD singing bust video on to coro-plast bust cut out panels,so like hooking up DVD player to TV via HDMI and pressing loop!Best part is most media players are cheap and loop almost as good as computers and they are tiny! Not 3-D but appears 3-D and are big like at Disneyland! https://youtu.be/JH0o49MkOG8 The one i use https://www.amazon.com/s/?ie=UTF8&keywords=micca+speck&tag=googhydr-20&index=aps&hvadid=177165500862&hvpos=1t1&hvnetw=g&hvrand=1268339510811 Projector i use https://www.amazon.com/Epson-Cinema-Miracast-Theater-Projector/dp/B018YKVSMG/ref=sr_1_3?ie=UTF8&qid=1526859160&sr=8-3&keywords=epson+2045 Speaker i use https://www.amazon.com/ION-Audio-Tailgater-Portable-Bluetooth/dp/B00SNBCBGE/ref=sr_1_2?s=electronics&ie=UTF8&qid=1526859200&sr=1-2&keywords=ion+tailgater And HD remastered video the best and most important thing https://youtu.be/a7BmXRf2Dgw
5 years ago
Projected the video onto panel and then traced it and cut it out looks great!
8 years ago on Introduction
For those that wanted to know, I got mine from www.nightfrights.com, though I see they're also available on haunted props.com. It's the whole neighborhood's favorite effect. Wish I could have pulled it off doing it myself using these instructs, but it was just too hard for my meager skills. Pats on the back for trying, right? I need a prop-building Halloween fan for a boyfriend! LOL!
8 years ago on Introduction
Love it! Nice job!!!
I gave it my best shot, but couldn't come close to what you accomplished. I ended up getting the pre made Ghost Bust from Night Frights since I'm not as technically skilled as you. It was a little pricey, but SO COOL, it was worth it! It's the hit of the neighborhood at Halloween! Thanks for the inspiration! What's next?
9 years ago on Introduction
Someone is going to be scared this Halloween! Gonna try this!
10 years ago on Step 2
How do you download the video from youtube?
Thanks
Reply 9 years ago on Step 2
Videodownload helper or ant video for firefox.
Reply 10 years ago on Step 2
Use the Firefox browser and search the add ons. Lots of downloaders.
Reply 10 years ago on Step 2
Keepvid.com does a pretty good job. You can find other similar services pretty easily on Google.
10 years ago on Introduction
This is a good one! Glad you got a prize!
10 years ago on Step 3
i had the comment and too many wows
10 years ago on Introduction
Awesome!
10 years ago on Introduction
This is cool and I copied it with a few modifications. I bought styrofoam heads but used only one, which I had to sand off much of the facial features. I then projected my own face on it.
10 years ago on Introduction
wait i mean WOWOWOWOWOWOWOWOWOW
10 years ago on Introduction
You could also use a webcam on the laptop and one of the dozens of pieces of motion-detecting software. Or wire the output of the motion detector into the DTR pin of a serial port on the computer. Both options would be cheaper than using an Arduino as a glorified button-pusher. ;)
Reply 10 years ago on Introduction
I investigated this solution and you can use a webcam and freeware motion sensing software called YAWCAM ( Yet Another Web Cam) to trigger an executable. Check it out at http://www.yawcam.com/index.php and look at the help page http://www.yawcam.com/help/help_motion_actions_exe.php for instructions on how to trigger the video for your singing ghosts.
Reply 10 years ago on Introduction
You are exactly right. Arduinos are really overused, when there are much simpler ways to accomplish the same task.
If the Arduino is overkill, it is over-engineering, which is not good engineering. I do think I'd like to see a buffer between an external device and DTR on my PC.
Reply 10 years ago on Introduction
I generally use a small relay to separate the electrical systems from each other. Especially where the voltages involved quite often differ between devices.