Premier pas avec des moteurs et leurs encodeurs

8 septembre 2012

 Préparation

Notre matériel :

  • Moteur MFA 919D111 : réducteur de 1:11
  • Encodeur HEDR-5420-ES214 : 200 impulsions par tour

Notre moteur est un peu particulier. Il dispose de deux axes de sortie. D’un coté l’axe est relié au réducteur, de l’autre il est possible de fixer un codeur incrémental. Ceci permet d’améliorer la résolution du codeur en la multipliant par le rapport de réduction du réducteur. Avec un codeur qui renvoie 200 impulsions par tour, nous aurons, avec un réducteur de 10:1, 2 000 impulsions par tour de l’axe en sortie du réducteur. Avec un réducteur de 50:1, nous aurons 10 000 impulsions par tour d’axe de l’axe en sortie du réducteur.

L’inconvénient est que cette précision est parfois fictive, le codeur ne mesurant pas les déplacements dus au jeu du réducteur.


Moteur avec un axe arrière (photo)

Moteur avec un axe arrière (schéma)

Avant de commencer nos investigations, il faut fixer l’encodeur sur l’axe arrière du moteur. Notre axe était un peu trop long, nous avons du le scier à la main. Cependant, le plus délicat fut de se créer une pièce pour augmenter le diamètre de l’axe. L’axe arrière a un diamètre de 1/8 de pouce (3,1 mm). Le codeur est conçu pour des axes de 5 mm. Transformant temporairement notre perceuse à colone en tour, nous limons une baguette de bois de 6 mm pour avoir un diamètre extérieur de 5 mm. Ensuite nous perçons cet axe avec un forêt de 1/8 de pouce, acheté pour l’occasion. La fin du montage s’est faite en suivant les instructions de montage de la fiche technique.


Moteur avec un codeur monté (photo)

Moteur avec un codeur monté (schéma)

Nous n’avons pas encore nos cartes définitives, nous recyclons l’une de nos vieilles cartes pour faire nos tests. Nous utilisons les fonctionnalités suivantes de notre microcontrôleur :

  • 1 timer pour compter les fronts
  • 1 UART couplé à un max232 qui envoie les données au PC via un cable serie-USB

 Manipulation

Le but est de valider deux choses :

  • que le capteur est bien monté, c’est à dire qu’il renvoie bien 200 impulsions par tour (imp/tour). Un codeur mal monté pourrait ne renvoyer des impulsions que sur une portion du disque codeur
  • que le principe du code est bon.

Nous ne nous soucions pas (pour l’instant) du sens de rotation du moteur.

Pour notre premier essais, nous lisons à intervalles fixes la valeur du compteur puis nous le réinitialisons. Nous ajoutons cette valeur lue à une variable NbImpulsionTotal que nous envoyons par la liaison série. Nous relevons le nombre d’impulsions au bout d’un tour effectué par l’axe en sortie du réducteur.

Nous relevons des valeurs proches de 1800 imp/tour, assez loin des 2200 imp/tour que nous espérions mesurer.

Nous mettons en cause le code. En réduisant la fréquence de lecture/réinitialisation du compteur, nous obtenons des valeurs plus proches de celle espérée, mais de l’ordre de 2000 imp/tour

 Modification du code

Nous venons d’invalider le principe du code. Entre le moment où nous lisons le timer et le moment où nous l’effaçons, un ou plusieurs fronts ont pu arriver. Ceux-ci ne seront pas comptabilisés.

Nous utilisons alors une autre méthode. Nous mémorisons l’ancienne valeur du compteur que nous soustrayons à la valeur actuelle du compteur. De cette manière nous ne modifions pas le compteur. Il faut, par contre, prendre garde au rebouclage du compteur. Lorsque le compteur atteint sa valeur maximal, il se remet à zéro. Pour cela, nous vérifions que l’ancienne valeur du compteur est inférieure à la valeur actuelle. Dans le cas contraire, c’est que le compteur à rebouclé et la méthode de calcul du nombre d’impulsions vues doit être modifiée.

 Résultat surprenant

Avec ce nouvel algorithme, nous observons toujours des valeurs très proches de 2000 impulsions par tour de réducteur. Le doute fini par s’installer dans nos esprits : et si la valeur donnée pour le réducteur était fausse ?

Nous mesurons les diamètres des roues du réducteur et les comparons avec les diamètres avec des roues dentées similaires vendues en ligne. Il nous semble très probable que le réducteur soit finalement de 1:10...

Commentaires

Il n'y a pas de commentaires

Ajouter un commentaire

Pseudo :
Mail :

Texte :

Copyright "POIVRON" 2011-2023, tous droits réservés
Administration du site