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
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!
- MikkoDT made it!
- pauwy made it!
- garzoli made it!
- tilllohse made it!
- carlg00 made it!
- bruce46219 made it!
- profeweimer made it!
- Arnsch1v made it!
- Peetz79 made it!
See 19 More
94 Comments
10 months ago
Hello,
Very nice project and well detailed. Does anybody has the wiring diagram for arduino, please ?
Thank you
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.
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
Reply 7 months ago
Anywhere I can find more about this sort of linkage with these dimensions?
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!
Question 4 years ago
HOW ARE U ACTUALLY ROTATING THE BASE OF THE ROBOT
Answer 1 year ago
A servo
2 years ago
Hi, can someone please help me with the Arduino programming for this project?
Reply 1 year ago
Hello did u figure it out? Im doing this project for uni and i need help please
Reply 1 year ago
#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);
}
5 years ago
Can anyone share the Arduino UNO Code? pls
Reply 1 year ago
Do u still have it?
Reply 1 year ago
#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);
}
1 year ago
I need solidworks files for simulation, where can i find it ?
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?
Question 2 years ago
can you tell the bill of materials
Question 2 years ago
may I know the cost estimation of this robotic arm
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
2 years ago
I made this today and its just great. Your instruction are spot on. Thank you so much!
3 years ago
How many degrees of freedom does this have?