Sculli's Software
Details of the firmware written in C++ and the agent/API written in Python to enable Scully's basic head functionality.
The Firmware
Written in C++, the firmware is flashed onto the Arduino and does not change often. It enables command processing from the serial bus and synchronous, simultaneous real time actuation of all 4 of the primary head servos at once (Eyes Vertical Servo, Eyes Horizontal Servo, Jaw Servo and Neck Pivot Servo).It also features dynamic speed selection and variable PIN assignment.
The API
The API provides a standardized web client interface that allows for humans and other programs to actuate the servos of the robot by the use of the database and the agent as an intermediary. GET calls are currently in use to facilitate human actuation of servos via the web browser. Don't forget to send a terminator.
The Communications Agent
The communications agent written in Python is at the core of the functionality of the system. It monitors the database and maintains a persistent connection with the firmware to transmit commands for servo actuation.