The connector should be completely safe to use, as the Arduino code bears the responsibility of ensuring safe operation of the gun (servos do not go out of physical bounds, motors do not squish darts, minimize jerky motion, detect hardware malfunction or software halt, etc)
Only one instance of the connector shall be allowed at one time. Each connector function queues a serial message, to be sent by a dedicated thread, and should execute without delay. If too many messages are queued, the process will error.
The Gun Controller Arduino code runs a loop which updates state information and reads serial messages.
All 2-byte numerical arguments are valid and will be safely executed
uint16 pan location
uint16 tilt location
uint8 timeout (s)
uint8 shot count
uint8 shooting frequency (dHz)
uint16 timeout (ms)
Two types of messages are sent from the Arduino to the Pi. A w signifies that the Arduino is ready to receive instructions over serial. An x or i are sent in response to a critical error or invalid input message, respectively. Both of these prefixes are followed by a single line diagnostic message.
Access: turret.brianlevis.com picam.brianlevis.com