3D-printed robotic arm using Raspberry Pi, ROS, and Python. Based on Open Sourced LiteArm i2 Design.
The hardware for this robot consists of a 3D printed frame as well as a RaspberryPi with a custom "hat". The link to the frame design as well as details on the circuitry and bill of materials are below.
Based on Open Sourced LiteArm i2 Design. 3D printed.
Controller circuit to power/control the arm was built as a RaspberryPi Shield/Hat to consolidate hardware.
The table below contains the parts used to create the controller circuit. Additionally, red (5V), green (ground), and yellow (signals) solid core wire was used to make the connections.
Part | Quantity | Link |
---|---|---|
Raspberry Pi | 1 | |
Servos | 3 | |
Perfboard (14x20) | 1 | |
11x1 Pin Male Headers | 1 | |
20x2 Pin Female Headers | 1 | |
DC barrel jack | 1 | |
Electrolytic Capacitor | 1 | |
Capacitor | 1 | |
Red LED | 1 | |
91ohm resistor | 1 | |
Power Cable | 1 | |
Ethernet Cable | 1 |
The controller circuit serves two main functions: 1) Power the motors and RaspberryPi off of a single 5V DC power supply (DC barrel jack + decoupling capacitors) and 2) breakout signals, power, and ground to header pins for the motors.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|
NC | NC | Ground | 5V | Signal-Wrist | Ground | 5V | Signal-Extension | Ground | 5V | Signal-Base |
- Servo Wrist: Connect to pins 3-5
- Servo Extension: Connect to pins 6-8
- Servo Base: Connect to pins 9-11
NOTE: Pins 1 and 2 are "Not Connected" and were added for future use to power/control an end effector such as an electromagnet.
Column 1 | Column 2 |
---|---|
NC | 5V |
NC | 5V |
NC | NC |
NC | NC |
NC | Signal-Base (GPIO18) |
NC | NC |
NC | NC |
NC | NC |
NC | NC |
NC | NC |
NC | NC |
Ground | NC |
NC | NC |
NC | NC |
NC | NC |
NC | Signal-Extension (GPIO13) |
Signal-Wrist (GPIO12) | NC |
NC | NC |
Signal-LED | NC |
Ground | NC |
The 20x2-pin female headers were placed on the underside of the perfoard to connect directly to the 20x2 set of male Raspberry Pi GPIO Pins.
NOTE: Position decoupling capacitors as close to 5V GPIO pins as possible.
The software for this robot was written in python for both the PC "command center" and the robot itself. All code is included in this single repository.
The following pin assignment was used for each servo (ensure the appropriate servo is connected to the right location on the 11x1 Male Header Connector.
Device | GPIO Pin |
---|---|
Base | GPIO18 |
Extension | GPIO13 |
Wrist | GPIO12 |
LED | GPIO26 |
This Robotic Arm uses Robotic Operating System (ROS) to transmit commands to the robot and also recieve live feedback on robot status and position.