Brancher un codeur sur un VESC (AS5047, ABI) : quand, pourquoi et comment le régler
Un codeur (encodeur) mesure la position du rotor avec bien plus de finesse que les capteurs Hall. Sur un VESC, il permet un couple précis à l'arrêt, une commande en position et un fonctionnement propre à très basse vitesse. Mais il demande une installation mécanique soignée et un réglage spécifique, et il n'est utile que pour certaines machines. Voici ce que propose VESC Tool, comment le régler, et dans quels cas il vaut l'effort.
L'essentiel
- Le type de codeur se choisit dans Motor Settings, General, onglet Sensors, paramètre Sensor Port Mode.
- En FOC, on choisit ensuite Encoder dans Sensor Mode (page FOC).
- Un AS5047 donne une position absolue dès la mise sous tension ; un codeur ABI doit d'abord trouver son impulsion d'index.
- La détection du codeur mesure trois valeurs : Encoder Offset, Encoder Ratio et Encoder Inverted.
- Sur un moteur-roue de trottinette, les capteurs Hall suffisent presque toujours.
Codeur, Hall, sans capteur : la différence
Les capteurs Hall intégrés à la plupart des moteurs donnent la position par paliers de 60 degrés électriques. VESC interpole entre ces paliers, ce qui suffit largement à démarrer un véhicule. Un codeur donne la position en continu, avec des milliers de pas par tour. Sans capteur, le contrôleur estime la position par le calcul, ce qui marche bien en roulant mais mal à l'arrêt. Notre guide sur les capteurs de position Hall, codeur et résolveur compare les technologies.
L'aide de VESC Tool résume bien les usages : le codeur fonctionne bien pour les applications de commande en position, comme une fraiseuse à commande numérique ; les capteurs Hall donnent des démarrages sans délai mais conviennent moins à la commande en position.
Les codeurs proposés par VESC Tool
Le paramètre Sensor Port Mode liste les capteurs que le firmware sait lire. Les plus courants :
| Sensor Port Mode | Principe | Point d'attention |
|---|---|---|
| Hall Sensors | Les capteurs Hall du moteur | Le réglage par défaut |
| ABI Encoder | Codeur incrémental à sorties A, B et index | Inutile tant que l'index n'est pas trouvé ; régler Encoder counts |
| AS5047 Encoder | Codeur magnétique relié en SPI | Position absolue dès le départ, un peu de non-linéarité |
| AS5X47U Encoder (SPI) | AS5147U ou AS5247U, avec fonctions de sécurité | Se branche sur le port COMM ; aucune application ne doit utiliser l'UART, l'I2C, ADC2 ou ADC3 |
| Sin/Cos Encoder | Sorties analogiques sinus et cosinus | Sensible aux perturbations : câble blindé et filtrage |
| AD2S1205 Resolver | Résolveur avec circuit de conversion | Matériel spécifique |
La liste contient d'autres modèles (MT6816, TLE5012, BISSC, etc.), qui varient selon la version du firmware. L'aide de VESC Tool rappelle que ce paramètre n'a aucun effet tant que le moteur fonctionne sans capteur.
Le cas du codeur ABI
Un codeur ABI ne connaît pas sa position absolue à la mise sous tension. D'après l'aide, le contrôleur tourne alors en boucle ouverte jusqu'à un tour mécanique pour trouver l'impulsion d'index, au premier démarrage après chaque mise sous tension. Le paramètre Encoder counts doit être réglé : c'est en général la résolution du codeur multipliée par quatre, car chaque front des deux signaux est compté.
Le montage mécanique
Un codeur magnétique comme l'AS5047 lit un petit aimant fixé au bout de l'arbre qui tourne, la puce restant fixe en face, bien centrée et à faible distance. Tout jeu, tout faux-rond se traduit par une erreur de position. Sur un moteur à arbre tournant, c'est relativement simple. Sur un moteur-roue de trottinette, l'axe est fixe et c'est la cloche extérieure qui tourne : loger un codeur demande une vraie adaptation mécanique. C'est une des raisons pour lesquelles les moteurs-roues s'en tiennent aux capteurs Hall.
Côté câblage, le codeur se branche sur le port capteurs ou sur le port de communication selon le modèle et la carte. Les liaisons numériques n'aiment pas les longs câbles à côté des fils de phase : câble court, blindé si possible, éloigné de la puissance.
Le réglage dans VESC Tool
- Choisissez le codeur dans Sensor Port Mode et écrivez la configuration.
- Faites la détection FOC du moteur (résistance, inductance, flux) comme d'habitude : voir notre guide sur la détection FOC.
- Lancez la détection du codeur (rubrique d'aide Detect FOC Encoder Parameters) : d'après cette aide, le moteur tourne lentement en boucle ouverte dans les deux sens, sur un tour mécanique, pendant que le codeur est lu.
- Vérifiez les trois résultats : Encoder Offset (décalage entre le zéro du codeur et celui du moteur), Encoder Ratio (le nombre de paires de pôles pour un codeur monté directement sur l'arbre : 7 pour un moteur à 14 pôles, comme le dit l'aide) et Encoder Inverted (codeur qui compte à l'envers).
- Appliquez, puis choisissez Encoder dans Sensor Mode de la page FOC.
Au-delà d'une certaine vitesse, le contrôleur peut passer en mode sans capteur : c'est le réglage Sensorless ERPM de l'onglet Encoder. Pour vérifier que codeur et observateur sont d'accord, la page Realtime Data propose un tracé Obs vs Enc : l'écart entre la position estimée et la position mesurée doit rester faible.
Quand le codeur vaut l'effort
- Commande en position : robots, bras, axes, servomécanismes. Voir notre guide sur les modes de commande VESC.
- Couple précis à vitesse nulle et à très basse vitesse : treuils, mécanismes chargés au démarrage.
- Moteurs sans capteur Hall et sans saillance suffisante pour le HFI : voir notre guide sur le HFI.
Sur une trottinette ou une moto légère, un codeur apporte rarement un gain sensible par rapport à des capteurs Hall en bon état.
Le conseil de l'atelier
Un codeur mal fixé est pire qu'aucun capteur : une position fausse sous charge donne des à-coups ou une perte de couple. Soignez le support, le centrage de l'aimant et le câble avant de toucher aux réglages. Pour un robot ou une machine spéciale, notre bureau d'études conçoit la motorisation complète, capteur compris, dimensionnée pour la machine ; pour une intervention ponctuelle, notre atelier travaille à l'heure (https://rage-mechanics.com/fr/nos-produits/1529-main-d-oeuvre-30-minutes.html).
Questions fréquentes
Faut-il un codeur sur une trottinette VESC ?
Presque jamais. Les capteurs Hall du moteur-roue donnent un démarrage franc, et l'observateur prend le relais en roulant. Le codeur se justifie pour la commande en position ou le couple précis à l'arrêt.
Que vaut Encoder Ratio ?
Pour un codeur monté directement sur l'arbre, le nombre de paires de pôles du moteur. La détection du codeur le mesure.
Pourquoi mon codeur ABI ne sert à rien au démarrage ?
Il doit d'abord trouver son impulsion d'index. En attendant, le contrôleur tourne en boucle ouverte, jusqu'à un tour mécanique après chaque mise sous tension.
Le moteur tourne mal avec le codeur, que vérifier ?
Le montage mécanique (jeu, centrage de l'aimant), le câblage, puis refaire la détection du codeur. Le tracé Obs vs Enc de la page Realtime Data montre si la position mesurée est cohérente.