I want to build a robotic arm for my international course, but this time I want to make my project more reachable compared to my last semester idea. I want it to be controlled by buttons or joysticks before thinking to upgrade it if I can.
At the beginning of the class, I showed Vincent the first two rotations of the arm. We agreed that I could finish the assembly before the end of the session so I started working on it. We also talked about the way of controlling the servos because for now I control one servo at a time with my keyboard so the movements aren't smooth, but he told me that I could work on it once I will have finished the arm.
I fixed 3 SG90 servo to create the wrist and the claw and then I added the last MG995 servo to this part. I didn't have enough time to complete the assembly but I only have to connect the two parts together, it will create the elbow of the arm.
I had finished to remove the supports of all the parts so I started to construct the arm. The first step was to fix a servo to the basis. I used Parallax servos that Nicolas gave me while waiting to receive the MG995 servos. They have the same technical specification but the length between the screw holes of the Parallax is a bit larger than the MG995's so I struggled a little. I then fixed the second servo that is the shoulder of the arm.
To power the arm, I received a 5V 3A power supply and a DC jack connector to which I connected the 5V and GND cables. But before that, I needed to connect together both of the servos 5V and GND wires so Vladimir told me to solder them. I started by twisting together two cables to connect both servos, then I twisted a third wire that will be plugged in the DC jack connector. To make sure the connections will resist I solder the cables. This was for the GND connection but I don't think I had the correct technic to do it because for the 5V wires I struggled so I asked Vladimir and did it differently.
I wanted to test the rotation of the two servos before the end of the class but didn't have enough time for it so I finished it at home and tested it. A few days later I received the MG995 servos and I replaced the Parallax before the next session.
I received 3 servos identical to the ones I need so I tested them to make sure they work properly. I tested them one at a time so I could power supply them with only the Raspberry and my computer.
I also had all the parts I printed so I started removing the supports on the pieces.
I didn't do much during the Wednesday session but Vladimir told me I needed to start printing the pieces of the arm, so I downloaded all the parts on Bambu Studio and I prepared the plates to print them during the week. I had a total of 22 hours of impression so I divided it in 3.
Now that I have some basis to control servos with Python I need to work on the structure of the arm. Joon-Ho showed me a video of a robotic arm controlled by Arduino and an app, so I can take this project and upgrade it. He gave me the STEP files to print the parts of the arm.
The first thing I did was to watch the video several times to see how it works and on what will I have to work on.
My first issue is to control the servos with Python rather than Arduino. Then I have to adapt the basis to fit a Raspberry PI inside because with a terminal adapter it bigger than an Arduino card.
I then brought home some cardboard to create a first shitty version of a robotic arm with servos controlled by Python. I was able to control 2 part of the arm just as the clamp even if it doesn't work properly.
I picked up a Rasberry pi at L'Atelier to get familiar with it because it is the first time I use one. I firstly wanted to program in C++ but I really suck at programming so I thought Python was the best language to start. With Python, someone recommend me Thonny as an IDE so I downloaded it then set up the Rasberry pi on the App.
My first objective was to light a LED only with my computer just to familiarize myself with the link between Python and the Rasberry. I then worked with buttons, a buzzer and a servo (SG90).
I worked a little bit every day to be able to control the servo with 2 push buttons and this is the code I used :