Halloween has long been a favorite holiday, and I love the opportunity it provides for implementing fun and otherwise useless physical projects. This year, since my kids were both wearing store-bought costumes (and refused my offer for hand-crafted wooden swords, much to my surprise), I thought I’d do a little work on the decorations. My wife picked up a full sized skeleton to sit on our front porch, so I decided to give it some spooky red eyes and to breathe a little life into it by rocking its chair.
There are many examples on the web (Makezine’s, for example) of doing this kind of project with a windshield wiper motor. They’re strong, they run on 12v, and they run at around the right pace. I didn’t have a windshield wiper motor, but I DID have some crappy DC motors that I’d salvaged from a dead “Black Friday” printer, so I gave it a go with one of those.
To secure the motor, I clamped it to a wooden board, then zip tied the board to a fold-up sawhorse. To interface with the motor, I used InstaMorph. InstaMorph is a polyester thermoplastic that melts nicely in the boiler water from my espresso machine. I used this to form a spindle with a flange at one end, then I jammed the shaft of the printer motor (which had a small gear attached) into the other end. I pressed the plastic down around the gear as it cooled, and the result was a spindle that was firmly attached to the motor. I drilled a hole through the middle, tied some nylon twine through the hole, and I was ready to rock my chair.
It turns out that we had a small skeleton from Halloweens past, and my son had the wonderfully creepy idea to have the larger one cradling the smaller one as they rock. Using some small panel-mount LEDs and many feet of 22ga hookup wire, I gave them both glowing red eyes. The bundles of wire exiting the bases of their skulls gives the skeletons a lovely H. R. Giger vibe.
The heart of the project is an Arduino Uno. I can’t say enough wonderful things about this little workhorse. It’s not the fastest thing you can get at its size, nor is it the most capable, but they’re cheap, they’re robust, and the community support for them is outstanding. In early incarnations of this project, I combined my Uno with an Adafruit Motorshield. This made driving the motor in two directions trivial, but it turned out to be consuming too many of the digital pins. Since I wound up with a rocking methodology that did not require me to spin the motor in two directions, I swapped out the motorshield for an N-channel MOSFET. The transistor, the rest of the hardware to support the motor, an on/off switch, and an extra header full of ground connections all got soldered onto a protoshield. The eyes insert into 4 of the digital pins and 4 of the ground connections on the extra header, and another digital pin (as well as the +5v and one more ground header) went to a Parallax Ping.
I threw a header onto a fragment of a prototyping board, just to have somewhere portable to plug the sensor into. I wired about 10′ of cat5 (just 3 conductors) to that board, and I also soldered some short lengths of 22ga wire to the other end of the cat5. My cat5 is much thinner than 22ga and inserts poorly into breadboards and headers.
Here’s a quick walkthrough of the whole system, laid out in my dining room on the day before Halloween:
Installation was straightforward. I positioned the sawhorse behind the rocking chair, looped the twine over one of its slats, and programmed the motor for half a second on, three seconds off. This produced a noisy, spastic rocking that was in no way awesome, but was entirely good enough. The eyes, on the other hand, WERE pretty awesome.
This was a really fun project, and I was able to put it together using only components that I already had laying around my workshop. I was really pleased that I was able to produce an acceptable rocking motion using only a dc “hobby” motor, and the InstaMorph worked wonderfully for physically interfacing with the motor. And it looked super creepy in the dark.