Pololu Blog »
Severed fingers Halloween prop
At Halloween parties, it is common to see a punch bowl with one or more eyeballs floating in it and stomach-churning decorations like severed fingers or gelatin worms lining the festive dishes. However, the problem with most of these is that they are motionless and bland. Inspired by Thing, the disembodied hand from The Addams Family, I decided to make a creepy animatronic hand to add some thrill to an otherwise boring table display.
Mechanical structure
Since the severed fingers that I picked up from the Halloween store were light-weight, I decided to use five mini servos to move the fingers individually. I glued the fingers onto popsicle sticks of varying lengths to mimic the structure and shape of a hand. The biggest challenge was figuring out how to position one servo on the base without it colliding with the others, since each one needed to lie on its side in order to move the attached finger in an up-and-down motion. After mulling over a few ideas, I ended up rolling strips of cardboard length-wise to create columns supporting each servo. This setup allowed me to stagger the servos as well as situate them closer together:
Behavior programming
To control the servos, I used a Mini Maestro 18-channel servo controller for two reasons: I wanted the option of expanding the project with more features, and I happened to already have one in my office. The Maestro Control Center made it easy for me to pick out the default positions for each finger by adjusting the slider bar for each servo channel. Once I had selected the desired positions, I began modifying the example script from the “Making smooth sequences with GET_MOVING_STATE” section of the Maestro user’s guide to get the behavior I wanted.
After getting the simple code to work, I thought it would be exciting to incorporate some other behaviors such as scaring, waiting, and twitching. I modified the code so that each finger movement was defined by its own subroutine and implemented delays for finger hold duration. Doing so made the code more adaptable for programming those behaviors.
Below is code for moving each finger with a servo in an arbitrary sequence:
30 4 acceleration 80 4 speed 80 3 acceleration 100 3 speed 80 2 acceleration 100 2 speed 80 1 acceleration 100 1 speed 30 0 acceleration 80 0 speed default_positions begin 2000 movePinky 2000 moveThumb 500 movePinky 1000 moveIndexFinger 500 moveThumb 2000 moveRingFinger 500 moveMiddleFinger 500 wait_until_not_moving_and_delay 2000 moveMiddleFinger repeat sub wait_until_not_moving_and_delay begin get_moving_state while repeat delay return sub default_positions 6336 4 servo 5612 3 servo 5824 2 servo 5628 1 servo 5592 0 servo return sub movePinky 5708 4 servo wait_until_not_moving_and_delay 6336 4 servo return sub moveRingFinger 6396 3 servo wait_until_not_moving_and_delay 5612 3 servo return sub moveMiddleFinger 6272 2 servo wait_until_not_moving_and_delay 5824 2 servo return sub moveIndexFinger 6240 1 servo wait_until_not_moving_and_delay 5628 1 servo return sub moveThumb 6120 0 servo wait_until_not_moving_and_delay 5592 0 servo return
Parts list
- Micro Maestro 18-Channel USB Servo Controller
- five Power HD Mini Servo HD-1160A
- battery pack
- popsicle sticks
- five decorative plastic severed fingers
- cardboard
- transparent tape
Potential improvements
Since the structure was made out of cardboard, it caused the prop to be unable to press down on the piano keys without some extra help holding down the base; it would be better to redesign the mechanical structure using heavier and sturdier material so that constant reinforcement is not required. Some other improvements might include adding motion-detection such as that used in Brandon’s Motion tracking skull Halloween prop or the possible incorporation of buttons to control each finger for a Simon Says game. A more ambitious future feature would be to add five more servos and be able to move the fingers in two axes (x-axis and y-axis).