Fiendish Devil Witch - Animatronic Halloween Nightmare
by RC3459345 in Living > Halloween
211 Views, 6 Favorites, 0 Comments
Fiendish Devil Witch - Animatronic Halloween Nightmare
This project builds a full-sized witch that stirs her cauldron. When trick-or-treaters come near, she turns her head and cackles.
Loud cackling, cauldron sounds, fog, and movement—really increase the impact of this animatronic decoration.
I'll show you how to create a full-sized, cauldron-stirring, head-turning, cackling witch for your Halloween setup. The witch stirs a steaming cauldron while slowly moving her head up and down. When trick-or-treaters come near, the witch turns her head toward them and cackles. After the cackle, the witch returns to facing forward. She resumes stirring and slowly moving her head between looking down at her cauldron and looking straight ahead. The witch's actions are coordinated by an Arduino microcontroller.
Supplies
Electronic Components
Arduino: An Arduino Nano (or other Arduino) controls the witch's behavior. [Amazon]
Cackling Sound Card: Sound card plays cackling sounds when motion is detected. [Amazon]
Bubbling Sound Card: Sound card plays cauldron bubbling noise in a continuous loop. [Amazon]
PIR Motion Sensors x 2: Detect motion and send signals to the Arduino. [Amazon]
Servo: Turns the witch's head from side to side. Any similar servo should work. 35kg Full Metal Gear Digital Servo HIGH TORQUE SPEED for RC Car Boot Servo. [eBay]
Servo holder: This is a block of wood that is shaped to hold the servo in place (inside the witch's head).
Stirring Motor: A 12V motor sits in the cauldron moving the witch's staff in a stirring motion. [Amazon]
Stirring Motor Relay: A solid state relay turns the stirring motor on and off. [Amazon]
Head-bobbing Motor (Deer Motor): Slowly moves the witch's head up and down. [Amazon]
Head-bobbing Relay: Starts and stops the witches head moving up and down. [Amazon]
12V Power Supply: A 12V power supply powers the stirring motor and the cackling sound card. [Amazon]
5V Power Supply: A 5V power supply powers the Arduino, servo, bubbling sound card, motion sensors. [Amazon]
Capacitor (10V, 1000µF): A capacitor is added to guard against sudden power draws that the servo may cause. [Amazon]
Dupont wire: [Amazon]
Lever Nuts: [Amazon]
Spade Connectors: [Amazon]
Wire
Speaker x 2: [Amazon]
Speaker box x 2: [Michaels]
Witch's Body Materials List
PVC Schedule 40 Pipe 3/4" diameter by 10 feet long x 3 count
PVC Schedule 20 Pipe 3/4" diameter by 1 foot long x 1 count: Note: this is *schedule 20* pipe. It is thinner than schedule 40 pipe.
PVC Schedule 40 Pipe 1/2" diameter by 9.5 inches x 1 count
PVC Schedule 40 caps 3/4" x 4 count: [Lowes]
PVC Schedule 40 cap 2" x 1 count
PVC Schedule 40 tees 3/4" x 10 count
PVC Schedule 40 elbows 45 degree 3/4" x 3 count
PVC Schedule 40 elbows 90 degree 3/4" x 5 count
PVC Glue: [Lowes]
Cotter pins x 3 count
Pool noodle
Spooky hands
Poultry wire: [Lowes]
Black fabric: [Walmart]
Spooky fabric: [Amazon], [Amazon]
Safety pins
Zip ties: [Amazon]
Witch's Head & Bobbing Mechanism
Witch Halloween mask: [Amazon]
Spray foam insulation: [Lowes]
Chicken Wire: [Lowes]
Head counterweight: [Amazon]
Hurricane tie (6 inches long) x 1 count: [Lowes]
Plumbing brace/stub-out bracket/safety plate (9 inches long, 1 1/2 inches wide, 18 gauge) x 1 count: [Lowes]
2 cotter pins
4 washers
Black spray paint
Stirring Cauldron & Fire
Large cauldron: [Party City]
Red Christmas lights: [Amazon]
Green Christmas lights: [Amazon]
Spray foam insulation: (listed in 'Witch's Head & Bobbing Mechanism' section)
Firewood pieces
Paint for cauldron exterior
Mod Podge Outdoor: [Michaels]
Particles to embed in Mod Podge
Gravel
Block of wood (to hold the stirring motor)
Witch's wood staff for stirring
PVC cap (listed in 'Witch's Body Materials List' section)
Stirring motor (listed in 'Electronic Components')
Foundation strap/metal bar (8 inches long, 1 3/8 inches wide, 12-gauge steel) (connects the motor shaft to the PVC cap) [Lowes]
Metal Flange (8mm) (connects the stirring motor shaft to the metal bar): [Amazon]
Fog Generator
Pond mister: [Amazon]
Refill valve and connection to garden hose: came with pond mister
Large plastic container
Drainage pipe and wye [Lowes]
Dryer Vent Duct (4 inch by 8 feet): [Lowes]
Computer fan
12V Power Supply: A 12V power supply for the fog generator fan
Duct tape
PVC Skelton Construction
The first step for the project is to create the witch's PVC skeleton. The witch's skeleton is constructed from 3/4 inch PVC pipe. Using the PVC piping purchased in the materials list, cut the following lengths, then assemble according to the diagram.
All but two of the PVC pieces below are cut from the schedule 40 3/4" PVC pipe. The two pieces that are of a different diameter are noted below.
Feet: 12" x 4
Lower leg: 17" x 2 (I increased the length of the lower legs to 17" to make the witch taller vs. the 15" recommended in the diagram)
Leg cross bar: 13.5"
Small piece between the leg cross bar and the knee: 2" x 2
Upper leg: 18" x 2
Hip horizontal: 13.5"
Back: 21.5" x 2
Right (from witch's point of view) upper arm: 10"
Right forearm: 9.5"
Left (from witch's point of view) upper arm: 10.5"
Left forearm: 11"
Upper inner neck: 9.5"
Upper outer neck (Schedule 20 PVC): 9 7/16"
Lower neck: 19.5" (I wound up shortening this once it was in place)
Shoulders horizontal: 9.5" (1/2" diameter pipe between the shoulders allows the head to swing back and forth.)
Assemble the witch from the pieces according to the above screen shot. PVC glue all the joints of the feet and legs (but not the hips). Once you have constructed the skeleton, decide how hunched over you want the witch to be—by adjusting the angle of the hip joints. Then glue the hip joints. Wait until you test the witch stirring the cauldron before completely gluing the upper arm to the shoulder. You may want to leave the upper arm to shoulder joint unglued.
Spray paint the feet and lower legs black.
There are some useful videos online. This guide was my favorite and super helpful: [YouTube]
Arms and Shoulders
Put sections of pool noodle around the PVC arm parts to give them the correct thickness.
I used cotter pins to hold the neck in place. The head bobbing can cause the neck and head to shift out of place. Cotter pins allow the head and neck to move forward and backward, but limit the left-right movement.
I also used zip ties to hold the upper arm on the skeleton, but to allow it to move. Some movement from the stirring stick goes into the shoulder. This can make the arm fall off if it's not glued. The zip ties pull the arm in toward the shoulder, but still allow the some rotation in the shoulder joint. Furthermore, this allows the witch arm to be lowered for storage.
Hands
I bought hands for the witch at Dollar Tree. I attached the hands to the PVC-pipe wrists using zip ties. The fingers of the hands were then zip tied to the witch's stirring stick. Because the stirring stick is rotating, the hands tend to rotate at the wrists a small amount (as the angle of the stirring stick changes). This is why I used zip ties to attach the hands to the wrists, rather than screws. The zip ties allow the hands to rotate a small amount.
Head Bobbing
A head-bobbing mechanism gives the witch some movement as she stirs her cauldron. She slowly alternates between looking straight ahead, then looking down toward the cauldron.
The head-bobbing motor is a reindeer motor that is screwed directly to the PVC frame. The reindeer motor turns a two-bar linkage which causes the head of the witch to bob up and down slowly.
For the two-bar linkage, the reindeer motor is connected directly to and spins a hurricane tie. The connection between the reindeer motor and hurricane tie is made with a small machine screw and nut. I used Locktite Threadlocker to prevent unscrewing.
The hurricane tie is connected to a second bar (a 'stub-out' bar). The stub-out bar is then connected to the witch's lower neck 11 inches from the top of the lower neck. These connections are made with cotter pins and washers. The length of the hurricane tie should be less than the length of the stub-out bar. This helps prevent the mechanism from getting stuck backwards. See the list of supplies for the exact lengths.
A small exercise weight serves as a counter weight to offset the weight of the head—easing the force required from the head-bobbing reindeer motor. I held the counter weight in place with a clamp.
When a trick-or-treater is detected by one of the motion sensors, the head bobbing is stopped while the witch cackles. I thought it would look silly if the witch was looking up and down while trying to give a scary cackle. So I had the witch stop the bobbing motion during her cackle. A solid state AC relay (Head-bobbing Relay) is used to disconnect the reindeer motor from the 120V AC input power.
Poultry Wire Back
Since the witch's torso is made up of 2 PVC tubes. A flatter, solid surface is needed for the witch's back. This surface gives the back a realistic appearance, as well as provides something to attach the witch's clothing to. I used 1/4 inch poultry wire for the witch's back. I used aviation snips to cut a back-sized piece of poultry wire. I zip-tied the poultry wire to the PVC tubes of the witch's skeleton. Additionally, I used PVC saddle tees to protect the head bobbing mechanism from coming into contact with the poultry wire.
Motion Sensors
To increase the scariness of the witch, when trick-or-treaters walk by, she turns her head toward them and cackles loudly. A motion sensor is placed on either side of the witch to detect trick-or-treaters. Each motion sensor is mounted on a small wooden stake. When either of these motion detectors indicates motion, the Arduino signals the servo to turn in that direction.
In the event of rain, I placed a cut-up plastic drink bottle over the motion sensors to shield them from the rain.
Turning Head
The mechanism to turn the witch's head had a few tricky parts. Questions that had to be answered: How to connect the servo? There is the witch's PVC neck, a servo, and then the head. How to get that put together? Furthermore, how would the neck support the head, while still allowing the turning movement?
In our design, we decided that the servo would sit inside the witch's head. The servo drive shaft points downward and connects to a stationary PVC tube (the Upper Inner Neck). When the servo is activated, it attempts to turn its drive shaft. The drive shaft is connected to the stationary Upper Inner Neck. Since the drive shaft is being held stationary, the body of the servo rotates (moving the head with it).
The servo comes with levers known as “servo horns” or “servo arms”. The servo arms fit on the drive shaft (also called "spline") of the servo. Usually the servo sits still and you connect the servo arms to whatever you want the servo to rotate. In this situation, the servo arms hold still and the body of the servo rotates.
Servo Holder
The body of the servo sits inside the witch's head in a 'servo holder'. To create the servo holder, we took a block of wood and carved a spot for the servo to fit into it. I used paddle drill bits and chisels to carve out the wood.
Inner and Outer Neck
The servo arms fit into slots that I cut into the stationary Upper Inner Neck tube. A wider PVC tube (the Upper Outer Neck) goes over the Upper Inner Neck and connects to the body of the servo. The Upper Outer Neck has a 1 inch notch cut into it. The servo body fits into this notch. The Upper Outer Neck turns with the servo while the Upper Inner Neck remains stationary. In this way, the servo is allowed to turn, while the 2 PVC neck tubes (the Upper Inner Neck + Upper Outer Neck) fit together and prevent the head from toppling off.
Foam-filled Head
The witch's head is a Halloween mask filled with spray foam insulation. The servo sits inside its servo holder, which itself is inside the witch's head. We needed to connect the servo holder to the witch's head so that when the servo turns, the head turns too. To make this connection, we used a staple gun to staple chicken wire to the servo holder. Then we fit the serve holder + chicken wire all inside the witch's head. Then we used expanding foam to fill the witch's head. The chicken wire and servo holder became embedded in the hardened foam.
After the witch's head, we filled the inside of the witch's face with expanding foam as well. We spray painted the back of the face-foam black.
Once the foam was hard, we placed the servo into the servo holder. Then we attached the Upper Outer Neck to the servo. Lastly, we placed the head+servo holder+servo+Upper Outer Neck on the witch body (the Upper Outer Neck fitting over the Upper Inner Neck). A slight wiggle was necessary to get the servo drive shaft to fit into the servo arms (which are attached to the top of the Upper Inner Neck.
Cackling
When trick-or-treater motion is detected, the Arduino signals the Cackling Sound Card to play an audio file. We loaded the Cackling Sound Card with 7 different sound files. To get these files, I searched YouTube for videos with cackling sounds. I downloaded the videos, extracted the audio, then trimmed the audio to the useful part.
The Arduino cycles through the sound files. Each time motion is detected, the Arduino plays the next audio file, until restarting back at the first audio file. The Arduino stores the number of the most recently played sound file number. It increments this value each time a witch sound is played. The Arduino signals which sound to play by grounding 1 of the 7 wires connected to the Cackling Sound Card. The Cackling Sound Card then plays that file.
The Cackling Sound Card and Bubbling Sound Card have dip switches that should be set to 0-1-0. This indicates: 'I/O Independent Mode 0': Each input corresponds to 1 sound file, plus the sound card continues playing even after input signal release.
The 7 audio files below are loaded on the Cackling Sound Card.
Speakers and Speaker Enclosures
The Stirring Witch requires two speakers. One plays the bubbling cauldron sounds nonstop. The other plays the witch's cackling. For each speaker, solder wires to the speaker terminals. The wires will conduct the signals from the output terminals of each sound card to the input terminals of each speaker.
Each speaker requires an enclosure. I used small round boxes from Michael's as the speaker enclosures. To make the enclosures, cut out holes for the speaker, add a hole for the speaker wire, paint the enclosure black, glue the lid closed, spray paint poultry wire to serve as the speaker grill, mount the poultry-wire grills using a staple gun. Tie a knot in the speaker wire (inside the enclosure) so any pull on the wire will not put force on the soldered connections between the wire and the speaker.
I placed the bubbling cauldron speaker on the ground next to the cauldron. The speaker that plays the cackling sounds was zip-tied inside the witch frame, so the sound would appear to be coming from the witch.
Cauldron
The cauldron is a cheap plastic cauldron from Party City. We mixed Mod Podge with foam debris. We globbed and dribbled this mixture down the sides of the cauldron. Then we painted these globs to look like witch's brew dribbling down the side of the cauldron.
Inside the cauldron, the Stirring Motor rotates the bottom of the witch's wooden staff around the bottom of the cauldron. The bottom of the cauldron is filled with gravel for weight and stability. Green LED Christmas lights line the inside of the cauldron. The green lights sit on top of the gravel and below the Stirring Motor.
We cut 2 holes in the lower side of the cauldron where it faced the witch.
Hole 1 (small around 1/2 inch diameter): Power for the stirring motor and lights.
Hole 2 (3 inch diameter): Inlet for fog from the Fog Generator.
The Fog Generator blows fog into the cauldron. As the witch stirs, the fog wafts out of the cauldron. The fog, combined with the green LED lights really captured the attention of trick-or-treaters and their parents!
The bubbling audio file is attached to this step. This audio file should be loaded onto the Bubbling Sound Card.
Downloads
Stirring
The Stirring Motor is a 12V motor that is placed in the cauldron. The motor shaft is attached to a metal flange which is then screwed to a foundation strap with a PVC cap on the end. The witch's wooden staff fits into the cap. The motor rotates the bottom of the wooden staff around the bottom of the cauldron to simulate stirring. The Stirring Motor is held in place by attaching it to a 1.5" thick piece of wood using zip ties and a piece of metal. I chiseled out a depression in the wood in order for the motor to fit more securely.
When trick-or-treater motion is detected, the stirring is stopped for the witch cackle. A IRF520 MOSFET transistor module (I refer to as "Stirring Relay") is used to connect/disconnect the 12V power supply from the stirring motor (turning it on/off) based on a signal from the Arduino.
RPM: How fast should the witch stir? 6 RPM seemed optimal after viewing different videos online. A 10 RPM motor was the closest I found on Amazon, so I went with that. 10 RPM looked great in the finished product.
Fire
The cauldron sits on a simulated fire. The fire was constructed from pieces of wood, and red LED Christmas lights embedded in insulating foam.
Fog Generator
Smoke and fog billowing out of the cauldron, and illuminated by the green cauldron lights, enhances the visual impact quite a lot. We created a fog generator using a pond mister/fogger.
The fog generator was built from a large plastic container about half full with water. The pond mister floats in the water. The container must have a tightly sealed lid. On one side of the container, a computer fan blows air into the fog generator container through a hole. The fog exits through a hole on the opposite side of the container, into corrugated drainage tubing. The drainage tubing contains a wye, directing half the fog to the cauldron and the rest other areas of our yard. The 10-disc pond mister generates a lot of mist.
For the connection from the wye to the cauldron we used 4 inch dryer vent ducting. The ducting runs under the witch, with the end of the ducting being taped to the cauldron. The fog blows through the large hole in the cauldron. We use the dryer vent duct because it is more flexible than the drainage tubing.
We bought a pond mister that came with an automatic refill valve and float. This valve maintained the water level in the fog generator throughout Halloween night. I connected the auto-refill valve to our garden hose. Unfortunately, the refill valve tubing was smaller than a standard garden hose (3/4"). I used a collection of PVC fittings from Lowes, and Teflon tape, to get the connection to work. However upon further testing: the pond mister ran for 4 hours with the refill hose turned off and without depleting the water supply. So, if your fog generator container is large enough, you can probably skip the automatic refill.
Witch Clothing
To dress the witch, I bought black cloth from Walmart. For the torso and legs I just draped the cloth around the witch and attached it to the poultry wire using safety pins. For the arms, I sewed sleeves. I measured the length of each arm (around 30"). Then I cut the 1-yard wide fabric in two (1/2 for each arm). So for each arm I had a 1/2 yard wide by about 30" piece of fabric. I sewed the long ends together with a sewing machine to form a 30" tube/sleeve (widening up at the wrist). Then I turned the sleeve inside-out to hide the seem. I used safety pins to connect the sleeves to the witch.
Electronics and Power Supply
See the schematic detailing the connections between the electronic components.
Arduino Nano: Is connected to 2 motion detectors on the right and left of the witch. Receives signals from the motion sensors. Signals the Stirring Motor Relay to start/stop Stirring Motor. Signals the Head-bobbing Motor Relay to start/stop the Head-bobbing Motor. Signals the sound card to play a cackle.
Cackling Sound Card: Plays cackling sound when the Arduino signals.
Bubbling Sound Card: Plays cauldron bubbling sounds in a continuous loop. Trigger #1 is connected to ground to continuously play the bubbling sound.
Servo: Turns the witch's head from side to side.
Stirring Motor: A 12V motor that sits in the cauldron to create the stirring effect.
12V Power Supply: A 12V power supply powers the stirring motor and the cackling sound card.
5V Power Supply: A 5V power supply powers the Arduino, servo, bubbling sound card, motion sensors.
A capacitor guards against sudden power draws that the servo may cause.
Lever nuts were super convenient to connect all the power wires to the power supplies.
Electronics Box
The electronics are kept in a plastic box so they will not get wet if it rains. I placed a piece of wood in the bottom of the plastic box and secured the electronic components to it. In the event of rain, I placed a cut-up plastic drink bottle over the motion sensors to shield them from the rain.
The electronics box can be hidden between the witch's feet, under her garments.
Spade Connectors and Wiring
Because the witch is large, it is helpful to be able to disconnect the electronics box from the witch. I used spade connectors to achieve this disconnect ability.
I zip tied the wires to the witch's skeleton.
Arduino Code
Please see the attached Arduino C++ code. The code is implemented as a state machine. A state machine is a design technique where the program is always in a particular state or mode. Based on the current state, the program executes some instructions, then it can move to other states based on input it receives.
For example, state: 'ST_STRAIGHT'. This is the normal or usual state the witch is in.
When the witch is in 'ST_STRAIGHT', the witch is stirring her cauldron and nodding her head. Her head is pointed straight ahead. The Arduino is waiting for a signal from either motion detector. If the Arduino receives a motion sensor signal from the right side motion sensor, it executes these instructions: stop stirring, stop head nodding, play cackle sound, turn head right, go to state 'ST_TURNING'.
During the 'ST_TURNING' state, the witch waits with her head turned while the cackling sound plays. After waiting for a certain time limit, the witch returns her head to looking straight ahead. The witch then enters 'ST_JUST_TURNED' state. In this state, the witch just stirs and moves her head for a while, ignoring any motion sensor signals. This is to prevent the witch from continuously turning her head and cackling (too unrealistic) when lots of trick-or-treaters go by. Eventually the witch returns to 'ST_STRAIGHT' and waits for motion to be detected again.
To control the servo that turns the head, I used the ServoEasing library by Armin Joachimsmeyer. This library is free and easily installed using the Arduino IDE. The ServoEasing library allows the head to smoothly turn without jerking or activating the servo at full speed.
Initially, the servo occasionally jittered. This was caused by an inadequate power supply. Servos can draw a lot of current. I fixed this by upgraded to a 10 Amp power supply as well as by adding a capacitor across the servo power inputs to supply instantaneous power.
Finished
Thank you for reading!