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

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 10 : Ligne 10 :
 
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. {{pl|89|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.
 
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. {{pl|89|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 ([[Adafruit Motor Shield V2-Assembler#Installer un_Stacking 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.
+
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 ([[Adafruit Motor Shield V2-Assembler#Installer un_Stacking 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.
 
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.

Version du 6 janvier 2014 à 10:42


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

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.

To program the address offset, use a drop of solder to bridge the corresponding address jumper for each binary '1' in the address.

The right-most jumper is address bit #0, then to the left of that is address bit #1, etc up to address bit #5

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

Board 0: Address = 0x60 Offset = binary 0000 (no jumpers required)
Board 1: Address = 0x61 Offset = binary 0001 (bridge A0 as in the photo above)
Board 2: Address = 0x62 Offset = binary 0010 (bridge A1, to the left of A0)
Board 3: Address = 0x63 Offset = binary 0011 (bridge A0 & A1, two rightmost jumpers)
Board 4: Address = 0x64 Offset = binary 0100 (bridge A2, middle jumper)

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.