[Lyon-hackerspace] Arduino et servo-moteur

Clement Quinson clement.quinson at gmail.com
Wed Aug 3 02:10:58 CEST 2011


Hello,
en fait, servo digital ou analogique, ca n'a rien à voir avec la
manière de le commander, qui est standard. Ce qui est analogique ou
digital, c'est la tripaille du servo en lui même.

Pour être plus exact, le servo n'est pas vraiment commandé par une pwm
au sens strict (ou on s'intéresse au rapport cyclique entre temps à
l'état haut et temps à l'état bas). Le servo, lui, est sensible aux
largeurs des impulsions à l'état haut ; la fréquence à laquelle tu lui
envoie des impulsions lui importe peu (ca joue sur sa fréquence de
rafraichissement, et il y a grosso modo un standard, à 50Hz à peu près
je crois). Ensuite, une impulsion de 500us correspond à une consigne
0°, et 2500us à 180°. Enfin, ca dépend des servos, de l'age du
capitaine, etc etc etc ;)

Ensuite, qu'est ce que ca change servo analogique ou digital, eh bien
dans le premier cas, l'asservissement est purement fait en analogique,
justement. Asservissement, c'est ce qui lui permet de se positionner
correctement. En résumé: il y a un potard solidaire du palonier (l'axe
de sortie), et tu lui donne un signal de commande "va à telle
position". La tripaille du servo effectue un asservissement entre ta
commande, et la mesure faite par le potard. Tant qu'il n'est pas en
position, elle envoie du jus dans le moteur -et ce, dans le bon sens.
Dans le cas d'un servo digital, le principe est le même, sauf qu'il y
a un microcontroleur dans l'histoire, ce qui permet de faire des
réglages plus fins (vitesse de déplacement, précision dde mesure de la
commande, de la position, etc etc etc). Ca fait plus classe, aussi,
servo digital...

Pour revenir à nos moutons, la lib Servo dans arduino (dont je
t'invite à examiner le code pour te faire une idée plus précise de la
chose par toi même) sert à générer directement les bonnes impulsions
au bon moment sur la pin que tu veux. Ca marche sur n'importe quelle
pin (à partir de la version... je sais plus laquelle) de l'IDE/de la
lib, sachant que les pin "analog in" sont, outre cette fonction
particulière additionnelle, des I/O "comme les autres". Donc, elle
peuvent être utilisée en digital, et piloter un servo comme toute
autre pin.

Voili voilou, en espérant que  ca réponde à tes questions ! Hésite pas
si t'en as d'autres :)
C.

2011/8/2 Sébastien Rénier <bugsbyte at free.fr>:
> Si j'ai bien compris, la méthode Servo.write () simule un signal analogique
> en utilisant la technique du PWM.
> C'est donc normal qu'un servo-moteur analogique fonctionne sur une sortie
> digitale PWM.
>
> J'en conclut donc qu'il n'est pas possible d'utiliser un servo-moteur
> digital avec cette même méthode.
> Ça me semble bizarre !
>
> 2ème chose qui me chiffonne : lorsque je teste sur une sortie digitale non
> PWM, ça marche aussi !
> Curieux, non ?
>
> Encore plus bizarre, si j'utilise une sortie analogique, ça marche aussi :
> La même méthode (Servo.write) s'adapte en fonction de la nature de la sortie
> ?
>
> Si toi (ou une autre personne) pouvait répondre à mes interrogations, je
> serais un homme heureux.
>
> --
> BugsByte
>
>
> Le 02/08/2011 22:32, moi moi a écrit :
>
> Si tu suit le schéma, tu est sur une sortie digital qui permet le pwm
> (marquage ~pwm 9 ou juste ~9 sur la uno)
>
> Alex
>
> Le 2 août 2011 21:33, "Sébastien Rénier" <bugsbyte at free.fr> a écrit :
>
> J'ai besoin de vos neurones pour comprendre un truc concernant l'Arduino et
> les servo-moteurs :
>
> J'ai récupéré un servo Futaba S3003.
> Il est catalogué dans les servos analogiques sur le site du fabriquant :
> http://www.futaba-rc.com/servos/analog.html.
> Pourtant, lorsque j'essaie les exemples de codes du site Arduino Sweep et
> Knob, tout 2 utilisant une sortie digitale, ça marche !
>
> Avez-vous une explication ?
> Ou peut-être que c'est moi qui n'ait rien compris, ça ne serait pas la 1ère
> fois.
>
> --
> BugsByte
>
> _______________________________________________
> Lyon-hackerspace mailing list
> Lyon-hackerspace at lists.hackerspaces.org
> http://lists.hackerspaces.org/mailman/listinfo/lyon-hackerspace
>
>
> _______________________________________________
> Lyon-hackerspace mailing list
> Lyon-hackerspace at lists.hackerspaces.org
> http://lists.hackerspaces.org/mailman/listinfo/lyon-hackerspace
>
>
> _______________________________________________
> Lyon-hackerspace mailing list
> Lyon-hackerspace at lists.hackerspaces.org
> http://lists.hackerspaces.org/mailman/listinfo/lyon-hackerspace
>
>


More information about the Lyon-hackerspace mailing list