47 lines
2.7 KiB
Markdown
47 lines
2.7 KiB
Markdown
Fonctionnement en mode Servo "Classique"
|
|
========================================
|
|
|
|
En faisant varier la consigne de position de -512 à 5120, nous observons des butées logicielles à 0 et à 4093. Notons aussi que la position renvoyée peut reboucler à 0 comme indiqué sur le graphique. Nous avons globalement le fonctionnement d'un servomoteur classique, sauf que nous avons le retour de position et que nous pouvons régler également la vitesse.
|
|
|
|
|
|
Voici le graphique obtenu à partir du comportement du servomoteur.
|
|
|
|

|
|
|
|
|
|
Suppression des butées
|
|
-----------------------
|
|
|
|
En faisant varier la consigne de position de -512 à 5120, nous observons l'absence de butées logicielles.
|
|
|
|
Voici le graphique obtenu à partir du comportement du servomoteur.
|
|
|
|

|
|
|
|
Seulement, en poussant le servomoteur un peu plus loin, nous observons que le multitour est limité. Lorsqu'il doit faire son 8e tour (ou presque), le servomoteur part dans l'autre sens à toute vitesse. Un tour correspond à 4096 points de codeurs et la position est enregistrée sur 16 bits, donc avec une limite vers 32700 (en positif ou en négatif).
|
|
|
|
Nous remarquons que la valeur de la position du servo est toujours comprise entre 0 et 4095. Pas moyen de savoir combien de tours le servomoteur a fait.
|
|
|
|
Sur le graphique ci-dessous, nous voyons que le servomoteur (position en bleu) s'affole quand la consigne passe au dessus de 32000.
|
|
|
|

|
|
|
|
Note : Pour la butée logicielle haute, contrairement à ce qui est indiqué dans la documentation, des valeurs plus grandes que 4095 sont acceptées.
|
|
|
|
Retour de position qui correspond à la consigne
|
|
-----------------------------------------------
|
|
|
|
En passant le bit4 du registre 0x12 à 1, vous obtenez un retour de position du servomoteur qui n'est plus bloqué entre 0 et 4095. Mais attention, cette valeur n'est pas celle qui persistera à une coupure de courant. Si votre servo s'arrête à la position 6000, après une extinction, vous lire une position à 1904.
|
|
|
|
C'est donc une solution intéressante tant que vous avez un moyen de refaire le zéro à la mise sous tension.
|
|
|
|
Fonctionnement en mode Servo "Classique" - basse résolution
|
|
=========================================================
|
|
|
|
Un paramètre permet de baisser artificiellement la résolution du codeur. Ceci permet, en interrogeant le servo de savoir où il se trouve sur une position de 0 à 4095, d'avoir une réponse sur 2 ou 3 tour, en fonction de la valeur de 0x1E :
|
|
- 2 : ce sera sur 2 tours
|
|
- 3 : ce sera sur 3 tours
|
|
|
|
En théorie, ceci va de pair avec une perte en précision, qui est probablement négligeable.
|
|
|
|
Je ne comprends pas trop l'intérêt de ce mode. La valeur de position n'est pas persistante après une extinction... |