Pour le moment j’alimente la carte arduino avec l'usb de l'ordi et le servo driver avec un bloc d'alim de 5v-5a.
J'ai 10 servo, j'en commande 4 maximun en même temps.
Pour gérer le déplacement des pattes, je commande les servo en leur donnant un pulse (const byte).
Le problème est que de temps en temps, un des servo (pas toujours le même), se décale. La ou avec un pulse de 345 il touchait le sol maintenant il est au dessus de 1cm.
Je débranche tout, je bouge les pattes manuellement, et tout refonctionne.
greg06:
Pour gérer le déplacement des pattes, je commande les servo en leur donnant un pulse (const byte).
heu c'est un PWM sur 12 bits, donc si vous avez un byte (8 bits) vous n'avez pas toute la dynamique nécessaire.
pwm.setPWM(servoPin, 0, servoPosition);
ça veut dire commencer à HIGH entre 0 et 345, puis passer à LOW jusqu'à 4095 (PWM 12-bit).
Généralement il faut calibrer son servo notamment pour trouver les 2 valeurs qui vont correspondre aux angles min et max de votre servo. (certains ne vont pas jusqu'à 0° ou 180°). Avec 345 vous êtes censé avoir quoi?
Avec les pulses. On commande directement le servo avec les pulses
pwm.setPWM(servonum, 0, pulselength);
J utilise la deuxième car plus précise
Pour déterminer la position d une patte, j incrément les pulses petit à petit jusqu’à la position souhaitée. Arrivé a la bonne position, la valeur du pulse devient ma variable const int.
Il n’y a pas 2 méthodes, au final vous réglez le PWM. l’appel à la fonction avec une valeur que vous pilotez finement est effectivement plus précise, mais ça ne change pas le fait que tout dépend de comment vos servos fonctionnent.
—> quel PWM pour l’angle min atteignable ‘souvent pas 0°) et quel PWM pour le Max (souvent pas 180°).
Si vous êtes en dessous ou au dessus de ces valeurs vous allez forcer et patiner et ne pas vous retrouver au même endroit
L’autre problème classique est que le poids du robot est trop important pour vos moteurs
j ai calibré les moteur pour être bien sur d être dans le bon intervalle.
Les moteurs ne patinent pas.
J ai pensé aussi au faite qu ils soient en sur charge. J ai donc fais des essais en reprenant le poid du robot sur un support, donc aucune charge sur les servo.
Rien à faire, de temps en temps, deux des servos change de position et il n y a que en les débranchant qui ce remettent a la bonne référence.
Peut il y avoir des défauts dans les servo ?
J utilise pas le condensateur recommandé par adafruit pour le servo driver, ça pourrai venir de la ?
greg06:
j ai calibré les moteur pour être bien sur d être dans le bon intervalle.
Les moteurs ne patinent pas.
J ai pensé aussi au faite qu ils soient en sur charge. J ai donc fais des essais en reprenant le poid du robot sur un support, donc aucune charge sur les servo.
Rien à faire, de temps en temps, deux des servos change de position et il n y a que en les débranchant qui ce remettent a la bonne référence.
Peut il y avoir des défauts dans les servo ?
J utilise pas le condensateur recommandé par adafruit pour le servo driver, ça pourrai venir de la ?
Merci
Bonsoir
Attention avec les servos "cheap" , la pignonnerie mecanique est souvent essentiellement "plastique" et n'embarque pas de rattrapage de jeu, un bon servo avec recopie de position par potentiomètre vaut essentiellement d'abord par la qualité du couplage mecanique entre axe du potentiometre et pignon de couplage.