====== 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.
{{ electronique:arduino:arduino_software_1.8.7.png?400 |}}
===== - 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
{{ electronique:arduino:terminal_install_arduino.png?400 |Téléchargement de l'application **Arduino IDE** dans une fenêtre de Terminal}}
===== - 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 [[informatique:linux:commandes:alias|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
===== - Problèmes rencontrés après le déploiement =====
==== - 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.
==== - 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
{{ electronique:arduino:terminal_alternatives_config_java.png?noLink |}}
==== - Serial port not selected ====
Dans certains cas, sous Mint, il faut désinstaller ''brltty''
sudo apt-get remove brltty
==== - Aucune carte n'est détectée ====
{{ :electronique:arduino:pasted:20220128-074733.png?250}}
Le câble USB peut être également non cablé pour les données (data)
Pour rappel, voici le cablage d'un port USB
{{ :electronique:arduino:pasted:20220128-075003.png }}
===== - 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 [[informatique:linux:materiel:arduino: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 :
/*
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''.