Installer le logiciel Arduino IDE sous Linux
Cet article a été testé avec les distributions suivantes
- Linux Mint 19 64 bits
- Linux Debian 9.6 (stretch) 64 bits
- MX Linux 18.3 basé sur Linux Debian 9
- Zorin OS 16.1 basé sur Linux Debian
Je privilégie une installation “manuelle” de l'application Arduino IDE afin d'utiliser une des dernières versions. Certaines options et paramètres n'apparaissent pas dans les versions packagées des distributions. J'ai eu le cas avec Debian 9.6 où je ne pouvais pas utiliser des cartes ESP 8266.
Date de relecture : 15 août 2022
Il faut télécharger la version 1.8.19. Vous pouvez vérifier la dernière version disponible depuis le site https://www.arduino.cc/en/Main/Software. Adaptez les informations ci-dessous suivant les informations trouvées sur le site arduino.cc.
1. Télécharger Arduino IDE Software
Depuis mon dossier home ou un autre dossier personnel, je télécharge le programme Arduino IDE. Je préfère l'effectuer depuis une ligne de commande.
wget -O arduino.tar.xz https://downloads.arduino.cc/arduino-1.8.19-linux64.tar.xz
2. Déployer Arduino IDE Software
ligne 1 : déployer Arduino IDE dans un dossier accessible à tous : /opt/
. L'archive tar va extraire les fichiers dans un dossier comportant le numéro de version.
ligne 3 : si un lien /opt/arduino/
existait, détruit le lien sur /opt/arduino
avec unlink
ligne 4 : réaliser un alias vers le dossier /opt/arduino
. De cette manière, on s'affranchit du numéro de version. Nous pouvons également déployer de nouvelles versions sans perturber la précédente.
ligne 5 : exécuter le script install.sh
qui permet de créer un raccourci sur le bureau graphique.
sudo tar -xvf arduino.tar.xz -C /opt sudo chown -R root:root /opt/arduino-1.8.19 sudo unlink /opt/arduino sudo ln -s /opt/arduino-1.8.19/ /opt/arduino sudo /opt/arduino/install.sh
3. Problèmes rencontrés après le déploiement
3.1 Droits sur tty et dialout
Il faut ajouter l'utilisateur de l'application Arduino IDE aux groupes tty
et dialout
. L'exemple suivant permet d'ajouter l'utilisateur cedric
aux groupes tty
et dialout
.
sudo usermod -a -G tty $USER sudo usermod -a -G dialout $USER
Si vous venez de saisir les lignes de commandes usermod
, vous devez redémarrer.
3.2 Version de Java incorrecte
Le message suivant peut apparaître dans l'application Arduino IDE :
java.lang.NullPointerException thrown while loading gnu.io.RXTXCommDriver
Il se peut que la version de Java ne soit pas bonne. Vous pouvez le vérifier avec java -version
. Toutefois, un java est intégré avec l'application Arduino IDE. (/opt/arduino/java/bin/java -version
me renvoie la version java version “1.8.0_191”
).
Il faudra peut être toutefois changer les paramètres java de l'OS. J'ai testé avec OpenJDK Java 8 avec succès. Par contre Java 10 et 11 ne sont pas compatibles.
Pour procéder à l'installation de Java 8 et choisir par défaut cette version :
sudo apt-get update sudo apt-get install openjdk-8-jdk sudo update-alternatives --config java
3.3 Serial port not selected
Dans certains cas, sous Mint, il faut désinstaller brltty
sudo apt-get remove brltty
3.4 Aucune carte n'est détectée
Le câble USB peut être également non cablé pour les données (data)
Pour rappel, voici le cablage d'un port USB
4. Exécuter votre premier programme
Voici donc notre premier programme (celui qui est décrit dans la vidéo).
Cette suite d'instructions va faire clignoter une LED branchée sur la broche 13 de l'Arduino toutes les secondes.
Il n'est pas nécessaire de brancher une LED, car rappelez-vous, la LED sur la carte, mentionnée dans la presentation_de_l_arduino, servira dans notre exemple sans forcément réalisée un montage électronique.
Lorsque vous utilisez le logiciel Arduino, il peut être trouvé en cliquant sur Fichier ⇒ Exemples ⇒ 01.Basics ⇒ Blink
.
Vous pouvez également copier le code suivant dans votre éditeur :
- basics-blink.c
- /*
- Clignotement
- Allume la LED pendant 1 seconde,
- puis l'éteint pendant 0,5 seconde.
- */
- // Numéro de la broche à laquelle est
- // connectée la LED
- int led = 13;
- // le code dans cette fonction est exécuté une fois au début
- void setup() {
- // indique que la broche de la LED une sortie :
- // on va modifier sa tension
- pinMode(led, OUTPUT);
- }
- // le code dans cette fonction est exécuté en boucle
- void loop() {
- digitalWrite(led, HIGH); // allumer la LED (tension 5V sur la broche)
- delay(1000); // attendre 1000ms = 1s
- digitalWrite(led, LOW); // éteindre la LED (tension 0V sur la broche)
- delay(1000); // attendre à nouveau 1seconde
- }
Deux déclaration de fonctions sont obligatoires :
- setup
- loop
Dans ce bout de code, nous appelons trois fonctions :
- digitalWrite
- pinMode
- delay
Pour exécuter ce bout de code, il faudra brancher l'Arduino sur port USB et sélectionner dans le menu Outils ⇒ Port
, sélectionner /dev/ttyACMO
.