Alternative à l’IDE Arduino : découvrez Ino + Geany
Je ne sais pas vous mais moi, le premier truc auquel j’ai pensé quand j’ai reçu mon Arduino et que j’ai lancé l’IDE qui va avec, c’est qu’il fallait à tout prix que j’en trouve un autre.
L’IDE est en Java, très mal intégré au système (à moins que mon thème GTK stipule que les barres d’outils doivent être en bleu clair, je vérifie … non, l’IDE est mal intégré). Pourtant il est plutôt pratique : il suffi de cliquer sur un bouton et le code est cross compilé pour Arduino puis directement envoyé par le câble série.
Voilà le challenge : trouver un moyen de compiler et de télécharger simplement nos programmes sur nos cartes électroniques. Après avoir essayé cette excellente réécriture du tuto pour Eclipse, je me suis demandé s’il n’existait pas une solution plus simple et surtout plus courte.
Sur le wiki officiel Arduino, on peut trouver une liste d’outils alternatifs pour développer. J’ai découvert parmi eux Ino, un petit outil en ligne de commande permettant de faire tout ce que l’on veut de manière très simple. Son intégration avec Geany ne prends qu’une minute chrono.
Installation de l’outil
Plusieurs méthodes sont décrites sur le site du projet, la plus simple est selon moi d’utiliser easy_install :
~$ sudo apt-get install python-setuptools picocom arduino
~$ sudo easy_install ino
Picocom est apparemment utilisé pour la communication sur port série. D’après la doc, l’IDE Arduino officiel doit aussi être installé.
Initialisation d’un projet
Pour commencer il faut d’abord ouvrir un terminal, créer un dossier puis initialiser votre projet :
$ mkdir Projet
$ cd Projet
Projet$ ino init
Deux dossier sont créés. src/ contiendra le code source de votre sketch. Les bibliothèques de vos Shields devront toutes être décompressées au même endroit : par expérience elles devaient également être dans src/ à coté de votre .ino, mais il se trouve qu’après avoir formaté mon ordinateur, mon sketch ne compilait plus (ino ne trouvait plus les .h de mes bibliothèques alors qu’ils étaient bien là). Ça n’a remarché qu’après les avoir déplacées dans lib/. Aucune explication.
Note : Pour inclure une bibliothèque décompressez-la simplement sans la renommer, ino la trouvera en parcourant vos dossiers à la compilation.
Un fichier sketch.ino est présent dans src/, ce sera le point d’entrée de votre programme. Celui ci contient la définition des fonctions obligatoires, setup() (appelée à l’exécution du programme) et loop() (appelée juste après, à l’infini).
Configuration et intégration à Geany
Avant toute chose, pour activer la coloration syntaxique automatique allez dans « Outils / Fichiers de configuration / filetype_extensions.conf » et ajoutez *pde;*ino; soit à la fin de la ligne C soit à la fin de la ligne C++. Si vous utilisez Geany pour compiler l’un ou l’autre d’habitude, arrangez vous. C’est important car Geany gère les langages par profils, la suite ne s’appliquera qu’au profil choisi.
Geany permet de définir des commandes personnalisées pour compiler, construire et exécuter votre sketch. Il est parfaitement possible d’associer des commandes Ino à chacun de ces boutons. Ouvrez un fichier .ino et rendez vous dans le menu « Construire / Définir les commandes de construction ».
Voici ce que je vous propose :
- sur la première ligne intitulée « Compiler », inscrivez ino clean && ino build
- sur la deuxième ligne intitulée « Construire », inscrivez ino upload
- et enfin, sur l’avant dernière ligne « Exécuter » inscrivez ino serial
Dans le 2ème champ texte de chaque bouton, vous devez indiquer le répertoire de travail du projet. Inscrivez tout simplement « %d/.. », cela correspond au dossier parent du répertoire dans lequel se trouve le sketch (désigne le parent de src/). Et voilà ce tuto est terminé
Descriptif d’autres commandes utiles (facultatif)
Pour compiler le programme, placez vous dans le répertoire du projet (Projet/ non pas src/)
Projet$ ino build
Les fois suivantes, certaines erreurs de compilation que vous aurez résolu pourraient continuer à vous poser problème. Pour cela :
Projet$ ino clean
Si vous n’utilisez pas un Arduino Uno, sachez que vous pouvez obtenir la liste des modèles supportés en appelant :
~$ ino list-models
Vous pourrez utiliser votre variante en précisant l’option -m
ino build -m lilypad
Et enfin pour télécharger votre programme vers votre carte :
Projet$ ino upload
Pour communiquer avec l’Arduino par le port série (baud à 9600, -b pour changer) :
~$ ino serial
Pour plus d’informations sur les arguments disponibles, tapez :
~$ ino -h
Pour plus d’informations sur un argument précis :
~$ ino argument -h
Problèmes courants :
- Si vous travaillez depuis un mauvais répertoire, vous aurez l’erreur : OSError: [Errno 2] No such file or directory: ‘src/’. Re-vérifiez que votre répertoire de travail est bien le répertoire du projet Projet/ et non pas celui des sources src/.
- Si vous avez l’erreur :
src/NomDeVotreLib/lib.cpp:25:21: fatal error: lib.h : Aucun fichier ou dossier de ce type
compilation terminated.
make: *** [.build/src/NomDeVotreLib/lib.o] Erreur 1
Make failed with code 2Déplacez vos bibliothèques dans le dossier lib/ de votre projet, au même niveau que src/.
- Si vous avez l’erreur :
Searching for stty … /bin/stty
Searching for avrdude … /usr/share/arduino/hardware/tools/avrdude
Searching for avrdude.conf … /usr/share/arduino/hardware/tools/avrdude.conf
Guessing serial port … /dev/ttyACM0
/bin/stty: /dev/ttyACM0: Permission non accordée
stty failedVous devez vous ajouter dans le groupe « dialout » puis vous reconnecter :
~$ sudo adduser login dialout
Article co-écrit avec Sébastienb.