RPI-ShieldBridge-ArduinoIDE

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.


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

RPI-ShieldBridge-ArduinoIDE-01.jpg

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.