Aller au contenu

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

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 : 11 novembre 2020

Il faut télécharger la version 1.8.13. 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.

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.13-linux64.tar.xz

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 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.

```bash [enable_line_numbers="true", start_line_numbers_at="1"] sudo tar -xvf arduino.tar.xz -C /opt sudo chown -R root:root /opt/arduino-1.8.13 sudo unlink /opt/arduino sudo ln -s /opt/arduino-1.8.13/ /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 cedric $ sudo usermod -a -G dialout cedric
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

### Version de Java incorrecte
Dans certains cas, sous Mint, il faut désinstaller `brltty`
sudo apt-get remove brltty
## 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](informatique:linux:materiel:arduino:presentation_de_l_arduino.md), 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`.

<WRAP clear/>

Vous pouvez également copier le code suivant dans votre éditeur :

```c basics-blink.c [enable_line_numbers="true", start_line_numbers_at="1"]
/*
  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.