ARDX-Montages-CIRC04

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

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

ARDX-circ-sheet.png

Fiche de montage CIRC-04
x1

ARDX-pin-header.png

2 Pin header
x4

ARDX-Servo.png

Mini Servo Moteur
x1

ARDX-pin-header-3.png

3 Pin header
x1

 

Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.

Schéma

Circ04-schema.png

Montage

Cir04-montage.png

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.

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/