Tutoriel de démarrage GertDuino – Hello World

Tutoriel de démarrage GertDuino - Hello World

Dans mon introduction au GertDuino, j’ai expliqué comment il permet au Pi de compiler et d’envoyer du code à un micro-contrôleur Atmega328. Dans cet article, je vais expliquer les étapes à suivre pour le faire fonctionner avec un exemple de programme appelé « blink ».

L’exemple est assez basique et allume les LED bleues intégrées. Une fois terminé, vous aurez un système fonctionnel prêt pour vos propres expériences. Quand j’ai commencé, je n’avais jamais utilisé d’Arduino, donc j’espère que cet article aidera à simplifier certaines des choses qui m’ont dérouté lorsque j’ai sorti la carte de la boîte.

La configuration initiale

Avant de connecter votre carte GertDuino au Pi, vous devez apporter une petite modification au fichier config.txt sur votre carte SD. Sans ce réglage, la carte GD fera démarrer le Pi en mode sans échec car il met à la terre la broche 5. Cela n’aide pas du tout, il est donc préférable de la désactiver avant de commencer.

Ajoutez ce qui suit à votre fichier config.txt (qui se trouve dans le répertoire /boot/) :

avoid_safe_mode=1

Vous pouvez utiliser n’importe quel éditeur de texte que vous préférez mais pour le faire en utilisant le type nano :

sudo nano config.txt

Ajoutez la ligne puis quittez en utilisant CTRL-X, Y puis ENTER.

Arrêtez le Pi en utilisant :

sudo halt

Lorsqu’il a fini de s’éteindre, retirez l’alimentation.

Conseil GertDuino

Conseil GertDuino

Préparer le conseil

Pulls GertDuinoAfin de programmer la carte à partir du Pi, nous devons ajouter quatre cavaliers. Une fois ceux-ci en place, connectez la carte à l’en-tête Pi GPIO. Le pare-chocs en caoutchouc doit reposer sur le port USB, offrant ainsi un certain support à la carte.

Vous pouvez maintenant rebrancher l’alimentation du Pi et le laisser démarrer. Une fois que vous vous êtes connecté et que vous pouvez voir l’invite de commande, nous sommes prêts à continuer.

Installer le logiciel

Nous devons d’abord installer un compilateur croisé. Cela permettra au Pi de compiler du code pouvant être exécuté sur les appareils Atmega.

sudo apt-get update
sudo apt-get install arduino

L’étape de mise à jour est importante car elle garantit que le dernier package Arduino est installé. Cela peut prendre 5 minutes, alors allez prendre un café/thé/eau/IrnBru.

Ensuite, nous avons besoin d’un programme appelé « avrdude » qui nous permettra de charger le code dans les appareils Atmega. Gordon Henderson (projects.drogon.net) a créé une version modifiée qui nous permet d’utiliser les broches GPIO du Pi pour le transfert :

cd /tmp
wget http://project-downloads.drogon.net/gertboard/avrdude_5.10-4_armhf.deb
sudo dpkg -i avrdude_5.10-4_armhf.deb
sudo chmod 4755 /usr/bin/avrdude

Configuration initiale de l’appareil

Avant d’utiliser la carte pour la première fois, nous devons configurer l’Atmega328 pour utiliser le cristal externe 16MHz :

avrdude -qq -c gpio -p atmega328p -U lock:w:0x3F:m -U efuse:w:0x07:m -U lfuse:w:0xE7:m -U hfuse:w:0xD9:m

Si vous n’avez pas compris tous les détails de la ligne ci-dessus, alors bienvenue au club ! C’est l’une de ces commandes que vous devrez simplement exécuter et vous soucier d’une autre fois. Si vous avez oublié d’ajouter les quatre cavaliers, vous obtiendrez un message d’erreur.

Télécharger des exemples

La dernière étape consiste à récupérer quelques exemples de fichiers. Dans ce cas nous utiliserons les fichiers fournis par Element14 sur leur Page de ressources GertDuino.

cd /home/pi
wget http://www.element14.com/community/servlet/JiveServlet/downloadBody/64547-102-2-287143/gertduino.zip
unzip gertduino.zip

Les fichiers seront extraits dans un répertoire nommé « gertduino ». Nous pouvons maintenant ouvrir ce répertoire pour trouver le code source (blink.c) et le fichier hexadécimal compilé (blink.hex).

cd gertduino
cd blink

Le fichier hexadécimal pour cela a déjà été créé mais vous pouvez utiliser la commande « make » pour le recompiler :

make

Vous devrez le faire pour votre propre code source ou si vous modifiez le fichier blink.c. Pour transférer le fichier hexadécimal à l’Atmega, nous allons utiliser un programme appelé « program_328 ». Cette application est déjà incluse dans ce répertoire mais nous devons la rendre exécutable en modifiant ses permissions :

chmod 777 program_328

Enfin, nous pouvons envoyer le fichier hexadécimal à la puce Atmega 328 en utilisant :

./program_328 blink.hex

Vous devriez voir une sortie similaire à celle ci-dessous :

avrdude: AVR device initialized and ready to accept instructions

Reading | ############################################ | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified,
         an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "blink.hex"
avrdude: input file blink.hex auto detected as Intel Hex
avrdude: writing flash (594 bytes):

Writing | ############################################ | 100% 0.34s

avrdude: 594 bytes of flash written
avrdude: verifying flash memory against blink.hex:
avrdude: load data flash data from input file blink.hex:
avrdude: input file blink.hex auto detected as Intel Hex
avrdude: input file blink.hex contains 594 bytes
avrdude: reading on-chip flash data:

Reading | ############################################ | 100% 0.32s

avrdude: verifying ...
avrdude: 594 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Si tout s’est déroulé comme prévu, les six LED bleues de la carte GertDuino devraient s’allumer et s’éteindre en séquence.

Vos premiers pas dans le jeu Pi-Arduino sont terminés, félicitations !