EEZYbotARM

375,326

517

94

Introduction: EEZYbotARM

This ia a 3DPrinted robotic arm.

The design intent was to make something "easy" to build and quite cheap

It uses MG90S small servos for driving the kinematics linkage and a Pololu mini maestro 12 to control the servos (but this is my choice any other methods are valid)

All the pieces are 3DPrinted in ABS but any other material like PLA can be used

3D models in stl format can be downloaded for free at Thingiverse : http://www.thingiverse.com/thing:1015238

video :

ramp loop test :

preliminary tests video :

Part list:

n° 20 3D printed parts

· n°1 EBA_01.00.001.STL

· n°1 EBA_01.00.002_vertical_drive_arm.STL

· n°3 EBA_01.00.003_link.STL

· n°1 EBA_01.00.004_forward_drive_arm.STL

· n°1 EBA_01.00.005_horizontal_arm.STL

· n°1 EBA_01.00.006_triangular_link.STL

· n°2 EBA_01.00.009_servo_plate.STL

· n°1 EBA_01.00.010_basement.STL

· n°1 EBA_01.00.011_round_plate.STL

· n°1 EBA_01.00.012_R01_claw_support.STL

· n°1 EBA_01.00.013_R01_right_finger.STL

· n°1 EBA_01.00.014_R01_left_finger.STL

· n°1 EBA_01.00.015_drive_gear.STL

· n°1 EBA_01.00.016_R01_driven_gear.STL

· n°1 EBA_01.00.017_R01_ramp.STL (optional)

· n°1 EBA_01.00.018_maestro_holder.STL (optional)

· n°1 EBA_01.00.019_ball.STL (optional)

n* 3 Tower Pro MG90S servos

n* 1 SG90 servo (gripper) + 1 optional for the loop ramp

n° 7 M4 self locking nuts

n° 15 M4 washers

n° 7 M3 nuts

n° 1 M3 x 30 screw

n° 2 M3 washers

n° 4 M3 x 12 hex screw

n° 2 M3 x 12 TCEI screw

n° 2 M3 x 20 TCEI screw

n° 5 M4 x 20 round hed hex recess screw

n° 1 brass pipe 4 x 3 x 22 + n°1 4 x 3 x 26

ELECTRONICS

The Arm can be driven in several different ways : sketches, potentiometers, joystick, WII nunchuck …. after several trials I found very "easy" to use a controller from Pololu: Mini Maestro USB Servo Controller. You can attach up to 6 – 12 – 24 servos depend of the controller type. It is provided with a free configuration and control program for Windows and Linux that give you the power to drive the servo in manual moving slides; in the mean time you are able to set the values of speed and acceleration for any singular item. You can also build sequences of servo movements and run scripts stored in the internal script memory that can be automatically played back without any computer or external microcontroller connected.

here the link of the Pololu servo controller: https://www.pololu.com/product/1352

------- UPDATE ------

add an instructables to drive it with Arduino, bluetooth module and Android APP made wit MIT app inventor

https://www.instructables.com/id/Android-APP-to-Con...

Step 1:

Connect two link arms (003) to the Triangular link (006).

Keep the M4 round heads screws to the inner side like shown on image and selflocking nuts to the outer side.

IMPORTANT

I design all the holes of joints quite exact to allow to make them more precise using a drill bit

The nuts are to be tightened till the locking of the joint, then consequently you must loose them until you obtain a smooth movement with the lower clearance between components. This rule is valid and is to be applied also for the following joint that involve use of self locking nuts.

Step 2:

Connect link (003) to the rear joint of the horizontal arm (005).

The lower part of the link (003) is to be connected with the vertical drive arm (002) as shown.

Between the two links interpose three M4 washer, this to better align them with the vertical arm

Keep the M4 round heads screws to the inner side and self locking nuts outside

Step 3:

Connect now the two preassembled links to the forward drive arm (004).

Punt in position horizontal arm (005) and triangular link (006) aligned with the upper connection of the forward drive arm (004). Insert the Ø4 mm brass pipe crossing all the parts and fix it with the M3x30 screw, locked by the nut on the other side.

Verify the freedom of movement and If everything is ok, proceed to the next step.

Step 4: Base Assembly

Part list:

· n° 1 EBA_01.00.001_base.stl

· n° 1 EBA_01.00.011_round plate.stl

· n° 1 EBA_01.00.010_basement.stl

· n° 1 TowerPro metal gear MG90S servo with double arm horn

· n° 1 servo horn fixing screw

· n° 2 M3 x 15 screw (VTCEI)

· n° 3 M3 nuts

Step 5:

Be sure that the servo is in the neutral position than install the double arm horn on the splined shaft keeping the arms parallel to the servo body

Insert the horn inside the housing below the round plate and fix the servo to the plate using one of the two long screw supplied with the servo (the small one in too short due to the thickness of round plate)

Step 6:

Put in position the base between the two shoulder on the plate and attach together using the two M3 screws and nuts. There two hexagonal housing below, so nuts will be kept in position during tightening

Step 7:

Align the servo and introduce the wiring in the central part of the basement. Gently pull the wire to make it straight while continue to push in it housing the servo

The wire is then kept in position making it pass through a frontal hole

Step 8: Gripper Assembly

Part list:

· n° 1 TowerPro metal gear MG90S servo (or SG90) with single arm horn

· n° 1 servo horn fixing screw

· n° 1 EBA_01.00.012_claw support.stl

· n° 1 EBA_01.00.015_drive gear.stl

· n° 1 EBA_01.00.014_left finger.stl

· n° 1 EBA_01.00.016_driven gear.stl

· n° 1 EBA_01.00.013_right finger.stl

· n° 2 M3 x 20 screw (TCEI)

· n° 3 M3 selflocking nuts

Step 9:

Attach the servo to the claw support using the two fixing screws supplied
with the servo

Keep the output shaft forward

Step 10:

Insert the horn in the driven gear then attach the horn at the servo shaft using the supplied screw

The horn has to be aligned forward with the servo in neutral position. Cut the exceeding part of the horn from gear using a cutter

Step 11:

Insert an M3 screw in the central hole connect it to the claw support then tight the self locking nut checking the freedom of movement

Step 12:

Insert the two pin of the driven gear into the dedicated holes on the left finger The driven gear has also a shoulder that has to be aligned with the lateral side of the finger. If you find difficulties coupling them, reduce interference using a file.

Once coupled insert an M3 screw in the central hole and attach the finger to the claw support

Now the gripper is ready to be installed on the horizontal arm of the EEzybot

Verify freedom of movement of the gripper manually or using a servo tester

Step 13: Final Assembly

Now we have the three main sub assembly ready to be connected each other.

Next step we will join the base with the main arms

Step 14:

To join the base with the main arms align the axis of the parts and insert from one side the brass pipe 24mm long.

Also the short arm of the servo that drive the vertical movement has to be supported by the brass pipe as shown on the pictures.

Check the freedom of movement

Step 15:

Is time now to install the servo that drive the vertical movement of the arm. Put in the dedicate receptacles two M3x10 hex screw. The servo has to be in the neutral position with the horn at 90 degrees on the right side with the press plate (009) installed (Make the wiring pass through the dedicated enlargment).

Introduce the servo angled in the square seat on the base plate and slide the horn in the shaped housing of the arm that drives the vertical movement. Fixt the press plate against the servo using two M3 nuts

Step 16: Fwd/bckw Drive Servo

Sequence for the forward&backward driving servo is similar to the previous. In this case the servo horn has to be installed with the servo in neutral condition aligned vertically.

Step 17: Last Link

attach the latest link to the fixed arm on the rear side of the base using a M4x20 a washer and a selflocking nut

Step 18: Attaching the Gripper

The last assembly step is to join the gripper to the horizontal arm as shown on the picture.

Step 19: Making It Works

At the end of the last step the ARM is ready to work.

As an optional, In the 3D model downodable from Thinghiverse, I add a round ramp that allow to easy obtain a loop test with a ball (3D printed, obviously!). In the video linked on first page is shown what I mean.

To make this tool to work you have to attach another servo (cheap SG90) to the end of the ramp. I keep th ramp center at a distance of about 180mm from the base vertical axis.

There is also a 3D model of a support dedicated to the Pololu USB servo.

The way to drive the servo are several. I tried them pretty all. To explain it will take to much and this instructable is big enough ..... probably I'll make a new instructables dedicated, If I get time. Anyway if you want to explore there are quite enough material around the web.

As told at the beginning, I found very easy using a Pololu USB servo Mini Maestro, it is not very cheap but solve a lot of problems. You have to install drivers, a software and when connected to usb you're are immediately able to drive the servos choosing their speed and acceleration also. You can store the servo position to a sequence and when ready it can be played once or in a loop. Can also be stored in the internal script memory and it can be automatically played without computer connected.

28 People Made This Project!

Recommendations

  • Game Design: Student Design Challenge

    Game Design: Student Design Challenge
  • Big and Small Contest

    Big and Small Contest
  • Make It Bridge

    Make It Bridge

94 Comments

0
muk34
muk34

10 months ago

Hello,
Very nice project and well detailed. Does anybody has the wiring diagram for arduino, please ?

Thank you

0
slinky_41
slinky_41

Reply 4 months ago

Muk34,
What do you plan on using to control the arm? If you are going to use potentiometers then the following will work link is to the Arduino site with the diagram on how to set it up.
https://docs.arduino.cc/learn/electronics/servo-mo...
Additionally, it gives you the sketch to upload to control it as well.

0
r123456789a
r123456789a

8 months ago

Hi. I'm interested in the linkage type used to operate this arm. Any quick notes about the relative lengths of the linkage bars, and what workspace it allows the end effector to reach. Is there a specific name for this linkage WHEN these set of dimensions are used (I know just how many other four bar linkages there can be), so I can search for more geometric descriptions from which a wholely different in details, but same in linkage structure, arm could be designed? Thank you

0
r123456789a
r123456789a

Reply 7 months ago

Anywhere I can find more about this sort of linkage with these dimensions?

0
tompsi
tompsi

1 year ago

Wow!
Thank you for all the work you put into this and all your other projects! The detailed assembly instructions are very, very useful and impressively detailed!

Thank you for sharing your projects with all of us!

0
zing mad
zing mad

Question 4 years ago

HOW ARE U ACTUALLY ROTATING THE BASE OF THE ROBOT

2
JachlFam
JachlFam

Answer 1 year ago

A servo

0
devsun321
devsun321

2 years ago

Hi, can someone please help me with the Arduino programming for this project?

0
nabila.amgad
nabila.amgad

Reply 1 year ago

Hello did u figure it out? Im doing this project for uni and i need help please

0
JachlFam
JachlFam

Reply 1 year ago

#include <Arduino.h>
#include <Servo.h>

Servo myservo;
Servo myservo1;
Servo myservo2;
#define potpin 0
#define potpin1 1
#define potpin2 2


int val;
int lastVal = 0;
int val1;
int lastVal1;
int val2;
int lastVal2;
int servoPos;

void servoControl(int value, int pin, int delays){
value = analogRead(pin);
value = map(value, 0, 1023, 0, 180);
myservo.write(value);
delay(delays);
}

void setup() {
myservo.attach(9);
// myservo1.attach(9);
// myservo2.attach(10);
Serial.begin(9600);
Serial.println("On");
}

void loop() {
servoControl(val, potpin, 50);
servoControl(val1, potpin1, 50);
servoControl(val2, potpin2, 50);

}
0
SukruK1
SukruK1

5 years ago

Can anyone share the Arduino UNO Code? pls

0
nabila.amgad
nabila.amgad

Reply 1 year ago

Do u still have it?

0
JachlFam
JachlFam

Reply 1 year ago

#include <Arduino.h>
#include <Servo.h>

Servo myservo;
Servo myservo1;
Servo myservo2;
#define potpin 0
#define potpin1 1
#define potpin2 2


int val;
int lastVal = 0;
int val1;
int lastVal1;
int val2;
int lastVal2;
int servoPos;

void servoControl(int value, int pin, int delays){
value = analogRead(pin);
value = map(value, 0, 1023, 0, 180);
myservo.write(value);
delay(delays);
}

void setup() {
myservo.attach(9);
// myservo1.attach(9);
// myservo2.attach(10);
Serial.begin(9600);
Serial.println("On");
}

void loop() {
servoControl(val, potpin, 50);
servoControl(val1, potpin1, 50);
servoControl(val2, potpin2, 50);

}
0
enistemur.1074
enistemur.1074

1 year ago

I need solidworks files for simulation, where can i find it ?

2
bogeerdes
bogeerdes

Question 2 years ago on Step 1

Hi, I was wondering what the function was of the part of the assembly with the two 003_links and one 006_triangular link. The two servos in the base are driving the mechanism with the 002_vertical drive arm, the 003_links and the 005_horizontal link and the main arm. So these parts will make the entire robot arm move, but what is the part with the two 003_links and one 006_triangular link doing?

0
hnaath55
hnaath55

Question 2 years ago

can you tell the bill of materials

0
hnaath55
hnaath55

Question 2 years ago

may I know the cost estimation of this robotic arm

0
montesrodriguezfernando
montesrodriguezfernando

Question 2 years ago

If it is possible, where can I get the original files? I want to make an assembly in SW, thank you

0
wayne.leutwyler
wayne.leutwyler

2 years ago

I made this today and its just great. Your instruction are spot on. Thank you so much!

0
ZonALI
ZonALI

3 years ago

How many degrees of freedom does this have?