[FR] Premiers Pas avec Arduino
Bonjour à tous,
Dans cet article je vais vous montrer comment utiliser Arduino afin que l'on puisse construire des choses intéressantes avec dès les prochains articles. Si jamais vous avez des problèmes ou que vous souhaitez plus d'explications n'hésitez pas à me le dire dans les commentaires et allez jeter un oeil au premier Tome de "Débuter sur Arduino" (disponible gratuitement ici) !
Le choix de la carte :
Lorsque vous choisissez de travailler avec Arduino (si vous n'avez pas encore fait votre choix, vous pouvez lire cet article) vous avez le choix entre différentes cartes (voir le site Arduino.cc pour la liste complète) dont les 3 plus connues :
- Arduino Uno : Parfait pour débuter et pratique à utiliser
- Arduino Nano : Compacte et compatible breadboard (on verra plus bas ce que ça veut dire), parfait pour prototyper ou pour les espaces réduits
- Arduino Mega : Plus d'entrées/sorties si votre projet en nécessite, une Mega vous évite de devoir prendre plusieurs cartes
Si ces petites descriptions ne vous ont pas suffi pour prendre votre décision, n'hésitez pas à aller jeter un coup d'oeil à cette page ainsi qu'aux fiches produits disponibles sur Arduino.cc.
Et pour finir cette première partie, un petit point sur les clones. Comme je vous l'avez expliqué dans le premier article (Raspberry Pi vs Arduino) Arduino est open-source donc il y a une multitude de fabricants, il y a donc une multitude de prix aussi (et qui peuvent varier de 25€ pour une carte Arduino UNO "officielle" à 1,40€ pour une Arduino UNO clonée en Chine). J'ai rarement eu de problèmes avec les clones mais les principaux inconvénients de celles-ci sont les délais de livraison (pouvant dépasser les 2 mois) et la qualité du service après vente, donc faites attention aux avis lorsque vous achetez sur des sites Chinois.
L'installation de l'IDE :
Arduino IDE est un logiciel développé par Arduino pour simplifier la programmation de ses cartes, en effet il embarque tout ce dont vous avez besoin pour programmer, débugger et communiquer avec votre carte. L'installation se fait facilement, que vous soyez sur Windows, Linux ou Mac.
Pour commencer, rendez-vous sur la page de téléchargement puis vérifiez que le matériel sélectionner est bien le votre et téléchargez l'installateur.
Une fois installé vous pourrez utiliser l'éditeur intégré pour :
- Ecrire vos programmes avec l'éditeur de texte,
- Trouver les bugs dans vos programmes,
- Compiler vos programmes (grossièrement, la compilation transforme un "fichier texte" en programme éxécutable),
- Communiquer avec votre carte Arduino: que ce soit pour lui envoyer un nouveau programme ou pour envoyer/recevoir des informations)
- Installer facilement des bibliothèques.
Petit tour de carte :
Avant de commencer je vais vous donner quelques détails sur la carte Arduino UNO.
Les pins situés en deux rangées de part et d'autre de la carte permettent d'interagir avec les différents composants que vous serez amener à utiliser. Il y en a de différents types et sont dénommés de cete manière :
- les pins D0->D13 sont des entrées/sorties digitales, c'est-à-dire qu'ils peuvent être utilisés pour lire ou "écrire" (appliquer un potentiel) de 0V ou 5V.
- les pins A0->A5 sont les entrées analogiques, ces pins peuvent lire la valeur d'une tension variant en 0 et 5V sur une résolution de 1024 valeurs (0V = 0 et 5V = 1023) ce qui veut dire que ces pins ont une précision de 4,88mV (5/1024 = 4,8810^-3 V), par exemple si on lit 676 c'est quela tension appliquée est d'environ 3.3V (676/10245=3.301V).
- Les pins d'alimentation, situés au-dessus des pins analogiques ils permettent d'alimenter vos circuits électriques vous y trouverez des potentiels de 5V, 3.3V, GND (la masse), et un pin VIN (il peut servir à alimenter votre carte, c'est une alternative au câble USB et au Jack) (on utilisera pas le reste pour le moment).
Les composants de base :
Voici un rapide résumé des composants que nous allons utiliser pour les 2 prochains exemples :
Les breadboards :
Pour le coup ce n'est pas vraiment un composant puisque les breadboards permettent de réaliser des circuits facilement sans avoir à souder les différents composants. On les utilise très souvent dans les phases de prototypage et on les trouve de différentes tailles :
Les trous des breadboards sont reliés à l'intérieur d'une certaine manière qu'il faudra garder en tête pour réaliser vos propres montages :
Une fois que le prototypage est terminé on utilise des veroboards pour souder le circuit ou alors on dessine des circuits imprimés (aussi appelés PCB).
Je disais dans la première partie que l'Arduino Nano était breadboard compatible, cela veut simplement dire que l'on peut l'insérer sur une breadboard comme ceci :
Les LEDs :
Les leds (ou Del en français, pour diode électro luminescente) sont des composants qui émettent de la lumière lorsqu'un courant les traversent. Une des caractéristiques des LED est qu'elles ne peuvent laisser le courant passer que dans un sens (du pôle positif nommé anode au pôle négatif nommé cathode), l'autre sens est dit bloquant.
Lorsqu'elles sont utilisées avec une Arduino (qui fonctionne en 5V) il faut leur ajouter une résistance de 220 Ohm (minimum) afin de ne pas dépasser l'intensité admissible. Si l'intensité admissible est dépassée la led "éclate" (normalement il n'y a pas d'éclats) et il y a de fortes chances pour que vous ne puissiez plus utiliser les pins sur lesquels elle était branchée.
Fun Fact : La première led a été découverte en 1907, la première led rouge fut inventée en 1962. A cette époque le choix des couleurs été plutôt restreint : Rouge, Jaune ou Vert. Il a fallut attendre 1972 pour que des chercheurs inventent des leds bleues (et 1990 pour avoir des bleus vifs), utilisées pour créer des leds blanches puis RGB (Red Green Blue) qui furent utilisées dans le rétro-éclairage d'écrans ou dans les écrans LCD. Les chercheurs qui ont créer la led bleue ont même reçu un prix Nobel pour leur découverte. Source 1 et 2
Les résistances :
Les résistances sont des composants sans polarité (vous pouvez les brancher dans le sens que vous voulez) et servent à opposer une résistance R (en Ohm, notée Ω). C'est ce R que l'on retrouve dans la fameuse loi d'Ohm: U = R * I où U est la Tension en volts (V) et I l'intensité en ampères (A).
Une des particularités des résistances est le système utilisé pour marquer les différentes informations sur le composant, des "bagues" colorées faisant le tour du composant :
Il y a bien un code couleur mais je ne pense pas que ce soit utile de l'apprendre, utilisez plutôt une application pour retrouver les différentes informations notées et retenez les couleurs de celles que vous utilisez le plus souvent.
Blink :
Je pense que l'une des meilleures manières d'apprendre à programmer est la pratique c'est pourquoi je passe rapidement aux exemples, mais rassurez-vous chaque ligne est expliquée. Si vous avez besoin d'explications sur une fonction en particulier n'hésitez pas à jeter un oeil à Arduino Reference.
Blink est l'équivalent en électronique d'un "Hello World" en programmation, c'est-à-dire que c'est le première chose que l'on fait pour s'assurer que l'on ai bien compris comment ça fonctionne. Le circuit électronique est très simple et consiste à relier une led et une résistance entre les broches 13 et GND (masse en Anglais) puis à créer un programme permettant de la faire clignoter.
Schéma :
Pour savoir dans quel sens brancher la led, regardez la longueur des pattes (la plus longue est la patte positive) ou le méplat présent du coté négatif.
Programme :
Vous pouvez retrouver le code sur Github.
Ce que j'appelle symbole dans le programme ci-dessus est un pré-processeur, il agit comme une constante sauf qu'il est remplacé au moment de la compilation par la valeur qu'on lui attribué. De ce fait il occupe moins d'espace mémoire et est parfait pour assigner un nom à un numéro de pin. Et tout comme les constantes les noms de symboles sont en majuscules par convention.
Hello World + Interface Série:
Le second exemple que je voulais vous présenter est un Hello World un peu plus évolué permettant de voir comment fonctionne l'interface série qui sert à faire communiquer votre Arduino avec votre PC.
Schéma :
Pour cet exemple vous n'aurez rien besoin de brancher :)
Programme :
Vous pouvez retrouver le programme sur GitHub.
Faire un compteur :
Et pour finir voici un exemple illustrant différentes fonctionnalités d'Arduino. Si vous en souhaitez d'autres, n'hésitez pas à lire les pages déjà publiées de "Débuter avec Arduino". Le but de cet exemple est de faire un compteur utilisant un bouton poussoir et dont on pourrait choisir si il doit incrémenter ou décrémenter grâce à l'interface Serie.
Schéma :
On peut voir sur le schéma que j'ai placé une résistance de 10kΩ (10 000Ω) entre l'entrée digitale (qui est aussi connectée à l'une des pattes du bouton) et la masse, celle-ci est appelée pull-down et sert à éviter que l'entrée agisse comme une antenne et capte les parasites (ce qui fausserait la mesure).
Programme :
Vous pouvez retrouver le code surGitHub.
J'espère que cet article vous aura plus et sur ce dernier exemple je vous dis à bientôt pour un prochain article.
Pour aller plus loin :
- Débuter avec Arduino Tome 1, le Tome 2 ne devrais pas tarder à être publié :)
- Tutoriels Arduino.cc ainsi que les exemples fournis avec l'IDE
- Projets Arduino sur Hackster
- Arduino Reference
Sources :
- Arduino.cc et en particulier cette page ainsi que les exemples fournis
- Arduino Reference
- Cours sur le C -> Préprocesseurs
- Cours de lycée de Sciences pour l'ingénieur + Cours d'électronique de L1
- Wikipedia : Resistance, LEDs
- The First Blue Led
Being A SteemStem Member
Being A SteemStem Member
Super intéressant !
Merci !
À bientôt :D
Superbe tutoriel et présentation d'un outil propice à toutes les expérimentations ! Upvoté à 100% !
Merci :)
Hello.
Si tu es un codeur sur arduino, tu peux publier ton code sur github (en précisant ta licence opensource) et faire une publication sur utopian (projet steem pour promouvoir le logiciel opensource).
Salut, Merci pour l'info j'y penserai la prochaine fois :)
Wow grand post complet sur le sujet, on voit que tu as bien travaillé ton sujet.
Un peu du chinois pour moi ;) Même pour un développeur.
Bonne chance avec tes projets!
Merci :)
Es-ce qu'il y des passages que tu souhaites que je développe ?
Super article! Enfin je pense car j'ai rien compris^^
Merci ^^ Quels sont les points que tu souhaites que je développe ?