Travaux pratiques RatBot
Ces travaux pratiques font découvrir la carte ratbot_controller, la carte électronique du robot RatBot, construite autour d’un microcontrôleur STM32H750. Ils partent du plus simple, allumer une LED sans système d’exploitation, et montent par étapes jusqu’au robot piloté par ROS 2.
Le parcours se fait en trois parties :
Sans système d’exploitation : un périphérique de la carte par TP, programmé directement avec la bibliothèque HAL de ST.
FreeRTOS et mémoire : les mêmes périphériques organisés en tâches, puis le DMA, l’exécution depuis la flash externe et les mémoires rapides du Cortex-M7.
ROS : la carte parle à un ordinateur par micro-ROS, puis le robot complet se pilote depuis ROS 2.
Chaque TP suit la même forme : les objectifs, ce qu’il faut savoir avant de commencer (schéma, principe), des étapes guidées, des questions, puis des exercices supplémentaires, sans correction.
Astuce
Les solutions des étapes et les réponses aux questions sont dans la page, repliées dans des blocs comme celui-ci :
Solution
Le code, et l’explication de chaque choix technique.
Cherchez d’abord par vous-même, puis dépliez pour vérifier et comprendre : les explications vont plus loin que le code. Le code complet de chaque TP est aussi à télécharger, en fin de page.
Note
Pour utiliser le robot, voir le guide utilisateur : https://docs.ratbot.org. Pour la conception de la carte et de son firmware, voir la documentation développeur : https://dev.ratbot.org
Avant de commencer
Partie 1 — Sans système d'exploitation
- Partie 1 — Sans système d’exploitation
- TP 1 — Allumer une LED, lire un bouton
- TP 2 — PWM et couleurs
- TP 3 — Le son
- TP 4 — Les ventilateurs
- TP 5 — La liaison série avec le PC
- TP 6 — Le niveau de batterie
- TP 7 — Le bus I²C : température, accéléromètre et gyroscope
- TP 8 — Le bus SPI : l’écran OLED
- TP 9 — L’horloge temps réel
- TP 10 — Les servomoteurs Dynamixel
Partie 2 — FreeRTOS et mémoire
- Partie 2 — FreeRTOS et mémoire
- TP 1 — Premières tâches
- TP 2 — Priorités et ordonnancement
- TP 3 — Communiquer entre tâches
- TP 4 — Partager une ressource
- TP 5 — Timers logiciels et chien de garde
- TP 6 — Le DMA
- TP 7 — Un programme en flash externe
- TP 8 — Les mémoires ITCM et DTCM
- TP 9 — Charge du processeur
- TP 10 — Des tâches pour les capteurs I²C
- TP 11 — Une tâche pour l’écran SPI
- TP 12 — Mini-projet : le tableau de bord