Arduino, sans Eclipse, ni l'IDE arduino
::TOC::
L'IDE arduino est juste médiocre, et Eclipse sur un laptop me gonfle passablement. Je veux juste coder (avec le langage arduino) dans mon editeur de code préféré (KATE).
Je vous explique dans ce billet comment vous passer simplement d'eclipse ou de l'IDE arduino pour compiler et charger votre programme arduino.
Je suis sous debian (mais ça s'adapte à toutes les distros linux)
Cependant comme sous debian, dans le gestionnaire de paquet, ils ont généralement un retard sur les dernières versions (ce qui peut etre génant pour avoir la prise en charge des cartes arduino récentes) on va préférer télécharger que la méthode "apt-get"
Télécharger l'IDE arduino
Je sais, le but est de ne pas l'utiliser, Il contient des ressources nécessaires: la liste des cartes, les outils de compilations etc...
Téléchargez la par là: Arduino Downloads. Ne prenez pas la béta (le Makefile ne fonctionne pas avec et ne prenez pas les sources, mais la version qui correspond à votre distribution) Au moment où j'écris ce billet, c'est la 1.0.6
Sur mon PC, je décompresse tout dans /home/gnieark/arduino-1.0.6
Se faire un dossier de projets
C'est éventuellement le moment de faire du propre dans vos morceaux de code.
Je me fais un dossier qui contiendra tous les dossier projets (et le fichier arduino.mk, j'y viendrai plus loin)
cd ~ mkdir sketchbooks cd sketchbooks mkdir projetTest
Mon nouveau projet s'appelle projetTest vous l'avez compris. Dans son dossier je place mon code (projetTest.ino)[1] qui contient:
void setup() { Serial.begin(19200); } void loop() { Serial.println("It works"); delay(2000); }
Installer et paramétrer le Makefile magique
histoire d'avoir les dépendances sous debian vous pouvez installer le paquet arduino-mk
On télécharge le Makefile qu'a créé Tim Marson:
cd /home/gnieark/sketchbooks wget http://ed.am/dev/make/arduino-mk/arduino.mk
N'hésitez pas à jeter un coup d'oeil dans ce fichier
Allons dans le dossier projetTest pour créer le Makefile
cd projetTest vi Makefile
Le mien contient:
BOARD = uno ARDUINODIR = /home/gnieark/arduino-1.0.6 SERIALDEV = /dev/ttyACM0 include ../arduino.mk
La commande "make boards" vous donnera la liste des cartes. les autres parametres je vous laisse deviner à quoi ils servent et comment les renseigner.
Utilisation
#compiler (tous les fichiers .c, .cc et .cpp du repertoire et des sous repertoires seront pris en compte) make #envoyer sur la carte make upload
Un petit piège:
Si vous utilisez un serial dans votre code, et qu'il n'est pas à 19200 baups vous aurrez l'erreur suivante lors du chargement du code:
$ make upload Uploading to board... stty -F /dev/ttyACM0 hupcl /usr/bin/avrdude -DV -p atmega168 -P /dev/ttyACM0 -c arduino -b 19200 -U flash:w:projetTest.hex:i avrdude: stk500_getsync(): not in sync: resp=0x1e avrdude done. Thank you.
Si vous avez absolument besoin de mettre le serial à une autre frequence que 19200 baups, vous devrez trouver comment corriger ce problème dans le fichier arduino.mk
L'interface serie
Pour ouvrir le serial sans passer par l'IDE arduino, installez screen puis:
screen /dev/ttyACM0 19200
Conclusion
Ça c'est fait, l'IDE arduino et Eclipse (sur laptop) me rebutaient tellement qu'ils allaient me dégoûter de l'arduino.
Note
[1] Le fait de nommer le fichier principal du projet de la même manière que son parent permet de garder la compatibilité avec l'IDE arduino (qu'on ne veutr plus utiliser, j'en conviens)