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:lire_les_codeurs [29/01/2025 10:49]
Keuronde [Code de démonstration]
fr:informatics:lire_les_codeurs [10/01/2026 19:02] (Version actuelle)
Keuronde [Code de démonstration]
Ligne 30: Ligne 30:
 ===== D’abord, ne pas coder ! ===== ===== D’abord, ne pas coder ! =====
  
-C’est une tâche qu’il ne faut pas laisser au cœur de votre microcontrôleur. Celui-aura plein d’autres tâches que de guetter ces impulsions.+C’est une tâche qu’il ne faut pas laisser au cœur de votre microcontrôleur. Celui-ci aura plein d’autres tâches que de guetter ces impulsions.
  
 Utilise des interruptions ? C’est peut-être la plus mauvaise des solutions acceptables. Si votre microcontrôleur est assez rapide… Utilise des interruptions ? C’est peut-être la plus mauvaise des solutions acceptables. Si votre microcontrôleur est assez rapide…
Ligne 59: Ligne 59:
 //Note// : envoyer les données du microcontrôleur à l’ordinateur prend du temps, parfois plus d’une milliseconde. Notre code en exemple montre les effets du temps d’acquisition sur la résolution, mais l’envoie des données nous empêche d’avoir un cycle constant à une milliseconde. Par la suite, nous chargerons le second cœur du microcontrôleur de gérer l’envoi au PC tandis que le cœur principal gérera les fonctions liées au déplacement. //Note// : envoyer les données du microcontrôleur à l’ordinateur prend du temps, parfois plus d’une milliseconde. Notre code en exemple montre les effets du temps d’acquisition sur la résolution, mais l’envoie des données nous empêche d’avoir un cycle constant à une milliseconde. Par la suite, nous chargerons le second cœur du microcontrôleur de gérer l’envoi au PC tandis que le cœur principal gérera les fonctions liées au déplacement.
  
-Vous devriez obtenir ce type de graphique où le lien de dérivation entre la position et la vitesse est clairement identifiable.+Vous devriez obtenir ce type de graphique, en haut la vitesse, en bas la distance parcourue. Le lien de dérivation entre la position et la vitesse est clairement identifiable.
  
 {{ :fr:informatics:codeurs_acq_1ms.png?direct&400 | }} {{ :fr:informatics:codeurs_acq_1ms.png?direct&400 | }}
  
-L'exemple ci-dessus montrer une période d'acquisition à 1 milliseconde. La faible résolution de la mesure se fait sentir avec une vitesse crénelée. Ci-dessous, une acquisition similaire, mais avec une période de 20 millisecondes, nous observons une vitesse bien plus lisse...+L'exemple ci-dessus montre une période d'acquisition à 1 milliseconde. La faible résolution de la mesure se fait sentir avec une vitesse crénelée. Ci-dessous, une acquisition similaire, mais avec une période de 20 millisecondes, nous observons une vitesse bien plus lisse...
  
 {{ :fr:informatics:codeurs_acq_20ms.png?direct&400 |}} {{ :fr:informatics:codeurs_acq_20ms.png?direct&400 |}}
Ligne 75: Ligne 75:
 Avec le RP2040, vous devrez modifier votre fichier CMakeLists.txt pour que votre code compile ! Avec le RP2040, vous devrez modifier votre fichier CMakeLists.txt pour que votre code compile !
  
-# Fournir les modifications +Vous devez rajouter cette ligne pour générer le fichier d’initialisation du module PIO :
  
-Vous devriez obtenir ce type de graphique où le lien de dérivation entre la position et la vitesse est clairement identifiable +  pico_generate_pio_header(PAMI_Cours_Codeurs ${CMAKE_CURRENT_LIST_DIR}/quadrature_encoder.pio)
- +
-#IMG Capture Teleplot+
  
 ===== Débogage ===== ===== Débogage =====
  
 Si vos valeurs restent à 0 : Si vos valeurs restent à 0 :
-  * Vérifier la bonne connexion de vos codeurs (voir Mise en route d’un PAMI)+  * Vérifier la bonne connexion de vos codeurs (voir [[fr:informatics:mise_en_route_du_pami|Mise en route du PAMI]])
   * Assurez-vous d’avoir bien initialisé le module   * Assurez-vous d’avoir bien initialisé le module
   * Envoyez directement le retour de la fonction qui lit le module QEI. C’est //quadrature_encoder_get_count()// avec le SDK du RP2040   * Envoyez directement le retour de la fonction qui lit le module QEI. C’est //quadrature_encoder_get_count()// avec le SDK du RP2040
   * Vérifiez la concordance des types dans vos envois de données, surtout si vous utilisez //printf//.   * Vérifiez la concordance des types dans vos envois de données, surtout si vous utilisez //printf//.