3D Printed Arduino Servo Platform With Robotic Arm
by Morrisl4 in Circuits > Robots
1135 Views, 16 Favorites, 0 Comments
3D Printed Arduino Servo Platform With Robotic Arm
This is a great beginner project for anyone to make! It is a robotic arm on a moving platform controlled by a RC controller. All the electronics are readily available from Amazon, Aliexpress, or Banggood. No custom PCB is required but, knowledge of soldering is required. All servo motors are wired to a PCA9685 Servo Shield that is attach to an Arduino UNO R3. This make is project very scalable and modular. Step by step video guides are provided for anyone who want to start playing with Arduino, 3D printing, RC, and robotics.
Supplies
All electronic components are readily available on Amazon, Banggood, Aliexpress, or other websites. Here is the bill of materials with Banggood and Aliexpress affiliate links provided.
Electronic components needed for the servo platform with robotic arm:
- 1 x Arduino UNO R3 .................................................[ Banggood / Aliexpress / Amazon ]
- 1 x PCA9685 Servo Shield .................................................[ Banggood / Aliexpress / Amazon ]
- 1 x nRF24L01+PA+LNA .................................................[ Banggood / Aliexpress / Amazon ]
- 4 x FS90R 360 Servo Motor (With wheels) ..........................[ Banggood / Aliexpress / Amazon ]
- 6 x MG90S ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x 9V Battery ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x 6V Battery Holder ................................................[ Banggood / Aliexpress / Amazon ]
- 2 x 9V Battery Snap Connector ................................................[ Banggood / Aliexpress / Amazon ]
- 4 x 1.5V AA Battery ................................................[ Banggood / Aliexpress / Amazon ]
- 2 x Toggle Switch MTS102 ................................................[ Banggood / Aliexpress / Amazon ]
- 10 x Wago 221-412 connectors ................................................[ Banggood / Aliexpress / Amazon ]
- Zip ties ................................................[ Banggood / Aliexpress / Amazon ]
- M3 Bolts ................................................[ Banggood / Aliexpress / Amazon ]
- Jumper wires ................................................[ Banggood / Aliexpress / Amazon ]
- Rubber bands ................................................[ Banggood / Aliexpress / Amazon ]
As mentioned knowledge of soldering is required. Check the picture with the two toggle switches, you will need to solder wires to the toggle switches and cover it up with heat shrink tubes as shown in the picture.
Electronic components needed for the controller:
- 1 x Arduino Nano ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x BreadBoard BB400 ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x nRF24L01+PA+LNA .................................................[ Banggood / Aliexpress / Amazon ]
- 2 x Dual-axis Joystick Module ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x 128x64 0.96 OLED Display ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x 6V Battery Holder ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x 9V Battery Snap Connector ................................................[ Banggood / Aliexpress / Amazon ]
- 4 x 1.5V AA Battery ................................................[ Banggood / Aliexpress / Amazon ]
- 1 x Toggle Switch MTS102 ................................................[ Banggood / Aliexpress / Amazon ]
- Zip ties ................................................[ Banggood / Aliexpress / Amazon ]
- M2, M3, and M4 Bolts ................................................[ Banggood / Aliexpress / Amazon ]
- Jumper wires ................................................[ Banggood / Aliexpress / Amazon ]
Check the picture with a single toggle switch, you will need to solder jumper wires to the toggle switch and the battery connector as shown in the picture.
If some links are unavailable please inform me I will update them.
Obviously, You will need a 3D printer or access to 3D printer to print these part.
Tools that you will need: soldering iron, pliers, screwdriver, and Allen keys.
Print the 3D Printed Parts
List of 3D printed parts for the servo platform:
- 1 x Platform Base
- 1 x Platform Cover
List of 3D printed parts for the robotic arm:
- 1 x Arm Base
- 1 x Arm Link 1
- 1 x Arm Link 2
- 1 x Arm Link 2 Shaft
- 1 x Arm Bevel Gear
- 1 x Arm Wrist
- 1 x Arm Snap Pin
- 1 x Shaft wedge
- 1 x Gripper Base
- 2 x Gripper Rack Mod
- 1 x Gripper Gear
- 1 x Arm Base Holder
List of 3D printed parts for the controller:
- 1 x Controller Base
- 1 x Controller Cover
While I did designed the robotic arm myself. The gripper of this robotic arm was created by rayjizza from printables.com (link to his profile). I really like the rack and pinion gripper design so I decided to utilize it. I have modified the original gripper STL file into gripper rack mod so, there is a place to put rubber bands around it. This way the gripper is able to pick up objects a lot easier because, it is mostly relying on the rubber band's tension to hold the object instead of the servo motor.
I printed all the parts with 0.2mm layer height. Support structure is needed for Gripper Base, Gripper Rack Mod, Arm Link 1, Arm Link 2, Arm Link 2 Shaft, Arm Wrist, and Arm Snap Pin.
Making the Servo Platform With Robotic Arm
The video is a step by step guide to assemble and wire the servo platform with robotic arm. Keep in mind it is a guide, you can switch up the order of assembly if you want.
To operate the platform switch on both toggle switches at the back of the platform. Next, turn on your RC controller. Once the platform and controller is connected, the robotic arm will move to its home position. The home position is when the robotic arm is retracted to the platform. If you are moving the robotic arm into an position and suddenly the controller disconnects the arm will remain at its current position. If you able to reconnect the controller to the platform then, you can continue to move the arm from its current position as long as the platform didn't lose power.
Things to keep in mind about the platform. I think is obvious, but this platform is meant to be indoor and non water proof. Also, if your FS90R servo motors are spinning without any of your controller input then, you will need to adjust a screw located behind the servo motor that was spinning. It is called the middle-point adjustment potentiometer. Turn the screw until the motor stops spinning. A manual of the FS90R servo is in the attachment for more detail.
Before you upload the code you need to download the "RF24" library in order to use the NRF24L01 radio module, and the "PCA9685 16-Channel PWM Driver Module" library in order to use the PCA9685 servo driver. General guide for installing libraries to Arduino IDE: https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries/
Making the RC Controller
The video is a step by step guide to assemble and wire the RC controller. Keep in mind it is a guide, you can switch up the order of assembly if you want.
Once you turn on the controller it will take a minute to connect to the platform. If the platform is not powered. The OLED display will show "Not Connected". The left joystick controls the platform's movement. If you want the platform to move forward you move the joystick up and vice versa. If you move the joystick to the right the platform will turn clockwise and vice versa.
The right joystick controls the robotic arm. To control the arm first, press the right joystick button. Yes, the joystick itself is a button. Once pressed a dot would appear on top of J1. The dot is the indicator for either servo motor selection or servo angle adjustment. When the dot is on top of J move the right joystick up or down to select which MG90S servo you want to move. Once you selected the servo you want to move. In order to move the selected servo press the joystick button again then, the dot will be on top of the number on the very right. You will move the joystick left and right to adjust the angle of the servo. To move another servo press the joystick button so, the dot will move on top of J for you to select other servos.
Before you upload the code you need to download the "Adafruit SSD1306" library and "Adafruit GFX Library" in order to use the 128x64 OLED Display.
Have Fun! and Future Improvements
This is a good educational project. There are a lot of modifications you can do too. You can use bigger 5V servo motors if you want to scale up the platform or the robotic arm. Another modification you can do is switching the wheels to Omni wheels or Mecanum wheels to make the platform more maneuverable. You will have to modify the 3D model and the code to do these scale up or modifications of course. One thing that can be improve about this project is the speed of the robot arm. It could probably be faster through better programming. If your robotic arm is moving too slow or in a jerking motion then, It might your batteries on the platform is low. Replacing the batteries should solve this issue. I hope you learn something and have fun!
Please like and subscribe my videos I am building a youtube channel: https://www.youtube.com/channel/UCFj6tFPxIVaNm1r6XVLfvkQ
Feel free to ask any questions about the project