(L’IDE Arduino : dernière mise à jour par Benjamin le 2 décembre 2023)
L’environnement de développement intégré d’Arduino, ou IDE (pour Integrated Development Environment) a constitué un élément capital du succès des cartes Arduino. Cet environnement logiciel, gratuit et en source libre permet au débutant d’écrire son premier programme en quelques secondes. Et par là même, d’apprendre quasiment sans s’en apercevoir les rudiments du langage de programmation C/C++. Sans avoir à se soucier des mécanismes extraordinairement complexes qui sont mis en œuvre au sein des microcontrôleurs. Un peu comme utiliser un ordinateur sans se soucier du microprocesseur qu’il contient. Mais cet IDE n’est pas le seul.
Le but de cette page n’est pas de faire un nouveau didacticiel sur l’IDE Arduino, mais plutôt de préciser quelques notions utiles permettant de contourner les principaux écueils responsables de déboires parfois difficiles à démêler.
Quel IDE utiliser ?
Les avis des professionnels sont unanimes, l’IDE Arduino est le mieux adapté lorsque l’on commence la programmation, ou pour une pratique occasionnelle. Aucun autre IDE n’atteint le même niveau de simplicité et d’efficacité.
Il existe bien sûr d’autres IDE qui permettent de programmer nos cartes Arduino et Teensy, comme Visual Studio Code avec le plugin PlatformIO, Eclipse, et bien d’autres. Mais ils sont plutôt utilisés par des programmeurs chevronnés ou professionnels. N’oublions pas à qui ce site est destiné : « à tous les propriétaires et/ou pilotes et/ou constructeurs d’engins volants non certifiés, passionnés d’électronique et/ou d’informatique. A ceux qui souhaitent en savoir plus et partager sur l’avionique à architecture matérielle et logicielle libre. A ceux qui rêvent d’une avionique à concevoir, construire, programmer, installer et exploiter soi-même, sous sa propre responsabilité ». Pour ce public, il n’y a pas de doute, l’IDE Arduino est le tout premier choix à envisager.
Paul Stoffregen, le créateur des cartes Teensy utilisées sur ce site, a écrit : « L’IDE Arduino a la réputation de créer un code lent et volumineux. Mais cela n’est pas vraiment juste… Cet IDE, basé sur Java, peut paraître un peu lourd sur des ordinateurs lents, car le moteur d’exécution Java consomme beaucoup de mémoire. Et l’interface graphique Java est franchement gourmande en ressources. Mais en fin de compte, cet IDE enregistre simplement votre code dans des fichiers texte, puis exécute le même compilateur GCC que celui utilisé par presque tous les autres environnements. »
Ce qui veut dire en clair que le programme généré est exactement le même, et que pour un programmeur occasionnel, les autres environnements de développement n’ont qu’un maigre intérêt. D’autant plus que leur installation et leur utilisation n’ont rien à voir en termes de simplicité et d’ergonomie avec celles de l’IDE Arduino.
Pour les programmeurs chevronnés qui ne supportent pas la rusticité de l’éditeur de l’IDE Arduino, il y a toujours la possibilité d’utiliser un éditeur externe, comme NotePad++. Il suffit de l’indiquer dans les préférences de l’IDE.
Un autre avantage, et non des moindres, de l’IDE Arduino, associé au plugin Teensyduino pour les cartes Teensy, c’est que les soucis peuvent généralement être très facilement résolus en consultant ou en interrogeant le forum PJRC (le fabricant des cartes Teensy), car il s’agit de la plateforme prise en charge.
L’installation de l’IDE Arduino
Les utilisateurs de Linux et de Mac OS vont être déçus, car tout ce qui va suivre concerne Windows, un système d’exploitation qu’ils aiment parfois brocarder gentiment, mais qui est utilisé par plus de 75% des lecteurs de ce site. Nous espérons qu’ils voudront bien nous en excuser.
Pourquoi parler de cette installation, décrite en détail sur le site Arduino, et dans d’innombrables tutoriels, vidéos et autres forums ? Tout simplement parce qu’une installation mal pensée, défectueuse, atypique ou trop personnalisée est à l’origine de la grande majorité des problèmes rencontrés ensuite par les utilisateurs.
Quelle version installer ?
La première question à se poser est celle de la version de l’IDE à installer. Il y en a deux : Arduino V 2.x et Arduino V 1.x. Cette dernière est désormais qualifiée de « Legacy ». La version 2.0 est sortie en septembre 2022, et la version 1.0 en 2011. A la date de publication de cette page les numéros de version sont 2.2.1 et 1.8.19.
Nous utilisons la version 1 depuis des années, et nous avons essayé la version 2 à plusieurs reprises depuis sa sortie. Elle offre plusieurs améliorations notables, comme un éditeur intégré de bien meilleure facture (qui à lui seul peut justifier le choix de cette version), l’auto complétion, un traceur série indépendant dans une fenêtre séparée, la possibilité de visualiser en temps réel la définition des fonctions utilisées, une interface nettement plus conviviale et un débuggeur intégré. Ce dernier, qui pourrait être un immense progrès, n’est en fait d’aucune utilité pour les cartes qui ne possèdent pas de debugger « hard », ce qui est malheureusement le cas à l’heure actuelle des cartes Teensy. A côté de ces progrès très intéressants, et de façon regrettable, la fenêtre du terminal série, si utile pour le débogage, a été réduite à une petite lucarne intégrée à l’éditeur, peu utilisable, sauf à ouvrir une deuxième instance de l’IDE dans laquelle on agrandit cette lucarne au détriment de l’éditeur. De plus et surtout, il est devenu impossible de copier plus que quelques lignes de texte à partir de cette lucarne, alors qu’avec le terminal série de la V1, on pouvait copier des milliers de lignes pour les coller ensuite, par exemple, dans un fichier texte à importer dans un tableur. La solution pourrait être d’utiliser un terminal indépendant. CoolTerm est le plus souvent cité par les déçus (pour cette raison) de la version 2.
Pour les raisons exposées ci-dessus, nous avons choisi de continuer à utiliser la version 1.8.19 de l’IDE Arduino, tant que les défauts de jeunesse de la V2 n’auront pas été corrigés, ce qui semble heureusement être en cours si l’on en croit le dépôt GitHub d’Arduino. Cette préférence pour la V1 est clairement une affaire de choix personnel. Et comme chacun sait, les goûts et les couleurs…
Les versions 1 et 2 sont très différentes, et comme nous connaissons mal la V2, il nous sera difficile de venir en aide aux lecteurs qui utiliseraient cette V2. Pour les applications du site AvionicsDuino, nous recommandons donc d’utiliser la version 1.8.19. C’est celle qui va être décrite ci-dessous.
Quelques particularités de Windows à bien connaître
Le dossier « Documents »
Ce dossier (autrefois “Mes documents” dans Windows XP, 98 et 95) est créé par le système d’exploitation Windows lors de son installation, et plus particulièrement lors de la création d’un compte utilisateur. C’est l’un des dossiers importants de Windows, il a été conçu pour permettre aux utilisateurs de sauvegarder leurs documents personnels. Il est essentiel pour l’IDE Arduino comme on va le voir plus bas.
Dans Windows 7, 8, 10 et 11, le dossier Documents est localisé dans le dossier de profils de l’utilisateur, lequel est créé par défaut sur le lecteur où Windows est installé. Ainsi, par exemple, si Windows 10/11 est installé sur le lecteur “C ” et si le nom de compte utilisateur est “Dupont”, le chemin d’accès au dossier Documents sera C:\Users\Dupont\Documents. Mais l’utilisateur n’a pas à mémoriser cet emplacement ni à chercher en permanence son dossier Documents en naviguant dans l’arborescence des dossiers et fichiers de Windows. Il lui suffit d’ouvrir l’explorateur de fichiers, et Windows lui présente aussitôt le dossier Documents tout en haut et à gauche, dans la rubrique « Accès rapide ».
Il est possible de modifier l’emplacement du dossier Documents de Windows 10/11. La raison la plus fréquente d’un tel déplacement est le souhait des utilisateurs de le placer dans une zone du disque dur qui est automatiquement synchronisée en temps réel avec une solution de sauvegarde en ligne (Cloud) comme OneDrive, Google Drive, ou Dropbox pour ne citer que les plus connues.
La façon la plus simple de déplacer le dossier Documents à l’emplacement de son choix est de le faire à l’aide de l’explorateur de fichiers. Un clic droit sur le nom « Documents » permet d’accéder à ses propriétés. Ce qui ouvre la fenêtre suivante :
Où l’on voit que l’utilisateur a déplacé son dossier Documents dans un sous-dossier de sa Dropbox. S’il voulait le déplacer à nouveau ailleurs, il lui suffirait de cliquer sur le bouton « Déplacer » et de choisir un nouvel emplacement. Le déplacement ne modifie en rien le contenu du dossier Documents qui reste intact, avec tous ses sous-dossiers et fichiers. Et qui continue à être considéré par Windows comme le dossier système « Documents ». Le nom « Documents » s’apparente en fait ici à un pointeur vers le dossier qui contient les fichiers personnels de l’utilisateur. Mais il ne suffit pas de créer un nouveau dossier dans un endroit quelconque et de l’appeler « Documents » pour que Windows le considère comme le dossier système « Documents »…
Qu’on ait laissé le dossier Documents à son emplacement par défaut, ou bien qu’il ait été déplacé, l’installation de l’IDE va placer ici un dossier d’importance majeure pour lui, que l’on désigne comme le carnet de croquis ou dossier des sketchs. Ce dossier est nommé tout simplement « Arduino ». Et il contient un sous-dossier tout aussi important, nommé « libraries ».
Tous les programmes (sketchs) de l’utilisateur vont être enregistrés par défaut dans le dossier « Documents\Arduino ». Et toutes les bibliothèques personnelles que l’utilisateur va rajouter seront automatiquement placées (ou, si cela est fait « manuellement », devront obligatoirement être placées) dans « Documents\Arduino\libraries ». Modifier ce choix par défaut de l’IDE fait courir un risque de dysfonctionnements ultérieurs, si cette modification n’est pas parfaitement maîtrisée par l’utilisateur dans toutes ses conséquences potentielles.
L’option Fichier -> Préférences du menu de l’IDE permet d’accéder à une fenêtre de configuration où l’emplacement du carnet de croquis peut être modifié. Si on décide de modifier cet emplacement, attention à ce que le carnet de croquis comporte toujours un sous-dossier nommé “libraries” dans lequel seront stockées toutes les bibliothèques personnelles ajoutées par l’utilisateur.
Le dossier standard d’installation des fichiers exécutables de l’IDE Arduino V 1.x
Par défaut, l’IDE va s’installer sur le même disque que Windows, dans le dossier C:\Program Files (x86)\Arduino. C’est également là que s’installe le plugin Teensyduino. Il est à noter que l’IDE Arduino V2 ne s’installe pas dans le même dossier, si bien qu’en théorie, on peut installer les deux IDE sur le même ordinateur. Et effectivement, on peut même lancer les deux IDE en même temps comme nous l’avons expérimenté. Mais la probabilité que l’un fasse dysfonctionner l’autre, ou que les deux dysfonctionnent est forte, en raison de la multitude de fichiers et de bibliothèques différents, mais portant le même nom, qui vont être disséminés un peu partout sur le disque dur : conflits entre bibliothèques et échecs de compilation presque garantis ! Donc cette double installation est, par prudence, à proscrire. Même si sur divers forums on lit exactement le contraire sous la plume « d’experts ».
Dans C:\Program Files (x86)\Arduino vont également s’installer un grand nombre de bibliothèques qui font partie intégrante des systèmes Arduino et Teensyduino, comme les bibliothèques arduino.h, wiring.h, HardwareSerial.h et des centaines d’autres.
Il est très intéressant et instructif pour l’utilisateur d’aller voir par curiosité et d’explorer tout ce qui se trouve dans C:\Program Files (x86)\Arduino. Ne serait-ce que pour ne pas rajouter inutilement dans le dossier “libraries” du carnet de croquis (dossier des sketchs) une bibliothèque personnelle trouvée sur Internet et qui aurait en fait déjà été installée ici par l’IDE ou par Teensyduino. Par exemple, la bibliothèque RA8875, très utilisée par les systèmes AvionicsDuino pour les affichages, fait partie de Teensyduino. La rajouter ailleurs en doublon peut avoir des effets délétères.
Il y a une règle d’or à respecter absolument : ne jamais rien modifier, supprimer ou ajouter dans C:\Program Files (x86)\Arduino et ses sous dossiers. En effet, ce dossier d’installation est susceptible d’être modifié ou même supprimé à l’occasion d’une mise à jour de l’IDE ou de Teensyduino. Toute modification personnelle d’un fichier sera donc perdue. Tout fichier supprimé intentionnellement ou par inadvertance par l’utilisateur pourra manquer cruellement à l’IDE. Tout fichier personnel placé ici disparaîtra à la prochaine mise à jour…etc.
Le dossier des préférences et définitions des cartes de l’IDE.
C’est un dossier bien caché, qui s’appelle « Arduino15 ». On le trouve ici :
C:\Users\Dupont\AppData\Local\Arduino15, Dupont étant le nom de l’utilisateur.
Pour avoir accès à ce dossier, si on le souhaite vraiment (ce qui n’est pas indispensable ni forcément très utile), il faut modifier les options d’affichage des dossiers et fichiers dans l’explorateur de fichiers, de façons à afficher les fichiers, dossiers et lecteurs cachés, ne pas masquer les fichiers protégés du système d’exploitation, et ne pas masquer les extensions des fichiers dont le type est connu. Voir figure ci-dessous. Après avoir modifié ces options, il faut fermer et rouvrir l’explorateur de fichiers pour que les modifications soient prises en compte.
Le dossier Arduino15 contient entre autres le fichier « preferences.txt » où sont stockées les préférences de l’utilisateur. Il peut être instructif de lire ce fichier, même si beaucoup de lignes sont incompréhensibles car non explicitement documentées. Il est par contre déconseillé de modifier directement ce fichier si on ne sait pas exactement ce que l’on fait. Passer par le menu Fichiers -> Préférences de l’IDE est plus prudent.
Ce dossier Arduino15 contient aussi les définitions des cartes utilisées, par exemple nos cartes Teensy, et il contient des fichiers temporaires crées lors de la compilation.
Les dossiers « .arduinoIDE », « arduino-ide », « Arduino IDE » et « arduino-ide-updater »
Ils sont placés ainsi :
- C:\Users\Dupont\.arduinoIDE
- C:\Users\Dupont\AppData\Roaming\arduino-ide\
- C:\Users\Dupont\AppData\Roaming\ Arduino IDE \
- C:\Users\Dupont\AppData\Local\arduino-ide-updater
Ils ne sont utilisés que par la version 2 de l’IDE, pour contenir des fichiers d’installation ou de configurations, des fichiers utilisateurs ou des fichiers temporaires. S’ils sont présents sur le disque dur, c’est que cette version 2 a été installée, même si elle a depuis été supprimée. Avec l’IDE V 1.x, ces quatre dossiers peuvent (doivent) être supprimés.
Pour en savoir plus sur les fichiers et dossiers de l’IDE Arduino
L’installation proprement dite
Si c’est une première installation sur un PC où aucun IDE n’a jamais été installé, il n’y a aucune précaution particulière à prendre. Il faut télécharger les exécutables d’installation sur les sites Arduino et PJRC (pour Teensyduino). Puis lancer ces exécutables, en commençant par celui de l’IDE Arduino. Pour avoir une installation standardisée, facile à dépanner en cas de problèmes, il ne faut surtout rien personnaliser pendant ces installations, et accepter la totalité des options d’installation par défaut. Pas de localisations exotiques du programme ou du carnet de croquis, il serait plus compliqué de trouver ultérieurement la source des problèmes si les choses ne se passaient pas comme escompté.
Si c’est une réinstallation, car l’installation précédente dysfonctionnait, c’est là qu’il faut vraiment avoir de la méthode. Il est conseillé de procéder d’abord à la désinstallation complète de l’installation précédente. D’abord en utilisant le désinstalleur de Windows, via les paramètres ou le panneau de configuration. Ce désinstalleur ne touchera pas au carnet de croquis ni aux bibliothèques personnelles, donc pas de risque de pertes de données. Sauf si des données personnelles avaient été placées aux endroits “interdits” mentionnés plus haut…
Mais ce désinstalleur laisse généralement des traces résiduelles potentiellement délétères pour la suite, il faut les supprimer manuellement.
Dans l’hypothèse où l’installation précédente était vraiment chaotique, la suppression de ces traces peut être ardue, surtout si elles ont été semées un peu partout. Il faut vraiment les chercher et les trouver.
Si l’installation avait été standard, il suffit de supprimer manuellement les dossiers suivants, s’ils persistent :
- C:\Program Files (x86)\Arduino
- C:\Users\Dupont\AppData\Local\Arduino15
- Ainsi que les dossiers spécifiques à l’IDE V2 mentionnés plus haut
La désinstallation sera ainsi vraiment complète. Il suffit ensuite de procéder comme indiqué ci-dessus pour la réinstallation, c’est-à-dire comme pour une première installation sur un système vierge.
L’installation des bibliothèques personnelles.
On ne répètera jamais assez que ces bibliothèques doivent être placées dans Documents\arduino\libraries.
Ou trouver les bibliothèques ?
On les trouve soit directement sur Internet, soit au moyen de l’IDE qui dispose d’un outil de recherche spécialisé, le gestionnaire de bibliothèques, auquel on accède par le menu Outils -> Gérer les bibliothèques. Sur Internet, GitHub est la source principale, quasiment toutes les bibliothèques existantes sont téléchargeables sur GitHub, sous la forme d’un fichier ZIP unique qui rassemble tous les fichiers de la bibliothèque. Le gestionnaire de bibliothèques de l’IDE offre la possibilité de télécharger des fichiers ZIP sur GitHub, en cliquant sur l’option “More info”.
Une fois dans GitHub, dans l’onglet Code, il faut cliquer sur le bouton vert « Code », et sélectionner l’option « Download ZIP »
Installation des bibliothèques
Il y a trois possibilité, une entièrement manuelle, les deux autres à l’aide l’IDE.
L’option manuelle consiste à extraire toute l’archive ZIP dans un dossier quelconque. On obtient un dossier unique décomprimé, contenant tous les fichiers et sous dossiers de la bibliothèque. Dans l’exemple de la bibliothèque ublox de la figure ci-dessus, ce fichier s’appelle ublox-main. Pour installer cette bibliothèque manuellement, il suffit de copier-coller ce dossier dans Documents\arduino\libraries. Au prochain démarrage de l’IDE, la bibliothèque ainsi ajoutée sera reconnue, puis indexée et pourra alors faire l’objet d’une directive #include dans un programme.
La seconde technique (voir figure ci-dessous) passe par l’option :
Croquis -> Inclure une bibliothèque -> Ajouter la bibliothèque .ZIP…
Lorsqu’on clique sur cette option, une fenêtre de l’explorateur de fichiers s’ouvre dans laquelle il suffit de sélectionner le fichier ZIP téléchargé sur GitHub, sans le décomprimer préalablement, l’IDE s’en charge. L’IDE se charge aussi de placer la nouvelle bibliothèque au bon endroit, à savoir Documents\arduino\libraries, et de l’indexer immédiatement pour l’utiliser aussitôt sans avoir à fermer puis rouvrir l’IDE. C’est de loin notre option préférée pour ajouter des bibliothèques.
La troisième manière passe par le gestionnaire de bibliothèques de l’IDE. Une fois qu’on a repéré la bibliothèque souhaitée, par exemple, sur la figure ci-dessous, ILI9341_t3 de Paul Stoffregen, il suffit de cliquer sur le bouton « Installer ».
Cette dernière technique peut sembler encore plus simple que les précédentes, mais elle a le gros inconvénient de parfois renommer le dossier contenant la bibliothèque sous la forme Arduino_XXXXX, comme sur la capture d’écran ci-dessous. Si l’on n’y prend pas garde et qu’on laisse le dossier de bibliothèques se remplir de multiples Arduino_XXXXX, il sera impossible de savoir de quelles bibliothèques il s’agit sans les ouvrir toutes les unes après les autres.
Inclusion des bibliothèques dans les programmes
Cela se fait au moyen de la directive #include, suivie du nom de la bibliothèque, selon ce modèle syntaxique tiré de la documentation Arduino :
#include <LibraryFile.h>
#include “LocalFile.h”
Paramètres de #include
LibraryFile.h : lorsque la syntaxe < > est utilisée, tous les chemins des bibliothèques indexées par l’IDE seront parcourus pour rechercher le bon fichier. Lorsque plusieurs bibliothèques du même nom sont trouvées, l’IDE (s’il a été bien installé, et s’il n’y a pas de scories résiduelles d’une précédente installation) se débrouille en principe assez bien pour sélectionner la bonne, car il sait pour quelle carte microcontrôleur il doit chercher. Il y a en effet, par exemple, plusieurs exemplaires de wiring.h, mais chaque exemplaire est bien rangé dans un dossier rattaché à une carte bien précise.
LocalFile.h : Lorsque la syntaxe des guillemets est utilisée, le dossier du fichier .ino ou .h utilisant la directive #include sera parcouru pour rechercher le fichier spécifié, puis les chemins des bibliothèques comme précédemment s’il n’a pas été trouvé dans le dossier local. Il faut utiliser cette syntaxe pour inclure les fichiers .h situés dans le même dossier que le sketch en cours.
Les bugs et incompatibilités
Malgré tout le soin qu’on a pris pour installer correctement et méthodiquement l’IDE et toutes les bibliothèques nécessaires, il persiste quelques rares cas où nos sketchs refusent de compiler. Avec toutes les précautions prises, détaillées plus haut, il y a peu de chance qu’il s’agisse de fichiers “parasites” oubliés ici ou là, ou de la coexistence de plusieurs versions différentes de bibliothèques similaires, ou de bibliothèques non trouvées par l’IDE ou trop anciennes. Il faut donc chercher ailleurs la cause de ces erreurs.
Et parfois se rendre à l’évidence. Oui, il peut y avoir des bugs dans l’IDE Arduino, dans Teensyduino, ou dans les bibliothèques. C’est ainsi par exemple que la bibliothèque Eigen utilisée par l’AHRS AvionicsDuino est incompatible avec Teensyduino 1.58. Aucun problème par contre avec Teensyduino 1.57, ou 1.59. Autre exemple, TeensyTimerTool 1.4.1 est incompatible avec Teensyduino 1.58. Soit il faut utiliser une version plus ancienne de TeensyTimerTool par exemple la version 1.3.1, soit il faut repasser à Teensyduino 1.57, ou passer à la version 1.59.
Mais ces bugs et incompatibilités sont rares par rapport aux autres causes de refus de compilation.