Froggy World 5 the Coffee Gripper

by MikeTheMaker in Workshop > 3D Printing

4087 Views, 11 Favorites, 0 Comments

Froggy World 5 the Coffee Gripper

coffee gripper24.jpg


In Froggy World, the amusement park for adventurous plastic frogs, it became necessary to to move the frog from a train car back to the catapult.  Because I couldn't know whether the frog would be upright or sideways--and in what orientation--the gripper was a challenge.

I read about the "coffee gripper" developed at Cornell and used that technique for transporting the frog.

In the video, I cut out the "20 seconds of vacuum time--caused by my low cost pump" to keep from boring the viewers.

schematic1.jpg
What do we need to build this?

Arduino
Arduino motor shield
(2) Hitec HS-645MG ultra torque servo motors (amazon.com)
Vaccum pump  https://www.sparkfun.com/products/10398
Coffee (I used Maxwell house, original roast)
12" round balloon
Lazy Susan bearings  http://www.amazon.com/gp/product/B002TIKEQ6/ref=oh_details_o02_s00_i00?ie=UTF8&psc=1
Cast Acrylic tube  http://www.amazon.com/gp/product/B0070ZQGRE/ref=oh_details_o02_s00_i01?ie=UTF8&psc=1
Two feet of 3/8 inch OD, 1/4 inch ID tubing
Breadboard

Various 3D printed parts, design and print files at:
http://www.thingiverse.com/thing:68316

12 volt 1 amp power supply
5 volt 1 amp power supply

coffee gripper04.jpg
To make this work, the coffee filled gripper must be pushed down onto the target.

The more it surrounds the target and the greater the vacuum, the greater the chances for a successful grip.

Since we are working with minimum "push" (servo motor 10 inches away) and low vacuum (low cost pump)--we have to do everything possible to help the system.

Reducing the thickness of the balloon wall is a first step.  Blow up a "12 inch" balloon and clamp it in the inflated position overnight.  It will stretch.

coffee gripper07.jpg
Cut off the lip of the balloon.

coffee gripper08.jpg
Weigh the balloon (around 3 grams) then attach a funnel.

coffee gripper09.jpg
Add 20 grams of coffee.  I started with 47 grams and worked my way down--don't know what the absolute best situation would be.

coffee gripper10.jpg
Insert the tube of the coffee filled balloon through the hole in the printed gripper and wrap it around the top edge of the gripper.

Insert one end of the plastic tube into the top of the printed gripper--it should just press in.

coffee gripper05.jpg
coffee gripper06.jpg
Drill a 1/2 inch hole in the printed head through the snout (I couldn't figure out how to make the snout hole go all the way into the head when I designed it--so you have to drill about 1/2 inch of plastic).

coffee gripper11.jpg
Insert the gripper into the snout.  Drill two small holes and attach the two pieces together with screws.

This will allow removal of the gripper if the balloon fails or if you want to change the amount of coffee contained.

coffee gripper02.jpg
Mount a high torque servo motor to the pivot.

coffee gripper03.jpg
Slide the pivot onto the acrylic tube.

coffee gripper12.jpg
Mount another high torque servo motor into the drinking bird base.

coffee gripper28.jpg
coffee gripper14.jpg
Attach the base to the lazy susan with 4-40 machine screws.  Attach the drinking bird supports, catapult motor holder, bearing holder (with bearing--1/4 inch ID--vxb.com) and 1/4 inch wood dowel.

coffee gripper31.jpg
Screw the servo horn to the plywood "ground."  Looking through the holes in the plastic base plate, set the servo motor into the servo horn.

coffee gripper30.jpg
Screw the lazy susan to the plywood "floor."

coffee gripper16.jpg
Glue the vacuum motor holder to the base.

coffee gripper18.jpg
Fasten the Arduino to the computer base holder.

coffee gripper19.jpg
Add the motor shield and breadboard.

schematic1.jpg
Wire according to the schematic and install the code in the Arduino.

#include <Servo.h>

 

Servo lift;

Servo rotate;

int val=0;

int start=10;

int next=7;

int dummy=0;

const int pwmA=3;

const int brakeA=9;

const int dirA=12;

void setup()

 

{

  lift.attach(2);//lift on pin2

  rotate.attach(5);//rotate on pin 5

  pinMode(start,INPUT);//pin 10 as input

  pinMode(next,OUTPUT);//pin 7 output

  digitalWrite(next, HIGH);

  lift.write(80);//upright

  rotate.write(135);//face track

  delay (2000);

}

 

void loop()

{

  val=digitalRead(start);

  if(val==LOW)

  {dummy=1;

  lift.write(85);

  delay(100);

  lift.write(90);

  delay(100);

  lift.write(95);

  delay(100);

  lift.write(100);

  delay(100);

  lift.write(105);

  delay(100);

  lift.write(110);

  delay(100);

  lift.write(115);

  delay(100);

  lift.write(120);

  delay(100);

  lift.write(125);

  delay(100);

  lift.write(130);

  delay(100);

  lift.write(135);

  delay(100);

  lift.write(140);

  delay(100);

  lift.write(145);

  delay(100);

  lift.write(150);

  delay(100);

  lift.write(155);

  delay(100);

  lift.write(160);

  delay(100);

  lift.write(165);

  delay(100);

  lift.write(170);

  delay(100);

 

 

  pinMode(dirA,OUTPUT);

  pinMode(brakeA,OUTPUT);

  digitalWrite(dirA,LOW);//forward

  digitalWrite(brakeA,LOW);//release brake

  analogWrite(pwmA,255);//motor on max

  delay(20000);

 

  lift.write(145);

  delay(100);

  lift.write(135);

  delay(100);

  lift.write(125);//lift slightly

  delay(800);

  rotate.write(130);

  delay(100);

  rotate.write(125);

  delay(100);

  rotate.write(120);

  delay(100);

  rotate.write(115);

  delay(100);

  rotate.write(110);

  delay(100);

   rotate.write(105);

  delay(100);

  rotate.write(100);

  delay(100);

  rotate.write(95);

  delay(100);

  rotate.write(90);

  delay(100);

   rotate.write(85);

  delay(100);

  rotate.write(80);

  delay(100);

  rotate.write(75);

  delay(100);

  rotate.write(70);

  delay(100);

 rotate.write(65);

  delay(100);

  rotate.write(60);

  delay(100);

  rotate.write(55);

  delay(100);

  rotate.write(50);

  delay(100);

 

 

 

  lift.write(140);

  delay(100);

  lift.write(145);

  delay(100);

  lift.write(150);//at catapult

  delay(1000);

  analogWrite(pwmA,0);

  digitalWrite(brakeA,LOW);

  delay(3000);

  lift.write(80);

  delay(1000);//upright

 

  rotate.write(75);

  delay(200);

  rotate.write(100);

  delay(200);

  

  rotate.write(110);

  delay(200);

  rotate.write(120);

  delay(200);

  rotate.write(130);

  delay(100);

  rotate.write(135);

  delay(100);

  dummy=0;

  digitalWrite(next,LOW);

  delay(1000);

  digitalWrite(next,HIGH);

  }}

coffee gripper20.jpg
Attach the computer board to the base with two 4-40 nuts.

coffee gripper15.jpg
Glue eyes and a hat to the bird.

coffee gripper21.jpg
He's now ready to pick up and deliver the load!