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:piloter_les_moteurs [15/01/2025 11:12]
Keuronde [Le module PWM]
fr:informatics:piloter_les_moteurs [29/01/2025 09:56] (Version actuelle)
Keuronde [Module PWM et Raspberry Pi Pico]
Ligne 30: Ligne 30:
 ==== Initialisation des moteurs ==== ==== Initialisation des moteurs ====
  
-Voici le code d’initialisation des moteurs. Les broches de sens en sortie, la broche « Enable » en PWM configurée à une fréquence de XX kHz.+Initialisez les broches de sens en sortie, configurez la broche « Enable » en PWM
 + 
 +Idéalement nous aimerions configurer notre fonction PWM à une fréquence comprise entre 20 kHz et 40 kHz, ce qui limite les sifflements du moteur. Seulement, notre pont en H est un peu vieux et le fabriquant conseille de ne pas dépasser 5 kHz. Configurez alors la fonction PWM à une fréquence de 5 kHz. Pour cela, vous avez en général deux paramètres sur lesquels jouer : 
 + 
 +  * Un diviseur de fréquence en entrée du bloc PWM 
 +  * La valeur de rebouclage du module PWM 
 +Commencez par déterminer la valeur de rebouclage du PWM avec la formule suivante : 
 +Rebouclage=FmicrocontrôleurFdésirée 
 +Si votre valeur de rebouclage est plus grande que celle admise par votre microcontrôleur, alors vous devrez diviser votre fréquence en entrée du PWM. 
 + 
 +Dans notre cas, F_microcontrôleur = 125 MHz, F_désirée = 5 kHz. Nous trouvons une valeur de rebouclage à 25 000. cette valeur est admissible par le module PWM qui est sur 16 bits (max 65 535).
 ==== Commande en vitesse ==== ==== Commande en vitesse ====
  
-Le module PWM du RP2040 fonctionne sur 16 bits. 16 bits permet de coder des nombres de 0 à 65535. Tel que nous avons initialisé le module PWM, nous profitons de toute la plage des 16bits.+Le module PWM du RP2040 fonctionne sur 16 bits. 16 bits permet de coder des nombres de 0 à 65535. Tel que nous avons initialisé le module PWM, nous profitons que d’une partie de la plage des 16 bits.
  
 ^ Vitesse souhaitée ^ Commande ^ ^ Vitesse souhaitée ^ Commande ^
 | 0 % | 0 | | 0 % | 0 |
-| 10 % | 6554 +| 10 % | 2500 
-| 50 % | 32768 +| 50 % | 12500 
-| 90 % | 58982 +| 90 % | 22500 
-| 100 % | 65536 |+| 100 % | 25000 |
 Voici qui est vrai pour le module PWM, mais pour notre fonction qui gère la commande de la vitesse du moteur, nous souhaitons gérer une subtilité supplémentaire : le sens du moteur. Voici qui est vrai pour le module PWM, mais pour notre fonction qui gère la commande de la vitesse du moteur, nous souhaitons gérer une subtilité supplémentaire : le sens du moteur.
 ===== Structure du code ===== ===== Structure du code =====
Ligne 53: Ligne 63:
   * Nous voulons que cette fonction prenne en argument le moteur à piloter. Ceci afin de simplifier le code qui utilisera cette fonction.   * Nous voulons que cette fonction prenne en argument le moteur à piloter. Ceci afin de simplifier le code qui utilisera cette fonction.
  
 +Dans le fichier .h, définissez une constante MOTEUR_COMMANDE_MAX, qui vous servira à la fois dans votre code d’initialisation et de pilotage des moteurs et dans votre code de démonstration.
 ==== Module PWM et Raspberry Pi Pico ==== ==== Module PWM et Raspberry Pi Pico ====
 Attention, pour utiliser le module PWM, vous devez éditer votre fichier CMakeLists.txt pour ajouter hardware_pwm dans « target_ling_libraries », comme ceci : Attention, pour utiliser le module PWM, vous devez éditer votre fichier CMakeLists.txt pour ajouter hardware_pwm dans « target_ling_libraries », comme ceci :
   target_link_libraries(PAMI_Cours_Moteurs   target_link_libraries(PAMI_Cours_Moteurs
-  ... +      ... 
-  hardware_pwm  +      hardware_pwm  
-  ...+      ...
   )   )
  
Ligne 88: Ligne 99:
  
 Avec ce bout de code, votre robot avance et recule comme s’il accélérait progressivement. Avec ce bout de code, votre robot avance et recule comme s’il accélérait progressivement.
 +
 +Voir la branche [[https://git.poivron-robotique.fr/Keuronde/Art_deplacer_robot/src/branch/Moteurs|« Moteur » du dépot]]
  
 Aller, courage ! Encore une étape et nous pourrons entrer dans le vif du sujet. Aller, courage ! Encore une étape et nous pourrons entrer dans le vif du sujet.