Débuter avec Arduino

Partie 1 : J' ♥ Arduino !

Tutoriels, exercices, documentations et références


SECONDAIRE | DIFFICULTÉ MOYENNE | 6 À 8 HEURES


Depuis quelques années, Arduino est partout, on en entend beaucoup parler et on se demande parfois ce que c'est et à quoi ça sert. Et comment l'utilise-t'on ? Ça doit être difficile... Oh non il faut apprendre un language de programmation !
Pas de panique ! Je suis là pour démystifier la chose !

Ce tutoriel sera divisé en 6 chapitres ponctués d'exercices :
  1. Partie 1 : comprendre ce qu'est Arduino, les signaux analogiques et numériques, les entrées et les sorties.
  2. Partie 2 : simulation de circuits simples avec Tinkercad, premiers programmes, les fonctions et les arguments.
  3. Partie 3 : utiliser des capteurs, les signaux numériques et les variables.
  4. Partie 4 : les signaux analogiques.
  5. Partie 5 : les boucles incrémentielles et conditionnelles, les "bibliothèques".
  6. Partie 6 : les lois d'Ohm et de Kirchhoff, les résistances de pull-up/pull-down.
  7. Références : vous y retrouverez un glossaire des fonctions Arduino vues durant les 5 parties de ce tutoriel ainsi que quelques liens utiles!
L'étude de chaque chapitre devrait prendre une heure à 1h30 pour un total de 6 à 8 heures.
A la fin vous devriez avoir de solides bases pour aller plus loin !
Continuez à lire pour apprendre et devenir de vrais "Arduino addicts" !

Cliquez sur les titres pour lire les contenus.


Ça sert à quoi un Arduino ?


Toute bébelle électronique peut être faite avec un Arduino ! Il faut avoir de l'imagination, de la patience, de la logique et une ou 2 connaissances de base !
Voici quelques exemples !

On peut faire de l'art !
schéma
Sculptures kinétiques avec Arduino (ici).
schéma
Toile intéractive avec Arduino (ici).
schéma
Costumes de scène du ballet de Brooklyn avec Arduino (ici).

On peut faire des sciences !
schéma
Calcul de "g" avec Arduino (ici).
schéma
Étude de la fermentation avec Arduino (ici).
schéma
Construire un spectrophotomètre avec Arduino (ici).

On peut construire des machines !
schéma
Construire sa propre imprimante 3D avec Arduino ici.
schéma
Construire son drône avec Arduino ici.
schéma
Gameboy à assembler soi même avec Arduino ici.

On peut faire n'importe quoi !
schéma
Contrôler des microorganismes avec son cerveau ? Oui grâce à Arduino, voir la vidéo ici.
schéma
Un bouton pour commander un Coke par texto ? Le trump buton ici.
Il n'y a pas de limites, seuleument votre imagination !


Mais c'est quoi un Arduino alors ?


Un résumé de l'article Wikipedia s'impose !
Arduino est un microcontrôleur sous licence libre.
Le microcontrôleur peut être programmé pour analyser et produire des signaux électriques.
Il était destiné à l'origine principalement, mais pas exclusivement, à la programmation multimédia interactive en vue de spectacle ou d'animations artistiques.
L'Arduino emprunte son nom au Bar di Re Arduino (en français « bar du roi Arduin ») dans lequel se réunissaient les concepteurs de la carte, à Ivrée en Italie du Nord.

L'Italie a tant de belles choses à nous offir : le Nutella, les Vespa et Arduino !
Notez que les microcontrôleurs sont partout dans notre vie. Toute machine qui analyse et produit un signal est un microcontrôleur. Vous avez déjà programmé des Lego Mindstorm, ce sont des microcontrôleurs (la grosse brique carrée blanche avec un écran). Un thermostat programmable de chauffage ou de four possède un microcontrôleur.

Un microcontrôleur en général, ou un Arduino en particulier, est une sorte de Voltmètre-générateur de tension : il analyse des signaux électriques qui entrent (provenant de capteurs - distance, lumière, température...) et produit des signaux electriques qui sortent (pour actionner des moteurs, allumer des DEL, déclencher ou couper le chauffage, envoyer des textos, contrôler des paramécies...).
C’est le programme que l'on écrit qui indique à Arduino (ou au microcontrôleur) comment analyser le courant en entrée et quel courant produire en sortie.
Les microcontrôleurs existent depuis longtemps mais étaient au début difficiles à utiliser et reservés aux élites : ingénieurs, electroniciens, programmeurs... Arduino à changé la donne pour plusieurs raisons :
  • Ce n'est pas cher (15 à 40$ suivant les versions).
  • C'est facile a programmer.
  • Il y a une énorme communauté d'utilisateurs et de nombreux blogs pour s'aider, se former et échanger.

Un Arduino ça ressemble à ça :
schéma
La partie facile pour commencer !
  • Un bouton reset, pour "resetter" !
  • Une prise USB : pour "uploader le programme" dans l'Arduino ou l'alimenter en électricité.
  • Une prise "jack" pour brancher une pile ou un adaptateur-secteur pour les projets "portables"
  • Le cerveau : le microcontrôleur, une puce électronique qui rassemble mémoire vive, mémoire de stockage et unité de calcul (CPU)
  • Deux rangées de prises : les prises numériques en haut (numérotées de 0 à 13), les prises analogiques en bas (de A0 à A5) et les prises d'alimentation (3,3V, 5V, GND et Vin).
Et c'est tout !
Constatez que les prises analogiques sont notées "ANALOG IN". Et oui, ce sont des entrés, c'est la partie "voltmètre" de l'Arduino, certains signaux pourront entrer par là.
Entrons dans le détail !


Les signaux entrant et sortant, analogiques et numériques.


On pourrait grossièrement résumer comme ceci :
schéma
C'est le temps d'expliquer ce que l'on peut brancher sur un microcontrôleur en général ou un Arduino en particulier.
  • Tout signal entrant provient d'un capteur. Les capteurs modulent ou produisent un courant électrique en fonction des modifications de l'environnement (température, humidité, mouvement, lumière, vitesse, la liste est longue !). Ce courant électrique va entrer dans Arduino et être analysé par votre programme.
  • Tout signal sortant sert à actionner un effecteur. Un effecteur "effectue" une action bien précise : un moteur tourne, une DEL produit de la lumière, un relai coupe ou allume le courant, etc. C'est Arduino qui produit le courant nécessaire au bon fonctionnement des effecteurs, de la manière et au moment où votre programme le demande.

Vous l'aurez compris, les signaux qui entrent et sortent d'Arduino sont des signaux électriques. Ces signaux peuvent prendre des valeurs de tension de 0 volt, 5 volts, ou toute tension comprise entre 0 et 5 volts. Il y a 2 types de signal :
  1. Tension variable (entre 0 et 5 volts) Signal ANALOGIQUE ("analog" en anglais).
  2. Tension fixe (soit 0, soit 5 volts) : on dit "pulsé" Signal NUMÉRIQUE("digital" en anglais)
  3. .
Cette notion est importante. Voici quelques exemples de capteurs ou d'effecteurs analogiques ou numériques :
  • Signal entrant analogique : un capteur de température. Le signal varie en fonction de la température. La tension électrique qui sort du capteur et entre dans Arduino est comprise entre 0 et 5 volts et peux prendre n'importe quelle valeur dans cet intervalle [0, 5], proportionnellement à la température (précisément, un capteur de température est fait d'un matériel dont la résistance varie en fontion de la température).
    Ces signaux entrent par les prises "ANALOG IN" (prises A0 à A5 sur Arduino).
  • Signal entrant numérique : un capteur de mouvement. S'il n'y a pas de mouvements, la tension sortant du capteur est de 0 volt. Au contraire s'il y a du mouvement, la tension est de 5 volts. Arduino ne reçoit que 2 signaux possibles dans ce cas: soit 0 volt, soit 5 volts.
    Ces signaux entrent par les prises "DIGITAL" (prises 0 à 13 sur Arduino).
  • Signal sortant analogique : un moteur. Si Arduino produit une tension de 0 volt en sortie, le moteur ne fonctionne pas. S'il produit une tension de 5 volts, le moteur tourne à capacité maximale. Entre les deux, dans l'intervalle [0, 5] volts, le moteur tourne à des vitesses différentes.
    Ces signaux sortent par les prises "DIGITAL" identifées par un "tilde" (~) (prises 3, 4, 6, 9, 10 et 11 sur Arduino). Ce sont des prises PWM, nous verrons ceci dans la partie 3.
  • Signal sortant numérique : Allumer une lumière. Si Arduino produit une tension de 0 volt en sortie, la lumière est éteinte. S'il produit une tension de 5 volts, la lumière est allumée.
    Ces signaux sortent par les prises "DIGITAL" (prises 0 à 13 sur Arduino).
Et n'oubliez pas, c'est le programme que l'on écrit qui indique à Arduino comment analyser les tensions en entrée et quelles tensions produire en sortie ! Dans un programme, il faut donc dire si on doit "analyser" (entrée) ou "produire" (sortie) un signal "analogique" ou "numérique". En effet, comme vous venez de voir que les prises "DIGITAL" pouvent être des entrées ou des sorties, il faut le spécifier au programme. Gardez bien ceci en mémoire (dans votre microcontrôleur humain appelé "cerveau", le meilleur au monde, qui traite un paquet de signaux analogiques à chaque seconde et en produit tout un tas !).
Comment fait-on pour programmer alors ?


Comment ça se programme un Arduino ?


Un peu de vocabulaire pour commencer !
Tout programmeur utilise plusieurs logiciels, qui sont généralement regroupés ensemble pour simplifier le travail, et qui porte le joli nom d'Environnement de développement intégré (Integrated development environment en Anglais, ou IDE).
Allez, une petite définition Wikipedia ne ferait pas de mal !
En programmation informatique, un environnement de développement est un ensemble d'outils pour augmenter la productivité des programmeurs.
Il comporte un éditeur de texte destiné à la programmation, des fonctions qui permettent, par pression sur un bouton, de démarrer le compilateur ainsi qu'un débogueur, qui permet d'exécuter ligne par ligne le programme en cours de construction.
Tout est dit ! Il y a trois éléments dans un IDE qui sont nécessaires pour bien programmer :
  • Un éditeur de texte pour simplement écrire.
  • Un débogueur qui va scruter votre programme à la recherche d'erreurs qui pourraient l'empécher de bien fonctionner.
  • Un compilateur et en plus dans notre cas, un uploader. A quoi ça sert ? Le programme que vous écrivez est une succession de mots, la plupart du temps en Anglais, le tout mélangé avec des chiffres, des caractères spéciaux, etc. Cependant je ne sais pas si vous avez remarqué, mais Arduino ne sait pas lire l'Anglais : d'une part il n'a pas d'yeux et d'autre part il est italien. Pour qu'une machine, quelle qu'elle soit (le plus gros ordinateur du monde ou le rice cooker de mamie) puisse comprendre un programme écrit pas des humains, il faut le lui traduire en language binaire. C'est ce que l'on appelle la compilation. Quant au uploader, il va se charger d'acheminer le programme dans la mémoire d'Arduino.
L'IDE Arduino est téléchargeable gratuitement ici sur le site officiel de la fondation Arduino. Vous pouvez également utiliser les outils en ligne, mais je vous recommande, pour la suite du tutoriel, de télécharger et installer le logiciel sur votre ordinateur si ce n'est pas déjà fait.
Et cet IDE ressemble à ceci :
schéma
Tout est là !
Dans la suite de ce tutoriel nous travaillerons avec l'IDE Arduino certes mais également beaucoup avec un simulateur en ligne (Tinkercad circuits). Nous y viendrons le moment voulu !
Maintenant que les présentations sont faites, voyons voir comment on construit un circuit, ce que l'on appelle parfois "prototypage".


Comment construire un circuit avec Arduino ?


L'avantage d'Arduino est que le prototypage doit être rapide, facile et accessible à tous. Pas de soudure, pas de matériel complexe, pas de connaissances nécessaires, ce qu'il faut, c'est une breadboard. Oui oui une planche à pain ! En français on dit une platine d'essai.
Avant, une breadboard ressemblait littéralement à ça, entre l'époque des dinosaures et celle d'Arduino. On y plantait des clous et on enroulait les fils autour.
Mais les temps ont changé, les dinosaures ont disparu, et une breadboard ressemble à ça :
schéma
Une plaque de plastique avec des trous partout ? Mais c'est horrible je n'y comprends rien ! Pas de panique ! Regardons ensemble !
  1. Image 1, recto : En effet, il y a des trous partout ! Ce qu'il faut retenir, c'est que les 5 trous de chaque rangée (numérotées de 1 à 30 dans cette image de breadboard) sont connectés ensembles. Ainsi, si vous branchez des fils sur 1-a, 1-b, 1-c, 1-d ou 1-e, ils sont en fait tous branchés ensemble. Comme si vous les aviez soudé.
    Il y a une exception pour les colonnes "+" et "-" (rouge et bleu, à droite et à gauche). Dans ce cas-ci, toute la rangée "+" est connectée ensemble, et toute la rangée "-" aussi. En général on se sert de ces rangées comme d'une "multiprise" pour alimenter notre projet en electricité (il n'y a qu'une seule prise 5 volts sur Arduino, d'où la nécessité de se bricoler une prise multiple).
  2. Image 2, verso : Ici nous avons ouvert une breadboard pour voir ce qu'elle a dans le ventre. On y voit très bien les "rails" métalliques qui mettent les prises en contact. Vous comprenez maintenant que quelle que soit la prise où vous branchez un fil dans une même rangée, il y a un rail métallique en dessous qui met toutes les prises d'une rangée en contact (ou d'une colonne dans les cas des prises "+" et "-").
Je vous laisse méditer quelques instants sur cette image : c'est un circuit construit sur une breadboard et qui permet d'allumer deux DEL, chacune étant contrôlée par un bouton poussoir. Les 2 configurations sont différentes mais fonctionnent. Imaginez qu'une pile est branchée (5 volts = pôle positif du générateur, GND = pôle négatif). Suivez le courant électrique ! J'ai mis en vert toutes les prises alimentées. Il n'y a pas de court-circuit !
Voici une simulation d'un circuit simple sur une breadbord : une DEL, une résistance pour la protéger et une pile. Amusez-vous à voir le résultat ! Il suffit de cliquer sur "Start Simulation".



Résumé de la partie 1.


Voici ce qu'il faut retenir de cette partie :
  • Un Arduino est une plaque électronique comportant un microcontroleur, 6 entrées analogiques et 14 prises numériques.
  • Un microcontrôleur analyse et produit des signaux électriques. Il gère des signaux entrant et sortant.
  • Un signal électrique peut être analogique (tension variable) ou numérique (tension fixe).
  • Les tensions gérées par Arduino sont comprises entre 0 et 5 volts.
  • Les prises numériques peuvent être des entrées ou des sorties de signal. Elles peuvent aussi produire des signaux analogiques dans les cas des prises "PWM" marquées d'un ~.
  • On programme Arduino avec un IDE, un logiciel comprenant trois outils : éditeur de texte, compilateur et déboggueur.
  • Une breadboard, ou platine d'essai, permet de faire des circuits électriques sans soudures.
  • Sur une platine d'essai, toutes les prises d'une même rangées sont connectées ensembles.
  • Vous êtes assez à l'aise pour faire un circuit simple avec une platine d'essai.

Maintenant passons à la pratique !
Vous êtes prêt pour accéder à la partie 2 !

Commentaires ?