A suite of software useful in experimenting with small robotic arms. Use as a teaching framework with a low barrier to entry for robotics and programming.
### History
Whilst an expansive scope, the principal development and implementation happened over 3 days in the summer of 2019.
## Software Components
1. An Arduino firmware to recieve commands and position the robot arm.
* firmware/armCtl/armCtl.ino
1. A streaming serial command & control protocol to communicate with the Arduino from a computer.
1. A Python3 module that is a threaded serial reader/writer, and state machine for the arm.
1. A Python3 implementation of that language for the Robot module.
* ArmCtlListener.py
1. A Python3 module to interface the scripting language to the robot module. When called directly, this module also provides an interactive shell for the scripting language.
Set target coordinates for the arm. Movement will not begin until the command statement is complete, or before a *wait* or *pause* command. The word 'go' my be omitted provided the axis or preset name does not match the name of a command.
Go to the coordinates given as *{value, value, value, value}*. Values must be integers. Values may be given in either decimal or hexadecimal notation. Omitted values will be accepted as *null* and will not effect the arm position.
Move the named axis to the given value. Names must be defined in the configuration file as the integer index of the axis in the command protocol. Values must be integers. Values may be in decimal or hexadecimal notation.
If time is given, pause for that amount of time after movement has completed. If time is omitted, do the next command immediately after movement stops.