# Severed fingers Halloween prop

Posted by Amanda on 31 October 2014

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

## 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).