Introduction: Wendell the Robot
UPDATE: 12/21/2011 - Robot Zombie Dance, Smaller head (see below)
Born in dreams of 1980's, realized today.
What follows is my proposed design for a robot. A robot with a simple design, that is easy to share and change. A robot you can build with a hand saw or a laser cutter; from cardboard or karbonite. A robot you can share; and change. This is your robot. A for the people. A robot born in the dreams of the 1980's and realized today. A robot your children and your children's children will look back on and say 'that was THE ROBOT"
But I need your help. I don't have all the answers. I don't even have all the questions. But maybe YOU do - so please post comments. Leave your wishes and dreams; your 'why didn't you... s" and 'what if you... s'. Tell me what to build, and I will build it; then it will break; and then we will try again. And maybe, just maybe we'll get it right.
To this end I humbly submit to you --- Wendell --- Wendell the Robot.
Wendell is like a baby, silly and small, with a big head, tiny legs, and often, a funny smell. It is not the end but the beginning. An affirmation that says 'I can make that; I can make that BETTER!
(too much?)
Also - I'm submitting this to the shop-bot contest - I would us it to build robots
- VOTE FOR ROBOTS -
-Also - If you want me to make you one or send you all the pieces - check out my kickstart project:
http://www.kickstarter.com/projects/marc-cryan/build-wendell-the-robot-simple-and-open-first-50-u
PROGRESS UPDATE: 12/21/2011
Working on a Robot Zombie Dance based on the "thriller dance". A little tough without a waist, legs, or elbows. Check out the video bellow.... but don't get to excited.
Also - built a version with a smaller head and some shoulders.
Step 1: Let's Begin
So - all rabble rousing aside. Here are the basic parameters:
Note: an alternate 'skinny, small head' version is attached to this step. (next step has original files - big head, fat)
-
Simple to build and easy to share.
- All designs created using freely available software
- Scallable Vector Graphics are preferred.
-
Open source electronics and software
- Arduino based microelectronics
- Arduino and Processing development enviroment
- Simple motors and mechanics
- Simple sensors
Note: an alternate 'skinny, small head' version is attached to this step. (next step has original files - big head, fat)
Step 2: Print Design and Stick to Plywood
-Print PDFs and glue to 1/4 in plywood using an adhesive spray.
-This step has the PDFs and the SVG (inkscape) files
Follow the directions for 'temporary' or 'low tack'
if you want to be able to remove the template
-a 4x4' sheet of luan is plenty
-This step has the PDFs and the SVG (inkscape) files
Step 3: Cut Out the Parts
All the cuts are straight, so you should be able to use whatever saw you have around.
I am m using a small band saw with a thin blade.
I am m using a small band saw with a thin blade.
Step 4: Drill the Holes
Drill out all holes
-I'm using a drill press but a hand drill would be fine.
Brad-tip bits make a nice cut and are easy to position. For the 1"
holes
I am using a fostner bit - generally, good bits are worth buying.
-The small holes are denoted with stars. Pre-drill these with a small
bit, this is 1/16th". These are pilot holes for the brad nails, so make
sure your drill bit is smaller than the nail. Using a drill press you
can set the depth so it just touches the bottom of the hole; this leaves
a little wood to grab the tip of the nail as you are working.
-I'm using a drill press but a hand drill would be fine.
Brad-tip bits make a nice cut and are easy to position. For the 1"
holes
I am using a fostner bit - generally, good bits are worth buying.
-The small holes are denoted with stars. Pre-drill these with a small
bit, this is 1/16th". These are pilot holes for the brad nails, so make
sure your drill bit is smaller than the nail. Using a drill press you
can set the depth so it just touches the bottom of the hole; this leaves
a little wood to grab the tip of the nail as you are working.
Step 5: Note About Drill Presses
Speed and torque are changed by moving a belt.
Kepping everything in the middle is fine, but you will get better and faster cuts if you use the higher speed for small holes (belt is all the way up - big to little). Lower speed for the big holes (little to big pulley)
Kepping everything in the middle is fine, but you will get better and faster cuts if you use the higher speed for small holes (belt is all the way up - big to little). Lower speed for the big holes (little to big pulley)
Step 6: Cut Out the Slots and Big Areas
The slots and big cutouts are a pain to do by hand. Hopefully we can get eliminate these from the design.
Drill out as much material as possible, then clean up the edges with knife or chisel. Try not to get blood on the parts.
Drill out as much material as possible, then clean up the edges with knife or chisel. Try not to get blood on the parts.
Step 7: Layout the Pieces
The pieces are labeled to help guide assembly.
I find it useful to lay all the pieces out, as if you where unfolding a box.
I find it useful to lay all the pieces out, as if you where unfolding a box.
Step 8: Assemble the Body
-Assemble to pieces starting from the front (face) and work towards the
back. By starting with the most visible part of the robot, you can move
any gaps are mistakes to the back.
Leave the back of the head and body open for now.
Step 9: Assemble Arms
-Each arm is made of two parts - for this version you can just tape them
together. You could also put standoffs between the peices which would
leave a gap for motors and wires.
-Attach the servo armature to the robot arm. Using brad nails, attach the servo arms to the inside of the
robot arms. Line up the holes.
together. You could also put standoffs between the peices which would
leave a gap for motors and wires.
-Attach the servo armature to the robot arm. Using brad nails, attach the servo arms to the inside of the
robot arms. Line up the holes.
Step 10: About Servo Motors
Hobby servo motors come in a variety of sizes.
Hobby servos are easy to wire.
Black/brown to ground
Red to Vin
Yellow/orange to a digital PWM pin
You can tie together all the ground wires and all the Vins.
But the PWM lines have to each go to a separate pin.
- Small, medium, large
- Continuous or 180deg rotation
- Attachments
Hobby servos are easy to wire.
Black/brown to ground
Red to Vin
Yellow/orange to a digital PWM pin
You can tie together all the ground wires and all the Vins.
But the PWM lines have to each go to a separate pin.
Step 11: Programming
The arduino servo library makes these motors simple to work
with. You just tell the servo an angle and it does it.
Video
*********** ARDUINO CODE ***********
******####################
with. You just tell the servo an angle and it does it.
Video
*********** ARDUINO CODE ***********
******####################
Step 12: Assemble Servos
-Start with the servos that will attach to the arms. The come with
screws. Using a small screw driver you can reach inside the body and
screw down the motors. I used an awl to start the holes, I might add
pilot holes to the next version.
-You can leave this so it will fall off easily (this protects
the servo motor from any real damage and is good if you want to make
quick adjustments)
-Or you can add a screw, feeding it through the hole in the
Step 13: Attach the Head Servo
-Use the same method to attach the head.
Step 14: Mount Wheels
Large continuous rotation servos are used for the wheels.
Tires are made from spleen (the cord that holds screens onto screen windows)
Brackets are made from plumbers strap.
Tires are made from spleen (the cord that holds screens onto screen windows)
Brackets are made from plumbers strap.
Step 15: Foot
Unless you want to build a self balancing robot, we have to add a third support.
I've made a foot out of shape-lock and a bolt.
Shape lock can be melted in hot water then molded by hand, once cool it is hard and slick.
I've made a foot out of shape-lock and a bolt.
Shape lock can be melted in hot water then molded by hand, once cool it is hard and slick.
Step 16: Build Perf Board for Servos
Build a simple board with headers for the servos.
Step 17: Wire Perfboard
Connect servo wires to perfboard
Connect perfobard to arduino
Connect motor power to perfboard
Pin Map:
Function Pin (all PWM)
Left Arm ~9
Right wheel ~6
Left wheel ~5
Speaker ~3
All black/brown go to the motor battery negative.
All red go to the motor battery positive
Speaker: Positive to pin ~3 - Negative to arduino ground
Arduino power supply:
Arduino battery negative to Arduino ground
Arduino battery positive to Arduino Vin
Connect perfobard to arduino
Connect motor power to perfboard
Pin Map:
Function Pin (all PWM)
Right arm ~11
Head ~10Left Arm ~9
Right wheel ~6
Left wheel ~5
Speaker ~3
All black/brown go to the motor battery negative.
All red go to the motor battery positive
Speaker: Positive to pin ~3 - Negative to arduino ground
Arduino power supply:
Arduino battery negative to Arduino ground
Arduino battery positive to Arduino Vin
Step 18: Mount Electronics
2 battery packs
Arduino with perfoboard
Strapped together with velcro
Arduino with perfoboard
Strapped together with velcro
Step 19: Program
Here is a program that runs all servos and a small speaker:
////////////////////////// ARDUINO /////////////////////
//tests all servos and sound
#include <Servo.h>
Servo armRight; // create servo object to control a servo
int pos = 0; // variable to store the servo position
Servo armLeft;
Servo head;
Servo wheelRight;
Servo wheelLeft;
int soundPin = 3;
int pitch;
void setup()
{
armRight.attach(11);
head.attach(10);
armLeft.attach(9);
wheelRight.attach(6);
wheelLeft.attach(5);
}
void loop()
{
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
armLeft.write(pos);
armRight.write(pos); // tell servo to go to position in variable 'pos'
head.write(pos);
wheelRight.write(pos);
wheelLeft.write(pos);
pitch = map(pos, 0 ,180, 31,4978); //map position to tone
tone(soundPin, pitch, 200); // pin, note, time?
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
armLeft.write(pos);
armRight.write(pos); // tell servo to go to position in variable 'pos'
head.write(pos);
wheelRight.write(pos);
wheelLeft.write(pos);
pitch = map(pos, 0 ,180, 31,1000);
tone(soundPin, pitch, 200); // pin, note, time?
delay(15);
} // waits 15ms for the servo to reach the position
}
////////////////////////// ARDUINO /////////////////////
//tests all servos and sound
#include <Servo.h>
Servo armRight; // create servo object to control a servo
int pos = 0; // variable to store the servo position
Servo armLeft;
Servo head;
Servo wheelRight;
Servo wheelLeft;
int soundPin = 3;
int pitch;
void setup()
{
armRight.attach(11);
head.attach(10);
armLeft.attach(9);
wheelRight.attach(6);
wheelLeft.attach(5);
}
void loop()
{
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
armLeft.write(pos);
armRight.write(pos); // tell servo to go to position in variable 'pos'
head.write(pos);
wheelRight.write(pos);
wheelLeft.write(pos);
pitch = map(pos, 0 ,180, 31,4978); //map position to tone
tone(soundPin, pitch, 200); // pin, note, time?
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
armLeft.write(pos);
armRight.write(pos); // tell servo to go to position in variable 'pos'
head.write(pos);
wheelRight.write(pos);
wheelLeft.write(pos);
pitch = map(pos, 0 ,180, 31,1000);
tone(soundPin, pitch, 200); // pin, note, time?
delay(15);
} // waits 15ms for the servo to reach the position
}
Step 20: Run Everything at Once
Here is a video -
Step 21: What Next?
What to do next .....
- microphone - hearing?
-Range finder?
-Add more joints?
-Perform a specific task?
-Obstacle avoidance
-Remote control
-Robot-to-Robot communication?
-Light seeking?
-Easier assembly?
-Laser cut version?
-Fold up like a transformer robot?
-Add camera?
- microphone - hearing?
-Range finder?
-Add more joints?
-Perform a specific task?
-Obstacle avoidance
-Remote control
-Robot-to-Robot communication?
-Light seeking?
-Easier assembly?
-Laser cut version?
-Fold up like a transformer robot?
-Add camera?