• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 7/13/17

Utilisez un shield moteur (1/2)

Log in or subscribe for free to enjoy all this course has to offer!

Vous avez appris jusqu'à maintenant à utiliser votre carte Arduino avec des composants électroniques connectés sur une breadboard. 

Vous allez apprendre dans ce chapitre à utiliser un shield.

 

Le shield que nous allons utiliser est un shield moteur, c'est-à-dire qu'il permet de piloter des moteurs.

Il existe déjà la L293D pour ça non ?

(Que ferait-on sans vous Cunégonde ?!) En effet, et vous allez justement comprendre les avantages et inconvénients d'un shield par rapport à un circuit intégré L293D.

Mais je ne vais pas vous faire patienter plus longtemps ! Voyons de quoi il s'agit !

Un shield pour Arduino

Pour contrôler des moteurs, vous avez vu dans le cours d'initiation que l'on peut utiliser des transistors bipolaires (ou des MOSFET) en concevant un pont en H. Ça faisait pas mal de connexions et ça prenait de la place. Puis vous avez découvert la puce L293D, qui propose 2 ponts en H (4 demi-ponts) le tout dans un petit boîtier noir avec 16 pattes. Ça vous libérait de pas mal de fils et vous n'aviez qu'à vous concentrer sur la connexion de la puce et des moteurs.

Et bien il existe dans le monde de l'Arduino ce qu'on appelle des Shields. Shield en anglais signifie bouclier (et oui Lukas, d'où l'acronyme du groupe des héros de Marvel™).

Ok, mais pourquoi l'Arduino aurait-il besoin d'un bouclier ?

Il faut plutôt entendre le mot shield comme une couche hardware supplémentaire qui vient compléter la carte Arduino. En effet, les pattes du shield vont venir se connecter exactement et complètement sur la carte Arduino, en la recouvrant. Le shield est aussi conçu pour vous permettre de continuer à avoir accès aux entrées et sorties de l'Arduino. Vous profitez donc des fonctionnalités du shield et de celles de l'Arduino. Bien sûr, certains pins de l'Arduino vont être réservés pour le shield (donc pas utilisables...).

Voici une image de la bête que je vous propose d'adopter :

Adafruit Motor/Stepper/Servo Shield pour Arduino v2 Kit - v2.3 (Adafruit.com)
Adafruit Motor/Stepper/Servo Shield pour Arduino v2 Kit - v2.3 (Adafruit.com)

Il s'agit du "Adafruit motor shield v2.3", le shield moteur fabriqué par Adafruit. C'est un choix personnel pour ce cours. Il existe plusieurs shields moteurs dans le commerce. Alors pourquoi celui-ci ? Pour plusieurs raisons :

  • Tout d'abord parce que la société Adafruit, représentée par LadyAda (ce n'est pas une blague ) est très impliquée dans le monde de l'Arduino. Certes pour des raisons commerciales, mais aussi pour permettre au concepts de se développer, et aux utilisateurs/clients de pouvoir utiliser du matériel fiable à un prix convenable.

  • Le coût de ce shield est très correct si l'on compare avec d'autres du commerce (en particulier vis-à-vis des fonctionnalités). Il est accessible sur commande aux alentours de 20$. Les délais de livraison sont respectés (en tout cas en ce qui concerne mes commandes). En revanche il faudra vous acquitter d'une taxe de douane lors de la livraison du produit (loi française). Donc comptez plutôt 25€ pour le recevoir chez vous.

  • Ce shield contient 4 ponts en H. Il peut donc piloter jusqu'à 4 moteurs dans les deux sens (ou 8 moteurs dans un seul sens). Il permet le pilotage de steppers (moteurs pas-à-pas) dont je ne parlerai pas dans ce cours. Il prévoit aussi des connexions pour deux servo-moteurs.

  • Les connexions des moteurs se font grâce à des dominos (bleus clairs sur l'image) qui permettent de glisser le fil et de faire contact en vissant. J'allais dire pas de soudure, mais en fait nous verrons que si. Il propose aussi la connexion d'une alimentation externe (entre 4,5 et 13V) pour les moteurs.

  • On peut enficher jusqu'à 32 shields l'un sur l'autre, ce qui permettrait d'utiliser 128 moteurs dans les deux sens !

  • Le design et l'ergonomie de l'ensemble est très bien pensé, il est même ajouté une zone avec des trous si l'on veut ajouter des composants au shield.

  • Adafruit a développé une bibliothèque d'instructions spéciales pour l'utilisation de ce shield, ce qui est très appréciable ! Nous l'utiliserons d'ailleurs dans le chapitre suivant.

Ça en fait des bonnes raisons ! C'est vrai, mais pour être honnête, je vais parler aussi des inconvénients :

  • Une fois reçu, le kit nécessite de réaliser des soudures ! L'acquisition d'un fer à souder demande un investissement supplémentaire d'environ 20€. Mais sachez que vous vous en servirez sûrement bien des fois si la passion de la robotique vous prend. Souder des pattes sur un shield reste une opération assez facile, mais attention aux brûlures pour les maladroits.

  • Si l'on veut pouvoir empiler plusieurs shields, il ne faut pas utiliser les headers (pattes) fournis avec le kit, mais en acquérir d'autres (pattes longues et trous) qui peuvent être commandés sur le même site.

  • Ce kit Adafruit est fabriqué aux US. Vous aurez donc une taxe de douane à payer à la réception de votre commande en plus des frais de port (le montant de cette taxe dépend de ce que vous avez commandé, je n'ai pas de tarif spécifique pour le shield seul).

Mais une question me brûle les lèvres... on parle de connecter 4 moteurs CC, si on compte 2 connexions par moteur plus les 4 contrôles PWM, plus le pilotage des deux servos, on en est à 17 pins utilisés !!! Ça nous prend tout !

(Quel bouillonnement dans ce cerveau Cunégontesque !) En effet le calcul est bon ! Mais la ruse de ce shield (comme plusieurs autres d'ailleurs), c'est qu'il n'utilise que 2 pins analogiques pour piloter les moteurs, et 2 pins numériques pour les servos, ce qui vous laisse encore bien des possibilités !

Comment est-ce possible ?

Tout simplement parce que la carte ne contient non pas deux L293D, mais un circuit intégré qui va piloter un quadruple pont en H. Arduino va communiquer avec ce circuit grâce à un protocole de communication (c'est-à-dire en utilisant un code de discussion précis) pour donner les ordres nécessaires au circuit intégré. Ce protocole s'appelle I2C, et il ne nécessite du coup que deux pins analogiques : le pin 5 et le pin 6.

Là où la société Adafruit se distingue des autres constructeurs, c'est qu'elle propose une bibliothèque complète pour utiliser son shield, "Adafruit motor", en code libre (donc modifiable) et qui va gérer la communication entre l'Arduino et le circuit intégré. Vous allez donc apprendre à télécharger et utiliser cette bibliothèque !

Mais avant de programmer notre shield, voyons comment souder les headers (les petites pattes en métal qui vont permettre la connexion sur l'Arduino).

Un point sur la soudure

Pour souder, il vous faut un fer à souder.  Ça se trouve partout (magasins de bricolage, d'électronique, de modélisme, sur Internet..) et ce n'est pas excessif, vu l'utilisation que vous en ferez dans votre carrière de passionné du robot. Si vous ne vous sentez pas d'en acheter un ou de faire les soudures vous-même, je suis sûr que vous avez dans votre entourage un bricoleur qui peut vous dépanner. Au pire, en allant dans un magasin d'électronique, je pense qu'il vous feront les soudures gratuitement (si vous demandez gentiment) ou avec un petit billet (si votre tête ne leur revient pas ;) ).

(Pour vous Lukas, je pense qu'il serait plus sage de vous mettre à la soudure...)

Je ne vais pas vous faire un cours magistral sur la soudure et le matériel à utiliser et tout. Je vais juste attirer votre attention sur deux points : la sécu et la bonne soudure.

Un point sécu !

Le fer à souder permet de faire fondre de l'étain afin qu'il fasse contact entre le circuit et le composant. La température de fusion de l'étain est de 231,9 °C. Dire que c'est chaud est un euphémisme.

Voici donc quelques règles de sécurité à l'adresse des inconscients :

  • Ne laissez jamais un fer à souder branché si vous ne l'utilisez pas.

  • Reposez toujours le fer sur son socle entre chaque utilisation (on ne le pose pas sur la table en bois du salon).

  • Fixez bien le socle sur le plan de travail (ben oui, si il tombe, il ne sert à rien).

  • Travaillez dans un environnement sans risque (pas d'enfant proche, ou alors calmes, pas d'essence, de gaz, ou autre produits inflammables...).

  • Ne laissez jamais un enfant souder seul (mais accompagné d'un adulte, c'est complètement possible ! Le fer n'est dangereux que mal utilisé).

  • Ne vérifiez pas que le fer est chaud avec votre doigt ou toute autre partie de votre corps.

  • Pour les Italiens et toute personne qui parle en faisant des gestes, posez le fer sur son socle avant de vous exprimer.

Tout ceci peut paraître évident, mais un petit rappel fait moins mal qu'une brûlure...

La bonne soudure

Une bonne soudure est une soudure qui fait le lien électrique correct entre le composant et le circuit. Une soudure qui bouge n'est pas une bonne soudure. Je vais donc vous faire la différence entre une bonne soudure et une mauvaise soudure (oui ce sketch est inconnu).

Vous trouverez sur Internet, ou avec les conseils de vos amis spécialistes, bien des explications sur la façon de souder. J'ajoute juste un petit visuel qui permet de garder en tête l'image d'une bonne soudure :

Une bonne soudure (http://meteosat.pessac.free.fr)
Une bonne soudure (http://meteosat.pessac.free.fr)

Ça a l'air simple comme ça, mais obtenir la forme chapiteau (à gauche) n'est pas si évident au début ! On obtient souvent la forme boule (au centre) qui n'est pas une soudure viable.

L'enchaînement des gestes est assez simple (si votre composant et votre plaque sont stables), là encore une explication en images :

Les bons gestes pour souder à l'étain (http://www.astuces-pratiques.fr)
Les bons gestes pour souder à l'étain (http://www.astuces-pratiques.fr)

 

Soudez les pattes

Lorsque vous recevez votre shield, les dominos est les pattes ne sont pas soudées. Je ne vais pas refaire ici ce qui a déjà été très bien fait par le constructeur (toujours le petit plus Adafruit). Je vous invite donc à consulter leur page d’instructions  pour souder les composants du shield. Même si vous n'est pas à l'aise en anglais, les images de cette page sont largement suffisantes pour tout placer correctement.

À propos des commandes sur Internet et en particulier à l'étranger :

Si vous savez ce que vous voulez et que vous savez où le commander, je vous conseille fortement de grouper vos commandes ! En effet, les frais de port et les taxes ajoutent au coût du produit. 

C'est dommage de devoir payer 5€ de frais pour 4 LED à 0,1€ l'unité.

Faites donc le tour de tout ce dont vous avez besoin (jumpers, pin-header, résistances, diodes, moteurs, servo...) et faites un tir groupé. ;)

Une fois votre shield monté et prêt, voyons comment l'utiliser !

Connectez le shield et les moteurs à la carte Arduino

Alors pour connecter le shield, c'est pas bien difficile, et je pense que vous n'avez pas eu besoin d'une explication pour réussir : il suffit d'enficher le shield sur l'Arduino. Et c'est tout ! Bien sûr ça marche si vous avez tout soudé au bon endroit...

(Non Lukas, ce n'est pas je m'enfiche, tu t'enfiches, il s'enfiche... "Enficher" c'est faire correspondre les bonnes pattes du shield sur les bons trous de l'Arduino !)

La connexion des moteurs au shield est, elle aussi, d'une simplicité enfantine !

Vous avez deux dominos de chaque côté du shield :

Les dominos de connection des moteurs
Les dominos de connexion des moteurs

Ils servent à brancher vos moteurs. Sur chaque domino, on peut connecter 2 moteurs pour les faire tourner dans les deux sens. Pour chaque moteur on va utiliser deux trous à vis. Ils sont repérés par un marquage sur la carte : M1, M2, M3 et M4. 

Vous pouvez choisir les connexions qui vous conviennent le mieux, n'en n'utiliser qu'une ou les quatre, vous êtes libres.

Si vous utilisez une source d'énergie externe (et c'est conseillé), il suffit de la brancher sur le domino restant en respectant les bornes + et -.

Une fois tout ceci connecté, nous pouvons passer à la suite !

Example of certificate of achievement
Example of certificate of achievement