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.