As a follow up to the first phase of the Modular Arduino Tank project, this second phase adds a 6-axis arm attachment to the Arduino tank base. It was inspired by the modern day use of robotic arms to automate industrial processes, including manufacturing, sorting, assembly, and more. I considered it a fun challenge to design my own version from scratch because it requires a balance of weight, reach, and agility in order to work effectively. Let's take a look at how I did it!
Before I started modeling anything, I wanted to do some research into exactly how a 6-axis arm worked.
Based on this diagram, I was able to tell exactly what the 6-axes were. At the bottom was the waist movement, follower by the shoulder, the elbow, wrist roll, wrist pitch, and finally the grip. These six axes mimic the natural joints on human arms, and it gives the robot arm healthy degrees of flexibility and motion.
Before prototyping, I needed to research one last part, which is the gripper. There are a lot of different possibilities, but I decided to base my robot's gripper off of a relatively simply claw that translates power from one servo to both claws via a set of gears.
The next step was the design my own 6-Axis arm and it's attachment to the original tank based in CAD. For tolerances, moving parts typically had anywhere between 0.5 to 1mm tolerances. Screws and other static objects had tighter 0.125 to 0.25mm tolerances.
The circuitry for the base of the tank would remain the same as the previous phase, but I decided that controlling the six servos on the six axis arm would need a an Arduino Nano that connected to the Arduino UNO. I also included a buck converter to use a 12V battery.
I ran out of usable output pins on the original Arduino UNO, so I connected a second Arduino Nano with the dedicated purpose of handling all the 6-axis arm movements.
I adjusted this step down convertor to turn the 12V battery input to a steady 5V output because that is what the servos are rated for. A heat sink was added due to amperage loads.
I already have my app from the last phase of this project to control the tank track movements, but I decided to make a copy of it so that I could add controls for the 6-Axis Arm.
Similarly, I made a copy of my Arduino from the first phase so that I could add to it for controlling the newly added Arduino Nano. Since the Arduino UNO must communicate with the Arduino Nano, I had to use two sets of code: the master code for the Arduino UNO, and the servant code for the Arduino Nano to receive commands from the UNO.
With another phase of my modular Arduino tank project done, I feel I have grown even further as a designer and problem solver. I learned how to design complex moving parts, how to communicate between Arduinos, how buck converters work, and how to put it all together. The final step now will be to complete the third phase of this project: the Nerf Turret Tank. In the meantime, all the code that I created and used can be found here at my GitHub.