Introduction   la robotique avec Arduino - Maths - .1 Introduction   la robotique avec Arduino

  • View
    222

  • Download
    1

Embed Size (px)

Text of Introduction   la robotique avec Arduino - Maths - .1 Introduction   la robotique avec...

  • 1

    Introduction la robotique avec Arduino 1. Introduction

    Nous allons pendant ces TD travailler sur la plate-forme de prototypage lectronique Arduino. Cette plate-forme permet de crer de lappareillage lectronique interactif de manire simple. Deux versions sont proposes, lune avec de llectronique, lautre sans. Pour ceux qui ont peur de llectronique, vous commencerez avec les modules Tinkerkit , qui vitent de faire des montages. Vous ferez ensuite, si vous en avez le temps, la version lectronique pure . Les modules Tinkerkit sont des briques, que lon connecte tout simplement par des cbles.

    Je vous demanderai de faire preuve de mesure et de dlicatesse lors des manipulations, les composants sont fragiles. Vous travaillerez deux. Vous rangerez en fin de sance les composants que vous aurez utiliss dans les bonnes cases, sous peine den tre priv la fois daprs !

    Enfin, si ces TD vous plaisent, vous pouvez prolonger lexprience chez vous. Un Arduino cote 20 euros, une boite de composants lectroniques (kit de dbutants pour Arduino par exemple) dans les 40 euros (on peut trouver moins cher encore, la qualit/solidit sera en consquence). Et si vous navez pas peur de langlais, un trs bon bouquin, complet : Arduino Cookbook, Michael Margolis, ditions OReilly (il existe aussi des livres en franais, plus simples et trs bien faits, ainsi que des tutoriels sur le net, de qualit variable). Vous pouvez aussi utiliser des modules comme TinkerKit, cest un peu plus cher et un peu plus simple. Dans ce cas je vous conseille plutt les modules Grove , Tinkerkit tant en sommeil ces dernires annes.

    2. Premier programme. Matriel : vous aurez besoin uniquement dune carte Arduino et dun cble USB Nous allons faire clignoter une des LED (light emitting diode, diode lectro luminescente ou DEL en franais) situe sur la carte Arduino, sans faire de montage pour linstant. Cest la diode marque L sur la carte (reprez-la). Lancez le programme Arduino sur lordinateur. Ce programme est un IDE : environnement de dveloppement. Cest dans ce logiciel quon tape les programmes, et quon les envoie la carte Arduino. Vous devriez pouvoir choisir la langue dans les prfrences. Dans outils>carte (Tools>board en anglais), cochez Arduino Uno/Gnuino. Allez dans Outils>Port srie, regardez quels sont les ports prsents. Branchez ensuite la carte arduino via un cble USB. Puis retournez dans Outils>Port Srie, vrifiez si la carte apparat et cochez le port en question. Si elle napparat pas, branchez la carte sur un autre port et recommencez. Captures dcran et quelques explications supplmentaires : http://arduino.cc/fr/Main/DebuterInstallationWindows. Tapez le programme figurant dans la premire colonne, dans lIDE Arduino, en respectant absolument les majuscules et symboles prsents :

    Programme Explications // Programme crit par Genie_1 et Genie_2

    Cette ligne est un commentaire, elle commence par //. On massacre allgrement lorthographe en ne mettant aucun accent, aucune cdille etc. dans les programmes informatiques. Pour des commentaires de plusieurs lignes, on les crit entre /* et */

    void setup(){ Le setup est linitialisation du programme, qui ne sera excut quune seule fois au dmarrage. On ouvre le setup avec une accolade

    pinMode(13,OUTPUT); On dclare la connexion 13 comme tant une sortie de courant. Chaque ligne de programme se finit par un point-virgule. On dcale les instructions, dune tabulation ou de quatre espaces, chaque fois que lon ouvre des nouvelles accolades.

    } Fermeture du setup void loop() { Boucle principale, excute linfini digitalWrite(13,HIGH); delay(1000); digitalWrite(13,LOW); delay(1000);

    On envoie du courant dans la broche 13. On attend 1 seconde (1000 millisecondes) On coupe le courant dans la broche 13. On attend 1 seconde

    } On ferme la boucle principale

  • 2

    Ce programme est crit dans une variante du langage de programmation C. Le C est un langage trs rapide, mais qui nest pas le plus simple crire. Sauvegardez votre programme, puis tlversez-le dans la carte avec le bouton . Et l cest MAGIQUE. Ou alors a plante : vous avez des commentaires en orange dans la partie en bas de la fentre de lIDE. Si cest un problme not in sync , cest que la carte Arduino nest pas reconnue sur le port srie. Reprenez le dbut de ce paragraphe. Sinon, cest probablement un problme de syntaxe (majuscule, point virgule oubli, etc.)

    3. Premier montage.

    a. Version tinkerkit Matriel : une carte Tinkerkit (un shield ), un cble Tinkerkit et un module DEL. Branchez le shield sur lArduino, et la diode sur le port O0 (Output 0). Le programme prcdent est transform comme ceci :

    #include //la bibliotheque TinkerKit permet dutiliser les //modules

    TKLed led(O0); // declaration de la DEL en sortie void setup() { } void loop() { led.on(); // on allume la DEL delay(1000); led.off(); // on eteint la DEL delay(1000); }

    b. Version montage lectronique

    Matriel : lisez dabord la description des composants ci-dessous. Une breadbord, une DEL, une rsistance de 220 Ohms, deux cbles male/male (un rouge et un bleu si possible, surtout pour le rouge). La breadbord est une planche de montage exprimentale (ou de prototypage). Elle se prsente sous la forme suivante, o les trous de la mme couleur sont relis entre eux Les trous d'en haut/bas servent souvent pour le courant. Par convention, on met un fil rouge/marron pour l'entre, un fil bleu pour la sortie et un fil noir/bicolore pour la terre pour le 220 V. La couleur rouge est imprativement respecte car dangereuse, notamment avec le 220 V : ne touchez jamais un fil rouge ou marron dans une prise ou un interrupteur sans avoir dabord coup le courant ! Ci dessous la connexion du courant sur la breadbord, avec un agrandissement du branchement sur la carte.

    La diode est un composant lectronique qui ne laisse passer le courant que dans un sens. La diode lectroluminescente met en plus de la lumire. Il faut donc la brancher correctement : reprer la patte

  • 3

    plus courte et le ct coup du ct ngatif (cathode).

    Des DEL Vue dune DEL avec le sens, et symbole Diverses rsistances, symbole Il est ncessaire de mettre une rsistance avant ou aprs la diode, sinon le courant est trop fort et va la griller terme. Un calcul permet de trouver une valeur de 160 ohms. Dans les faits, une rsistance entre 100 et 1k ohms est correcte. On met souvent 220 ohms pour une led (rouge rouge marron, vrifier avec la table/mthode ci-dessous). Plus la rsistance est forte moins la diode mettra de lumire.

    Lecture de la valeur dune rsistance :

    * Le troisime anneau n'est utilis que lorsque la tolrance de la rsistance est infrieure 2 %. Un moyen mnmotechnique pour se souvenir de l'ordre des couleurs dans le code couleur des rsistances est de connaitre la phrase suivante : "Ne Manger Rien Ou Jeuner Voil Bien Votre Grande Btise" ou encore "Ne Mangez Rien Ou Je Vous Brle Votre Grande Barbe" (dans les deux cas, vert est avant violet, comme dans le dictionnaire). Chaque initiale correspond la premire lettre de chaque couleur.

  • 4

    Voici une premire proposition de montage, ne pas faire, avec ct le schma lectronique symbolique :

    En fait, nous allons utiliser les broches (pin en anglais) 0 13 pour brancher les composants. En effet, le montage ci-dessus envoie du courant en permanence, tandis que lon peut programmer les broches 0 13 pour envoyer le courant quand on le souhaite. Dans les faits, on vite dutiliser les connexions 0 et 1, qui peuvent servir au port srie (que lon verra ultrieurement) Pour simplifier, on branchera directement le courant sur la colonne de trous o sont les composants, sans passer par les trous du bas (ou du haut). Do le montage que lon ralise (vous pouvez prendre nimporte quelle connexion, sauf 0 et 1) :

    Reprendre le programme du 1 et le tester sur votre montage. Attention : dclarer la bonne connexion, ce nest plus forcment la 13. Remarque : on peut aussi monter la diode lenvers : elle sera alors teinte en mode HIGH et allume en mode LOW. Daprs OpenClassrooms, ce montage conomise la carte.

    4. La boucle pour . La boucle pour i de 0 xxx est une instruction qui rpte plusieurs fois un bloc dinstructions, en gnral xxx fois. On dit que cest une instruction itrative (une itration = une rptition). On utilise un compteur de boucle (itrateur) en gnral i, j ou k. On prcise de combien on augmente le compteur de boucle chaque itration. Exemples :

    i = i + 1 augmente de 1 le compteur i chaque itration (standard) ; i++ augmente de 1 le compteur i chaque itration (raccourci pour i = i + 1) ; i = i 1 diminue de 1 le compteur chaque itration ; i = i*2 multiplie par 2 le compteur chaque itration.

  • 5

    En C, la syntaxe du pour est :

    for (int i=0; idevoirs>Mandon. Ils seront nomms comme suit : ex_arduino_1_1_Nom1_Nom2.ino (pour le 1er exercice ci-dessous, exercice 1_1, puis vos noms)

    a. Exercice 1_1. Faire clignoter la diode alternativement deux secondes, puis une seconde (remarque : pas besoin de for ).

    b. Exercice 1_2. La diode doit clignoter 10 fois une seconde, puis sarrter.

    c. Exercice 1_3. La diode doit dabord clignoter 5 fois une seconde, ceci une seul fois, puis alterner 10 clignotements rapides dune demi seconde, et 10 clignotements lents de deux secondes sans fin.

    d. Exercice 1_4. La diode doit clignoter de plus en plus rapidement, puis de plus en plus lentement, et ainsi de suite. Par exemple en millisecondes : 200 400 600 800 1000 800 600 400 200 etc... On peut aussi faire 100 200 400 800 1600 800 400 200 100 etc... Remarque : on peut mettre une variable, ou bien un calcul, dans delay() . Les oprations usuelles sont +, - ,* , /. Le nom de la variable est au choix