Header Ads

Installer l'environnement de développement Arduino sur Ubuntu (Linux)

Arduino est principalement utilisé avec des PC windows et Mac OS.
Cependant, cet environnement est également disponible pour Linux.

Ayant décidé depuis plusieurs mois de ne plus utiliser Windows, je vais donc essayer d'installer et configurer l'environnement de développement d'Arduino sur Ubuntu 10.10 (Maverick Meerkat).

Pré-Requis
  1. Ne pas brancher Arduino sur votre ordinateur.
  2. Installer un environnement d'exécution Java.
    Utiliser la logithèque Ubuntu et installer "Openjdk-6-jre".
Installation
Note de l'auteur
J'ai personnellement installé mon environnement comme suit sur mon Ubuntu 10.10 (Maverick Meerkat):
  1. Installer le package arduino depuis la logithèque (sudo apt-get install arduino) sans m'inquiéter le moins du monde de la version de mon micro-contrôleur .
    Cela m'assurait au moins d'avoir toutes les dépendances nécessaires sur ma machine.
  2. Faire une mise-à-jour de l'environnement de développement via les paquets Debian spécialement conçu a cet effet (voir section "mise-à-jour de l'environnement de développement" plus loin dans le document)

Avant de démarrer l'installation
Vérifier le micro-contrôleur utilisé sur l'Arduino Uno.
En fonction du Micro-Contrôleur, il faudra opter pour une méthode d'installation ou une autre.

Le micro-contrôleur N'EST PAS un Mega2560
Si votre Arduino Uno n'est pas équipé d'un micro-contrôleur Mega2560 (dernière version), vous pouvez installer l'environnement de développement en utilisant la logithèque Ubuntu

sudo apt-get install arduino

Le micro-contrôleur EST un Mega2560
Par contre, si vous disposez d'un Mega2560 (mis en vente depuis sept/oct 2010), l'environnement de développement disponible dans les dépôts de la logithèque est trop vieux pour être utilisé.
Il faudra vous référer à la documentation du site officiel pour installer les packages Debian sur Ubuntu.
Voir ici (anglais) ou voir dans la section "mise-à-jour de l'environnement de développement" (plus bas dans cet article).

Après l'installation
Après l'installation, le point de menu "Arduino IDE" est disponible dans le menu "Applications | Programmation" et dans le menu "Electronique".
La commande qui démarre l'IDE est arduino.

Mise-à-jour de l'environnement de développement
Au premier démarrage de l'environnement de développement, ce dernier vérifie si une version plus récente est disponible.

Si la vérification n'est plus faite (ou si vous avez été trop prompte à fermer la notification), vous pouvez vous rendre sur arduino.cc/en/Main/Software.
 
Installation via les paquet Debian:
La version disponible dans la logithèque d'Ubuntu 10.10 est assez vieille.
Il faut donc faire une mise-à-jour a partir de paquets Debian spécialement conçus à cet effet.
Exécuter les opérations suivantes pour installer la dernière version de l'IDE sur Ubuntu 10.10.
  1. Créer un nouveau répertoire pour télécharger les paquets Debian.
  2. télécharger les fichiers .debs pour arduino, arduino-core, et librxtx-java dans le nouveau répertoire.
    http://packages.ubuntu.com/maverick-backports/librxtx-javahttp://packages.ubuntu.com/maverick-backports/arduino-core
    http://packages.ubuntu.com/maverick-backports/arduino

    (naviguer dans la section mentionnant "Download {nom-du-paquet}" et choisir la bonne architecture ou "all")
  3. Démarrer une console terminal et aller dans le nouveau répertoire où les fichiers debs sont stockés.
  4. Exécuter la commande
    sudo dpkg -i *.deb
  5. Lorsque la mise-à-jour est faite, vous pouvez effacer les fichiers deb et le répertoire.
Installation à la main
Après une tentative de mise-à-jour, je vous conseille plutôt de le faire via l'installation des paquets Debian nécessaires (cfr ci-avant).

Avant de télécharger la version 32 ou 64 bits pour Linux, utiliser la commande "uname -a" pour savoir s'il s'agit d'une version 32 ou 64 bits de l'OS (nb: les version 64 bits affichent un i686)

La dernière version en date est 0022.
Télécharger l'archive (fichier tgz) et ouvrez là avec le gestionnaire d'archive file-roller (un double clique devrait suffire :-) ).

L'archive contient un répertoire "arduino-0022" contenant tous les fichiers et sous répertoire de l'environnement de développement Arduino.

L'exécutable arduino peut remplacer celui disponible dans /usr/bin .
Quand aux autres répertoires, ils sont utilisés pour remplacer le contenu des répertoires de /usr/share/arduino avec parcimonie, la structure des répertoires (crf ci-dessous) étant sensiblement différente de celle disponible dans l'archive.

xxx@yyy:/usr/sbin$ cd /usr/share/arduino
xxx@yyy:/usr/share/arduino$ ls -al
total 588
drwxr-xr-x   6 root root   4096 2011-05-17 10:41 .
drwxr-xr-x 337 root root  12288 2011-05-17 10:42 ..
-rw-r--r--   1 root root 555245 2010-07-09 22:10 arduino.jar
-rw-r--r--   1 root root  11223 2010-07-09 22:10 Arduino.mk
lrwxrwxrwx   1 root root     28 2011-05-17 10:41 examples -> ../doc/arduino-core/examples
drwxr-xr-x   4 root root   4096 2011-05-17 10:41 hardware
drwxr-xr-x   3 root root   4096 2011-05-17 10:41 lib
drwxr-xr-x  12 root root   4096 2011-05-17 10:41 libraries
lrwxrwxrwx   1 root root     24 2011-05-17 10:41 reference -> ../doc/arduino/reference
drwxr-xr-x   3 root root   4096 2011-05-17 10:41 tools

Cette façon de faire la mise-à-jour est compliquée car elle réclame les droits d'administration root pour écraser les fichiers... sans compter qu'il faudra aussi modifier les droits des fichiers copiés pour que l'utilisateur normal puisse y avoir accès.

Il est toujours possible d'extraire le répertoire arduino-0022 dans le répertoire home (~) de l'utilisateur... mais c'est aussi un peut cochon.

Identification du port usb
Avant de brancher le board Arduino sur le port USB:
Utilisez la commande "dmesg -s 1024" dans une console pour prendre connaissance des derniers messages de debugging envoyé par le kernel.

Brancher et identifier le port USB
brancher l'Arduino sur un port USB et re-exécutez la commande "dmesg -s 1024" juste après.
Normalement, vous devriez voir apparaître des messages de debug similaire à ce qui est présenté ci-dessous.

[ 1488.925807] usb 2-1.1: new full speed USB device using ehci_hcd and address 4
[ 1489.139296] cdc_acm 2-1.1:1.0: ttyACM0: USB ACM device
[ 1489.139849] usbcore: registered new interface driver cdc_acm
[ 1489.139856] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters

Le device USB auquel Arduino est connecté est donc /dev/ttyACM0

Tester le board Arduino
Pour tester le bon fonctionnement de l'ensemble, nous allons utiliser le sketch d'exemple "BlinkWithoutDelay". (nb: un sketch un script Arduino).
Ce script fait clignoter une diode led raccordée sur la pin 13.
Normalement, Arduino dispose déjà d'une LED on-board directement raccordée sur la pin 13, le fonctionnement de ce sketch ne réclamera donc aucun montage.

Configuration
1) Démarrer l'Arduino IDE
2) Sélectionner le bon modèle de carte Arduino dans le menu "Tools | Board"
Dans mon cas, il s'agit d'une version SMD d'Arduino avec un ATmega328P
J'opte donc pour le board "Arduino Uno".
Le type de micro-contrôleur est lisible sur le composant SMD mais il faut une bonne loupe!
3) Sélectionner le bon port de communication via le menu "Tools | Serial"
Même s'il est raccordé en USB, c'est bien dans ce menu que la configuration doit se faire.
Dans mon cas, je sélectionne /dev/ttyACM0 puisque c'est le port USB en court d'utilisation pour Arduino.

Chargement et Upload du Sketch
1) Charger le Sketch "BlinkWithoutDelay" via le menu "Files | Examples | Digital | BlinkWithoutDelay"
2) Cliquer sur le bouton "Verify" pour compiler le sketch.
3) Faire un Upload sur le Board
Cette opération télécharge le programme compilé sur le board Arduino.

Pendant l'opération, les leds RX et TX doivent toutes deux clignoter pendant quelques instants.
Ensuite le programme démarre et la led attachée à la pin 13 (juste au dessus des LEDs RX et TX) se met à clignoter à interval régulier.



Note 1: Reset automatique
Lorsque l'on entame un Upload, le Board fait un reset automatique (ce qui n'était pas le cas des anciens modèles) avant d'entamer le téléchargement du programme.
Après quelques secondes, le programme est téléchargé et automatiquement démarré.

Note 2: la led clignotait déjà
Comme le programme "BlinkingWithoutDelay" est actif par défaut sur bon nombre d'Arduino Uno fraichement achetés, il n'est pas forcement évident de voir le résultat de toutes ces opération.
Ainsi, vous pouvez modifier l'interval de clignotement en modifiant la ligne de code suivante de:
long interval = 1000;  
à
long interval = 100; 
Et vous constaterez après l'Upload que la Led clignote 10 fois plus vite :-)

Note 3: erreur d'upload
En cas d'erreur comme par exemple celle-ci:
avrdude: stk500_getsync(): not in sync: resp=0xf9
 Vous pouvez maintenir la touche "shift" enfoncée en appuyant sur le touche "Upload", cela affiche tous les messages générés par avrdude.
Quelques recherches m'ont amenés sur le forum Arduino ou cet article discute de l'installation de l'environnement sous Linux.
C'est ainsi que malgré l'inscription présent sur le micro-contrôleur, je ne devait pas sélectionner le board "Arduino Duemilanove or Nano w/ ATmega328" mais plutôt le board "Arduino Uno". 

Ressources