This entire project was coded in C following the Event and Service paradigm. You can find more details about all the Services and all the Events on their dedicated pages.
The code is accessible on our Bitbucket repo.
Here is a list of the main software features of our project:
Play some audio (10 files)
Control 3 servo motors (in position and speed)
Control a DC motor (in speed)
Display animations on an SPI-operated LED matrix
Read a conditioned signal coming from an infrared receiver
Read the signal of an infrared distance sensor
Read the analog values of 3 pressor sensors
Read the signal from a push button and debouncing it
Control 7 individually operated LEDs
Handle 15 timers
Manage several Finite State Machines
Manage several deferral queue to recall events that could not be processed upon receiving