Simulateur satellite — STM32 / FreeRTOS
Simulateur temps réel d'un CubeSat sur Nucleo-F446RE, station au sol ESP32 avec dashboard WiFi.
STM32F446RE, FreeRTOS, C, ESP32, I2C, SPI, UART, MPU-6050, BMP280Conception et développement soloMars – Avril 2026En pause, reprise prévue
Le problème
Reproduire à petite échelle l'architecture logicielle d'un satellite réel : plusieurs sous-systèmes concurrents avec leur propre cadence d'acquisition, un bus de données partagé, une gestion d'alarmes et un enregistrement de télémétrie, avec une liaison vers une station au sol.
Ce que j’ai construit
- Firmware STM32 sous FreeRTOS : 7 tâches concurrentes (IMU, baromètre, alarmes, affichage OLED, télémétrie, liaison ESP32, log SD) synchronisées par mutex.
- Acquisition IMU (MPU-6050) et baromètre (BMP280) via bus I2C partagé.
- Enregistrement des données capteurs en paquets binaires de 48 octets sur carte SD (boîte noire), bus SPI.
- Navigation 5 écrans OLED (SSD1306) au joystick, protocole de commandes texte STM32 ↔ ESP32 via UART à 115200 bauds.
- Station au sol ESP32 : point d'accès WiFi, dashboard web temps réel en WebSocket, relais de commandes vers le STM32.
Points techniques résolus
- Bus I2C1 partagé entre l'IMU, le baromètre et l'écran OLED : accès concurrent protégé par mutex dédié (mutexI2C) pour éviter toute collision entre tâches FreeRTOS de priorités différentes.
- Cinq modes opérationnels (Nominal / Safe / Science / Error) avec cadences d'acquisition et logique buzzer/LED distinctes par mode, pilotables à distance depuis le dashboard ESP32.
Certaines images d'illustration (schémas, diagrammes) ont été générées avec Gemini — les photos du montage réel sont authentiques. Claude a été utilisé comme outil d'apprentissage et d'assistance sur certains éléments du code.