News    The Project    Technology    RoboSpatium    Contribute    Subject index    Download    Responses    Games    Gadgets    Contact   

<<< Python: USB Comunication         Machine control via webserver >>>

Robotic arm v1.0

The video about robot arm v1.0

Version 1.0

Robotic arm v1.0 composed of roof battens and an old CNC
Figure 1:
Version 1.0 of a robot arm was created as a weekend project. With the mechanics, I wanted to test the quality of special joints that I would like to use in a planned 3D printer with delta mechanics. The project is therefore a continuation of my ideas on adjustable joints.
As a weekend project, I had to use what was in my workshop. For the electronic components and drive motors, I cannibalized a cheap CNC machine and built the mechanics out of roof battens and threaded rods. In terms of software (see below), the robotic arm fits very well into my series on "Physical Computing".


Robotic arm v1.0 Mechanics
Figure 2:
The dimensions of the robot arm were determined by the rule of thumb during assembly. Therefore, I cannot provide an exact building instructions. Instead I added some of the dimensions to this photo. It is not a high-tech industrial robot - let yourself be inspired by the roof batten construction and use your imagination if you are aiming for a replica. If you encounter unsolvable problems while trying to make your own copy of this robotic arm, leave a comment or send me an email.
Robotic arm v1.0 Joints
Figure 3:
The joints are composed of pieces of 6mm threaded rod that rotate in adjustable bearings in the roof battens. First, three holes are drilled:
The central hole has a diameter of 5mm and is therefore slightly smaller than the 6mm of the threaded rods and the two holes for adjusting the joint are slightly larger at 6.5mm. Now, a part of the roof batten is cut off. The joint rotates in the central hole and the backlash of the linkage can be adjusted using two screws in the larger holes. A bit of wax can be applied as lubricant with a hot air blower if you are looking for particularly smooth joints - I did not use any lubricant with this robot arm. Even if the bearing is adjusted very tightly, the joint can still move quite smoothly.
Robotic arm v1.0 Spindles
Figure 4:
The joints are driven by the stepper motors and spindles of the cannibalized CNC machine. The brass nuts are attached to a subframe made of roof battens.
Robotic arm v1.0 Stepper motors
Figure 5:
The same applies to the stepper motors and the ball bearings of the spindles.
Robotic arm v1.0 drives
Figure 6:
The two additional pivot points of the drive are necessary so that the lead screw and motor axis are always in line during the movement.
The overall transmission ratio of the drive is ruled by the pitch of the spindles and the distance between the pivot point of the joint and the fastening point of the spindle. The closer it is to the pivot point, the faster the robot arm can move, the further away, the more precise and powerful the movement becomes. The joints can rotate a maximum of about 100 degrees.
Robotic arm v1.0 UP/DOWN
Figure 7:
The shortest spindle is for lifting and lowering the robotic arm.
Robotic arm v1.0 rotating joint
Figure 8:
The joint rotating the robot arm is made of a piece of 10mm threaded rod to make the construction more sturdy. Here I have attached the brass nut of the drive in a more simple way without a subframe:
Simpler also means a bit weaker, the version with two counter bearings is significantly stiffer. Since the force on this bearing is rather low, the simple version also works quite well.
Robotic arm v1.0 Gripper
Figure 9:
I attached two servos to the tip of the robot arm:
The standard servo ensures that the gripper arm can be aligned in parallel to the ground, while the small microservo operates the gripper.
Robotic arm v1.0 stacked nuts
Figure 10:
You can see the spindles wobbling, the spindles and stepper motors are not perfectly aligned. For pick and place tasks, this wobble doesn't really matter. It is important that one and the same point is hit exactly again when replaying a movement and that works even if the robot arm does not move linearly to the target point. The precision is definitely sufficient to stack 11 nuts for 8mm bolts.

Parts list

When buying components via the affiliate partner links I have listed in the table (or through the banners on my pages) you help to keep my my projects going - many thanks!
Clicking on the links does not mean you have to buy - you can simply browse through the pages ;-)

Of course, supporting my freely accessible educational platform without shopping but by making a donation or becoming a Patreon also works. Many thanks to everyone who already sent me an obol!

Part Number Online shops Remarks
Arduino Uno 1 Arduino UNO on eBay

Arduino Uno on Amazon
CNC Shield 1 CNC Shield on eBay

CNC shield on Amazon
Stepper motors 3 Stepper motors on eBay

Stepper motors on Amazon
About 40Ncm holding torque or more
Lead screw 8mm + nut 3 Lead screws on eBay

Lead screw 8mm on Amazon
At least 20cm length, 8mm diameter
Couplings 5mm to 8mm 3 Motor couplings on eBay

Motor coupplings on Amazon
Linkages lead screws to stepper motors
CNC (to be cenibalized, eventually) 1 Chapter on the T8, the cheap CNC machine I have canibalized I took the electronics (Arduino UNO, CNC shield, stepper motors and spindles) from an old, cheap CNC.
Raspberry Pi (not needed) 0 Raspberry Pi on eBay

Raspberry Pi on Amazon
Model 4 has sufficient computing power for desktop applications, but in principle the robot also works with any other PC with Linux installed.
Standard servo 1 Standard servo on eBay

Standard RC servo on Amazon
Micro servo 1 Micro servo on eBay

Micro RC servo on Amazon
Threaded rod M6 1 Hardware store  
Nuts M6 Many Hardware store  
Threaded rod M10 1 Hardware store  
Roof battens
Dimensions 18x36x2000mm
3 Hardware store  
Wires, glue, wood screws et cetera...      


Robotic arm v1.0 Electronics
Figure 11:
I have reused the electronics of the CNC as it was:
It is an Arduino UNO with a CNC shield on top and the 12 and 5V lines of an old computer power supply are used to feed the arm with electricity. I connected the control lines of the two servos to the control pins for the milling motor.


Robotic arm v1.0 Software
Figure 12:
The Arduino no longer runs grbl, but a sketch written on the fly.
A Python script (written for Linux) sends the control commands to the Arduino. Commands can either be entered via the keyboard or read from a text file. This text file is generated by directing the robot arm to the target points using the keyboard. By pressing "s", individual target points are stored in the text file, which can then be replayed as often as required by pressing "R".
The Python script and the Arduino sketch are another example of communication between PC and Arduino via the USB interface. The software is available as download package.

Any questions about this project? Feel free to leave a comment or send me a mail.

<<< Python: USB Comunication         Machine control via webserver >>>

News    The Project    Technology    RoboSpatium    Contribute    Subject index    Archives    Download    Responses    Games    Links    Gadgets    Contact    Imprint   

Twitter YouTube Hackaday Patreon TPO