This instructable is about a talking animatronic robot head I built, which I call Robot Head 2. To get an idea of Robot Head 2's functionality, click on the short video below or you can copy and paste the following link in your browser:
Robot Head 2 is a fairly complex animatronic. I built him from scratch using the following items:
- wooden knobs (for the eyes)
- doll eyes (the kind that move when you shake them)
- screws, nuts, bolts, & various other hardware items
- 1/8th inch brass rod
- misc. pieces of metal cut & bent to shape for various things
- latex (for the lips)
- various servos (the kind used in model cars & airplanes)
- wire -- lots of wire!
- one servo controller (MiniSSCII)
- powered computer speakers
- many, many electrical connectors of various configurations
- a large trunk
- wooden box (found at a thrift store)
- a clip-on lamp
- power strip
- an old cooling fan unit salvaged from a computer
- several extension cords
- a pair of old sunglasses
- a single-board computer (RAPU)
- compact flash card (used in the RAPU)
- one micro switch
- one plastic box (to house the RAPU)
- hot glue
- heat shrink tubing & electrician's tape
- varnish, paint, brushes, and rags to clean up the mess!
Tools used included:
- drills & drill bits
- scroll saw
- wire stripers
- soldering gun & solder
- heat gun
- hot glue gun
- hammer, scredrivers, pliers, etc.
I had no plans when I began this project, other than a previous head that I built as a prototype (Robot Head 1 -- now disassembled).
The head stores in a trunk that I customized, and then mounts on top of the trunk when it is in use.
This is a fairly complex project, but if you break it down into major goals, it becomes more doable. So, the approach I will take is to tackle the head itself, the electronics, the other components, and the trunk it travels in and mounts on.
Step 1: The Head
In each photo below I have tried to provide sufficient documentation on the role of each servo, and you can see visually how each servo connects to the component it controls. Just do a mouse-over on each box to see the description / explanation.
Once all the wooden parts of the head were cut out and test-fitted with servos, I put a couple of coats of polyurethane varnish on the wooden parts.
Step 2: Electronics
The RAPU takes programs I've written on a pc and stores both the movement commands and the audio portion. The RAPU was not entirely necessary. I could have used a pc to do this task, but that would have required me to either carry a laptop with me when Robot Head 2 travels. I chose to go with the little single board computer for efficiency. I program each routine on a pc, then download it to a compact flash card on the RAPU and run it from there.
All power supplies and the powered computer speakers are housed in the black wooden box beneath the head. Although you can't see it in this photo, a fan in the box immediately beneath the head continually pulls cooling air through here to dissipate any heat buildup.
I cut holes in the front of the power supply box to keep the speakers from sticking out too far, and fastened them in with hot glue. In the last photo below, you will see a small piece of wood with a slot in it just above the center of the speakers. This is where I mount the spotlight.
Step 3: The Spotlight
The spotlight is made from a cheap clamp-on light which I tore apart and attached to a piece of "mystery metal" I found in my shop. At the other end I attached an angle brace, which allows me to mount the light by sliding this angled bracket into the slot I built above the speakers (shown in the 2nd photo).
This light is controlled by a servo that opens/closes a micro switch that is in the box in the third photo. I built this switching unit to control the light and one other thing (to be decided in the future). I could have built this inside the power supply box, however it was sort of an afterthought. So, I made it removable for packing and traveling.
The switch box mounts on the back of the robot head's base and attaches to a servo control cable that sticks out of the back.
On the back of the unit I've also labeled some of the other connection/control points, including the serial connection (goes to the servo controller from the RAPU), the audio-in port (also connects to the RAPU), the master on/off switch, the main power input (goes to the power supplies), and the exhaust fan.
Step 4: Setting Up the Robot Head
Next, I attach a power strip to the back of the trunk. All incoming power will come through this strip.
I then attach the RAPU unit to the back. A bracket on the wood case simply slides into a bracket I have mounted on the back of the trunk. Then I plug in the RAPU power supply, and plug in the serial connection and the audio cable into the back of the case that holds the other power supplies. Since the serial communications used by the RAPU only use two wires, I made my own serial cable from an old telephone cord. That way I was able to use a phone jack instead of a 9 pin serial plug & socket. The audio wire is then plugged in (I used a stereo phone jack and cord.
Next, I plug in the power cable that powers all the power supplies in the power supply case (it is the cord with the yellow plug). The last thing I do is attach the spotlight and the spotlight servo switch, plug the power strip into an outlet and I'm ready to go!
Near the upper right of the 3rd photo you will see a white plug dangling down. This is an additional serial connection to power a 2nd animatronic device (like the small one in the video). I only use this when I'm using a 2nd device -- otherwise it just dangles in the back.
I also have two security plates mounted -- one on the power supply box and one on the trunk. If I have to leave the robot head unattended in a public place, I use a laptop lock to secure the unit.
Step 5: Making the Trunk
In the 1st photo I have shown where all the components are stored. EVERYTHING, including a big yellow extension cord that I sometimes need fits inside the trunk. Pretty much every bit of space is used, including the space provided by the lid.
The 4th photo shows the inside of the trunk with the head removed. At the back of the trunk I hot glued a "custom" piece of semi-ridged foam (from a shipping box). This keeps the movable part of the head from flopping around when it is being transported.
On the left and right sides of the trunk's opening, you can see some black painted wood reinforcement. I thought the original trunk was not quite ridged enough when the lid was opened, so I added these pieces to add stiffness.
At the bottom is a shelf. This gives me enough clearance to house the robot head and to have an area underneath for storage.
This trunk came with a fairly weak set of wheels, so I removed them and added industrial casters. The casters at the rear are in a fixed position and the front casters swivel.
In hindsight, I wish I had done more planning for the trunk. While I am happy with the way it ultimately came out, I went through numerous renditions before I got it right.
And finally, you probably noticed a lot of stickers on the trunk. These are duplications of old travel stickers I found on the internet. I printed them, laminated them with clear film, attached double-sided carpet tape to the back, cut them out, and stuck them on. I figured they would sort of give the trunk a nice, interesting look.
Step 6: Programming
The subject of programming the head is a bit too detailed to go into on an instructable, but here is the process I use.
First, I begin by writing the dialog in Microsoft Word. Next, I use a text-to-speech utility to convert the written dialog to a spoken dialog. The end result of this process is an mp3 file.
Next I use an audio editor to add in any sound effects that I want to use with the dialog (phone ringing, siren in the background, knock at the door, etc.). Once I have the audio file completed, I then use a program that allows me to position each servo while both hearing and visually seeing the audio file. It generally takes me about an hour to program a minute's worth of movement. Interestingly enough, programming the mouth's movement is not the most difficult part. The most difficult part is programing all the other movements, because when a person talks, there are a lot of subtle movements that go along with their mouth movements -- all of which become a person's expression.
For example, when you ask a question, you might raise your eyes slightly and simultaneously turn and raise your entire head. If you go back and view the video listed in the introduction you will see what I mean. All these slight, subtle movements is what makes the animatronic look like he has real expressions.
Once I finish all the programing of the servos, I then download both the servo control file and the mp3 file as a single control file onto a compact flash card. I then put this card into the RAPU, and Robot Head 2 comes "alive!"
There are a lot of web sites relating to animatronics. If you're interested, Google is your friend.
Step 7: Having Fun.....!
I guess my favorite place to take him is to elementary schools. Kids literally sit on the edge of their seat while Robot Head 2 performs. With kids, he always starts out by telling them a little about himself (usually a funny story), then he talks to them about technology (generally via a story about some gadget he owned or used, or knew of personally), and then finishes by encouraging the kids to study hard in school. When he is finished, he tells them goodbye, yawns, then closes his eyes and begins snoring loudly!
I hope you've enjoyed this project. It may seem a bit overwhelming on the surface, but keep in mind all that makes up any animatronic is sound and movement. In terms of building one, it is good to start simple (my very first one had one servo), then build up to more complicated undertakings.