Arm-Bot: 3D Printed 4-DOF Robotic Arm
by TanmayBenjwal in Circuits > Robots
9962 Views, 93 Favorites, 0 Comments
Arm-Bot: 3D Printed 4-DOF Robotic Arm
Arm-Bot is a handy and portable 4DOF robotic arm that can be used for fun and educational purposes (basics of Forward Kinematics and Reverse Kinematics as well as 4-bar linkages joints).
The design is such that the joint 2 and joint 3 are made as 4-bar linkage mechanism joints whereas the joint 1 and joint 4 are simple rotatory joints. It is a Spherical configuration robot.
All the parts are 3D printed and the components used are readily available. Making it is not difficult as well to make your own follow the Instructable and if you have any question comment down and I will get back to you asap.
Supplies
- 3D printer
- PLA filament
- 4x SG90 servo motors
- few nut-bolts
- Arduino Uno
- Breadboard
- Male-to-male Jumper wires
- 4x Potentiometers (10k ohm)
CAD Design and Slicing
Designing a robot is very tricky and time consuming and to get 4 bar linkages right requires skill, fortunately I found some files in Thingiverse that I downloaded link for same - click to download. I remixed a few files for better hole diameter and fit. Also I made the potentiometer stand that I felt the need for after I thought that there should be a proper place/control center type thing for the manual controls. I designed the potentiometer stand in Tinkercad which was fast and easy because of tools and pre-set shapes available in Tinkercad, I just then downloaded the .stl file of same and sent it to slicing software
I used the creality-cura slicer for slicing as I think it is one of the easiest interface with quick action buttons for beginners to start with also it works pretty good in most of the cases.
All the .stl files are attached below
3D Printing
I used standard Grey color PLA filament ( 1.75mm ), I printed the parts with following settings :
- speed- 80mm/s
- temp - 200 (hot-end) , 60 (bed)
- layer height - 0.2 mm
- shell thickness- 0.8mm
- infill - 20%
- with 0.4mm nozzle
*no support required, use skirt or brim as per your printer and comfort
Downloads
Assembly
This is probably the most time consuming task after 3D printing. The assembly is quite tricky at certain area therefore I have tried to add closeup shots of joints from multiple angle to help you out.
Few points to keep in mind:
- While fitting the servo motors do check there positions ( it's best to keep it in middle position ) specially while fitting the gripper part of the robot.
- There are gaps and holes that you can use to tidy up the servo wire so the wires don't interfere with the movement.
- Solder the wires on potentiometer pins first and then fix/screw the potentiometer on to the stand directly.
Circuit Diagram
It is a straight forward and simple circuit for both the Automatic and Manual Mode nothing much to say about it. I have added the circuit diagram photo you can refer to it. I used Arduino as it is relatively cheap and readily available the code for same is attached in the coding section.
Coading
There are two ways to control/move the robotic arm
1- Manual Mode ( through potentiometers )
2- Automatic Mode ( performs same task repeatedly )
For Manual mode the code is written such that each potentiometer controls the movement of one servo motor hence controlling/maneuvering the motion of one of the four joints. The user has complete control the code is attached for same
For Automatic mode the code is written such that the robot may perform a task of pick and drop motion repeatedly as if being used in an assembly line or warehouse. This code is written for my particular condition and use case a video of same is embedded, also the code is attached.
Download the code and make some changes to it to suit yourself.
Troubleshooting
I faced a couple of issues which are as follows:
- I tried printing all the parts in one go (except the potentiometer stand) but as you can see from the first picture it didn't go well. Unfortunately there was a power cut and I was not in the room and when power came back the printer tried to go to home position ( in X and Y coordinate ) and with itself it just took the brim off the hotplate so the print was ruined. So I printed them one by one next time.
- While coding the manual mode where the potentiometers were to be used I faced the issue of jerking in servo motors i.e. the movement were not smooth as you tell from videos that I attached of manual mode as well, I couldn't find a solution to it although the power supply was good and working fine. Maybe the potentiometer were old and not working fine. Whatever the reason may be I was not able to rectify it. So if you have some suggestion or feedback on how I can rectify the problem please comment down, I would love to hear from you.
Final Overview
I just loved the outcome and how good it is to teach young minds, engineers and tinkers to learn basic of robotic-kinematics. I personally teach students for free and am overwhelmed by their response, questions to this project's working and learnings. Also its just cool!