Post Page Advertisement [Top]

Ha ! Les servomoteurs ! Que ferrait-on sans eux ! Ils sont utilisés dans la majorité des robots de la coupe et pratiquement tous les roboticiens en herbe en ont forcément croisés sur leur route.

Il existe une multitude de servomoteurs différents, mais on peut globalement les classer en deux catégories : les servomoteurs dit "industriels" et ceux dit de "modélisme". Les différences entre les deux catégories sont la gamme d'alimentation, le couple, la taille et bien évidemment le prix.
Servomoteurs industriels
Servomoteur de modélisme
Dans la robotique amateur, nous utiliserons plutôt des servomoteurs de modélisme ( bien que de plus en plus de servomoteurs sont maintenant conçus spécifiquement pour la robotique ).

Mais un servomoteur c'est quoi ? Et bien c'est tout simplement un dispositif comprenant un moteur et sont réducteur ainsi qu'une carte électronique et un potentiomètre et dont la sortie est asservie en angle.
servomoteur dans Dossiers techniques
Vue de l'intérieur
Les servomoteurs de modélisme sont d'abord conçu pour être utilisé, je vous le donne en mille, dans le modélisme ! Voitures, avions, bateaux télécommandées ... Ils sont partout ! C'est un peu le nerf de la guerre du modélisme. Leur simplicités d'utilisation et leur robustesse en font des éléments incontournables. De plus, de part leur utilisation très ancienne, il existe une multitude de références différentes avec des caractéristiques particulières pour chaque utilisation.

Pourquoi les utiliser en robotique ? Parcequ'ils font des actionneurs de premier choix pour donner vie à nos créations :

  • Alimentation entre 4.8V et 12V
  • Couple de sortie pouvant aller jusqu'à plus d'une trentaine de Kg/cm
  • Taille modique
  • Pilotable simple
  • Asservie en angle ( traditionnelement de 0 à 200° environ )
  • ...
Alors comment ça fonctionne ? Notre système de commande envoie une série de pulsations au travers du fil de signal de notre servo ( nous verrons après en détail ce signal ). La carte du servo interprète ce signal et va  le convertir en angle. Elle va ensuite comparer cette commande à la position actuelle du servo ( grâce au potentiomètre ). Si celles-ci sont différentes, la carte va piloter le moteur pour que les positions correspondent. Simple non ? Et terriblement efficace !

On a parlé de signal et de pulsation ... Mais en clair ça donne quoi ? Et bien nous avons besoins d'envoyer au servomoteur une série de pulsation dont la largeur va conditionner l'angle à atteindre. Traditionnellement, une pulsation de 1,5ms va mettre le servomoteur sur sa position de neutre et les pulsations de 1 et 2 ms représentent les butées du servomoteur ( les angles maximums ).
Commande d'un servomoteur
Rien de bien compliqué finalement ! Mais ne pensez pas que ça s’arrête là ! Il existe en vrai plein d'autres servomoteur différents avec des caractéristiques particulières : servo numériques, multitours, ... Tant de variantes qui feront peut être l'objet d'un autre posts ...

Bon c'est bien joli mais comment on va piloter tout ça ? Et bien nous allons utiliser notre fameuse carte décrites dans un précédent post pardi !

Etape 1 :
On branche l'alimentation de la carte (de 7 à 12 V ) et celle des servomoteurs ( tension à adapter en fonction de votre servo ). On alimente en on vérifie l'allumage correcte des leds. Ici nous utilisons l'alimentation construite avec notre ancienne alim de PC ( voir post précédent ). Les masses étant communes, on s'est passé d'un fil ( pas bien je sais ... )

Etape 2 :
On branche notre servo à notre carte. Attention au sens si vous n'avez pas équipé votre servo d'une connectique avec détrompeur. Le signal et la masse se trouvent toujours aux extrémités du connecteur. Le signal est de couleur orange ou blanc. Le signal est orienté à l'intérieur de la carte et donc la masse à l'extérieur. On alimente et on vérifie que tous s'allume correctement. Parfois, le servomoteur bouge à l'allumage : pas de panique, s'est courant et au moins vous savez que votre servo est correctement branché.

Etape 3 :
On branche notre câble de programmation et on démarre le logiciel Picaxe.

Etape 4 :
Pour commander simplement un servomoteur en Basic nous avons besoins de deux instructions : SERVO et SERVOPOS. SERVO va permettre au picaxe de commencer à envoyer les commandes aux sermoteur et SERVOPOS va venir modifier cette commande. Il est impératif de faire un SERVO avant toute utilisation de SERVOPOS.
Voici un code simple qui fait bouger notre servomoteur selon trois positions :
_______________________________________________

#picaxe 20x2
#no_data
#no_table
servo B.0,125
main:
        servopos B.0,100
pause 2000
servopos B.0,125
pause 2000
servopos B.0,150
pause 2000
servopos B.0,125
pause 2000
goto main
_______________________________________________


Ici notre servomoteur est connecté sur la patte B.0 . Le chiffre placé après pilote l'angle. Il est limité entre 75 et 225. Je vous conseille quand même de tester ces valeurs de butée car elle peuvent évoluer d'un servomoteur à l'autre.

Et voila ! Vous savez piloter un servomoteur ! Je vous laisse lire la description des commandes SERVO et SERVOPOS pour plus de détails. Quand je vous avais dit que ce serait facile !

Bon, on peut également remarquer que l'utilisation de ces commandes à quelques défauts. EN effet, vous ne pouvez pas utiliser en même temps d'autres commandes qui utiliseraient le TIMER du Picaxe puisque celui-ci est déja réservé pour générer les signaux des servomoteurs. Adieux par exemple l'I2C et autre ... Mais comment faire si on souhaite également utiliser ces fonctions ? Et bien on va générer nous même nos signaux ... mais ce sera l'objet d'un autre post !

A plus et amusez-vous bien !

2 commentaires:

  1. Bonjour,

    J'ai deux petites questions concernant les servomoteurs :

    Pour les commander on dit (moi y compris) qu'il faut envoyer une créneau d'un temps haut compris enter 1ms et 2ms, mais avez-vous trouver le moindre document provenant d'un fabriquant, d'une norme qui l'affirme ? (ça m'a toujours troublé de ne pas trouver de spécification à ce sujet).

    Par ailleurs, est-ce que le fait de brancher une servomoteur vous fait redémarrer votre carte ? C'est un soucis que j'ai et je me demande si vos condensateurs de 220µF sont efficaces...

    RépondreSupprimer
  2. Bonjour à toi !

    Effectivement, les documents techniques en modélisme sont assez peu nombreux et précis ... Dans tous les cas, ce sont des valeurs que l'ont peu aisément vérifier en branchant un oscilloscope sur une sortie d'un émetteur de radio-commande par exemple. Pour ma part je me fie à ces deux valeurs pour avoir une idée vague des butées et je les affines en faisant varier la largeur jusqu’à être réellement en butée. C'est tous sauf précis mais ça marche.

    Pour le reboot de la carte, c'est un problème que j'avais déjà eu sur des cartes plus anciennes. A cette époque, l'ajout de condensateurs avait vraiment résolu le problème. Avec les picAxe, même sans condensateurs ça fonctionne, mais pour cette carte j'ai souhaité en mettre car on ne sait jamais, murphy passant par là ...En tous les cas, ça ne coûte rien d’essayer ;-)

    RépondreSupprimer

Bottom Ad [Post Page]

| Designed by Colorlib