If you have seen this post without having read the previous one (https://www.thematic-learning.com/chassis-arm-electronic-integration-i/) it may be difficult to understand all the information posted.
Once all the parts of the robotic arm have been printed, it is time to assemble and operate it. Being able to finish this small project can serve as a starting point to create the arm that serves as a starting point to redesign our arm that moves the metal detector coil.
Assembling a robotic arm is not an easy task because many parts are needed such as bearings, bearings, specific hardware, etc. However, it is a task in which students can learn a lot.
In the end, after a long work of documentation, assembly and testing, we were able to have a first version of the robotic arm working. The terminal clamp was not attached, since in our case we will never use the arm to grasp objects.
Below is a video of how the robotic arm works once assembled:
The robotic arm uses G-Code commands to move and grasp things. Here are some of the commands we use to control the arm:
- G0=G1: Move XYZ in mm (cartesian), F in mm/s. Always uses Absolute coordinates. Unlike 3D Printers, there is no E-Axis. On every move there is an acceleration and deacceleration.
- G4: Dwell / Sleep T in milliseconds
- M3: Close Gripper / Aux Motor T in Steps. Cannot move simultaneously to G
- M5: Open Gripper / Aux Motor T in Steps. Cannot move simultaneously to G
- M17: Enable Stepper Motors, also Enables Fan
- M18: Disables Stepper Motors, also Disables Fan with delay
If you are familiar with 3D printers or CNC machines, you probably know what a GCODE command is. They are the commands that the printer or CNC machine understands with the instructions that it has to follow.
We thought at this point that it would be necessary to create some commands to control the motors. All programming is written in C ++ just like arduino programs.
Below is the C ++ classes schema used in our robot:
In the program written by Florin Tobler, the execution of the commands is done using a queue in which they are stored and executed. This operation is shown graphically below: