L'objectif de ce tutoriel est de montrer comment installer un environnement de développement pour Arduino sous Linux. Ayant eu un peu de mal à le mettre en place la première fois je profite d'avoir un bureau tout propre pour montrer toutes les étapes nécessaires. La carte Arduino utilisée et une Mega1280 (pour plus d'infos sur le projet Arduino
http://www.arduino.cc/fr/ et la distribution Linux une Fedora 15 (vive Gnome Shell!
http://www.fedora-fr.org/). Bien sûr tout ceci est à adapter suivant la carte et la distribution mais les bases sont là.
Allez hop c'est parti:
1. Installer l'IDE Arduino. Ce paquet installe également le compilateur:
sudo yum install arduino
Vérifier que l'Arduino est bien détecté par le système:
lsusb
brancher arduino sur le port usb. La LED s'allume.
lsusb
=> une nouvelle ligne apparaît (chez moi: Bus 006 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC)
2. Ajouter les lignes suivantes à la fin de .arduino/preferences.txt pour rendre l'IDE un peu plus bavard.
compile.verbose= true
upload.verbose=true
Lancer l'IDE Arduino. Il demande à ajouter l'utilisateur courant aux groupes dialout et lock. Valider, se delogguer puis relogguer. Relancer l'IDE, vous devez arriver sur cette interface:
Testons l'installation avec ce programme minimal:
void setup()
{
}
void loop()
{
}
Sélectionner la bonne carte Arduino:
Tools => Board => Arduino Mega (ici ATmega1280, à adapter suivant votre carte)
Compiler
Le message "Done compiling" devrait apparaître
Sélectionner le port USB pour flasher l'Arduino:
Tools => Serial Port => /dev/ttyUSB0 (à adapter suivant votre système)
Uploader
Le message "Done uploading" devrait apparaître.
Noter bien dans un coin la ligne qui lance le flashage:
Dans mon cas /usr/bin/avrdude -C/etc/avrdude/avrdude.conf -v -v -v -v -patmega1280 -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/build3610732341014876065.tmp/sketch_jul30a.cpp.hex:i
L'environnment de base fonctionne
. L'IDE Arduino étant minimaliste, on va maintenant configurer un autre IDE, Codeblocks.
Quitter Arduino, débrancher puis rebrancher la carte, ça évite un conflit avec Codeblocks
3. installer codeblocks:
sudo yum install codeblocks
sudo yum install codeblocks-contrib
La suite est basée sur les infos disponible à cette adresse:
http://www.johnhenryshammer.com/WOW2/pagesHowTo/atmelPage.php#indexAu premier lancement Codeblocks demande de choisir le compilateur par défaut:
Selectionner le GNU AVR GCC compiler qui doit être marqué "Detected"
Créer un nouveau projet
2 configurations sont crées: DEBUG et RELEASE.
Il faut maintenant editer ces 2 configs:
Project => Build options
Récupérer les lignes de commandes servant à compiler dans Test => pre/post build steps
Les couper/coller dans DEBUG et RELEASE. Ajouter la ligne précédemment récupérée pour flasher la carte à la config RELEASE en changeant uniquement le nom du fichier comme ci dessous:
DEBUG:
RELEASE (à adapter suivant votre carte):
Vous pouvez également configurer les différentes options de compilation dans ce menu., notamment les warnings de compilation.
Il ne reste plus qu'à essayer de compiler dans les différents modes et vérifier que le flashage fonctionne.
Je n'ai pas ajouté comment utiliser les librairies fournies par le projet Arduino, cette étape facultative est expliquée dans le lien précédent.
EDIT du 15/04/2011: J'ai eu quelques soucis avec mon environnement, une erreur comme quoi gnu/stubs-32.h était manquant. La solution est d'aller dans Settings/Compiler and Debugger, sélectionner le GNU AVR GCC compiler/search directories, et remplacer /usr/include par /usr/avr/include