PyBot Is an Accurate, Open Source SCARA Robotic Arm with 3DOF and Can Be 3D-Printed with Ease

See what goes into a DIY robot arm, the hardware used, and the software that controls the movements.

Specifications

Recently shared on Hackaday, the PyBot SCARA robotic arm is a bit different than other arms you might have seen. For one, it comes as a completely open source kit, letting anyone download the associated files and modify them if desired. Second, the manner in which it moves is quite unique: its Z-axis is linear instead of a rotational, making vertical movements much more straightforward compared to an arm that moves around a pivot.

In terms of area, the PyBot can extend to a working area of almost 1,200 square centimeters, with its arm's length equaling 24cm when completely out. The assembly can go up to 200mm above its base, giving the arm a huge array of possible motions. And it's not that slow wither, with a maximum vertical speed of 220mm/s and a horizontal speed of 55mm/s.

Hardware Used

The hardware in this project is standard for most arms, with its horizontal motion coming from a pair of NEMA17 stepper motors and its vertical travel from an additional stepper motor. These motors are driven by a set of three A4988 boards that get slotted onto JJRobot's custom controller board, the Devia Robotics Control Board. It features a Microchip ATSAMD21G18 Cortex-M0 processor, an ESP12 for WiFi, an MPU ICM 20600 IMU, and an array of headers and inputs/outputs.

Fabrication and Assembly

As previously mentioned, this project is open source, which means the design files and code is available for download and modification by anyone. Because of this, the structural pieces can be downloaded from Thingiverse and printed on nearly any 3D printer. If someone doesn't want to print it themselves, it can be purchased as a kit. All other components can be purchased separately, including the timing belts, bearings, bolts, and lidar sensor.

Instructions are provided on the website, and they go through the steps to assemble the arm in detail.

Firmware

The firmware is a program that runs on the M0 control board, and it is responsible for taking in commands and turning the motors accordingly. Commands come in from the host computer through either USB or WiFI via the onboard ESP12. When the system starts up, each axis rotates until it reaches a home position, at which point everything is zeroed out. It uses inverse kinematics to calculate the amount of rotation on each axis based on where the claw gripper should end up in 3D space.

Controlling the Arm

Control of the PyBot is handled by a Python program, which shows a virtual representation of the arm from the top and from the side. This program is quite nice in that it has a draggable interface to position the grabber. There are also several buttons that can save/load waypoints (steps containing coordinates), calibrate the arm, start the movement sequence, and stop it as well.

Steps can be generated through a Scratch-derivative Blockly, and it lets users drag-and-drop blocks to turn the arm, move it, and open/close the gripper. Recently, the option was added to attach a camera, which can then be used to locate objects and grab them automatically.

Final Thoughts

This open source robotic arm is a great system to learn how CNC machines operate, plus how robots work in general. The ability to add a camera greatly expands the potential of this project, as it can be used to possibly sort objects and manipulate them.

Evan Rust
IoT, web, and embedded systems enthusiast. Contact me for product reviews or custom project requests.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles