Outils pour utilisateurs

Outils du site


rotary_encoder_controller

Ceci est une ancienne révision du document !


Réalisation d'un controller pour capteur de position angulaire optique

Objectif

Pour le pendule de Furuta, mesurer les positions angulaire des 2 axes est très important. Pour obtenir des mesures efficace des capteurs optiques, nous faisons le choix de réaliser un contrôleur avec un microcontrôleur esp32.

Dépôt

Url github du dépôt Le projet est compatible avec les 2 IDE :

  • Arduino IDE
  • PlatformIO

Features

  • Contrôle actuellement 2 capteurs
  • Enregistre les périodes entre chaque événement en µs.
  • Conserve une liste des périodes dont la taille est paramétrable.
  • Communique les positions et vitesse via SPI avec un master.

Tests

Construction d'un simulateur pour faire des tests :

  • 1 Version tout intégré contrôler + simulateur sur le même ESP32.
  • 1 Version installé sur 2 ESP32 pour intégrer les tests de communication SPI.

Limitations:

  • la génération des signaux de simulation sont interrompu lorsque l'on réalise les assertions : le test n'est pas complètement dynamique.

Documentation de la communication SPI

TODO

Qu'est-ce qui fonctionne

  • Le comptage des événements
  • Le calcul de la position
  • Le paramétrage du nombre de points
  • L'activation/désactivation du mode quadrature
  • Le calcul des périodes
  • Le stockage des périodes
  • La communication SPI

Qu'est-ce qui reste à faire

  • Tester le mode quadrature désactivé
  • Améliorer la performance des interruptions en rendant static le mode utilisé (quadrature ou non).
  • Fournir une api (avec un begin(...), ...) pour manipuler un sensor.
  • Simplifier si possible la commande SPI de timing du controller, en utilisant la pin d'activation (SS) du SPI si possible.

Ancienne version adapté par Serge pour Arduino IDE

rotary_encoder_controller.1655876327.txt.gz · Dernière modification : 2022/06/22 07:38 de bigMax