Différences entre versions de « Adafruit Motor Shield V2-Stacking »

De MCHobby - Wiki
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 ==

Version du 6 janvier 2014 à 10:56


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.

Empiler les shields

Adafruit Motor Shield V2-Intro-01.jpg
Crédit: AdaFruit Industries www.adafruit.com

L'une des avancées les plus géniales de cette nouvelle génération de Motor Shield, c'est qu'ils peuvent enfin être empilés. Chaque shield ajouté sur la pile est capable de controller 2 moteurs pas-à-pas ou 4 moteur continu en plus 2 (ou un mélange des deux)

Vous pouvez empiler jusqu'à 32 shields, ce qui réprésente un total de 64 moteur pas-à-pas ou de 128 moteurs continu! La plupart des utilisateurs n'aurons besoin que de 2 ou 3 shields mais qui sait... (PS: N'oublie pas de nous envoyer une photo si vous avez un projet pilotant 64 moteurs pas-à-pas :-) )

Notez que le fait d'empiler les shield n'augmente pas le nombre de servo-moteurs utilisable. Les servo-moteurs sont directement branchés sur les broches 9 et 10 de votre Arduino. Si vous avez besoin de piloter plus de servos, vous pouvez utiliser un controleur PWM/Servo à 16 cannaux. Ils sont également chainable, ce qui permet d'ajouter une quantité littéralement incandescente de servo-moteurs sur votre projet.

Empiler les shields moteurs est une opération vraiment simple. Chacun des shields que vous voulez ajouter sur la pile doit avoir un pinStaking header (voyez nos instructions pour placer un Stacking Header sur votre shield). Le motor shield du haut n'a pas besoin de stacking header... à moins que vous ne désiriez placer un autre shield.

La seule choses à laquelle il faut faire attention, c'est que chaque shield doit avoir une adresse I2C unique. L'adresse par défaut est 0x60. Vous pouvez ajuster cette adresse entre 0x60 et 0x80, ce qui représente un total de 32 adresses uniques.

Adresser les shields

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.

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.

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)

Adafruit Motor Shield V2-Stacking-02.jpg
Crédit: AdaFruit Industries www.adafruit.com

Carte 0: Adresse = 0x60 Offset/décalage = binaire 0000 (pas besoin de pontage)
Carte 1: Adresse = 0x61 Offset/décalage = binaire 0001 (Ponter A0 comme sur la photo ci-dessus)
Carte 2: Adresse = 0x62 Offset/décalage = binaire 0010 (Ponter A1, à la gauche de A0)
Carte 3: Adresse = 0x63 Offset/décalage = binaire 0011 (Ponter A0 et A1, les deux cavaliers les plus à droite)
Carte 4: Adresse = 0x64 Offset/décalage = binaire 0100 (Ponter A2, cavalier du milieu)

etc.

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.

Adafruit_MotorShield AFMSbot(0x61); // Rightmost jumper closed
Adafruit_MotorShield AFMStop(0x60); // Default address, no jumpers

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.

Then we can request the motors connected to each one

// On the top shield, connect two steppers, each with 200 steps
Adafruit_StepperMotor *myStepper2 = AFMStop.getStepper(200, 1);
Adafruit_StepperMotor *myStepper3 = AFMStop.getStepper(200, 2);

// On the bottom shield connect a stepper to port M3/M4 with 200 steps
Adafruit_StepperMotor *myStepper1 = AFMSbot.getStepper(200, 2);
// And a DC Motor to port M1
Adafruit_DCMotor *myMotor1 = AFMSbot.getMotor(1);

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

AFMSbot.begin(); // Start the bottom shield
AFMStop.begin(); // Start the top shield

You can try out this code for yourself by setting up two shields and running the File->Examples->Adafruit_MotorShield->StackingTest example


Source: Adafruit Motor Shield V2 for Arduino créé par LadyAda pour AdaFruit Industries. Crédit [www.adafruit.com AdaFruit Industries]

Traduit par Meurisse D. pour MCHobby.be

Nos remerciements à Mr Pierre M. pour ses suggestions de correction.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.