« Zumo32U4 linefollower » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 3 : | Ligne 3 : | ||
</br>[[File:Zumo001.png]] | </br>[[File:Zumo001.png]] | ||
'''2. Dans la barre à gauche, | '''2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.''' | ||
</br>[[File:Zumo002.png]] | </br>[[File:Zumo002.png]] | ||
Version du 1 décembre 2025 à 14:29
Configuration initiale
1. À partir du bureau de Windows ou du gestionnaire d'application, démarrez Arduino IDE :
2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.
3. Allez dans « File => Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :
https://files.pololu.com/arduino/package_pololu_index.json
Copier et coller au besoin.
Appuyez sur « OK ».
4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.
5. Allez dans « File => Examples => Zumo32U4 » et cliquez sur « LineFollower ».
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :
Zumo32U4LCD display; // Zumo32U4OLED display;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » :

Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.
Modification du programme
9. Trouvez la ligne
const uint16_t maxSpeed = 400;
Ajoutez les lignes suivantes en dessous.
const uint16_t maxSpeed = 400; // Paramètres PID const float kp = 1; // Action proportionnelle qui travaille avec l'erreur actuelle const float ti = 1; // Action intégrale (en seconde) qui travaille avec le passé de l'erreur const float td = 0.05; // Action dérivé (en seconde) qui travaille avec le futur de l'érreur
10. Trouvez la ligne
int16_t lastError = 0;
et changez la pour
float lastError = 0;
11. Trouvez les lignes
int16_t speedDifference = error / 4 + 6 * (error - lastError); lastError = error;
et changez les pour
float kperreur = kp*error; float accumulateur = accumulateur + kperreur; accumulateur = constrain(accumulateur, 0, 5*maxSpeed); float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError); lastError = kperreur;
12. Ajustez vos paramètres
const uint16_t maxSpeed = 400; // Paramètres PID const float kp = 1; // Action proportionnelle qui travaille avec l'erreur actuelle const float ti = 1; // Action intégrale (en seconde) qui travaille avec le passé de l'erreur const float td = 0.05; // Action dérivé (en seconde) qui travaille avec le futur de l'érreur
La vitesse maximale est de 400. À cette vitesse, l'algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d'augmenter en vitesse par la suite.
Le kp est le paramètre proportionnelle qui réagit directement. C'est comme donner un coup de volant. Le ki est le paramètre de l'action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n'est pas très utile car le robot bouge rapidement. Le kd est le paramètre de l'action dérivé, il corrige rapidement les tendences de l'erreurs mais augmente l'instabilité du robot.