Modifications

Sauter à la navigation Sauter à la recherche
Ligne 15 : Ligne 15 :     
== Adresser les shields ==
 
== Adresser les shields ==
Each board in the chain must be assigned a unique address. This is done with the address jumpers on the lower edge of the board. The I2C base address for each board is 0x60. The binary address that you program with the address jumpers is added to the base I2C address.
+
Chaque carte dans la chaine doit recevoir une adresse unique. Cela est réaliser à l'aide des cavalier/pastilles d'adresse visible sur le bord de la carte. L'adresse de base de chaque carte est 0x60. En pontant les cavaliers/pastilles d'adresses, vous programmer une nouvelle adresse sur la carte  en ajouter une valeur binaire à cette adresse I2C de base.
   −
To program the address offset, use a drop of solder to bridge the corresponding address jumper for each binary '1' in the address.
+
Pour programmer le décalage d'adresse, utilisez simplement un point de soudure pour ponter un cavalier/pastille d'adresse correspondant à chaque '1' binaire de l'adresse.
   −
The right-most jumper is address bit #0, then to the left of that is address bit #1, etc up to address bit #5
+
Le cavalier le plus à droite est le bit 0 de l'adresse (valeur numérique=1). La pastille juste à gauche est le bit d'adresse 1 (valeur numérique=2), La troisième pastille est le bit d'adresse 3 (valeur numérique=4), etc pour finir avec le bit d'adresse 5 (valeur numérique=16)
    
{{ADFImage|Adafruit Motor Shield V2-Stacking-02.jpg|640px}}
 
{{ADFImage|Adafruit Motor Shield V2-Stacking-02.jpg|640px}}
   −
Board 0: Address = 0x60 Offset = binary 0000 (no jumpers required)<br />
+
Carte 0: Adresse = 0x60 Offset/décalage = binaire 0000 (pas besoin de pontage)<br />
Board 1: Address = 0x61 Offset = binary 0001 (bridge A0 as in the photo above)<br />
+
Carte 1: Adresse = 0x61 Offset/décalage = binaire 0001 (Ponter A0 comme sur la photo ci-dessus)<br />
Board 2: Address = 0x62 Offset = binary 0010 (bridge A1, to the left of A0)<br />
+
Carte 2: Adresse = 0x62 Offset/décalage = binaire 0010 (Ponter A1, à la gauche de A0)<br />
Board 3: Address = 0x63 Offset = binary 0011 (bridge A0 & A1, two rightmost jumpers)<br />
+
Carte 3: Adresse = 0x63 Offset/décalage = binaire 0011 (Ponter A0 et A1, les deux cavaliers les plus à droite)<br />
Board 4: Address = 0x64 Offset = binary 0100 (bridge A2, middle jumper)
+
Carte 4: Adresse = 0x64 Offset/décalage = binaire 0100 (Ponter A2, cavalier du milieu)
   −
etc.  
+
etc.
    
== Ecrire du code pour plusieurs shields ==
 
== Ecrire du code pour plusieurs shields ==
   −
The Adafruit_MotorShield library has the ability to control multiple shields, unlike the older AF_Motor library. First we must create a Motor Shield Controller for each shield, with the assigned address.
+
La bibliothèque Adafruit_MotorShield est capable de contrôler plusieurs shield (ce qui radicalement différent de l'ancienne bibliothèque AF_Motor).  
   −
<nowiki>Adafruit_MotorShield AFMSbot(0x61); // Rightmost jumper closed
+
=== Créer les MotorShield ===
Adafruit_MotorShield AFMStop(0x60); // Default address, no jumpers</nowiki>
+
Nous devons d'abord créer un contrôleur pour chaque motor shield, en indiquant l'adresse assignée sur chaque carte.
   −
One motor shield is going to be called AFMSbot (bottom shield, so we remember) and one is AFMStop (top shield) so we can keep them apart. When you create the shield object, specify the address you set for it above.
+
Lorsque vous créez les objets shield, n'oubliez pas de spécifier l'adresse comme nous le faisons ci-dessous:
   −
Then we can request the motors connected to each one
+
<nowiki>Adafruit_MotorShield AFMSbot(0x61); // Le cavalier/pastille le plus à gauche ponté
 +
Adafruit_MotorShield AFMStop(0x60); // Adresse par défaut, sans pontage</nowiki>
   −
  <nowiki>// On the top shield, connect two steppers, each with 200 steps
+
* Un des shield moteur est nommé AFMSbot (Shield du bas, pour mémoire. "''bottom''" signifie "bas")
 +
* L'autre shield est nommé AFMStop (le shield du haut, "''top''" signifiant "haut").
 +
 
 +
Voila, nous pouvons maintenant identifier distinctement les deux shields.
 +
 
 +
=== Associer les moteurs ===
 +
 
 +
Nous pouvons ensuite demander les différents objets pour chacun des moteurs raccordés sur les shields.
 +
 
 +
  <nowiki>// Sur le shield du dessus (top), connectez 2 mot. pas-à-pas, chacun de 200 pas
 
Adafruit_StepperMotor *myStepper2 = AFMStop.getStepper(200, 1);
 
Adafruit_StepperMotor *myStepper2 = AFMStop.getStepper(200, 1);
 
Adafruit_StepperMotor *myStepper3 = AFMStop.getStepper(200, 2);
 
Adafruit_StepperMotor *myStepper3 = AFMStop.getStepper(200, 2);
   −
// On the bottom shield connect a stepper to port M3/M4 with 200 steps
+
// Sur le shield du bas (bot), connecter un mot. pas-à-pas de 200 pas sur le bornier M3/M4.
 
Adafruit_StepperMotor *myStepper1 = AFMSbot.getStepper(200, 2);
 
Adafruit_StepperMotor *myStepper1 = AFMSbot.getStepper(200, 2);
// And a DC Motor to port M1
+
// et un moteur continu sur le bornier M1
 
Adafruit_DCMotor *myMotor1 = AFMSbot.getMotor(1);</nowiki>
 
Adafruit_DCMotor *myMotor1 = AFMSbot.getMotor(1);</nowiki>
   −
You can request a stepper or DC motor from any port, just be sure to use the right AFMS controller object when you call '''getMotor''' or '''getStepper'''!
     −
Then, both shields must have '''begin''' called, before you use the motors connected
+
Vous pouvez réclamer n'importe quel objet ''stepper'' ou ''motor' sur n'importe quel port, veillez juste à utiliser le bon "objet controleur AFMS" lorsque vous appelez '''getMotor''' ou '''getStepper'''!
  <nowiki>AFMSbot.begin(); // Start the bottom shield
+
 
AFMStop.begin(); // Start the top shield</nowiki>
+
=== Initialiser ===
 +
Ensuite, vous devez appeler la fonction '''begin''' pour les deux shields.
 +
Cette opération doit être réaliser avec d'utiliser les moteurs qui y sont connectés.
 +
 
 +
  <nowiki>AFMSbot.begin(); // Démarrer le shield du bas (bot)
 +
AFMStop.begin(); // Démarrer le shield du haut (top)</nowiki>
   −
You can try out this code for yourself by setting up two shields and running the '''File->Examples->Adafruit_MotorShield->StackingTest''' example
+
Vous pouvez essayer ce code pour 2 shields à partir du code d'exemple '''Fichier -> Exemples -> Adafruit_MotorShield -> StackingTest'''
    
{{Adafruit Motor Shield V2-TRAILER}}
 
{{Adafruit Motor Shield V2-TRAILER}}
29 917

modifications

Menu de navigation