The Arduino currently being used for testing is an Arduino Mega 2560 Rev3. In version v0.1, its functionality is very simple. It simply receives I2C commands from the Raspi containing the speeds of each of the motors, and parses this data into PWM input that is transmitted to the motors’ controllers (see Motors page for details on the controllers).
The software implementation uses 2 managers to control the motors: an I2C manager and a motor controller module.
The module implements the I2C functionality to read the messages according to the specification (TBD). The data is parsed, currently only to define the desired speed (or direction as of right now) of each motor.
The controller module takes the data received via I2C messages and computes the required PWM input to move the necessary motors.