@ VagueNerd : coucou ^^
Pour ton cas, les servos, donc, je t'avais proposé un petit exercice lié à la gestion de la vitesse...
Tout à fais, via la carte pi directement, j'avais réussi (en m'aidant aussi d'un vieux code trouver en python 2), ça fonctionné super bien (sauf les ptits tremblement lorsque le servo est en pause).
Dans la pratique, avec un servo, on lui demande de prendre une position, et il va tout faire pour la prendre aussi vite que possible (vitesse maxi, fonction des contraintes appliquées au servos - poids par exemple).
Du coup, pour avoir des mouvements fluides, il faut le gérer programmatiquement.
Tout à fais d'accord.
L'idée est d'avoir, par exemple, un accélération progressive au début, vitesse maximum au "milieu" du mouvement, et une décélération à la fin du mouvement.
Pour faire ça, on peut par exemple écrire une fonction qui prend en paramètre le déplacement à réaliser, et le corps de la fonction va faire prendre des positions intermédiaires au servomoteur, s'endormir un court instant, puis déplacer le servo à la position suivante... Tu vois le principe ?
Je vois parfaitement le principe et suis bien d'accord avec toi pour le coup, sauf que je fais des tests, j'ai par exemple dans une boucle (pour le test)
Code : Tout sélectionner
while True :
pwm.setPWM(2, 0, 0) #j'ai une impulsion
time.sleep(1.5) #1.5 sec
pwm.setPWM(2, 0, 300) #position plein bille au centre des deux positions, extréme " "
time.sleep(1.5)
pwm.setPWM(2, 300, 600)
time.sleep(1.5)
par exemple, la valeur (2, 300, 600) si j'ai bien compris, aurait du me donner une impulsion à partir de la position 300 pour arriver à 600 (on est d'accord), mais en fait non.
Mais pour l'impulsion ça fais un peu ce que ça veut à chaque boucle, même en jouant avec les valeurs de début et de fin, je n'ai jamais l'effet voulu, sauf bien sur si je le déplace pleine bille (2,0,300) ou autre valeur de fin, c'est nickel, mais l'accélération on peut pas dire qu'il y en ai vraiment, c'est comme dis, une pulsation qui perd de la vitesse qui sur ça fin devrait arriver à la valeur donnée.
bref je tourne en While ^^
PS : je remet la vidéo sur des servomoteurs qui ont une animation plutôt pas mal
https://www.youtube.com/watch?v=-B-jwBnsQPI
Merci ^^