Construire un robot Arduino basé sur le châssis DFRobot Turtle 2WD

Ce tutoriel est le résultat de mon tout premier projet Arduino. Je vais vous expliquer dans les moindres détails comment monter votre propre rover d’exploration, vous allez voir c’est passionnant !

J’ai choisi un robot deux roues motrices : simple à programmer, extrêmement réactif dans les virages et également moins coûteux pour un coup d’essai.

Mises en garde

Vous devez tout d’abord savoir que faire des recherches, nombreuses, approfondies, vous évitera de passer des commandes successives comme cela a pu m’arriver et d’économiser de manière non négligeable sur les frais de ports. Un colis de 1,4 kg en provenance de Chine coûte 30€ en FDP + 16€ en douane à l’arrivée : groupez vos commandes. N’hésitez pas à tout lire avant d’agir.

Je tiens notamment à vous mettre en garde sur la nature des produits Arduino. Les lettres DIY signifient Do It Yourself, vous trouverez ainsi très souvent sur des sites des produits vendus en pièces détachées à souder intégralement vous même, sans être signalés. Il faut lire attentivement.

Attention enfin concernant le châssis, deux plateformes très différentes sont commercialisées, la version avec l’ancienne configuration de perçages et la nouvelle version (le grand trou à l’étage se retrouve au dessus de la bille en métal, alors qu’il était à l’opposé et le contour de l’étage change).

Choix des composants et étude préliminaire

Pour réaliser un robot avec une carte Arduino Uno, nul besoin d’être grand bricoleur. Il existe des tas de kits à assembler spécialement conçus pour fixer votre Arduino dessus.

Le Turtle – 2WD Mobile Platform est livré avec deux moteurs 6V, deux roues, un troisième point d’équilibre qui est une bille en métal montée sur roulement, un magasin de capacité 5 piles (7,5V), un interrupteur et un tas de supports pour votre carte Arduino et des capteurs.

Contrôler des moteurs n’est pas chose facile, j’ai lu que cela se faisait sur breadboard à l’aide d’un « pont en H ». Malgré mon bac STI Életrotech, je dois avouer que j’ai un peu décroché. Alors je me suis tourné vers quelque chose de plus accessible : un Shield.

Le Rotoshield est une carte d’extension Arduino qui permet de contrôler jusqu’à quatre moteurs à courant continu ou 2 moteurs pas-à-pas, il propose des borniers pour câbler les moteurs et une alimentation externe. La bibliothèque fournie est incroyablement simple : Motor.setSpeed(255);.

En l’absence d’alimentation externe, le Rotoshield va puiser son énergie dans l’alimentation de l’Arduino. Le problème c’est que les moteurs ont tendance à faire de brèves chutes de tensions à l’allumage, cela aurait pour effet de redémarrer l’Arduino de manière intempestive. Même si le Rotoshield propose des composants de « pull down » et antiparasites, il faut ajouter un autre magasin de piles (avec connecteur Jack DC).

Bien ! Comme votre robot peut maintenant avancer, il lui faut des yeux pour se diriger. Il existe trois types de capteurs télémètres :
- le DFRobot Adjustable Infrared Sensor Switch, gamme de 3 à 80cm digital (de type « On/Off »), réglable à l’aide d’une petite vis.

  • Avantages : 7€, destiné à être monté dans les fixations fournies avec le kit du robot, réglage par défaut parfait.
  • Inconvénients : capteur à déclenchement fixe et sensible aux parasites créés par des moteurs (bloque sur ON).

- le Sharp GP2Y0A21, gamme de 10 à 80cm analogique, fournissant une tension variable continue selon la distance.

  • Avantage : Information précise de la distance en temps réel.
  • Inconvénients : ~2x plus cher (12€ à 16€), une fixation à acheter pour chaque capteur (4,5€).

- le sonar est très nettement plus cher (50€), moche et difficile à monter à cause du circuit électronique fourni sans support.

J’ai eu quelques problèmes avec mes capteurs DFRobot numériques : ils se déclenchaient en permanence alors qu’il n’y avait aucun obstacle. Après avoir longuement cherché la cause, il semble que ces capteurs aient besoin d’un voltage minimum pour fonctionner, mes accus étaient en effet déchargés. Ce problème semble épargner les capteurs analogiques selon ce témoignage.

Je préfère orienter votre choix sur deux Sharp, malgré le budget. Les deux types de capteurs IR sont indifféremment très simples à prendre en main. Je vous incite également à ajouter ce pack de fils électriques qui vous évitera des soudures.

Et enfin, pour pimenter un peu mon projet, j’ai eu l’idée de le sonoriser. Quand un robot roule, vous n’avez plus aucune information, pas de console, pas d’écran. Pour ajouter l’utile à l’agréable, cela vous permettra de le faire parler ou d’émettre des bips comme R2-D2.

J’ai donc mis la main sur un Wave shield Adafruit qui propose une sortie Jack 3.5mm, un potentiomètre de réglage du volume et un port pour carte SD. Vous pourrez utiliser votre carte SD Haute Capacité indépendamment pour ce que vous souhaiterez. Ce Shield lit les .WAV car non compressés.

Faites très attention aux conflits en achetant plus d’un Shield, étudiez les schémas électroniques, renseignez vous sur les forums des constructeurs pour savoir s’ils n’utilisent pas matériellement les mêmes pins. Téléchargez les bibliothèques, aurez vous assez d’entrées/sorties ?

Exemple :
Le Rotoshield et le WaveShield ont le pin Digital 11 matériellement commun (non déplaçable dans les deux). Cela a pour conséquence de rendre le bornier N°2 du Rotoshield inutilisable (un moteur sur quatre). Mais ils ont aussi deux autres conflits logiciels et là se pose l’autre problème, la consommation du nombre de pins peut être importante, vous pourriez ne plus en avoir assez de libres !

Et ce n’est pas tout ! Le Rotoshield, très épais, doit obligatoirement être au sommet de votre sandwich. Sachez enfin que :

  • Les pins digitaux 0 et 1 (respectivement RX et TX) ont une fonction de Réception / Transmission Série qui est prioritaire sur l’USB. Résultat, si un sketch compilé n’est pas présent sur l’Arduino pour les initialiser en tant qu’I/O, connecter quoi que ce soit dessus empêchera tout nouveau transfert par USB. Pour les utiliser, transférez d’abord votre programme, puis reconnectez les (utilisez-les pour déplacer des pins dans les bibliothèques).
  • Vous pouvez utiliser les pins analogiques en tant que pins digitaux, ils s’utilisent exactement de la même manière. a0, a1, a2, a3, a4 et a5 sont respectivement les pins digitaux 14, 15, 16, 17, 18 et 19.

L’ensemble de mes achats a été réalisé sur deux uniques boutiques :
- SnootLab permet à l’aide d’une option de recevoir les Shields « totalement montés » pour un surcoût de quelques euros. C’est une boutique française qui conçoit ses propres Shields, d’une qualité exemplaire (ils consomment peu de pins),
- DFRobot produit certainement les meilleurs châssis de robots pour Arduino. Attention toutefois, l’entreprise est en Chine, les frais de ports sont exorbitants, utilisez plutôt leurs revendeurs français. S’ils sont affichés hors stock, n’hésitez pas à leur demander, ils s’approvisionneront sur demande.

Vous avez fait vos courses ? Derniers préparatifs !

Vous allez avoir besoin d’outils, mais ne courrez pas au magasin dépenser vos économies : demandez à vos parents, grands parents, oncles et amis.

En premier lieu, je vous conseille de glaner un minimum d’outillage :
- des tournevis cruciformes et plats de toutes tailles,
- un fer à souder, un support métallique stable et de l’étain,
- un chiffon et une éponge pour nettoyer vos ratés,
- un cutter ou une pince à dénuder des fils électriques,
- des bouts de fils électrique de petit diamètre (0,6 à 0,8mm),
- du scotch transparent très adhésif pour protéger et isoler vos soudures,
- quelques pinces (plates et à crans si possible).

En outillage optionnel mais vraiment ultra pratique :
- une troisième main (6,50€), presque vital pour souder, comme moyen de fortune alternatif vous pouvez tenir vos fils entre des masses de marteaux,
- un kit à dessouder, ça vous servira dans votre vie,
- un pack de tubes réfractaires à protéger et isoler les soudures,
- un voltmètre.

Maintenant que vous avez votre équipement, passons à la suite. Voici un guide pour apprendre à souder, je vous conseille de faire quelques essais !

Câblage des moteurs

Vous venez de déballer tous vos colis, vous avez imprimé le guide montage qui est entre vos mains, vous savez donc par où nous allons commencer.

  1. Vous avez un long double câble dans le kit DFRobot : pliez-le en deux et coupez-le à la moitié. La suite s’applique pour chaque moitié.
  2. Dénudez le cuivre des fils à chaque extrémité sur 5mm et torsadez-les. Vous pouvez séparer un peu les gaines sur 1 ou 2 cm.
  3. À l’une des extrémités, placez une goutte de soudure sur chaque fil pour unifier les brins. Cette extrémité sera placée dans le bornier du Rotoshield.
  4. À l’autre extrémité, pliez les brins de cuivre dénudés à 90°, bien au milieu des 5mm qui dépassent de la gaine.
  5. Glissez un premier fil à angle droit dans l’un des trous du moteur et repliez-le bien pour qu’il tienne dans l’encoche.
  6. Appliquez un généreux point de soudure dessus (relire le guide ?).

Il vaut mieux glisser les brins pliés à angle droit toujours par le dessous des trous, cela facilite les opérations. La couleur des fils n’a pas d’importance, ceci dit par convention, si vous regardez vos deux moteurs dans le même sens, les couleurs doivent être dans le même sens. Cela permet d’avoir une alternance « Rouge-Noir-Rouge-Noir » en arrivant au bornier du Shield (moi je me suis planté).

Pour installer un moteur, insérez le dans l’encoche du châssis puis fixez les longues vis : tenez l’ écrou dans une pince plate et vissez avec l’autre main. Le montage de la roue va être votre premier calvaire : le trou est souvent très juste, il faut appuyer bien fort tout en étant précautionneux.

Vous pouvez maintenant fixer la bille d’acier à son emplacement. Vous devriez avoir ça :

Assemblage de l’étage

Pour cette étape décrite en page 6, ne montez pas tout de suite le magasin de piles sur le châssis, il va falloir le bricoler avec celui que vous avez acheté pour qu’ils fonctionnent tous les deux sur ordre de l’interrupteur.

On va commencer par assembler les éléments de l’étage, comme ça on pourra définir à quelle longueur couper/souder les câbles, en fonction de la position de vos cartes électroniques, de l’interrupteur, etc. Voici la seule position où trois trous concordent avec les perçages de l’Arduino :

Si vous tenez la plaque face à vous, les trois grands rectangles vides vers le haut avec à leur droite deux trous manifestement plus larges que la moyenne : votre carte Arduino se fixe au dessous des rectangles, dans le sens horizontal, connecteur USB à gauche.

Vous trouverez dans les sachets du kit quatre supports dorés : il ne reste plus qu’à les fixer avec des écrous. Avec le bout d’une pince à crans, tenez fermement l’écrou vissé à la main sous la plaque et serrez le support doré avec une pince plate. N’hésitez pas à élargir doucement les perçages avec un tourne vis, la peinture les a légèrement rétréci.

La difficulté majeure nous est offerte par la Team Arduino. Ils ont bien pensé à normaliser le format des perçages, mais que met-on dans les trous ?! Des vis oui et toutes les vis ont… des têtes, qui ne passent pas le long des connecteurs qui arrivent juste au bord du trou proche de l’USB.

Alors deux solutions :

  1. Prendre un des supports dorés, le passer à l’envers dans le trous près du Jack DC et serrer l’écrou dessus. Le support de carte mère fera un appui acceptable sous la carte. C’est une solution temporaire proposée par DFRobot qui ne s’était pas rendu compte de cette modif sur l’Arduino Rev3.
  2. Limer la tête de vis jusqu’au plus près du filetage, soit à la lime (il faut être très patient), soit avec un appareil tel qu’une meule. C’est ultra dangereux car une vis est minuscule. Je l’ai fait parce que j’avais le matériel : des lunettes anti-éclat de chantier, des gants et une pince pour tenir la vis. Avec cette solution vous allez en plus abîmer le filetage lorsque la vis bougera, je déconseille très très fortement, ne risquez pas un œil pour une vis.

Le point d’appuis ne touchera pas le sol d’une fraction de millimètre. Il fera cependant parfaitement soutient si vous exercez une pression sur votre carte en fixant vos Shields. N’essayez pas non plus de visser contre le connecteur en forçant, cela endommagerait l’ensemble des connecteurs. DFRobot affirme que la conception de l’étage sera revue pour ajouter le 4ème trou, affaire à suivre.

La pose des capteurs à l’étage est la dernière chose à faire pour cette étape : fixez-les dans les deux fentes les plus proches de la fente du milieu et glissez-les vers elle, le plus possible vers le milieu du robot (mes photos n’illustrent pas ce dernier réglage).

Câblage des magasins de piles

Le bloc fourni avec le kit DFRobot n’a pas de connecteur, nous allons nous en servir pour le bornier d’alimentation externe du Rotoshield. Quant à l’autre bloc que vous avez acheté avec un embout Jack DC, il sera fixé à l’étage et alimentera votre Arduino. Ainsi, lorsque votre Arduino sera connecté en USB tout fonctionnera (capteurs, musique) sauf les moteurs. Vous n’aurez qu’à basculer l’interrupteur pour les faire fonctionner.

Vous allez me dire que c’est idiot, le bloc du bas a moins de piles pour les moteurs que celui du haut :

  1. Il vaut mieux que les moteurs s’arrêtent les premiers, un Arduino en dessous de 5V est instable.
  2. Ce n’est pas le nombre de piles qui compte mais leur capacité en courant. En revanche cela porte le bloc à 9V.
  3. Arduino supporte de 6V à 20V (7V à 12V recommandé) et le Rotoshield de 5V à 18V.

Cette étape est un peu délicate, vous devez tout d’abord repérer les pôles négatifs des magasins. Pour celui du kit c’est simple, le pôle positif est le fil rouge. Pour l’autre, observez attentivement sur quelles piles arrivent les fils, vous finirez par le trouver. Vous n’avez pas encore vissé vos blocs mais vous pouvez déjà les positionner, ça vous aidera à visualiser où vont les fils, de même que l’interrupteur.

  1. Sectionnez le fil négatif du magasin supplémentaire que vous avez acheté, au niveau de l’interrupteur.
  2. Dénudez les fils ainsi que ceux du magasin du kit DFRobot.
  3. Torsadez les fils des pôles négatifs (seulement eux) et pliez-les à 90°.
  4. Passez-les dans le pin du milieu de l’interrupteur et posez une grosse goutte de soudure.
  5. Soudez maintenant de la même manière un fil électrique entre l’un des pins restants et le connecteur Jack (sans torsader les brins cette fois, faites correspondre les deux fils pour obtenir une soudure bien droite).
  6. Vous devez également rallonger le fil du pôle positif du magasin d’origine, car d’en bas il n’atteindrait jamais le bornier M+ du Rotoshield. Respectez si possible la convention du fil rouge, n’oubliez pas de dénuder/torsader son extrémité et d’y poser une goutte de soudure.
  7. Enfin, protégez vos soudures (avec du scotch par exemple) pour éviter les étincelles !

Pour finir cette étape, vous pouvez visser vos magasins sur le châssis et obtenir ceci, ce qui fournira un très bon équilibrage :

Installation des composants

Cette étape est la plus simple, gardez à l’esprit que rien ne peut être empilé au dessus du Rotoshield. Dans l’ordre vous devez avoir Arduino + un éventuel Shield + le Rotoshield. J’ai fait passer tous les fils dans le grand rectangle (ou ce qu’il en reste après la pose du magasin supplémentaire).

Si vous avez un Waveshield, vous savez que le bornier M2 est interdit pour cause de conflit matériel. Vous pouvez connecter vos moteurs dans M1, M3 et M4 (ne placez rien dans les borniers GND si vous n’utilisez que les moteurs DC du kit) puis connectez le fil que vous avez rallongé dans M+.

Voici le schéma de montage du capteur DFRobot (mais très classique pour n’importe quel capteur) :

Le connecteur du capteur reçoit en réalité rouge (+5V), noir (GND) et jaune (le signal). Voici comment vous devez les connecter :

  • Vous devez souder deux petits fils en « Y » (idéalement ceux du pack de 65 fils connecteurs, prenez-en des rouges) de sorte que chaque capteur soit relié à l’unique pin « 5V » de votre carte : coupez-en un en deux et dénudez l’autre, soudez les trois en un seul point, vous obtiendrez trois embouts.
  • Connectez ensuite la couleur noire de chaque capteur par un petit fil blanc à l’un des pins GND de votre carte (il y en a trois).
  • Enfin, après avoir étudié les pins qu’utilisent vos Shields, connectez un petit fil jaune pour chaque capteur dans un des pins I/O numériques (ou analogiques émulés en numériques) de votre choix.

Vous n’avez plus qu’à écrire un petit programme à l’aide de l’exemple fourni par le wiki DFRobot pour faire reculer votre robot dès qu’un capteur est activé, cela vous permettra de connaître leur distance de déclenchement.

N’oubliez pas de dégoter un vieux casque pour cacher les haut-parleurs à l’intérieur de votre châssis !

Annexes

Vus : 2667
Publié par Influence PC : 88