Arduino Servo-Controlled Robotic Arm
The Arduino servo-controlled Robotic arm can be controlled from the computer it is connected to by means of a terminal emulator. Connect to the Arduino by contacting /dev/ttyACM0 using 9600 Baud. For instance:
This presents a low level interface for communicating with the robotic arm. In the example above:
6t 6s 6e 8w 8h |10t 10s 10e 10w 10h 28 28 28 14 14 : 0
All axis can be controlled by it. You have to specify tenths of degrees. so 900 is 90 degrees. You firstly specify the angle to go to, followed by the joint. The joint is specified by “t”,“s”,“e”,“w”,“h”. They stand for “t“urn, ”s“houlder, ”e“lbow, ”w“rist and ”h“and. The image shows which joint is where on the robot. Just entering a single value with the character of that joint will only change the set value of that joint. The other set values remain unchanged.
Characters cannot be erased. If a faulty value was entered it can be overridden by giving a new value for this angle. For example:
-9000s 0s
112t 251s 273e 227w 617h |0t 247s 268e 225w 619h 0 -28 -35 -14 14 : -2014
To give an overview on the line returned by the Arduino:
For example:
303t 19s 2e 15w 10h |500t 19s 0e 13w 8h 254 0 -14 -14 -14 : 0
The first five values represent the are the actual state of the robot. The are put in the same format as the input. This means you can copy an paste a previous value and the robot will return to it.
The second set of values represent the target angles for the robot. Or what was entered into the terminal earlier.
The last set of values represent the actual power set to the motors.
The value after the semicolumn can be ignored.
There is a soft of an emergency break. Entering 'p' with enter will copy the current state of the arm into the destination. This will immediately stop all current movement. This can be observed in the example below
-99t 457s 452e 446w 617h |900t 0s 0e 0w 617h 0 0 0 0 0 : 2156 p
112t 247s 268e 225w 619h |112t 247s 268e 225w 619h 254 -254 -254 -254 -14 : -2020