Three Joint Robotic Arm

My project is the Three Jointed Robotic Arm. It is controlled by a Roboduino ( a form of Arduino) and potentiometers. The potentiometers and Roboduino work in unison to turn the servos and make this project work.
Engineer
Parker Readerman
Area of Interest
Business and Engineering
School
The Bay School of San Francisco
Grade
Senior

My Project: Three Joint Robotic Arm

My project was a challenging one but very enjoyable. I have done engineering projects before in school but this project allowed me to meld software and hardware effectively.  Almost every step that I took challenged me in a new way, from the coding for the different potentiometers to soldering the circuit together on the second to last day. My project came together nicely in the end even though there are areas that I could improve if I had more time. An area that I would have refined is the gripper: originally I was going to use a gripper that could rotate and grasp larger objects but that did not work because when I uploaded a draft of my code, I did not account for the mechanical limitations on the different types of servos, so I accidentally stripped the gears in one of the servos. Another improvement that I want to make is adding a servo to rotate the base. Regardless, I am pleased with how my project turned out.

— How My Project Works

My iteration of the Three Joint Robotic Arm functions off of a Roboduino. The Roboduino is a modified arduino product that is designed for robotic projects. An Arduino is a microcomputer that you can store programs that you write. The Roboduino, not being an official Arduino product is still compatible with Arduino programming software but is recognized as a Duemilanove/Diecimila board. My Roboduino’s main purpose was to read the values provided by the potentiometers and translate them into values that the servos could rotate to. The Roboduino also transfers power from the power source (a wall socket) to the potentiometers and servos throughout my project. The potentiometers are what controlled the servos on my project via the map() function. Potentiometers are knobs that alter the electrical resistance when you turn them. In simpler terms, a potentiometer is a variable resistor.

After you turn the potentiometer, the Roboduino reads the voltage value via  an analog input pin and converts the voltage using the previously mentioned map function. The map function allows the translation from the potentiometer output of 0-1023, to the servo degrees of 0-180.

The maximum degrees of motion can be limited in two ways for the servos: The first is mechanical limitations; I exceeded the mechanical limitations for the original gripper’s servo repeatedly, and this is how I ended up breaking it. The second way to limit the rotation is by altering how many degrees the servo can rotate. In my instance, instead of having the servo rotate from 0-180 degrees I instead limited the rotation to a 30-degree range, 80-110. This limitation was put in place so the servo would still be able to support the rest of the arm even at its maximum extension. Finding this 30-degree range took time but was a major component in refining my project.

The part of the arm that does the physical work of the Three Joint Robotic Arm are the joints. These joints are the servos. Every servo has a correlating potentiometer. A servo is a small motor. The layout of my servos is as follows. At the base, I have two high torque servos. A challenge that I faced with these servos is that they are positioned as mirror images of each other. To make them function in complete unison, I had to flip the map() function values for them, so one reads:  map(signalA01,0,1023,80,110)  and the other reads: map(signalA02,0,1023,110,80). Therefore, one servo can rotate from 80 degrees to 110 degrees while the other can rotate from 110 degrees to 80 degrees. This was the key for my two base servos to work together. As you climb the arm the other two “joint servos” function on the same principle. The last servos, the one that operates the gripper, does not need limitations because of the servo and grippers gear ratio.— How My Project Works

My iteration of The Three Joint Robotic Arm functions off of a Roboduino. The Roboduino is an Arduino-ish product that is designed for robotic projects. The Roboduino is compatible with Arduino programming software and is recognized as a Duemilanove/Diecimila board. My Roboduinos main purpose was to read the values provided by the potentiometers and translate them into values that the servos could rotate to. The Roboduino also transferred power from the power source (A wall socket) to the potentiometers and servos throughout my project. The Potentiometers are what controlled the servos on my project via the “map()” function. Potentiometers are knobs that when you turn them they alter the electrical resistance. In simpler terms, a potentiometer is a variable resistor. For the Potentiometers to function properly (and not break) it is important to connect the power, signal, and ground pins in the correct locations.

The Potentiometers are what controlled the servos on my project via the map() function. Potentiometers are knobs that when you turn them they alter the voltage. In simpler terms, a potentiometer is a variable resistor. For the Potentiometers to function properly (and not break) it is important to connect the power, signal, and ground pins to the correlating pin of the potentiometer.

After you turn the potentiometer the Roboduino would read the voltage value via the “Analog Input” pin and convert it using the previously mentioned map function. The map function allowed for the translation from the potentiometer output of 1023 to 0, to the servo degree of 180 to 0. The maximum degrees of motion can be limited in two ways for the servos. The first being mechanical limitation. I exceeded the mechanical limitation for the original gripper servo repeatedly and this is how I ended up breaking it. The second way to limit the rotation is by altering how many degrees the servo can rotate. In my instance, instead of having the servo rotate from 180 degrees to 0 I instead limited the rotation to a 30-degree range, 110 to 80. This limitation was put in place so the servo would still be able to support the rest of the arm even at its maximum extension. Finding this 30-degree range took time but was a major component in refining my project.

The most visual part of the Three Joint Robotic Arm is the joints. These joints are the servos. Every servo has a correlating potentiometer. A servo is a small motor. The layout of my servos is as follows. At the base, I have two High Torque servos. A challenge that I faced with these servos is that one is a mirror image of the other due to how they are positioned. The challenge that I faced with these servos was getting them to function in complete unison regardless of this issue. How I did this was by flipping the map() function values for them, one would read “map(signalA01,0,1023,80,110);” compared to the other that is “map(signalA02,0,1023,110,80);”. As you can see one servo is rotating from 80 degrees to 110 where as the other is rotating from 110 to 80. This was the key for my two base servos to work together. As you climb the arm the other two “Joint Servos” function on the same principle. The last servos, the one that operates the gripper does not need limitations because of the servo and grippers mechanics.

Starter Project

My Starter Project, The Minty Boost, is a portable phone charger that allows AA batteries to help give your phone a “boost” of power. This project is a kit from Adafruit. The Minty boost has a relatively small parts list and therefore makes it a very approachable project for beginners. The parts list and purposes are as follows: 5V boost converter – Controls everything within the circuit, when to and when not allow the current to flow to the rest of the circuit. 8 pin socket – Used for the safe insertion and removal of the boost converter. Power Supply capacitor – Capacitors are used to smooth out the pulsation on the DC current. This is so there is a constant power supply. Schottky Diode – effective way to block the reverse flow of current without overheating. Power inductor -They are used to block AC while allowing DC to pass; inductors designed for this purpose are called chokes. Bypass capacitor – Shorts the AC current so that the DC current is clean. USB type A female jack – allows the connection from the circuitry to the male part of the USB. This connection allows the transfer of the regulated electricity through the previous pieces assembled on the circuit board AA Battery Holder – holds two 1.5 volt batteries. PCB – Circuit Board – a PCB is a Printed Circuit Board. Resistor – Pieces that limit the flow of electricity to keep different parts from overheating while providing current. This project taught me the purpose of resistors and other important components such as boost converters. From this project, have enhanced my understanding of circuit board and how they work.

Final Project Links:

Build Plan: here

Bill of Materials: here

 

Leave a Comment

Start typing and press Enter to search