Robotic arm

This robotic arm is modelled after the original open source uArm but was adapted to be printed on a 3D printer. The arm uses 28BYJ-48 stepper motors instead of servos, and adds a servo-driven gripper. Stepper motors were modified to run as bipolar motors for extra torque. The controller is an AVR ATmega328p and the motor drivers are L293D.

Other mechanical modifications to the original design include adaptation to using #6 screws instead of metric screws, and hinges made from hardware-store 1/4" nylon spacers of various lengths.

A Pick-n-Stack application

Implemented with a Python OpenCV program that identifies red/blue/green blocks on a white page, determines their orientation angle and x,y position coordinate, and their color. This information is used to move the robotic arm controller to pick the blocks, and stack them in sorted piles. Code can be downloaded from this GitHub location https://github.com/eyalabraham/robotic-arm

Other resources used to create this project include:

This video shows the robotic arm in action, stacking colorful blocks:

Some references

Resources used in the design and build of the arm and the controller code:

Object Pick-and-Place test

Sample video testing the gripper mechanism

oArm inverse kinematics.pdf

Inverse Kinematics using geometric calculations based on an example video from https://robotacademy.net.au/lesson/inverse-kinematics-for-a-2-joint-robot-arm-using-geometry starting around 4m:23s into the video.

Driver circuit board

Driver circuit is built around an AVR ATmega328P controller with firmware with interactive or remote command modes, which allows control with commands on a serial console or commands sent from a script (Python in my case). The stepper motor drivers are a set of L293D that drive the hacked 28BYJ-48 steppers in a Bipolar mode. Motor spec sheet here, Bipolar hack info here.

Schematics capture files on my GitHub space and attached as PDFs here.

stepper-driver.pdf
comm.pdf
power.pdf