HRI board firmware  v2.1
Microcontroller firmware of the board used during the HRI labs.
Modules
Here is a list of all modules:
 Main / CommunicationControl the communication with the computer
 Driver / ADCDriver for the analog-to-digital peripheral of the STM32
 Driver / ButtonDriver to access a button
 Driver / Callback timersDriver to call functions at a fixed rate
 Driver / DACDriver for the digital-to-analog converter
 Driver / Debug GPIOsDriver to control three GPIOs, to debug easily with an oscilloscope
 Driver / Extension UARTDriver for the UART serial communication peripheral
 Driver / External motorboardDriver for an external motorboard
 Driver / H-bridgeDriver for the H-bridge of the motor
 Driver / Hall sensorDriver for a Hall-effect angular sensor
 Driver / I2CDriver for the I2C bus communication peripheral
 Driver / Incremental encoderDriver for an incremental encoder
 Driver / LEDDriver to control a LEDs row
 Driver / MPU-6050Driver for the MPU-6050, a 6-axis IMU from Invensense
 Driver / UARTDriver for the UART serial communication peripheral
 Main / Haptic controllerMain haptic paddle controller
 Lib / Basic filterBasic iterative filter for smoothing
 Lib / Circular bufferBytes queue (FIFO) implemented with a circular buffer
 Lib / PID regulatorProportionnal-integral-derivative regulator with integrator saturation capability
 Lib / UtilsUtility functions and constants
 Main / Torque RegulatorSets the desired motor, by controlling the current