Archive for the ‘projection’ Category

Arduino powered Haunted Mansion Halloween

21 Dec

As I posted previously 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.

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 to control a Dell Mini 9 laptop using AutoHotKey. When the photocell switch it tripped the Arduino sends a serial signal 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.

I had access to a industrial photocell switch (just like at Disneyworld!) which required an additional 12v power supply but I imagine this could be modified to work with a cheap ultrasonic or IR range finder.

This AutoHotKey script is running on the PC waiting for the “a” key to be pressed. When the key is pressed VLC launches full screen and ignores input for the duration of the video (60 seconds). It then closes VLC and waits to be triggered again.


Run, c:Program FilesVideoLANVLCvlc.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.

This Arduino sketch waits until the Photocell switch on pin 2 is tripped, then sends a serial character to the Dell laptop it’s connected to. It also ignores any input during video playback to avoid confusing the computer.

  Serial Keyboard
 Used to send keystrokes to a Windows PC running AACKeys.exe which
 turns serial data into keystrokes. Best used in conjunction with
 Examples and idea based on the work of and
 information from
TheNewHobbyist 2010 

// 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);

// 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); 

Here are the installation photos and video compilation (note: the audio is a little out of sync after uploading to youtube).

While we didn’t get too many trick-or-treaters this year the ones that stopped by after dark really enjoyed it. I’m really happy with the way this turned out and I recommend anyone new to Arduino give it a shot. It really wasn’t hard to put together and they payoff was great.


First 3D head projection test

20 Sep

Receiving boxes from eBay is always a little bit like Christmas for me. My head was delivered over the weekend!

Whats in the boooooox!?

Nice to see you too

I’m using this YouTube video to calibrate and adjust my projector settings.

It went really well. So well in fact that I think I”m going to use a video including 4 of the five heads of the Haunted Mansion as the looping video on my porch for Halloween this year. I’ve got the following to do before 10/31.

  • Order 3 more styrofoam heads
  • Build something to secure heads in place (2×6 and some dowel rods?)
  • Make/buy a black fabric table cloth to cover the table used to hold the heads
  • Build a box to contain the projector and protect it from weather/curious hands
  • Figure out a speaker setup so people can actually hear the heads singing
  • Measure throw distance for the projector
  • Re-encode video to project at the correct size based on installation distance

Next weekend I’m going to attempt to measure out my installation site so I can adjust the video and projector distance accordingly. I imagine this is going to be the tricky part with lots of video resizing and re-encoding.

Below is a video of my single head test, looks pretty good!


Mirrored projection is awesome

15 Sep

My styrofoam head(s) haven’t arrived yet but my projector is out and ready to be played with. While hooking up the projector I unintentionally pointed it at a mirror mounted in my office. Turns out projecting on a mirror is a really cool effect!

The only problem I found was that you’re much more likely to get blinded by the projector (duh) looking at it like this. Though it does bounce a nice reflection. I’m thinking that might be useful when it comes time to setup the projector for Halloween. I’d rather not leave it out in the open projecting on the heads. A long mirror opposite the projector might solve this.

Spooky see-through projection

Projected reflection on the ceiling


Two projects started, due date 10/31/10

13 Sep

I’ve ordered parts for two projects from eBay.

The first is a styrofoam head similar to the one pictured right.

I’m hoping to either record a video using this method from Indestructibles or use a pre-filmed video from Disney that I found on YouTube

I also ordered a ultrasonic fogger for a proof of concept test to see how long fog produced in this manner stays opaque enough to project on. If this goes well I’ll look into ordering a larger “pond” sized unit.