We take a look at a maker’s robotic arm with gripper and how it can be programmed to do repetitive tasks.
We first met young Aarav back in Issue 46 with his portable pocket weather station, followed by his giant 3D printed SD card in Issue 48. Since then, Aarav has continued his maker journey making projects, including an artificial candle that turns on when you hold a flame near it, and a robotic arm, which we feature here. We caught up with Aarav to learn more.
What motivated you to build your robot?
I was primarily researching sensory feedback-based learning when I came across the idea of building a robotic arm that learns. I found this an excellent way to work with both complex maneuvering and my favourite mechanical engineering subfield–the application of sensors. I also wanted to document the entire process of building the robotic arm as usual and thus kept taking images and videos of the project while it was a work in progress, as I thought this would help others get insights into the process.
How does it differ from many other popular robot designs?
The major differentiating factor of the robotic arm I have built is that it can be taught to perform repetitive tasks by anybody–even a person with no prior experience with even the slightest of technologies, let alone robotics. This increases the bandwidth of the spectrum of industries in which it can prove to be an application multifold.
What parts does it use and how does it work?
The robotic arm has a 3D-printed body and has four degrees of freedom in its range of motion, including the gripper.
It has four MG90s servo motors to facilitate this movement.
The incredibly powerful Arduino Mega 2560 keeps the entire system running and controls the communication between the input and output modules, while also storing the data required to learn the tasks to be performed.
The control panel consists of a 2.4" TFT display and two joystick modules to control the movement manually or teach the functions to the robotic arm.
Why does it need an Arduino Mega board?
The classic Arduino Uno first came to mind, but I later realised that it does not have sufficient I/O pins. I had a lot of attachments for the project and needed quite a lot of I/O pins. This is the reason why I decided to go ahead with the Arduino Mega board. Also, an extra oomph in computing power always helps.
We haven’t seen those dual joystick modules before. Would it work with two separate joysticks if our readers can't find a dual version?
Absolutely yes, it would. The combined joystick module is nothing but two individual joystick modules attached. That is all it is, and two individual joystick modules would work just as fine. I used this combined module only for the sake of simplicity in managing.
Tell us about the shield you made and why you designed one instead of using a commercially available shield?
This is a great question. The main reason for doing so was to avoid a heap load of wires creating a very huge confusion and mess in the control panel.
The presence of the TFT touch display is one of the main reasons for the huge number of wires. Connecting all of these directly to the Arduino board along with the numerous peripheral devices was causing enormous confusion in wiring. This is the main reason I decided to go with a custom-designed PCB. This was an issue I faced in the first version of the project.
Do you have any advice for makers who want to design and source their own PCB?
PCB designing is indeed a very interesting process and requires some extensive problem-solving and analytical skills, especially for complex designs. I think there are plenty of resources available on the internet to get started. There are also some great PCB-design applications available out there. Fusion 360 and Fritzing are my personal favourites. For the fabrication of PCBs, I always have used JLCPCB until now as I love their quality and production time. But there are many such PCB fabrication services available out there.
Tell us about the arm. Did you repurpose someone else's design?
The arm itself was not designed by me as my main focus area in this project was to make the arm learn how to perform tasks autonomously. Thus, I decided to use a mechanical robotic arm design that already existed. I found a wonderful design called the EEZYbotARM on Instructables and decided to go ahead with that, giving it a few unique touches of mine.
How did you go about coding?
The code for this project was pretty elaborate, probably one of the longest Arduino programs I have ever written. But, it was extremely fun to write and made me learn and improve quite a lot with Arduino programming. I first made a flowchart and a basic algorithm. Then I converted that into the Arduino code that was supposed to be written for the robotic arm.
How does the interface work and how does it learn?
There are basically two modes in the robotic arm–manual mode and automated mode. In the manual mode, the user can control the robotic arm manually and get tasks done. In the automated mode, the user, with no technical background, can, very easily, train the robotic arm on performing certain tasks, and then the robotic arm can autonomously perform those tasks without human involvement.
Did you build any prototypes before the final build? What did you learn by building the prototype first?
Yes, this is the second version of the robotic arm project. I had built another version of the project before this which turned out to be a failure. Nevertheless, what I learned from the first version was instrumental in making this version a success. I used the plastic-gear SG90 servo motors in the first version. They were not able to hold enough payload and suffered a lot of jitters.
Hence, I upgraded to the metal-gear MG90s servo motors.
In the first version, I used a makeshift switch panel for control and a 16x2 alphanumeric LED display. That was a very weak setup and hence I upgraded to a 2.4" touchscreen TFT display in this version.
I also did not use a custom PCB in the first version leading to the accumulation of 40-50 jumper wires making everything go haywire. The addition of a custom PCB improved both the build process and the quality of the wiring of the project.
Lastly, I also gave the project a more professional look while also increasing the quality of the build by designing a 3D-printed enclosure for the robotic arm control panel. In the first version, I designed a control panel enclosure out of cardboard. It was usable but not the best option out there.
If our readers are inspired and what to make one for themselves, where can they get details?
I have written a detailed instructable on the project and also created a detailed YouTube video demonstrating the build process of the project.
Instructable: https://www.instructables.com/Automated-Robotic-Arm-That-Learns-Ft-Tinkercad-Ard/
YouTube: https://www.youtube.com/watch?v=m7aQCT_xI4s
What part of the build are you most proud of and why?
I am most proud of the fact that I kept going with the project even after failing in the first few attempts. Perseverance is extremely important while working on projects like these. If I had stopped when the first version did not work, I would not be writing this article.
What other makers do you draw inspiration from that our readers should also follow?
There are quite a few makers that I think are building cool stuff and creating great content. To name a few among the many amazing ones– Arnov Sharma, Open Green Energy, Britt Michelsen, Becky Stern, and Rohan Barnwal.
Great. Thank you for sharing your project with us, Aarav.