This is a simple stepper motor robot arm. It was inspired by Chris Annins AR2. The AR2 is also a stepper driven robot arm. Just like the AR2, the goal with this robot arm is to get it to move as smoothly and accurately as possible. One big difference to the AR2 is that this robot arm is made with super cheap (~$3) 28BYJ-48 12V stepper motors. As a controller, we are using an ESP32 microcontroller. The 28BYJ-48 are geared steppers. The gears ensure both more torque on the output shaft and, in general, better accuracy.
Part list:
Here are the 5 steps needed to complete to get this micro robot arm working.
The finished robot arm will be able to move quite accurately, as shown in the video below.
There are 9 mechanical parts in total (see technical drawing.) In order to create these mechanical parts, we need to either get a 3D printer up and running or buy some quality wood. I went for the wood approach. Either way, all the parts will need to be 5mm thick. So if you are going to use wood, buy wooden plates with a thickness of exactly 5mm. Then use the technical drawings attached to this step and drill/cut all the pieces.
If you're going for the 3D printer approach, use the .stl files attached below (ESP32-MicroRobotArm.stl).
We are using the 12V version of the 28BYJ-48 stepper motor. There is also a 5V version. The part number is the same for both. You need to be careful not to get the wrong ones.
We want to use the motors in combination with the A4988 stepper motor driver. But it is only after you apply a small modification to the stepper motors inner wirings that you are able to do so. The 28BYJ-48s are unipolar steppers. They need to be made into bipolar steppers for the A4988 to work. Basically, you just cut a connection. Here's what we need to do:
Now we are ready to assemble the robot arm. Use the video attached below to put all the pieces together.
Next, we need to wire up all the things correctly. Use the electronic schematics attached to this step to do so. The knob in the schematics is actually a rotary encoder (lpd3806 600bm). It is used in combination with the push button to manually rotate the joints one after another to get the robot arm into its home-position (pointing up.) The process of getting the arm into its home position is shown in the first video. The 4 green PCBs are A4988 stepper driver chips.
Here's the program for this robot arm:
Github ESP32 Micro Robot Arm
In order to program the ESP32 with the Arduino IDE follow the Instructions over here. After following the instructions, you should be able to select the ESP32 board from the board manager (just like any Arduino board.) Flash the program (the same way you would flash an Arduino) and move the rotary encoder by hand. The lowest joint should rotate. After getting the robot arm into its home position and pushing the push button, the Robot Arm should start to move as shown in the first YouTube video.