I had a dream of developing an animated Christmas Holiday Season display, potentially as a fund raiser for the arts. My original idea was to use puppets as characters, but reading and investigating made me curious as to whether I could build an animatronic penguin.
This instructable concentrates on the torso, which has four degrees of freedom, allowing the figure to move about in many directions. As a goal, I wanted a penguin that could "dance".
For more information, go to www.djsfantasi.com 18+
Step 1: Parts and Tools
- 4 sheets of 12x24 3mm plywood
- ? 24" lengths of 1/2" square poplar stripwood (I bought out the craft store's supply!)
- 4 HITEC HS422 servos
- 1 6" Servo extension cable
- 2 10" Servo extension cables
- 6" Ball 2/56 threaded rod
- 4 pair Ball Link sets
- 4 Aluminum servo horns
- 8 3/4" RC aircraft Hinges
- Scrap aluminum angle
- Miscellaneous small screws, nuts and bolts.
The tools I used were:
- Saber Saw
- Flat head and Phillips screwdrivers
- Cutoff Saw
- Drill press
- Portable drill
- Gorilla glue
- ACC glue (super glue)
- small Spray bottle of water
- Clothes pins
Step 2: Design Torso Pivot Points
I wanted the body to move left and right, front and back and to both lean as well as "shimmy". A shimmy motion would be a move to one side or the other, where the head remains up straight; a lean would be where the head would follow the direction of the torso.
I decided to divide the body into four sections. two sections would pivot front and back, while the remaining two would pivot left and right.
Step 3: Base Plate
There were five plates required to divide the torso into four sections. After some experimenting, measuring plastic penguin toys waist sizes (Rico is pretty broad) and some estimating/resizing/projecting in Excel, I came up with the following diameters for the plates (from the bottom up) 10", 12", 11", 10", 6".
The plates have a 1" outer diameter circle, joined by a cross of 1" wide radial arms. All of the cutout material have rounded corners, to make it easier and neater to cut.The picture shows this rounded corner in the center, but it was used at the outside corners as well. This allowed the corners to be drilled on a press with a 1" Forstner bit and the cutouts were made from these access holes with a saber saw.
Centered along one cross arm, a piece of 10" long stripwood was cut. I originally had a shorter piece specified for this support, but practical experience proved it did not provide enough support for the servo linkages added later. This is called the riser mount. I use a cut off saw for square edges; this is critical in some steps, so be accurate. This piece is glued with Gorilla Glue so that one edge is just on the center line, centered on the cross braces. I like to apply the glue to one part and spray the other part with a fine water mist. I then align the parts and clamp. Clothespins make great inexpensive clamps for this purpose.
On the second sketch, I add a 5" piece of stripwood for strength. This was glued to the cross arm at right angles to the side of the riser mount strip closest to the centerline.Do not butt this piece against the riser mount, but space it with a scrap of plywood so that there is a 3mm space. This space will be needed to insert the Riser Plate in Step 5.
Step 4: Servo Mount
One of the cross arms will be at a right angle from the side of the riser mount wood strip that is not on the center line. (The sketches show the plate at each point in this step). On this arm we will glue another piece of stripwood at right angles. Use one of your servos to determine the length of this piece. Make a mark on the center line at the 3-1/2" mark. With a round servo horn in place, slide the servo mounting tabs along the center line, until the mark is halfway between the edge of the servo horn and its center. Mark both sides of the servo and extend these marks across the cross arm.
From the mark furthest from the center of the plate, add another 1/2". From the center to this mark is the length of this strip wood piece. This will be the servo mounting base. Glue it along the center line with Gorilla glue.
Cut two pieces of stripwood 1-1/4" long (Actually, you will need 8 of these). Place it upright at the end of the servo mounting base and trace it's outline. Drill a pilot hole in the center of the square that you have just drawn and glue the stripwood piece upright in the square. Use the pilot hole you drilled to screw in a small screw into the wood, to clamp it to the plate while the glue cures. Once it has cured, this screw can be removed.
For the second piece, place the servo on the mounting base so that its mounting tabs overlap the upright stripwood. Then slide a second upright piece up snug on the other side of the servo and trace the 1/2" square outline of its base on the cross arm. Mount with glue as you did the other piece,
Note these steps can be done together on each of the four large plates, to minimize construction time delays to to glue curing times.
Step 5: Riser Plate
The riser is a 4" wide by 3" high rectangle of plywood. It has two holes for small screws drilled along one long edge,
At the other long edge, two RC aircraft hinges will be mounted. I drilled a larger hole in the center of each hinge (on both sides/leaf of the hinges), for mounting with a nut and bolt on the riser plate. If you do this, may I suggest adding a flat washer as well to distribute the holding power and to use Loc-Tite on the nut and bolt (#6, 3/8").
Once the hinges have been attached, place the riser plate on the base plate, centering it on the cross arms and 8" riser mount on the cross arms, in the slot left during the construction of the base place in Step 3.
Screw the riser plate to the riser mount with small screws (#6 pan head, 3/8")
I have attached the Google SketchUp file of the base plate. Viewing it from all sides is instructional.
Step 6: Riser Step Update
UPDATE: After operating the torso, I was not satisfied because there was too much flexibility in the riser plates. I further engineered the design of the riser plate to increase its stiffness and this resulted in much smoother motion.
I measured a second piece of plywood not quite as tall as the original riser plates - less the depth of the hinges or about 3/4". I actually marked out two copies on the plywood piece, so that I could drill a 1-1/4" hole along the line between the two. This hole provided clearance for the plate strengthening braces already installed (see picture) Then, two sub-plates were cut along the line, splitting the clearance hole into two semi-circles. You need four such sub-plates.
On each sub-plate, a 1/2" piece of stripwood was glued along the long edge opposite the clearance hole. Two additional pieces of stripwood, 1/2" less than the remaining side length were cut and glued along the edge, butting the top brace and leaving 1/2" clearance along the bottom for the riser mount brace. (This clearance is on the same edge as the semicircle).
Once this subassembly has been clamped and the glue cured, two 1/8" holes along the bottom edge are drilled as mounting holes.
Glue is applied along the stripwood braces. The sub-assembly is then placed back to the the original riser plate, as shown in the picture and clamped until the glue cures. Once the glue has set, two screws are used to fasten this sub-plate to the riser mount as the original riser plate was fastened in the previous step.
This creates a box structure for the riser plate which is stable and does not shake as much when the torso is moving rapidly.
Step 7: Linkage Mounting Tab
In the sketch, this is shown as having been built up with two pieces of wood (so far my favorite material). This proved to not have sufficient strength, so these aluminum mounting tabs were built to replace them in a couple of critical locations.
Drill two holes approximately 1/4" from the end and 1/4" apart, on the aluminum angle, to accept a #6, 1/2" bolt. On the other face, drill a 1/16" hole to accept the ball joint of the ball link set. Insert, tighten and use Loc-Tite, the ball joint. Cut off this short section of the angle on the cut off saw.
Drill a hole, to accept a #6 bolt, in the cross arm with the riser plate that is counter-clockwise one position from the servo mount. You can do one position clockwise or three positions counter clockwise (never two positions), but all plates must be made the same. To keep it simple - follow the directions; one position counter clockwise. The holes should be positioned so that the following three criteria are met. 1) The angle corner is at the edge of the cross arm, 2) the holes are clear of the riser mount plate and 3) the ball link is 3-1/2" from the center of the plate.
Bolt the Linkage mounting tab to the plate's cross arm through the holes just drilled.
Step 8: Basic Plate Assembly
You should now have four assemblies that resemble (closely!) the picture.
The next step is to attach them together. This will require some agility, as the larger assembly is quite floppy without its "muscles" (servos and linkages)
Two holes in the plate above must be drilled to match the holes in the RC airplane hinges. If you have been careful with your measurements, you might be able to drill all the holes together. If you are like me, trace the holes from the hinges on the riser to the plate above.
Note the orientation of plates above each other. The risers of each subsequent plate should be at right angles. The servo mounting posts should be directly below a linkage mounting tab above.
Note that this assembly requires five plates; we have been working with four. The top plate is the 6" diameter one. It will require that a linkage mounting tab be mounted.
Also note: The second from the bottom plate should tilt to the left and right. (The bottom plate is static). This should result in the top plate tilting back and forth.
The full assembly will look like the second picture.
A Google SketchUp file has been attached to show how all of the sections would look assembled; view it from all angles and you may find it informative.
Step 9: Mount Servos
Place a servo on a plate so that the axle is to the outside edge of the plate. Secure it to the posts with two screws on each end of the servo motor.
Attach the circular servo horn to an aluminum bracket. I used a Lynxmotion ASB-19B, with the last hole on its narrow end trimmed off for clearance. I originally used the plastic arm servo horns (seen in the picture on the top servo; the aluminum horn is seen on the bottom servo), but these were not strong enough under use for the lower two plates, which bear the highest load.
While the horn is detached, tightly attach one of the ball joints to the end of the bracket, with Loc-Tite, so that the ball is on the opposite side of the bracket from the circular servo horn. The ball joint must be attached solidly, as it bears the brunt of the torso movement's load.
Temporarily snap this sub-assembly onto the servo axle. Hold the servo vertical, the axle facing you and on the top of the servo. Then, manually twist the horn as far right as it can go. At this point, take the horn off and replace it so the arm is facing right. Then, if you twist the servo as far right and left as it can, halfway should be pointing straight up.
Attach the servo horn in this position with the supplied screw. Be careful; these screws are s-m-a-l-l.
Place a servo on a plate' servo mount so that the axle is to the outside edge of the plate. Secure it to the posts with two screws on each end of the servo motor.
Step 10: Assemble Linkage
Cut a piece of the threaded rod approximately 2" in length. Screw on one of ball sockets to one end of the rod.
Snap this onto the ball joint attached to the servo.
Snap another ball sockets onto the ball joint attached to the linkage mounting tab above. Align the ball socket and rod while holding the two plates parallel to each other.
This is where you need good fingernails or a third hand. Carefully mark the point on the rod that corresponds to the end of the ball sockets threads for the threaded rod. The fingernail can be used to mark the thread where the cut should be made. The third hand can hold a Sharpie for the same purpose. Cut the threaded rod at this point.
Remove the ball socket from the linkage mounting tab and screw it onto the end of the linkage rod that was just cut. Snap it back onto the ball joint above.
Note that the servo motors will just (barely) hold the plates parallel, if they are not disturbed by a sneeze, careless brush of fingers or a nearby open window. This is to be expected with standard analog hobby servos. Higher quality servos may not display this behavior.
You have to do this four times.
Step 11: Route Servo Control Wires
Connect servo extension wires to each of the servos. The bottom servo will not have an extension. The second servo will have a 6" extension and the top two servos will have a 10" extension. For the quite obsessed, custom servo cables can be made. Important! Label all ends of the cables, at the servo and both ends of the extension. If you remember to do this, you will thank me later.
Dress the cables down the center of the torso with spiral cable wrap or split cable tubing. Both are available at Radio Shack and the split cable tubing can be found in automotive supply stores.
At the base, I attached the servo controller to the riser with some stand-offs. The servo cables are plugged here into the servo controller. Write down which channel to which each cable is attached. I had tested the torso and controller with the controller separate from the body and mounted it to the riser later. When the cables were plugged in, nothing worked! I had plugged the cables in upside down on the controller. Document all connections!
Also on the base, is a circuit which helps synchronize the mouth movement to audio. It is described in this Instructable: Audio Amplifier and Envelope Follower
Step 12: Connect to Servo Controller and Test
I use an SSC-32 (serial servo controller - 32 channel) from Lynxmotion (http://www.lynxmotion.com ) to control my servos. Lynxmotion has a USB to serial converter that works well with their products, if you don't have a serial port on your laptop, desktop or microprocessor.
Additionally, they have a downloadable free terminal program (LynxTerm) that you should use while testing the torso's motion.
Individually move each of the servos and watch the body motion. I recommend starting with the top servo and working your way down. There should be no interference and the servo should be able to move the entire length of its travel.
Once each servo is tested, try moving them in pairs to make the torso move in what I call a shimmy or to have the torso lean forward and back or left and right. Combinations of the forward/back and left right servos will make the torso rotate or dance...
I have written software to script the Penguin's actions. This software communicates via the serial cable to make the animatronic perform. A description of the software can be found at http://www.lynxmotion.net/viewtopic.php?f=28&t=6695 as well as in this Instructable
Third Prize in the
National Robotics Week Robot Contest