This project is part 4 in the building a robot arm tutorial. In the first part I show how to design the arm, the second part shows how to design the base, and the third shows how to design the mount.
After all of the Computer Aided Drafting (CAD) and 3D modeling in my past articles on making a robot arm (see links above), we are now ready to explore and expand on ways to control the robot arm. There are a number of ways to control the robot arm. The best way to control the stepper motors that actually control the movement of the arm is through a microcontroller. You might already be familiar with some microcontrollers (after all there are a number of excellent options); because steppers motors are relatively simple to use, they can be incorporated into projects driven by Arduino, Raspberry Pi, and even more complex controllers like Beaglebone Black.
For this robot arm, I will be focusing on the Arduino because it is simple while still allowing for dynamic integration. I also like the arduino because all the external equipment you need is a computer and the cord to connect the two. While this may seem basic to some more experience Makers it is important to understand the most basic logic a computer goes through to control the arm. Understanding the basic functionality will help you scale the project later on if you want to, incorporating controls like a rotary encoder or buttons that will give the robot more finite reactionary controls.
Another important part about adding complexity one step at a time is that if mistakes or miscalculations are made you are not already so far along in the project it becomes a problem to fix the errors. This is one of the main reasons why we use a breadboard in our projects before we solder them together and put them in place. A good example of this is the fact that I underestimated the strength of my base motor. This means that it is not powerful enough to move the whole arm at once, only the top section will articulate. If I had begun to add unneeded complexity and solder my arm then there would have been a lot more work for me to correct. Now I have options: I can lighten the arm or I can add a more powerful motor.
That is a problem we will address in time, for now, the upper section will articulate so I will show you how to control the motor and give it movement commands in Arduino.