Building a simple walking robot is really easy. Don't let the number of steps fool you into believing otherwise. This robot is basically made with a handful of household items and some simple electronics that you can easily pick up at Radioshack. In fact, this robot is entirely zip tied together, which makes building it and modding it extremely easy. If at any point you are unhappy with how its built, cut the zip ties away and zip tie it together differently.
The "brains" of this robot are also easily modifiable since it is based on an Arduino development board. Programming it and changing the code is extremely straight-forward. Even people with no programming experience can usually get up to speed pretty quickly and start coding their own robotic routines.
For me, this robot was mainly an experiment to see what would happen if I built a full-on robot that was like one of the many Simple Bots that I have built. It was interesting to see how much more robust one of these creatures become when you give it some computer logic.
Step 1: Go get stuff
You will need:
(x4) Rubber spatulas
(x2) 6" turnbuckles
(x1) 2" x 48" aluminum ruler
(x1) Ballpoint pen
(x1) 4-40 x 1/4" nut and bolt
(x1) Arduino Uno REV 3 (Radioshack #276-128)
(x2) Parallax 4-6VDC Standard Servo (Radioshack #273-441)
(x2) 3x1 male header pins (strips of 40 available in Radioshack #277-077)
(x1) Parallax Ping Sensor (Radioshack #276-136)
(x1) Heavy-Duty 9V Snap Connectors (Radioshack #270-324)
(x1) 9-Volt Battery Holder (Radioshack #270-326)
(x1) Size M Coaxial DC Power Plug (Radioshack #274-1569)
(x1) Multipurpose PC Board with 417 Holes (Radioshack #276-150)
(x1) 90-Ft. UL-Recognized Hookup Wire (Radioshack #278-1221)
(x1) Enercell® Alkaline 9 Volt Battery (Radioshack #25-853)
(x1) 5-1/2" Zip Ties (Radioshack #278-1631)
Step 2: Saw
Get a 2" wide aluminum ruler.
Cut a 10" section off one end using a hacksaw.
Step 3: Bend
Clamp the cut section of ruler in a bench vise such that 5" are sticking out.
Bend the aluminum slightly (to about 30 degrees) using a rubber mallet or hammer.
If you don't have a bench vise, hang the ruler halfway off the edge of your workbench, place a block of wood atop the ruler and clamp it firmly in place. You have now made an impromptu bending rig.
Simply hammer down on the ruler until it bends down over the edge of the workbench.
Step 4: Take apart
Take your turnbuckles and remove all of the eyelets.
Set them aside for some other project.
Step 5: Drill
Widen the second hole from center with a 1/8" drill bit on each arm of the servo horn.
Repeat this for the second servo.
Step 6: Mark and drill
Place the turnbuckle on edge. Measure 3" across one of the turnbuckles. Make a mark at this point. Repeat on the second turnbuckle.
Place the servo horn at the 3" center point on the turnbuckle.
Position the horn such that it is making a "V" perpendicular to the length of the turnbuckle. This should, by default, position two more "V" shapes pointing to each side of the turnbuckle. Make marks in the valley of each of these "V" shapes.
Finally, drill these two marks with a 1/8" drill bit.
Repeat on the second turnbuckle.
Step 7: Mark
One inch from the edge of each of the far sides of the ruler, make a centered mark.
Step 8: Drill
Drill the two marks that were just made with 3/4" spade bits.
Step 9: Remove
Remove the servo horn from the servo by unscrewing the set screw.
Step 10: Mark again
Center the servo's shaft in one of the 3/4" holes. Use the servo's mounting holes to make 4 marks on the ruler.
Rotate the servo 180 degrees and repeat on the opposite side.
Step 11: Drill again
Drill each of the mounting marks that you have just made with an 1/8" drill bit.
Step 12: Zip tie
Zip tie the servos to the ruler using the mounting holes you just drilled.
Trim away the excess zip tie tails.
Step 13: Reattach the horn
Turn the servo's motor shaft entirely to the right or left.
Put the first servo horn back on such that all of the "V" shapes are parallel to each of the edges.
Fasten it in place with the mounting screw.
Repeat for the second servo motor.
Step 14: Mark and drill a bit more
Between one of the far edges of the ruler and the servo, place the PCB and make marks on the ruler through each of its mounting holes.
On the other side of the same servo, place the Arduino board and make marks in each of its mounting hole. Try to fit the whole thing to one side of the ruler's bend.
On the opposite side of the ruler's bend, place the battery mount and make a mark.
Drill all of the marks that you have just made with a 1/8" drill bit.
Step 15: Insert
Insert two zip ties into each of the holes drilled in the turnbuckles from the inside out.
Step 16: Attach
Place a turnbuckle centered atop a servo horn, and perpendicular to the ruler. Zip tie the turnbuckle firmly in place, and then trim away any excess zip ties.
Repeat this process for the second turnbuckle.
Step 17: Mounting holes
Position the handle of the spatula about halfway up the turnbuckle such turnbuckle intersect perpendicularly. Next, rotate the spatula slightly outward (about 10 to 25 degrees).
Make multiple marks on the spatula's handle on all sides of the turnbuckle to indicate drill holes for zip tying it to the turnbuckle.
Drill the marks that you have just made with a 1/8" drill bit.
Flip the spatula upside down, and place the other spatula on top of it right-side-up. Align them so they are of matching height.
Use the first set of drill holes as guides to drill another set of holes in the other spatula. This should end up as a mirror image of the first (i.e. inverted, but otherwise identical).
Step 18: Front legs
Using the holes you have just drilled, zip tie the spatulas to the turnbuckle closest to the holes that were drilled to mount the PCB.
For the best results, make sure they roughly mirror each other in position and height.
These two spatulas will serve as the front legs.
Step 19: Hind legs
Repeat the process for the front legs to make rear legs.
Note that the rear legs of this bot were slightly shorter than the front legs. However, this is not a hard rule. Experiment and see what works for you.
Step 20: Spacers
Take apart a ball point pen.
Cut the pen's tube into 1/4" sections using a razor blade.
These will be used as spacers for mounting components
Step 21: Trim
Using a paper cutter or pair of scissors, trim the prototyping board down to about 1".
Step 22: 9V adapter
Screw apart the M-type plug and slide the casing onto the 9V connector wires, such that you will be able to screw it back together later (after it is soldered).
Solder the red wire to the central terminal and the black wire to the plug's outer terminal.
Screw back on the plug's cover.
Step 23: Sensor board
Place the ground lead of the Ping sensor into one of the long conductive rails that travels the length of the board, and place the power lead in the other. The signal lead should be in one of the smaller conductive rails that spans 3 holes.
Solder the Ping sensor in place at a slight angle such that if you hold the board parallel to the ground, it would appear to be rotated about 45 degrees clockwise. This should counter-balance the fact that the PCB will get mounted to the board at about a 45 degree angle.
One the opposite side of the PCB that the Ping was soldered to, nstall two 3-pin male headers such that each one has a pin that is soldered to the ground rail, and a pin the is soldered to the power rail.
Step 24: Wires
Solder a 6" red wire to the power rail.
Solder a 6" black wire to the ground rail.
Solder a 6" green wire to the terminal that the Ping's signal pin is connected to.
Solder a 6" green wire to each of the remaining header pins that are not connected to a power or ground connection. These two wires will correspond to the signal pins for each of the servos.
Step 25: Program
The code below includes the necessary bare bones minimum to make the robot walk forward and back away from something that gets too close.
This code could definitely be more robust, but I will leave it up to you to expand upon it.
Simple Walker Robot
by Randy Sarafan
This code is for controlling a simple quadruped robot and having it respond to obstacles that approach.
For more information visit the project page:
This code is based on both the Arduino Sweep example by BARRAGAN
and the Arduino Ping example by Tome Igoe
Step 26: Sensor
Place a spacer between each of the PCB mounting holes and the PCB.
Zip tie it firmly in place.
If the sensor is not level to the ground, gently bend its pins until it is.
Step 27: Arduino
Place a spacer between the Arduino and each of its mounting holes on the ruler.
Zip tie it firmly in place.
Step 28: Attach
Attach the 9V battery holder to its mounting hole using the a 4-40 nut and bolt.
Step 29: Plug
Plug the servo female socket into the male header pins on the PCB, making certain that black is lined up with ground, red with power, and white with the green signal wire.
Step 30: Wire it up
Plug the red wire from the PCB into the Arduino 5V socket.
Plug the black wire from the PCB into the Arduino Ground socket.
Plug the green wire from the Ping sensor into the socket for digital pin 7.
Plug the green wire from the front servo into the socket for digital pin 9.
Plug the green wire from the rear servo into the socket for digital pin 10.
Step 31: Power
Connect the battery to Arduino, secure it in the battery holder, and it is good to go.