Gamoover

Si vous êtes nouveau, n'hésitez pas à vous présenter ici et à poser toutes vos questions, meme si elles vous paraissent ridicules... Gamoover regroupe une communauté de passionnés prêts à vous aider ! Bienvenue à vous ;)

[TUTO] installer un environnement de développement Arduino sous Linux

Démarré par keube, Samedi 30 Juillet 2011, 18:43:24 PM

keube

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#index

Au 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

KodeIn

Ahhh, ça fait plaisir, je me sens moins seul dans cette section.
Puis comme j'envisage tout de même de me frotter à ces arduinos, des tutos seront les bienvenus.

^-^
Atari 2600 | Spectravideo SV-328 :'( | Amiga 500 | NES - SNES - N64 - NGC - Wii - GBA - GBAsp - DSi | PS1 - PS2 - PS3 - PSP 2000 | MD - DC | XBox - 360 | MacBook | OpenPandora GHZ edition \o/
WIP [pause] : Borne Euro générique de chez Jeux COURTET
Tutos LaunchPad MSP430 001 - 002 - 003 - 004 en attente

keube

Citation de: KodeIn le Dimanche 31 Juillet 2011, 01:01:47 AM
Ahhh, ça fait plaisir, je me sens moins seul dans cette section.
Puis comme j'envisage tout de même de me frotter à ces arduinos, des tutos seront les bienvenus.

^-^
Quand j'aurai un peu plus de temps j'espère bien en faire quelques topics sur les protocoles des manettes de différentes consoles. J'avais prévu de commencer par la SNES mais vu ton dernier topic je vais varier un peu (la NES?)

KodeIn

Ben disoulay, disons que le protocole de la SNES me faisait de l'œil depuis quelques temps.
Ça me permet de me remotiver, un projet avec un vrai but, plutôt que juste faire clignoter des leds en fonction de l'état d'un bouton.

Pour le moment, j'utilise le système d'encodage original, avec les 2 composants CMOS. Mais vu les commentaires pertinents sur le sujet, j'envisagerai de faire un encodeur à base de MSP430 en plus. Encodeur qui pourra soit sortir l'original protocole NES/SNES ou d'autres systèmes de transmission utilisants peu de fils. (Genre SPI, I²C, UART et compagnie)

Sinon, niveau protocoles de manettes consoles, Il celui de la MegaDrive 6 boutons, par exemple...  ::)
Pour moi, c'est un système de tordus, à croire qu'ils avaient rien d'autre à faire que compliquer les choses pour le plaisir.
En plus, il faut prévoir un bouton spécial pour switcher la manette en mode 3 boutons, vu que certaines jeux ne sont compatibles qu'avec ces manettes.
;D
Atari 2600 | Spectravideo SV-328 :'( | Amiga 500 | NES - SNES - N64 - NGC - Wii - GBA - GBAsp - DSi | PS1 - PS2 - PS3 - PSP 2000 | MD - DC | XBox - 360 | MacBook | OpenPandora GHZ edition \o/
WIP [pause] : Borne Euro générique de chez Jeux COURTET
Tutos LaunchPad MSP430 001 - 002 - 003 - 004 en attente