From 18fa86c539aac6dc9562338dc4048d49e6ca31bd Mon Sep 17 00:00:00 2001 From: Samuel Date: Sun, 10 Aug 2025 20:58:22 +0200 Subject: [PATCH] =?UTF-8?q?Basse=20r=C3=A9solution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 38 +++++++++++++++++++++++++++++++++++ doc/ModeServo_SansButée.png | Bin 0 -> 33215 bytes doc/ModeServo_rebouclage.png | Bin 0 -> 30097 bytes src/main.cpp | 12 +++++++++-- 4 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 doc/ModeServo_SansButée.png create mode 100644 doc/ModeServo_rebouclage.png diff --git a/Readme.md b/Readme.md index c694fd1..010c9dd 100644 --- a/Readme.md +++ b/Readme.md @@ -7,3 +7,41 @@ En faisant varier la consigne de position de -512 à 5120, nous observons des bu Voici le graphique obtenu à partir du comportement du servomoteur. ![](/doc/ModeServo_normal.png) + + +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. + +![](/doc/ModeServo_SansButée.png) + +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. + +![](doc/ModeServo_rebouclage.png) + +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... \ No newline at end of file diff --git a/doc/ModeServo_SansButée.png b/doc/ModeServo_SansButée.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7de4a3de93be0d770e93587f19b019541894c0 GIT binary patch literal 33215 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 literal 0 HcmV?d00001 diff --git a/doc/ModeServo_rebouclage.png b/doc/ModeServo_rebouclage.png new file mode 100644 index 0000000000000000000000000000000000000000..079ffceab8274b40ad8196e64874c15ea2245eea GIT binary patch literal 30097 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 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index 6e3d994..23ecef5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,6 +25,7 @@ void setup() { Serial.begin(115200);//sts舵机波特率1000000 Serial1.begin(1000000);//sts舵机波特率1000000 sms_sts.pSerial = &Serial1; + delay(5000); } @@ -98,8 +99,15 @@ enum etat_t test_ping() enum etat_t configure_servomoteur(){ sms_sts.ServoMode(SERVO_ID); + sms_sts.writeByte(SERVO_ID, 0x09, 0); // Butée min à 0 + sms_sts.writeByte(SERVO_ID, 0x0A, 0); // Butée min à 0 + sms_sts.writeByte(SERVO_ID, 0x0B, 0); // Buté max à 0, pour activer le multitour + sms_sts.writeByte(SERVO_ID, 0x0C, 0); // Buté max à 0, pour activer le multitour + sms_sts.writeByte(SERVO_ID, 0x1E, 3); - sms_sts.writeByte(SERVO_ID, 0x12, 3); // Registre de "Phase" + sms_sts.writeByte(SERVO_ID, 0x12, 0x7C); // Registre de "Phase", valeur par défaut 108 (0x6C) + + return TERMINE; } @@ -116,7 +124,7 @@ enum etat_t mouvement_servomoteur(){ // On avance ou recule de d'un pas position += pas_servo; // si position > 5000 ou position < 0 - if(position > 5000 || position < 0){ + if(position > 20100 || position < 0){ pas_servo = -pas_servo; } sms_sts.WritePosEx(SERVO_ID, position, 4800);