Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
fr:informatics:asservir_les_moteurs_en_vitesse [30/01/2025 12:50]
Keuronde [Réglage de l’asservissement]
fr:informatics:asservir_les_moteurs_en_vitesse [11/01/2026 12:14] (Version actuelle)
Keuronde [Trajectoire circulaire]
Ligne 57: Ligne 57:
 Enfin la commande s’obtient en sommant les commandes précédentes : Enfin la commande s’obtient en sommant les commandes précédentes :
   commande = commande_P + commande_I + commande_D   commande = commande_P + commande_I + commande_D
-Voila pour le correcteur. Maintenant, il reste deux tâches. Régler les gains, ce sera votre travail, mais surtout structurer le code pour mettre en œuvre ce correcteur.+Voilà pour le correcteur. Maintenant, il reste deux tâches. Régler les gains, ce sera votre travail, mais surtout structurer le code pour mettre en œuvre ce correcteur.
 ===== Structure du code ===== ===== Structure du code =====
  
Ligne 68: Ligne 68:
   Temps_init()   Temps_init()
 Dans la boucle principale, utilisez les fonctions de temps pour n’exécuter votre code qu’à intervalles réguliers. Dans la boucle principale, utilisez les fonctions de temps pour n’exécuter votre code qu’à intervalles réguliers.
-  temps_ms=0 ;+  m_temps_ms=0 ;
   while(1){   while(1){
-    if(Temps_get_ms()!= temps_ms){ +    if(Temps_get_temps_ms()!= temps_ms){ 
-      if(Temps_get_ms() % pas_de_temps == 0){+      if(Temps_get_temps_ms() % pas_de_temps == 0){
         // Votre futur code ici         // Votre futur code ici
       }       }
Ligne 90: Ligne 90:
   * AsserMoteur_setConsigne_mm_s(vitesse, moteur) : stocke la consigne de vitesse pour le moteur sélectionné   * AsserMoteur_setConsigne_mm_s(vitesse, moteur) : stocke la consigne de vitesse pour le moteur sélectionné
  
-#LIEN vers code complet+[[https://git.poivron-robotique.fr/Keuronde/Art_deplacer_robot/src/branch/Asservissement_des_moteurs/Asser_Moteurs.c|Lien vers le code du module]]
  
 ==== Finalisation ==== ==== Finalisation ====
Ligne 97: Ligne 97:
   float consigne_vitesse = 200; // Consigne en mm/s.   float consigne_vitesse = 200; // Consigne en mm/s.
   int demi_periode = 2000; // Temps haut ou bas du créneau (en ms)   int demi_periode = 2000; // Temps haut ou bas du créneau (en ms)
-A l’intérieur de votre « if(Temps_get_ms()!= temps_ms){ … } » : +A l’intérieur de votre « if(Temps_get_temps_ms()!= m_temps_ms){ … } » : 
-  if(Temps_get_ms() % demi_periode  == 0){+  if(Temps_get_temps_ms() % demi_periode  == 0){
     consigne_vitesse = - consigne_vitesse;     consigne_vitesse = - consigne_vitesse;
     AsserMoteur_setConsigne_mm_s(consigne_vitesse, MOTEUR_A);     AsserMoteur_setConsigne_mm_s(consigne_vitesse, MOTEUR_A);
Ligne 141: Ligne 141:
 Pour le gain_D, débrouillez-vous ! Nous, nous ne nous en servons pas… Pour le gain_D, débrouillez-vous ! Nous, nous ne nous en servons pas…
  
 +Le code est disponible sur la branche « [[https://git.poivron-robotique.fr/Keuronde/Art_deplacer_robot/src/branch/Asservissement_des_moteurs|Asservissement des moteurs]] ».
 ===== Codes de démonstration ===== ===== Codes de démonstration =====
  
Ligne 146: Ligne 147:
 ==== Trajectoire circulaire ==== ==== Trajectoire circulaire ====
  
-Donnez 2 vitesses fixes mais différentes à vos moteurs pour obtenir un PAMI qui suit une trajectoire circulaire. Essayez les vitesses de 100 mm·s et 200 mm/s. Observez également à quel point votre PAMI se décale (ou non) au fil des passages.+Donnez 2 vitesses fixes mais différentes à vos moteurs pour obtenir un PAMI qui suit une trajectoire circulaire. Essayez les vitesses de 100 mm/et 200 mm/s. Observez également à quel point votre PAMI se décale (ou non) au fil des passages.
  
 #Vidéo PAMI #Vidéo PAMI
Ligne 156: Ligne 157:
 Si votre coefficient de conversion des pas du codeur en millimètres parcourus par la roue est bon, vous devriez observer que le déplacement réel correspond globalement à celui programmé (à la fois en termes de vitesse et en termes de distance). Si votre coefficient de conversion des pas du codeur en millimètres parcourus par la roue est bon, vous devriez observer que le déplacement réel correspond globalement à celui programmé (à la fois en termes de vitesse et en termes de distance).
  
-Observez également le décalage de votre PAME d’un aller-retour à l’autre !+Observez également le décalage de votre PAMI d’un aller-retour à l’autre !
  
 #Vidéo PAMI #Vidéo PAMI