This instructable will walk you through how to build a robotic plush lizard
This mechatronic animal, dubbed Leopold the 17th (he went through 17 iterations), was developed as the second project for the Spring 2012 Things That Think class at The University of Colorado at Boulder. Leopold, a plush lizard that tracks light sources, dances to the song "I'm so excited" by the Pointer Sisters when finding a sufficiently bright source.
Step 1: Supplies
2 yards of the top body fabric (we used a polar fleece)
3 yards of lining fabric
2 yards of bottom body fabric (this may be the same as the top fabric)
Small amounts of felt (white, black, red)
1" x 2" x 2.5' pine board
6 - 1/2 inch hinges
1/4 in. acrylic sheet
1/4 in. basswood
4 sub-micro servos (we used http://www.hobbyking.com/hobbyking/store/__663__HXT500_5g_8kg_10sec_Micro_Servo.html)
1 large servo (we used http://www.sparkfun.com/products/9064)
2 light sensors
Musical greeting card
Step 2: Plush Skin
Right sides - the sides that you want on the outside of the plush toy.
This pattern is developed with a 1/8" seam allowance
The dots on piece A and B are where the legs should be placed.
If the fabric has a tendency to unravel, like our lining did, use pinking shears to cut and a zigzag stitch when sewing.
Print out or sketch the attached pattern onto fabric and cut out the layers as described on the design. Then, sew the lining to the corresponding outer piece with "wrong sides together." However, be sure to leave the head open when stitching the linings as the resulting hole will allow you to stuff the body later. Then, mark out two corresponding sides to leave open so you can put the skeleton inside. When we constructed our Leopold, we preserved the opening between the points on one of his sides. Specifically, we had luck leaving a hole in the section in between his legs on his left (on the top of the pattern . . . see the second picture).
Lay out the legs on the non-velcro side of the patterns and then sew them on as depicted in the second image. Lay out pieces A and B together with the wrong sides out. Make sure to pin these pieces to each other so that all of their edges align accordingly. Next, sew the combined A and B pieces together without sewing the legs closed. Finally, sew the corresponding C pieces together as a tube.
Next, sew on three to four velcro pieces spread evenly along the black section in the second image.
Watch out! Here comes the tricky bit. . . Take the four remaining C pieces and sew them into two different legs sections (as tubes). You should begin sewing the tube with wrong sides out before sewing them onto the wrong side of the top of the body (part A). Admittedly dear reader, this part was a bit difficult and the best analogy I could come up with was that you should try to sew the leg tubes on like you would a sleeve.
Take the foot pieces (D) and cut an x in the center in each one. Sew them on like a sleeve again, making sure that the wrong sides are on the outside.
Turn the body right side out and take a quick moment to celebrate the accomplishment.
Step 3: Spine
We wanted Leopold to have a flexible spine in order to have the floppy nature of a plush toy when picked up. Don't worry, this step is surprisingly much easier than the previous one.
First, cut the 1x2 piece of pine into four 4 in. pieces. After that, attach two pieces of wood together (lengthwise) using a hinge. The hinge should go onto the bottom side of the spine as it will allow the two pieces to be rigid against each other when the lizard on a surface but loose when picked up, allowing the artificial animal to "flop" down. For stability, make sure that the hinges attach with screws, not nails.
Finally, in order to decrease weight of the spine, we ended up cutting out the center of the vertebrae pieces.
Step 4: Make the Legs
Each part of this step will need to be repeated 4 times, once for each leg
Cut out leg and bracket pieces
The bracket and leg linkage files from below each give the laser cutter paterns for parts for one leg. Thus for a full lizard, you will need to cut out 4 of each of these. We cut the brackets out of 1/8 in basswood for ease in gluing and the leg linkages out of 1/8 in acrylic. As designed, all pieces must be cut out of 1/8 in material.
Glue the bracket together
Glue the the sides of the bracket on to the base usng the finger loints cut into the edges. Glue the remaining two small wooden linkages to the inside walls of the bracket. The larger hole should be toward the bottom of the bracket and line up with the hole in the sidewall. The linkages should line up with the flat face on top of the sidewall. Putting a bolt or dowel through both linkage holes as glue is drying will help alignment later. Set this assembly aside to dry.
Assemble leg and linkages
Bolt the remaining linkages and leg together as shown in the diagram. The leg and the long linkage are single pieces, and the two short linages sandwich these two pieces. Put a bolt through each end of the short linkages and tighted snugly but without causing extra friction.
Attach bracket to large servo
press the bracket onto the shaft of the large servo and screw it down. The leg will extend from the tall end of the bracket, so make sure it is in the correct orientation on the servo.
Attach leg to bracket
Put the leg and long linkage between the linkages glued to the inside of the bracket and bolt them in. The leg piece should be at the bottom of the bracket and the other long linkage should extend over the top of the bracket.
Small servo assembly
press a servo horn onto a small servo and put the servo through the hole in the side of the bracket so that the horn is in the middle of the bracket. Straighten out a small paperclip and pass one end of it through a hole near the end of the servo horn and crimp it in place. bend a 90 degree angle in the paperclip about 20 mm above the servo horn and trim it off about 10mm after the bend. push this end of the paperclip through the small hole in the end of the long linkage and crimp it in place. By rotating the servo, you should now be able to raise and lower the leg.
Screw the large servo in place for one of the leg positions on the body
Step 5: Neck
Attach a large servo to the spine with the hinges on the bottom using a high gauge wire. Just as a suggestion, we drilled holes through the last/first vertebrae to string the wires through and keep them a little mor organized
Lay out the spine on the skin and then estimate where you want the neck to turn from. This will be the length of the wires to attach to the spine going to the servo.
Now, sew wires to the inside bottom of the lizard's head (see second picture). These wires should follow the curve of the plush cranium and attach the bottom of the head wire, linking to a plastic horn. Dear reader, we have purchased a good number of servos in our day and we have found all of them tend to come with some plastic. Furthermore, we have found that it doesn't really matter which horn you choose here, for full disclosure, but we used an "x" shaped one.
You can see this in action in the attached MPEG movie as eventually the servo on the spine will be connected to the sewn servo horn (coming in a later step . . . don't worry!).
Step 6: Light Sensors
The eyes each include a light sensor in the pupil. Simply find sufficiently large but high gage wire and then solder a line for power onto the longer end of the sensor (if the ends are cut, you may want to test it first in a breadboard) and a shorter line for ground and data. Towards the end of the later wire, solder in another line for analog readings and a 2K ohm resistor with a line purely for ground on the other end. This should create a "Y" like split with one line coming in, one line coming directly out, and a final line with the resistor attached. Do this twice, one for each eye. We found it useful to attach headers to the ends of the wire.
Step 7: Eyes
Cut out circles of white felt and then smaller circles out of black felt. You may either sew or glue on the pieces with the white as the outer part of the eye and the black as the pupils. Then, use eyelets to create a hole all the way through to the inside of the head. You will string the light sensor wires through here, so make sure the eyelets are small enough that the sensors can't be pulled through but large enough that you can fit all the wires through.
Step 8: Mount Breadboard and Arduino
Find some cardboard and create a small container for the Arduino. While it can have an open top, we created a slightly more specialized holder, including a bit of cardboard in the front to close in on the device and some holes in the top of a recycled Sparkfun package for wires to go through. Either way, tape the resulting container and breadboard to the spine.
Step 9: Adding Music
Choose a musical greeting card and carefully open the back pouch that contains the speaker and chip. Just so you know, you want to be careful to not break the two wires heading to the speaker but, reassuringly, the device is mostly durable otherwise. Anyway, The batteries tend to ware down quickly so we simply took them out and powered the card through the Arduino instead.
Next, there is a small slip of paper in between a metal lead and a contact. Leave that piece of paper in or suffer the wrath of your cohorts / neighbors (it will play continuously)! Solder a data line to the top of the switch and a line to the ground contact on the side. Both of these lines need to be attached to the Arduino (see wiring step).
Notice that the greeting card comes with only the two white wires heading to the speaker and, yes, these are suprisingly the only ones you will need to use.
Note: Silly us, we didn't take pictures of our greeting card before we put it in. So, the musical card image comes from the awesome
Make magazine "Tri-color Floating Glow Display" project (http://blog.makezine.com/2011/12/27/tri-color-floating-glow-display/).
Step 10: Wiring
Analog 1: The data line from the right eye sensor
Digital 5: The data line (yellow on most servos) for the neck servo
Digital 6: The data line (yellow on most servos) for the front left leg servo
Digital 9: The data line (yellow on most servos) for the front right leg servo
Digital 10: The data line (yellow on most servos) for the back left leg servo
Digital 11: The data line (yellow on most servos) for the back right leg servo
Digital 13: The data line for the sound card
Step 11: Code
Code for Leopold is available at https://gist.github.com/2603758. If you followed the wiring guidelines in the previous step, this should work automatically. Otherwise, line assignments can be modified by editing the #define macros at the start of the script.
Note: If the head keeps swinging to one side, modify the LEFT_ADJ_TICKS and RIGHT_ADJ_TICKS until the motion balances out. We did not have to do this for our lizard but left the constants in just in case.
Step 12: Assembly
This is the step that can make or break everything. Or just cause things to be a pain to fix.
The best way that we found to do this was by bending the spine at the back legs and then bunching up fabric to one side. Anyway, very carefully put the skeleton into the lizard through the open side with velcro. Put the neck in first, and, while the impulse might be there, dear reader please don't worry about connecting it yet. Then, put the two skeleton legs opposite the open side through their corresponding leg holes. Next, as promised, connect the neck servo to the sewn in servo horn.
Here comes the first really tricky part. Gently put the two remaining skeleton legs into their corresponding leg holes before inserting the boxed arduino and breadboard into the lizard.
Now, if you want to have an extremely sturdy lizard, you can velcro the arduino and breadboard to the bottom of the lizard. We just taped them to the spine.
Step 13: Test the Skeleton's Dancing Abilities
Step 14: Feet, Stuff, and Sew Mouth
Insert stuffing into the top slip of the skin through the open hole in the head piece. Then, sew that hole shut to complete the mouth. Next, cut a tongue out of the red felt and freehand it to get a tongue that fits your lizard. Sew the tongue into the mouth.
Finally, cut small circles of material (we cut acrylic on the lazer cutter but any solid disks should suffice) and glue them to the feet with hot glue. Be sure to glue to both the fabric and skeleton. We attached little pajama feet pieces as well for extra traction but we determined that this step should be considered optional.
Note: We suggest going light on the stuffing, otherwise the servos may not provide sufficiently expressive motion.
Step 15: Addendum
So, you might have noticed that there are a few extra unused servos in our images. Well dear readers, we hope that someday Leopold might not just dance . . . he might walk! Anyway, we ran into a few problems with power distribution but we hope to maybe complete that next exciting step in the future (we already have code for it!).