Projet de Robot Suiveur de Ligne

1. Objectif du projet

Le projet consistait à développer un robot capable de suivre une trajectoire prédéfinie à l’aide de capteurs infrarouges détectant une ligne blanche réfléchissante sur un sol gris. Le robot devait maintenir une vitesse constante tout en suivant la ligne de manière autonome.

2. Cahier des charges

L'objectif était de concevoir un robot répondant aux spécifications suivantes :

3. Présentation du robot - Hardware

Le robot est équipé de plusieurs composants essentiels :

4. Surveillance de la batterie via ADC avec un analog watchdog

Le système utilise un ADC pour convertir la tension de la batterie en une valeur numérique que le microcontrôleur peut lire et surveiller. Un analog watchdog est configuré pour déclencher une alerte si la tension de la batterie dépasse les seuils prédéfinis hauts ou bas. Ce qui protège le robot contre les conditions de batterie faible ou surchargée, évitant ainsi les arrêts inattendus ou les dommages au système.

5. Développement du code

Le développement du code a été réalisé avec l’environnement de développement intégré (IDE) STM32CubeIDE, utilisant le langage C. Voici les principaux composants du développement du code :

Boucle Principale

Initialement, les LEDs émettrices des capteurs sont activées, suivies par le lancement du timer 6 (Le timer 6 génère des interruptions à intervalles réguliers pour initier les conversions ADC qui mesurent les valeurs des capteurs et de la batterie du robot). Les moteurs sont ensuite mis en marche avec un rapport cyclique ajusté à 23000, basé sur des mesures expérimentales effectuées avec un chronomètre et un mètre. La logique de traitement des signaux captés par les capteurs 3 et 4 est mise en œuvre comme suit :

Ces opérations sont effectuées à condition que la variable start soit activée (valeur de 1). Si start est désactivée (valeur de 0), les moteurs s’arrêtent, plaçant le robot en état de pause.

Les interruptions du projet

Dans notre projet, quatre callbacks principaux ont été implémentés :

6. Options supplémentaires

Filtre anti-rebond : Un filtre anti-rebond a été ajouté pour éviter que des interruptions multiples soient déclenchées lors de l’appui sur le bouton de démarrage. Ce filtre empêche les erreurs en ne prenant en compte que la première pression.

Learn more about this project here

© Yasmine Salmouni