Progression du robot pour la Coupe 2013

dimanche 16 septembre 2012

Coupe 2013 : Les servomoteurs

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 !