Releasing the Happy Haunts

Design • Graphic Design • Carpentry Python • Raspberry Pi • Video

A button that powers an animation of singing pumpkins for a Holiday Display. Using Python and a Raspberry Pi to make it happen.

Every year I try to upgrade the holiday decorations I have. This time I wanted to create something that was more magical, and started looking into projection mapping. I found some ready made solutions that would play songs on a loop, but I thought that would drive my neighbors crazy. I wanted something that would only trigger when someone wanted it. So a button it was.


I wanted to fit a theme of Jack Skellington got diverted from his trip to the haunted mansion, and ended up at my house. So I knew I wanted all the boxes to appear to be shipping containers that were bound for the Haunted Mansion.

Drawing up some plans, I came up with a bunch of different options for the button, all with a vaguely mad scientist feel. The first version called for a jacob's ladder, but that was just too dangerous. (after all, I wanted kids to be able to play with this).

Powered by a Raspberry Pi, it would drive a projector.

The Coding of this turned out to be way more difficult than I expected. Video on raspberry Pi was not in the best of shape, and would take way too long to load up. The solution turned out to be to create two different players. One for the idle animation, one for the playback. It would switch between the two whenever someone pushed the button and playback started. This gives the illusion of the pumpkins switching to playing as soon as someone pushes.

On the coding side, bounce was an issue, and the plasma from the balls were causing induction in the wires to the button, and triggering randomly. It was a balance of finding some debouncing that would cause it to still react to someone pushing the button, but not so little that it wouldn't go off randomly.