Robot mobile autonome
Logiciel complet d'un robot à dsPIC — évitement d'obstacles, protocole série maison, supervision temps réel en C# et asservissement en position.
- Cadre
- SAE BUT2 · 2024
- Durée
- 200 h
- Équipe
- Équipe de 3

Objectif
Le châssis (imprimé en 3D) et la carte à dsPIC étaient fournis — tout le logiciel était à écrire. Le robot devait naviguer sans collision dans un environnement encombré, dialoguer avec un PC de supervision et suivre des trajectoires.
Navigation par capteurs
- Cinq télémètres infrarouges (trois à l’avant, deux sur les côtés) lus via l’ADC du dsPIC, avec réglage de la séquence de conversion et du multiplexage.
- Machine à états modulaire selon la configuration des obstacles.
- Gestion des cas délicats, comme la sortie de couloir : freinage dynamique et virage assisté (inversion d’un moteur dans les angles serrés).
Communication série
- Liaison UART via un FT232RL.
- Protocole binaire maison :
SOF | fonction | payload | checksum XOR, robuste aux trames corrompues. - Émission non bloquante grâce à une FIFO circulaire sous interruptions.
Supervision temps réel
Une application C# / WPF affiche vitesses linéaire et angulaire en temps réel (SciChart, façon oscilloscope), permet le pilotage au clavier et la bascule entre mode autonome et supervisé. Indispensable pour régler l’asservissement.
Asservissement
- Double PID (vitesses linéaire et angulaire), codeurs en quadrature lus à 250 Hz via les modules QEI.
- Comparaison des architectures indépendante et polaire — la polaire est retenue pour sa stabilité.
- En position, le robot suit un « ghost » virtuel. J’ai ajouté une modulation de la vitesse linéaire par l’erreur d’angle (vitesse nulle à 90°) : le robot n’avance que s’il fait face à sa cible, ce qui améliore nettement le freinage et la précision d’arrêt.