Introduction: Tyree--the Smiling, Tail Wagging, Sensor Less 3d Printed Robot

Picture of Tyree--the Smiling, Tail Wagging, Sensor Less 3d Printed Robot

Tyree (he wears a tie and he has tires) actually smiles after he bumps into something (see video). Using an Arduino motor shield, he detects obstacles using the "more current into the motor means something is in the way" principle.  

Tyree started out as a sketch and morphed into a real object thanks to Autodesk's 123d software and a MakerBot Replicator 3d printer. Without the 3d tools, you can still learn how to make an active smile, tail wag, and sensor less control. 

Step 1: Parts

Picture of Parts

I had to start somewhere--the wheels.  I went to my local hardware and purchased two vacuum belts.  I wanted these for traction--and they determined the ultimate diameter of my wheels.  The shaft on my 40 rpm gear motors determined what size the hub needed to be.

Here's the major parts:

Arduino
Arduino Motor Shield
Gear motors (12 volt, 40 rpm) Jameco #253518
Tail motor  Jameco #2128219
Smile solenoid  Jameco #149762
DPDT 5 volt relay  Jameco #139977
2n2222a transistor
Toggle switch
Two 1K resistors
LED
Diode, 1N4004
Three 9 volt batteries and battery snaps
Seven  AA batteries and holders
One breadboard
Jumper Wires
Heat Shrinkable Tubing

Body--For printable part list:
http://www.thingiverse.com/thing:24152


Step 2:

Picture of

He evolved as the design process started.

Step 3:

Picture of

For every body piece, I needed dimensions before I could design the part in software.  Even if the part is made from plywood and bottle caps, knowing the critical sizes and placement of objects is important.

Step 4:

Picture of

This is the base--could be plywood or plexiglass.  Actually, this is a good starting point for design using 3d software--just a flat piece with rectangular cutouts.

Step 5:

Picture of

The side panels get more tricky--they need to fit the bottom piece and support the motor.

Step 6:

Picture of

Screw the motor to the side panel.

Step 7:

Picture of

Solder wires to the motor while it is easy to do so.

Step 8:

Picture of

Print the front piece--with the bow tie raised.

Step 9:

Picture of

Snap the side pieces onto the bottom piece and the bow tie onto the front.  Push the wheels onto the shafts.  Add a set screw into the wheel collar.

Step 10:

Picture of

Paint the bow tie (my wife took care of this).

Step 11:

Picture of

The back piece is very similar to the front, but it has a larger hole in the bow tie.  Point the bow tie inward and press fit the tail motor into the hole. Solder small (I used wire wrap wire) wire to the motor.

Step 12:

Picture of

Use colorful rubber tubing (eyeglass retainers) for the tail (and eventually the smile).  Push heat shrinkable tubing into the colorful rubber tubing.  Shrink the exposed tubing onto the tail motor shaft.

Step 13:

Picture of

Push the colorful tubing onto the shaft.

Step 14:

Picture of

Take a needle with fishing line and push it through the colorful tubing (also through the heat shrink tubing you embedded earlier).  Tie this in place.

Step 15:

Picture of

Time to start assembling the guts.  Program the Arduino and build the circuitry on the breadboard.

I started with a Randofo tutorial and used code by dougstrickland as the basis for this operation.  A couple of things need to be noted.  Motor current increases when the motors first start turning and when they encounter resistance (a wall).  I measure the current after the motors have had a second to get going--otherwise, I'll alway detect high current and get into trouble. If you operate on carpet, the "analogRead" values may need to be higher since more work is required from the motors.

The smile solenoid and tail wagging are controlled by a relay operated by pin 7 of the Arduino.




int valm=0;
int valm1=0;
const int pwmA=3;
const int pwmB=11;
const int brakeA=9;
const int brakeB=8;
const int dirA=12;
const int dirB=13;
const int relay=7;

void setup() {

pinMode(dirA, OUTPUT);
pinMode(brakeA, OUTPUT);

pinMode(dirB, OUTPUT);
pinMode(brakeB, OUTPUT);
pinMode(relay, OUTPUT);

digitalWrite(dirA, HIGH);//forward A
digitalWrite(brakeA, LOW);//release brake A
analogWrite(pwmA, 255);//full speed A

digitalWrite(dirB, HIGH);
digitalWrite(brakeB, LOW);
analogWrite(pwmB, 255);
digitalWrite(relay, LOW);

delay(1000);//get past startup current
}

void loop() {

digitalWrite(dirA, HIGH);//forward A
digitalWrite(brakeA, LOW);//release brake A
analogWrite(pwmA, 255);//full speed A

digitalWrite(dirB, HIGH);
digitalWrite(brakeB, LOW);
analogWrite(pwmB, 255);

valm=analogRead(0);
valm1=analogRead(1);
if(valm>45 or valm1>45) {

digitalWrite(brakeA, HIGH);
digitalWrite(brakeB, HIGH);

digitalWrite(dirA, LOW);//forward A
digitalWrite(brakeA, LOW);//release brake A
analogWrite(pwmA, 255);//full speed A

digitalWrite(dirB, LOW);
digitalWrite(brakeB, LOW);
analogWrite(pwmB, 255);

delay(2000);

digitalWrite(brakeA, HIGH);//stop one wheel

delay(1000);
digitalWrite(brakeB, HIGH);//stop other wheel

digitalWrite(relay, HIGH);//smile and tail on
delay(2000);
digitalWrite(relay, LOW);//turn smile and tail off

//start both wheels forward
digitalWrite(dirA, HIGH);//forward A
digitalWrite(brakeA, LOW);//release brake A
analogWrite(pwmA, 255);//full speed A

digitalWrite(dirB, HIGH);
digitalWrite(brakeB, LOW);
analogWrite(pwmB, 255);

delay(1000);//get past startup current

}}

Step 16:

Picture of

Solder a 1K resistor to the led.  Cover all exposed metal with heat shrinkable tubing (shrink it), and add jumper pins.  Push the led into the front bow tie hole and insert the jumper pins into the breadboard.

Step 17:

Picture of

Attach the battery clips--we're getting ready to close it up.

Step 18:

Picture of

This is the top piece.  The indentation in the back is not clever design, it is to avoid conflict with the inward facing bow tie (which was laziness on my part--reusing the front design).  

Step 19:

Picture of

It should look pretty neat at this point.

Step 20:

Picture of

Thread the solenoid into the front face piece.  The front face piece should be printed at 50% infill (not too hollow) for strength.  Put the little pin on the end of the solenoid.

How do you make a piece like this in 123d software?

Start by selecting a cylinder.  Set the radius, mouse click; then thickness (6mm), mouse click.  Go to a top view (you'll see a circle).  Select the "draw" tool and choose "draw rectangle."  Starting at the center of your circle, draw a rectangle that covers the entire bottom right quadrant of the circle.  Choose extrude.  Select the bottom right quadrant, and choose -6mm (minus goes down, positive extrudes upward).  Select "cut".  Now, draw a rectangle starting in the center of the circle that takes out the bottom left quadrant.  Choose extrude, select that quadrant, -6mm, cut.  Now you have a semicircle.

Draw a rectangle where you want the piece that holds the solenoid to be.  Choose extrude.  Select your rectangle.  Choose 20mm (positive 20) and choose add.  Extrude.  Now, go to view (upper right) and choose right.  You'll see the side you need to "drill" for your solenoid hole.  Choose "draw," then "circle."  Set the center of the circle where you want it; mouse click.  Choose the radius, mouse click.  Extrude, select the circle, -10 mm (doesn't seem to matter if you are cutting holes in thin air, just get through the material if you want to), cut.  Save and you're done.

Step 21:

Picture of

Drill two holes to support the rubber tubing smile.  Tie the tubing with fishing line.

Step 22:

Picture of

Drill holes on the inside upper extent of the smile.

Step 23:

Picture of

Using a needle and fishing line, tie line to each end of the rubber tubing smile.

Step 24:

Picture of

Thread the fishing line through the front of the face and into a hole (which you just now drilled).  The two pieces of line should go through the tip of the solenoid plastic.

Step 25:

Picture of

When the tension is right for the smile, use duct tape to hold the fishing line down.

Step 26:

Picture of

Add a connector and heat shrinkable tubing to the smile assembly.

Time for a small confession.  This 12 volt solenoid doesn't have enough muscle to make a smile, so I put three 9 volt batteries in series.  This gives me 27 volts on the solenoid (really more like 22 volts under load)--and that's fine as long as it's intermittent.  Notice that in the software, the smile is enabled for two seconds, but quite a bit of run time occurs before it is enabled again.  If you want to smile a lot--get a bigger solenoid.

If you prefer to use servo motors to create a smile, I did that here:
https://www.instructables.com/id/Smiling-Santa/

Step 27:

Picture of

Place a dome up front.  Put velcro on the dome and on the top plate.

Step 28:

Picture of

Use a long piece of velcro to tie the dome to the top plate.  Do this on the other side and anywhere else you think it is needed.

Step 29:

Picture of

Insert the front face with Velcro and install batteries.  Secure the batteries with Velcro or they'll slide around.

Step 30:

Picture of

Screw the toggle switch (master power on/off) into the back face.  Secure everything with Velcro or clear packing tape.

Step 31:

Picture of

Flip the switch on--and your happy little robot will explore his world.

Comments

ASCAS (author)2014-02-18

2014: Time to replace 9v batteries with LiPo Bats :))

KarateLover21 (author)2012-08-29

Hello Mr. Rigsby. I'm agent O'Toole from the Central Intelligence Agency. Your invention is something we at the CIA fear could be released into the public and cause a mass terror. We believe 'Tyree' the robot is something that should only be handled by trained professionals in the United States Army.

We will be sending three agents to your location this week to pick it up.

-Agent Ralph O'Toole, CIA.

Well . . . Tyree is a slippery little fellow. Your agents may have to follow him under a table or into the closet (do your agents want to be seen coming out of the closet?)

Tell your agents to bring lots of batteries.

marc.cryan (author)2012-06-28

Well done!

juicymoose (author)2012-06-03

That smily face noise is creepy. Like he's on the loo or somewhat.
Cool robot though.

About This Instructable

2,994views

18favorites

License:

Bio: I am an author and a maker. My current project is Santa's Shop. I'm working on a science fiction type book--more later. @EngineerRigsby
More by MikeTheMaker:Happy Gear TableHappy FaceJittery Servo Repair
Add instructable to: