ARDX-Montages-CIRC04
Ce que nous faisons
Les moteurs rotatifs sont excellents pour l'amusement mais ils nous laissent sur notre faim quand viennent les projets où le contrôle du mouvement est essentiel.
La réponse ? Les servos moteurs pour hobbyistes.
Ils sont produits en grande quantité, largement distribué et ont un coût qui varie de quelques Euro à plusieurs centaines d'Euro. Il contiennent un engrenage réducteur (pour rendre le mouvement plus puissant) et un peu d'électronique (pour rendre le contrôle plus facile).
Un servo standard est repositionnable de 0 à 180°. La position est contrôlée à l'aide d'une impulsion chronométrée entre 1,25 millisecondes (0°) et 1,75 millisecondes (180°) (1,5 millisecondes pour 90°). Le temps varie d'un constructeur à l'autre. Un servo fonctionnera correctement si l'impulsion est envoyée toutes les 25-50 millisecondes.
Une des grandes particularités d'Arduino est qu'il dispose d'une librairie permettant de contrôler deux servos (raccordés sur les broches 9 ou 10) en utilisant une simple ligne de code.
Le montage
Le matériel nécessaire
2 Pin header
x4
Mini Servo Moteur
x1
3 Pin header
x1
Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.
Schéma
Montage
Le code
Pas besoin de taper tout le code, vous pouvez utiliser l'exemple suivant (provenant du fantastique site Arduino.cc):
Fichier > Exemples > Servo > Sweep
// Sweep // par BARRAGAN <http://barraganstudio.com> #include <Servo.h> Servo myservo; // Créer un objet servo pour contrôler le servo moteur int pos = 0; // variable pour stocker la position du servo void setup() { myservo.attach(9); //attacher le servo moteur de la pin 9 à l'objet servo } void loop() { for(pos = 0; pos < 180; pos += 1) // Aller de 0 à 180 degrés par pas de 1 degré { myservo.write(pos); // dire au servo d'aller à la position de la variable 'pos' delay(15); // attendre 15ms que le servo atteigne la position } for(pos = 180; pos>=1; pos-=1) // Aller de 180 degrés à 0 degré { myservo.write(pos); // dire au servo d'aller à la position de la variable 'pos' delay(15); // attendre 15ms que le servo atteigne la position } }
Cela ne fonctionne pas?
Voici 3 choses à essayer.
Le servo ne bouge pas?
Même avec des fils colorés, il est affreusement facile de brancher le servo à l'envers. Cela pourrait être le cas.
Cela ne fonctionne toujours pas?
Une erreur que nous avons fait une fois ou deux est simplement d'oublier de raccorder l'alimentation (rouge et brun à +5 volts et masse).
Des à-coups?
Si le servo commence à bouger pour ensuite avoir des à-coups, qu'une led clignote sur la carte, alors l'alimentation n'est pas suffisante pour relever le défit.
Utiliser une nouvelle pile au lieu du câble USB devrait résoudre le problème.
Faire encore mieux
Contrôle à l'aide d'un potentiomètre
Nous devons encore expérimenter les broches d'entrées mais si vous voulez prendre un peu d'avance, il y a le programme d'exemple Fichier > Exemples > Servo > Knob .
Il utilise un potentiomètre (CIRC08) pour contrôler le servo moteur.
Vous pouvez trouver les instructions en ligne ici ardx.org/KNOB (anglais)
Contrôler les impulsions soi-même
Tandis qu'il est facile de contrôler un servo à l'aide des librairies d'Arduino, il est aussi intéressant de comprendre comment programmer quelque chose soi-même.
Voyez ci-dessous : nous contrôlons directement les impulsions. Ainsi, vous pouvez utiliser cette méthode pour contrôler un servo moteur depuis n'importe laquelle des 20 broches d'un Arduino (mais pour cela vous devez optimiser précautionneusement votre programme).
int servoPin = 9; void setup(){ pinMode(servoPin,OUTPUT); } void loop() { int pulseTime = 2100; // microsecondes de pause //1500=90 degrés ,900=0 degrés,2100=180 degrés digitalWrite(servoPin, HIGH); delayMicroseconds(pulseTime); digitalWrite(servoPin, LOW); delay(25); }
Des grandes idées
Les servos peuvent servir à faire toutes sortes de choses géniales, en voici quelques-unes parmi nos favorites.
- « Hit Counter » façon Noel sur ardx.org/XMAS
- Un bras robotique Open Source sur ardx.org/RARM
(Utilisant aussi bien un servo contrôleur qu'un Arduino) - Servo Walker ardx.org/SEWA
Plus, plus et encore plus
Plus d'information, où poser vos autres questions: ardx.org/CIRC04 (anglais)
Internet
.:téléchargement:.
LA fiche de montage est disponible sur ardx.org/BBLS04
.: Vidéo :.
La vidéo du montage est disponible sur ardx.org/VIDE04 (anglais)
Tutoriel/Manuel traduit par Meurisse D. pour MCHobby.be licence Creative Commons BY-SA.
Crédit de traduction
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant :
« Traduction par MCHobby (shop.MCHobby.be) - Vente de kit et composants » et ce quelque soit le média utilisé.
Utilisation commerciale
L'utilisation commercial de cette traduction (y compris sur site produisant des revenus par l'intermédiaire de publicité), même partielle, est soumise à redevance (license fee).
Le présent manuel a été traduit et autorisé à la vente avec l'aimable autorisation conjointe de Oomlout (www.oomlout.com) et d'AdaFruit (www.adafruit.com).
Produit sous licence Creative Commons BY-SA License and available for download: ardx.org/src/