Skip to content

EEZYbotARM

A four-axis, 3D-printable hobby robot arm controlled from Python and Arduino, with 3-D forward and inverse kinematics.

  • Robot arm
  • Open source
  • arduino
  • 3D printable

Suggested by Robotheca, created by @meisben (opens in a new tab), from github.com/meisben/easyEEZYbotARM (opens in a new tab). Pinned to commit 00ff522 (opens in a new tab).

Photo

EEZYbotARM, photo from its repository
Photo:@meisben (opens in a new tab)MITsource file (opens in a new tab)

What it can do

Written by Robotheca from the project's documents.

  • Forward kinematics: maps joint angles to the x, y, z position of the end effector
  • Inverse kinematics: maps x, y, z coordinates to joint angles for 3-D control of the arm
  • Plots a simulated robot arm and its workspace, and checks whether a point lies inside it
  • Communicates with an Arduino microcontroller over a link to control arm position
  • Arduino side drives the arm's servo motors smoothly using the ServoEasing library
  • Designed as a hobby robot arm for learning projects, not for lifting heavy loads
  • Does not support straight-line trajectories because the hobby servos have no position feedback

Bill of materials

This repository has no parts list Robotheca can read yet.

Build guide

The creator's steps, each with its instructions.

  1. 1Install the Python package with pip install -e .
  2. 2Upload the Arduino sketch to the microcontroller
  3. 3Enable USE_PCA9685_SERVO_EXPANDER in ServoEasing.h
  4. 4Wire the servo motors to the PCA9685 board as per the reference diagram
  5. 5Build the EEZYbotARM from the eezyrobots.it instructions
  6. 6Install servo motors in the 90 degree reference positions
  7. 7Calibrate servo angles for positional accuracy

The guide appears here as you scroll.

Guide by @meisben (README.md), under MIT.

More guides

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • Arduino microcontroller running the servo control sketch
  • PCA9685 low-cost servo driver board designed by Adafruit
  • Hobby servo motors for the arm joints q1, q2 and q3
  • DC battery pack as the power source, rated below 6 volts

Connections

  • PCA9685 servo driver board is wired to the Arduino and drives the servo motors
  • The battery pack supplies power to the servo driver board and servos
  • The reference wiring diagram was made in Fritzing and the Fritzing files are in the fritzing_files folder