Arduino, sans Eclipse, ni l'IDE arduino

IMG_20141025_160135.jpg

::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)

Page top