RPI-ShieldBridge-ArduinoIDE
Programmer RPi-ShieldBrigde avec votre Pi
Vous pouvez programmer votre RPi-ShieldBrigde en installant Arduino IDE sur votre Pi.
Cette section du tutoriel explique toutes les étapes nécessaires.
Préparation
Pour programmer votre RPi-ShieldBridge depuis votre Arduino, vous devez fermer les cavaliers suivant sur le RPi-ShieldBridge
- JTX,
- JRX et
- JBL
Le cavalier JBL est branché sur le GPIO18 (broche 12) et servira à initier l'auto-reset de la plateforme Arduino pour y activer le bootloader.
Attention:
Sur les dernières versions du RPi-ShieldBridge, le cavalier JBL est déjà soudé par l’intermédiaire d'une résistance (comme sur la photographie ci-dessus).
Il n'y a rien de plus faire pour ce dernier.
Installer Arduino IDE
Nous allons ensuite installer Arduino IDE sur votre Raspberry Pi
$ sudo apt-get update $ sudo apt-get install arduino
Auto-Reset Arduino
Introduction
Puisque Raspberry Pi ne dispose pas de broche DTR sur le port série, le téléversement d'un croquis/sketch (fichier hex) dans l'AVR n'est pas aussi simple que sur la plateforme Arduino. Le signal DTR est utilisé par la plateforme Arduino IDE pour initier un Reset du microcontrôleur et activer le bootloader (ce petit programme qui charge votre croquis dans le microcontroleur).
A défaut du signal DTR, nous avons donc besoin d'un petit hack pour renverser la vapeur. Lorsque vous branchez votre atmega, il faut brancher la broche Reset du microcontrôleur sur une broche GPIO du Raspberry-Pi.
Vous serez ensuite capable d'utiliser avrdude (le programmateur de microcontroleur) comme si vous aviez un câble série disposant du signal DTR.
Vous trouverez de plus ample information à ce sujet sur le github de CisecoPlc.
Installation
Voici les différentes étapes permettant d'installer l'auto-reset AVRDude (pour Arduino) sur le GPIO18 (pin12)
$ wget https://raw.github.com/watterott/RPi-ShieldBridge/master/docu/autoreset $ wget https://raw.github.com/watterott/RPi-ShieldBridge/master/docu/avrdude-autoreset $ chmod +x autoreset $ chmod +x avrdude-autoreset $ sudo cp autoreset /usr/bin $ sudo cp avrdude-autoreset /usr/bin $ sudo mv /usr/bin/avrdude /usr/bin/avrdude-original $ sudo ln -s /usr/bin/avrdude-autoreset /usr/bin/avrdude
Désactivé la console Série
Introduction
Par défaut, votre Raspbian installe un terminal sur le port série du GPIO. C'est une option bien pratique pour entrer directement en contact avec votre Pi depuis un cable USB Série TTL, voir notre Tutoriel Câble Console pour plus d'information.
Cependant, nous avons besoin de se port série pour programmer notre microcontrôleur Arduino sur le RPi-ShieldBridge.
Il nous faut donc libérer le port série pour notre propre usage (voir cette source sur elinux.org).
Désactivation
$ sudo nano /boot/cmdline.txt
Retirer les référence à console=ttyAMA0,115200 et kgdboc=ttyAMA0,115200
$ sudo nano /etc/inittab
Retirer ou commenter la lige T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100.
Rebooter votre Pi.
sudo shutdown -r now
Tester AVRDude
Eteigner votre Raspberry-Pi et débranchez le
shutdown -h now
Placer le RPi-ShieldBridge sur votre Raspberry et redémarrez votre Raspberry-Pi
$ sudo avrdude -c arduino -p m328p -P /dev/ttyAMA0 -b 57600 -v
La signature correspondant à l'ATmega328p est 0x1e950f.
Voila une réponse type de la commande AVRDude
Programmer Type : Arduino Description : Arduino Hardware Version: 3 Firmware Version: 5.6 Vtarget : 0.3 V Varef : 0.3 V Oscillator : 28.800 kHz SCK period : 3.3 us avrdude-original: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude-original: Device signature = 0x1e950f avrdude-original: safemode: lfuse reads as 0 avrdude-original: safemode: hfuse reads as 0 avrdude-original: safemode: efuse reads as 0 avrdude-original: safemode: lfuse reads as 0 avrdude-original: safemode: hfuse reads as 0 avrdude-original: safemode: efuse reads as 0 avrdude-original: safemode: Fuses OK
Programmer avec Arduino IDE
- Démarrer Arduino IDE
- Sélectionner la carte Arduino Uno dans le menu Outils -> Carte (Tools -> Board)
- Sélectionner le port série /dev/ttyAMA0 dans le menu Outils -> Port série (Tools -> Serial)
Le port série ttyAMA0 n'est pas identifié par Arduino IDE comme port série potentiel, vous pouvez créer un lien symbolique (symlink) ttyS0 vers le port série.
$ sudo nano /etc/udev/rules.d/80-arduinopi.rules
et y ajouter la ligne suivante:
KERNEL=="ttyAMA0", SYMLINK+="ttyS0",GROUP="dialout",MODE:=0666
- Ouvrir le croquis/sketch Blink depuis le menu Fichier -> Exemples -> 01.Basics -> Blink (File -> Examples -> 01.Basics -> Blink).
- Téléverser/télécharger le Croquis/Sketch.
- La LED branché sur la broche 13 du microcontroleur (comme un Arduino) du RPi-ShieldBridge va commencer à clignoter après la fin du téléversement.
Source: RPi-ShieldBridge
Créé par Stephan Watterott pour Watterott.
Traduction réalisée et augmenté par Meurisse D pour MCHobby.be.
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.
Traduction et documentation réalisées avec l'autorisation expresse de Stephan Watterott - Documentation and translation built with authorization of Stephan Watterott.