Animatronic Eyes
I actually modified a manually controlled set of DIY puppet eyes, to use servos. Hence, I originally performed the steps in a drastically different order. In this instructable, I try to present the steps more logically.
The eyes were made with the following:
- model plane plywood (3mm)
- 2 mini RC servos,
- 1 standard RC servo (another mini would work)
- scrap styrene,
- epoxy,
- glue,
- paper clip,
- small screws
Make Base
There are two pieces of stripwood glued to the bottom (which can be seen as "bumps" on the bottom edge and in the picture in step 6) that are 1/4" square by the length of the base. They are separated by the width of the mini RC servo cases and are used to screw the servos to the base.
Note the two 1/2" square posts mounted to one side. They will be used to mount the servo that controls the eyelids. They are separated by the width of the RC servo case, are the height of the case and are installed so that the servo arm will be in a direct line with the control arm of the eyelids (See step 2). The eylid pivot point and the large holes are actually made in a separate step.
Make Eyelids Pivot Point
Make a mark on the 1/2" strip this distance from the end. From this mark, add 1/4" and cut the strip to length; make two such strips. Centered at the mark you just made, drill a hole slightly larger than the styrene rod.
Then, from each side of the hole, slightly towards the center, cut a line to the end of the strip. repeat on the other side. This should result in a channel to the hole, slightly narrower than the rod, so that when the rod is snapped in from above, it will be held within the hole by the smaller channel. Look at the sketch! And remember to make two of these (you should drill the center hole in both at the same time). mark the front edges so that this hole remains aligned when assembling.
Now that the sides are made, cut several pieces of the strip about 1/4" below the center of the hole. You will need about six, depending on your desired eye spacing. Glue these strips together in a block and then attach the pivot sides to either end. Make sure the front edges you marked earlier are both on the front. You can also use a solid piece of styrene or wood as well. Coat this assembly with a layer of epoxy, except for its bottom.
Place the assembly between the eyes on the eye base, centered side to side as well as front to back on the eye centerline drawn in the last step. Mount this assembly on a small square of plywood, to lift the eyelid above the eyes and make it easy to mount. Drill a hole in the base for a small screw and drill a corresponding pilot hole in the pivot point assembly. Use a small screw to mount it to the base. I like to make my assemblies so that they can be taken apart.
Make Eyelids
On one edge of each ball, a hole was drilled and reamed to fit tightly on the plastic sprue. Then, close to the holes but not too close, a wedge shape was trimmed from the hemisphere to make the eyelids. Note the sketch shows a segment that is actually too large; the picture in step 7 is more accurate.
The two halves are then positioned on the rod (the sprue or styrene) and arranged so that they are inline. Mine are spaced approximately 7/8" apart; you will have to leave room for a pivot mount.
Initially, a drop of super glue was used to keep alignment. Note that the separation on the sprue/rod and the width of the pivot mount determines the eye spacing.
Once the super-glue has set, the assembly was spray painted black on all sides. Once the paint has had time to cure, mix up a batch of epoxy and coat the lids (only! not the connecting rod) with epoxy. First the top half, then turn the assembly over and epoxy the sprue connection points with more epoxy.
Once the epoxy has dried, it is time to make the lever for operating the eyes. Straighten a large paper clip. Then, heat the end of the wire and carefully press it into the pivot rod/sprue directly in the middle between the eyes. It should melt into place. Hold it still, while it cools and the styrene becomes firm enough to hold the wire. A drop of super-glue and/or a coating of epoxy will also hold it in place.
Make Eyes
The eyes are made from Ping Pong balls. First, a small (1/16") hole was drilled from top to bottom. I have a drill press and the ball fit into the circular hole of my baseplate. I had carefully centered the baseplate hole, so that the resulting pair of holes in the ball were radially aligned. The hole is used to screw the "eye" to the mini servo. After both holes were drilled, then I drilled the top hole larger to a 1/4" opening. This larger hole is to allow screwdriver access to the bottom of the ball.
I then used a circle template and chose a hole approximately 1/2 the size of the ball. I positioned the template so that it was as close as I could place it parallel to the axis of the two holes drilled earlier. I traced the hole and then carefully using a razor blade knife, cut the circle out of the side of the ball. Once the cut was complete, I laid a sheet of sandpaper on a smooth surface, and rubbed the cut edges of the ball over it to smooth any rough edges remaining. This large hol is used for access, when mounting the eyes to their servos.
The circle template was then used to draw a smaller circle for the iris directly opposite the large hole. positioning it higher and lower on the ball is possible for various looks, but the distance from each side to the outer circumference of the large hole in the back should be equal.
Mount Eyes
Mount the servos with screws from the bottom of the plate. My mini servo had a round protuberence where the xle exitted that determined the size of the hole I was about to drill (next paragraph).
The holes to be drilled for the servo axles will be placed along this line, equidistant from the center. Whatever distance from the center you choose is determined by the spacing of the eyelids, as constructed in step 3. Mine are somewhere close to 7/8". Fiddle by placing the eyes on the base beside the eyelids. You should really read ahead to the next step, because you are going to have to leave room for the eyelid pivot mount, which will be between 1/2" and 5/8" wide.
The two RC servos were screwed to the base plate wood strips, such that their axle protruded through the two holes drilled in step 1. A servo mounting screw was placed in the small hole and a screwdriver inserted to the larger hole directly above it to hold it in place while the eye was placed over the servo. Then, a few quick turns will tighten the orb to the servo. This connection does not need to stand a lot of torque, so hand tightening and no adhesives are all that is needed. Position the irises so that both are facing forward.
Mount Eyelids
Cut a 1/4" x 3" (approximately) piece of plywood to use as a crank arm. Attach it to the servo arm with small screws and nuts. On the other end, drill a 1/16" hole.
This is where a bit of fiddling about occurs. Bend the eyelid pivot lever (the piece of paper clip) up at a slight angle; measure about where it crosses the crank arm and bend it 90 degrees in the direction of the arm and trim it to 1/2" of the bend.
Insert the end of the lever through the crank arm and gently bend the remainder of the lever back parallel to itself.
Note in the picture that there is another wood post. I found that the rotation of the servo sometimes went too far and the crank was unable to return and open the eyelids. This post serves as an end stop.
As your sizes may vary (as mine did through several prototypes), I cannot be more specific about this process. It really takes a bit of tinkering.
Test the Servos
Additionally, they have a downloadable free terminal program (LynxTerm) that you can use while testing and fiddling with the servo alignment.
The first step in aligning the servos is to set the two micro servos to their centered position. Then gently turn the eyes so that the irises are facing forward.
Aligning the servo arm, crank arm and pivot lever will take a little more effort. Note the relative angles and positions of these three elements in the attached picture. You can adjust from the servo arm by loosening and reattaching the servo arm with it's screw.
Lynxmotion also have a forum that provides excellent support, which is linked to from their main site. You can see my project there under "Projects | Peter Penguin" http://www.lynxmotion.net/viewtopic.php?f=20&t=5948 or on YouTube, djl02184's channel.
Coding the SSC-32
Servo channel #0 is the left eye; channel #1 is the right eye. Servo channel #2 are the eyelids. This particular script below does not control the mouth. The values for the servos were determined via experimentation with the LynxTerm program.
The .CMD file commands for just the eyes are listed below:
@echo off& if defined debug @echo on
rem Initialize eyes to 'home' position
rem Control script starts after pause
@echo Look ahead&@echo #0P1500 #1P1500 > COM4:
@echo Open eyes&@echo #2P600 > COM4:
@echo pause&@pause
@echo Look right&@echo #0P1100 #1P1100 > COM4:
@echo delay 1.00secs.& @call delay 1.00
@echo Look left&@echo #0P2000 #1P2000 > COM4:
@echo delay 1.00secs.& @call delay 1.00
@echo Look right&@echo #0P1100 #1P1100 > COM4:
@echo delay 1.00secs.& @call delay 1.00
@echo Look ahead&@echo #0P1500 #1P1500 > COM4:
@echo delay 1.00secs.& @call delay 1.00
@echo Look right&@echo #0P1100 #1P1100 > COM4:
@echo delay 0.02secs.& @call delay 0.02
@echo Look ahead&@echo #0P1500 #1P1500 > COM4:
@echo delay 0.10secs.& @call delay 0.10
@echo Look right&@echo #0P1100 #1P1100 > COM4:
@echo delay 0.02secs.& @call delay 0.02
@echo Look ahead&@echo #0P1500 #1P1500 > COM4:
@echo delay 0.10secs.& @call delay 0.10
@echo Look left slowly&@echo #0P2000 #1P2000 T1500 > COM4:
@echo delay 2.00secs.& @call delay 2.00
@echo Look ahead&@echo #0P1500 #1P1500 > COM4:
@echo delay 2.00secs.& @call delay 2.00
@echo Blink eyes&@echo #2P1050 > COM4:
@echo delay 0.01secs.& @call delay 0.01
@echo Open eyes&@echo #2P600 > COM4:
@echo delay 0.20secs.& @call delay 0.20
@echo Blink eyes&@echo #2P1050 > COM4:
@echo delay 0.01secs.& @call delay 0.01
@echo Open eyes&@echo #2P600 > COM4:
@echo delay 0.20secs.& @call delay 0.20
@echo Look right&@echo #0P1100 #1P1100 > COM4:
@echo delay 0.50secs.& @call delay 0.50
@echo Look ahead&@echo #0P1500 #1P1500 > COM4:
@echo delay 0.02secs.& @call delay 0.02
@echo Squint eyes slowly&@echo #2P1050 T2000 > COM4:
@echo delay 2.00secs.& @call delay 2.00
@echo Look right slowly&@echo #0P1100 #1P1100 T1500 > COM4:
@echo delay 2.00secs.& @call delay 2.00
@echo Look left slowly&@echo #0P2000 #1P2000 T1500 > COM4:
@echo delay 2.00secs.& @call delay 2.00
@echo Look ahead&@echo #0P1500 #1P1500 > COM4:
@echo delay 1.00secs.& @call delay 1.00
@echo Open eyes&@echo #2P600 > COM4:
@echo delay 0.03secs.& @call delay 0.03
@echo Cross-eyed&@echo #0P2000 #1P1100 > COM4:
@echo pause&@pause
Animatronic in Action
Here is a video of the completed project (sans skin; we're working on that).
Details of the torso construction can be found at Animatronic Penguin Torso
D