====== Nouveau projet Arduino ======
Création d'un nouveau projet Arduino sous l'IDE Eclipse.
* Menu File -> new -> C++ Project
* Dans la section Project Type Sélectionner AVR Cross Target Application et Empty. Nommer le projet. Ici nous l'appelons helloWorld.
* Désélectionner l'option debug et cliquer sur next.
* Renseigner les paramètres de la cible AVR. (voir [[dev:arduino:configurer-eclipse]]) et cliquer sur finish.
Clic droit sur la racine du projet, option **Properties**.\\
Déployer la feuille **C/C++ Build->Setup**.\\
Dans les sections **AVR Compiler->Directories** et **AVR C++->Directories** renseigner les mêmes chemins que dans le projet bibliothèque ArduinoUnoCore et ajouter le chemin du projet lui même (la variable %%${workspace_loc:/${ProjName}}%% peut être utilisée.
Dans la section **AVR C++ Linker** modifier la ligne de commande avec la valeur suivante:
${COMMAND} --cref -s -Os ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} -lm ${FLAGS}
Feuille **AVR C++ Linker**->libraries
Dans la section **Libraries Path**, renseigner le chemin vers le dossier Release de la bibliothèque ArduinoUnoCore ou utiliser la variable %%${workspace_loc:/ArduinoUnoCore/Release}%%
Dans la section **Libraries** ajouter une entrée: ArduinoUnoCore
Dans le panneau gauche, feuille **Project References** sélectionner ArduinoUnoCore. Ainsi la bibliothèque ArduinoUnoCore sera automatiquement compilée/recompilée si nécessaire lors de la compilation du projet courant.
Créer le fichier main.cpp.
Clic droit sur la racine du projet helloWorld New -> Source File
Lancer la compilation Project -> Build Project
===== Déploiement =====
Une fois le binaire généré, l'outil AVRDude se charge de l'écrire sur la cible. L'outil AVRDude doit etre configuré pour communiquer avec la plateforme Arduino. Ici nous alons reutiliser la configuration de l'IDE Arduino. Nous aurons besoin de connaitre le nom du port utilisé par Arduino.
Pour le déterminer, brancher l'Arduino au port Usb de la machine et observer les modifications dans les logs
yoann@hermes$ tail -f /var/log/messages
Apr 29 01:50:19 localhost kernel: [21128.601094] usb 5-1: new full speed USB device using uhci_hcd and address 2
Apr 29 01:50:19 localhost kernel: [21128.797298] usb 5-1: configuration #1 chosen from 1 choice
Apr 29 01:50:19 localhost kernel: [21129.191907] cdc_acm 5-1:1.0: ttyACM0: USB ACM device
Pour ma part c'est **ttyACM0**
Sous Eclipse: Menu **Windows -> Preferences**
* Dans le panneau gauche déployer la feuille **AVR -> AVRDude**.
* Cocher l'option ''Use custom configuration file for AVRDude'' et sélectionner le fichier de configuration de l'IDE Arduino (''/usr/share/arduino/hardware/tools/avrdude.conf''). valider avec **Apply** et **OK**.
Créer une nouvelle configuration pour le programmeur avrdude:
* Clic droit sur le projet option **Properties**.
* Déployer **AVR -> AVRDude**
* Sur l'onglet **Programmer**, dans la section **Programmer configuration** cliquer sur le bouton New.
* Dans la fenêtre **Edit AVRDude Programmer Configuration**:
^ Configuration name | Arduino |
^ Description | Configuration AVRDude pour plateforme Arduino. |
^ Programmer hardware (-c) | Dans la liste selectionner Arduino |
^ Override default baudrate| 115200 |
^ Override default port | saisir le port déterminé précédemment, ici /dev/ttyACM0 |
Remarque: Attention à la valeur du paramètre **Override default baudrate**, une valeur trop faible (57600) rend impossible la programmation du microcontrolleur. Le message d'erreur suivant s'affichait:
avrdude: stk500_recv(): programmer is not responding
Une fois la configuration créée, afficher l'onglet **Advanced** et dans la section ''Device Signature Check'' activer l'option **Disable device signature check**.
===== Références ====
* http://horrorcoding.altervista.org/arduino-development-with-eclipse-a-step-by-step-tutorial-to-the-basic-setup/
* http://android.serverbox.ch/?p=394