Récemment recherché
      • Publié le 10 janv. 2023
      • Mis à jour le 29 août 2023
    • 10 min

    Comment bien débuter avec l'Arduino ?

    Comment bien débuter avec l'Arduino ?

    Mis a jour 06/12/2022

    Polyvalentes et peu coûteuses, les cartes Arduino sont faciles à programmer et peuvent effectuer des opérations simples. En fonctionnement, le microcontrôleur exécute le code contenu dans l’EEPROM programmable, ce qui lui confère une flexibilité appréciée pour toutes sortes de projets.

    Dans la sphère des « makers » en informatique, l’Arduino est une carte à part. Son architecture repose sur un microcontrôleur dont le rôle diffère de celui d’un microprocesseur. Il se différencie par le fait que le premier intègre les composants essentiels à son fonctionnement : le microcontrôleur en lui-même, la mémoire et les interfaces d’entrée/sortie. Les microcontrôleurs ont été à la base de l’évolution technologique des 50 dernières années. Ils ont joué un rôle essentiel dans la généralisation des appareils électroniques, dont les premiers à l’utiliser étaient les caisses enregistreuses. Les microcontrôleurs ont dominé le paysage électronique jusqu’en 1971, lorsqu’Intel a sorti le 40041, le premier microprocesseur 4 bits de l’histoire.

    De nos jours, les microcontrôleurs équipent toutes sortes de produits allant des équipements grand public aux appareils médicaux et aux équipements industriels coûteux, ainsi que les systèmes les plus sophistiqués comme l’aérospatiale et les appareils militaires. Arduino est une carte simple qui n’exécute qu’un seul programme. Lorsqu’un capteur branché sur l’Arduino détecte un événement (mouvement, variation de température ou de luminosité…), il déclenche une action (ouvrir un portail, allumer un éclairage…). C’est le schéma le plus simple d’utilisation de l’Arduino par opposition aux usages plus sophistiqués. Ces derniers reposent nécessairement sur des montages plus complexes. Pour ce faire, Arduino est équipé de broches dont nous détaillons la répartition dans un prochain article. Les cartes Arduino sont ainsi des interfaces programmables grâce au code source sous licence GNU LGPL.

    À bien des égards, l’Arduino est la solution idéale pour certains projets électroniques qui ne nécessitent pas de la mémoire ou de la puissance de calcul pour exécuter du code. Arduino est un processeur en temps réel qui manque de mémoire et de puissance de traitement. Si vous envisagez des projets simples comme connecter des capteurs et lire des données en temps réel, l’Arduino est idéal. Dans certains cas d’usage, l’Arduino peut être utilisé en conjonction avec un Raspberry Pi dans une chaîne de traitement optimisée : le microcontrôleur de l’Arduino pour sa vitesse de traitement des données et le Raspberry Pi pour sa capacité à exécuter du code « lourd ».

    En effet, le fonctionnement de l’Arduino repose sur le code enregistré dans son EEPROM : un micrologiciel ou firmware qui agit comme un OS. Il n’exécute qu’un seul programme à la fois. De plus, il faut savoir que le code enregistré dans l’EEPROM y demeure jusqu’à ce qu’une autre séquence logicielle le remplace. Aussi, l’une des premières manipulations que doit maîtriser l’utilisateur de l’Arduino, et que nous aborderons dans le prochain article, consiste à écrire les données dans cette mémoire. Il est bon de savoir en outre que la quantité de mémoire disponible varie en fonction du modèle de microcontrôleur intégré sur les différentes cartes Arduino. Par exemple, les modèles ATmega328P proposent 1024 octets, 512 octets sur l’ATmega168 et l’ATmega8, 4 Ko (4096 octets) sur l’ATmega1280 et l’ATmega2560. Les cartes Arduino 101 ont un espace EEPROM émulé de 1024 octets.

    Arduino Uno, le modèle emblématique de la gamme

    Il existe de nombreuses cartes Arduino sur le marché, qu’il serait fastidieux de détailler ici. Vous pouvez vous reporter à la boutique Arduino de RS Components pour trouver le modèle qui conviendra le mieux à votre projet. Pour résumer, les principales différences entre les modèles sont la puissance de traitement et le nombre de broches. Pour faire connaissance avec ces cartes, nous allons toutefois détailler la configuration de l’Arduino Uno, le modèle emblématique de la gamme. Celui-ci repose sur le microcontrôleur 8 bits ATmega328. Celui-ci possède 32 Ko de mémoire flash pour stocker du code (dont 0,5 Ko est utilisé pour le bootloader). Il possède également 2 Ko de SRAM et 1 Ko d’EEPROM (qui peut être lu et écrit avec la bibliothèque EEPROM). Il est équipé de 14 broches d’entrée/sortie numériques, dont 6 peuvent être utilisées comme sorties PWM (Pulse Width Modulation) ou MLI en Français (Modulation de Largeur d’Impulsions) pour le déclenchement d’événements (commande de moteur, d’alimentation…).

    Le reste de l’équipement se compose de six entrées analogiques, d’un oscillateur à quartz de 16 MHz, d’une connexion USB, d’une prise d’alimentation Jack de 2,1 mm, d’un connecteur ICSP et d’un bouton de réinitialisation. L’Arduino Uno contient tout ce qui est nécessaire pour épauler le microcontrôleur. Il suffit de le connecter à un ordinateur avec un câble USB ou de l’alimenter avec un adaptateur AC/DC ou une batterie pour commencer. L’alimentation peut être branchée sur une prise murale ou directement sur les broches Gnd et Vin (Ground et Volts in). La source d’alimentation est détectée et sélectionnée automatiquement.

    Une grande flexibilité d’installation

    Cette double possibilité d’alimentation lui donne une grande flexibilité d’installation, notamment pour les projets déportés loin de prises électriques ou en extérieur (pour ouvrir un portail par exemple). Pour certains projets on peut recourir à des batteries solaires par exemple. Il suffit de fournir la bonne puissance/intensité à l’Arduino. Le minimum requis est de 250 mA, ce qui devrait permettre à un Arduino de fonctionner de manière stabile pour des opérations simples. Cependant, si vous souhaitez alimenter des périphériques externes (servomoteurs, LED, périphériques USB…), une tension de 2 A vous permettra d’utiliser ces périphériques en toute sécurité.

    Un adaptateur ou une batterie avec un courant nominal plus élevé assurera suffisamment de tension pour que chaque composant du circuit fonctionne correctement. L’Uno pouvant fonctionner avec un courant entre 7 et 12 Volts, il est conseillé d’utiliser une alimentation de 7 Volts minimum pour fournir aux broches et aux composants qui y sont connectés l’énergie nécessaire. Attention cependant, si vous utilisez plus de 12V, le régulateur de tension peut surchauffer et endommager la carte. La plage recommandée se situe entre 7 et 12 volts.

    Autre particularité du Uno et bonne à savoir, car on ne pense pas toujours à mettre à jour ce composant : il diffère de toutes les cartes précédentes en ce qu’il n’utilise pas le pilote FTDI USB-série. Au lieu de cela, l’Uno comporte l’Atmega16U2 programmé comme un convertisseur USB-série. La puce Atmega16U2 agit comme un pont entre le port USB de l’ordinateur et le port série du processeur principal. Les versions précédentes de l’Uno étaient équipées d’un Atmega8U2. Son micrologiciel peut être mis à jour grâce à Device Firmware Update, un protocole USB spécifique.

    Arduino 101 ou la porte ouverte sur l’environnement x86

    Rappelons que l’Arduino 101, aussi appelé Genuino 101 dans certains pays, est une carte à part dans la gamme. Développé avec la collaboration d’Intel, il repose sur le module Intel Curie et un OS temps réel (RTOS) compatible x86. Plus simple d’abord que les autres modèles Arduino, le 101 est livré avec un RTOS préprogrammé. Il gère donc nativement la connexion USB et permet le téléchargement de code sans utiliser de programmateur matériel externe. Autre avantage, il peut recevoir des mises à jour du firmware de la part d’Intel via une procédure qui peut être automatisée via le logiciel Arduino IDE.

    Les paquets contiennent le BSP (Board Support Package) complet pour le processeur Curie. Il permet de compiler et de modifier le système d’exploitation principal et le micrologiciel pour gérer les mises à jour et le chargeur de démarrage (Bootloader). Très utiles pour des développements spécifiques, les fonctions de mise à jour et de compilation doivent être utilisées avec la plus circonspecte des prudences, car flasher le bootloader avec le mauvais code pourrait bloquer votre carte et nécessiter un programmateur JTAG pour la remettre en service. Le code source est disponible sur la page de téléchargement dédiée sur Github.

    Un prototype toujours en développement

    Il faut aussi garder à l’esprit que le 101 est considéré comme un prototype dans la feuille de route d’Intel : il est toujours en développement et de nouvelles fonctions sont régulièrement ajoutées. C’est la raison pour laquelle beaucoup de chercheurs et d’ingénieurs l’utilisent pour le prototypage de solutions IoT par exemple. C’est un gros avantage pour les utilisateurs ayant l’habitude de travailler sur l’intégration des plateformes dans des environnements x86.

    L’Arduino 101 conserve le même facteur de forme et la même base de périphériques que l’UNO (détaillé dans la partie 1 de cet article), avec en plus des capacités Bluetooth Low Energy embarquées et un accéléromètre/gyroscope à 6 axes. Il contient deux cœurs, un cœur x86 (Quark) et un cœur 32 bits d’architecture ARC, tous deux cadencés à 32 MHz. L’un des gros avantages de l’Arduino 101 est de bénéficier de l’environnement de développement d’Intel, Open Developper Kit (ODK). Celui-ci propose un écosystème de solutions incluant des outils open source.

    Prêt à exécuter des applications multithreadées

    Du fait de l’intégration de l’OS temps réel et des composants x86, le fonctionnement de l’Arduino 101 est quelque peu différent de celui des autres modèles. Il est capable de traiter des instructions en mode multithread, ce qui augmente les possibilités de programmation afin d’exécuter des applications multithreadées. Le cœur Curie communique avec le RTOS via des « boîtes aux lettres » statiques pour accomplir une liste prédéfinie de tâches (interface avec le PC via USB, programmation du sketch en flash, exposition du Bluetooth Low Energy au sketch, exécution du PWM).

    Quant à sa connectivité, elle repose sur un GPIO de 14 broches d’entrée/sortie numériques (dont 4 peuvent être utilisées comme sorties PWM), 6 entrées analogiques, un connecteur USB pour la communication série et le téléchargement de sketchs, une prise d’alimentation, un connecteur ICSP avec des signaux SPI et des broches dédiées I2C. La tension de fonctionnement de la carte et des E/S est de 3,3 V et toutes les broches sont protégées contre les surtensions de 5 V.

    Produits associés

    Arduino

    Arduino

    Les cartes, les modules et les kits Arduino offrent aux utilisateurs une grande variété d'applications et d'utilisations.

    En savoir plus

    Boîtiers

    Boîtiers

    Un boîtier Arduino est conçu pour accueillir et protéger une carte de développement Arduino.

    En savoir plus

    Écrans

    Écrans

    Découvrez notre gamme d’écrans tactiles pour un affichage à utiliser avec votre Arduino.

    En savoir plus

    Shields

    Shields

    Les shields sont des cartes qui peuvent être branchées Top of the Arduino PCB, étendant ses capacités.

    En savoir plus

    Pour aller plus loin