Modifications

Sauter à la navigation Sauter à la recherche
3 760 octets ajoutés ,  22 janvier 2014 à 07:48
Ligne 3 : Ligne 3 :  
== Firmata? Kaséko? ==
 
== Firmata? Kaséko? ==
   −
Firmata ([http://firmata.org Firmata.org]) est un protocole permettant à un ordinateur de communiquer avec des microcontroleurs. Il est donc possible de controler '''simplement''' un Arduino depuis un Rapsberry en utilisant Firmata.
+
Firmata ([http://firmata.org Firmata.org]) est un protocole permettant à un ordinateur de communiquer avec des microcontroleurs. Il est donc possible de contrôler '''simplement''' un Arduino depuis un ordinateur ou Raspberry en utilisant Firmata.
    
Il existe une implémentation de Firmata en Python... que quoi permettre à notre Pi de contrôler facilement votre Arduino.   
 
Il existe une implémentation de Firmata en Python... que quoi permettre à notre Pi de contrôler facilement votre Arduino.   
Ligne 44 : Ligne 44 :  
=== Téléverser Firmata via GPIO du PI ===
 
=== Téléverser Firmata via GPIO du PI ===
 
Il est également possible d'utiliser la connexion série matérielle du Raspberry Pi pour téléverser le Croquis/Sketch Firmata sur le RPi-ShieldBridge.
 
Il est également possible d'utiliser la connexion série matérielle du Raspberry Pi pour téléverser le Croquis/Sketch Firmata sur le RPi-ShieldBridge.
 +
 +
[[Fichier:RPI-ShieldBridge-Intro.jpg|450px]]
    
Voyez aussi notre section [[RPI-ShieldBridge-ArduinoIDE|Installer Arduino IDE sur Raspberry Pi]] pour les instructions ci-dessous
 
Voyez aussi notre section [[RPI-ShieldBridge-ArduinoIDE|Installer Arduino IDE sur Raspberry Pi]] pour les instructions ci-dessous
Ligne 67 : Ligne 69 :  
* Via UART (port série matériel du Raspberry Pi accessible sur le GPIO)
 
* Via UART (port série matériel du Raspberry Pi accessible sur le GPIO)
   −
=== Connexion USB (convertisseur FTDI) ===
+
=== Connexion USB (via convertisseur FTDI) ===
* Put the RPi-ShieldBridge on the Raspberry Pi.
+
* Placer le RPi-ShieldBridge sur votre Raspberry Pi.
* Connect a FTDI adapter (5V) to the USB port of the Raspberry Pi and FTDI connector on the RPi-ShieldBridge.
+
* Connectez l'adaptateur FTDI (5V) sur le port USB du Raspberry Pi et enfichez l'adaptateur FTDI sur le connecteur FTDI du RPi-ShieldBridge.
* Device name: /dev/ttyUSB0 or /dev/ttyACM0
+
* Le nom du périphérique USB sera /dev/ttyUSB0 (si vous avez défini le lien symbolique) ou /dev/ttyACM0
 +
 
 +
'''Note de MCHobby:'''<br />
 +
Etant donné que le RPi-ShieldBridge est connecté sur le GPIO, ce dernier est alimenté par l'intermédiaire du +5V du GPIO. Dans pareil cas, il n'est pas nécessaire d'alimenter le RPi-ShieldBridge par l'intermédiaire du connecteur FTDI. Les deux potentiels devrait être idéalement de pile à 5V. Cependant, dans la vie réelle, vous pourriez avoir deux tensions légèrements différentes (ex: 5.00v au GPIO et 4.95v causé par une perte sur le fils USB) provoquant une circulation de courant entre les deux potentiels. Pas franchement souhaitable.
 +
 
 +
Dans ce cas, nous conseillons de ne pas ponter le cavalier JVCC (ou ne pas raccorder la broche VCC du connecteur FTDI).
    
=== Connexion UART (port série matériel) ===
 
=== Connexion UART (port série matériel) ===
Ligne 84 : Ligne 91 :     
Nous allons pouvoir nous attaquer au reste.
 
Nous allons pouvoir nous attaquer au reste.
 +
=== Installer pySerial, pyFirmata et pip ===
 +
Installer:
 +
* [http://pyserial.sourceforge.net/ pySerial] en utilisant apt-get.
 +
* [https://github.com/tino/pyFirmata pyFirmata] en utilisant [http://www.pip-installer.org/en/latest/installing.html pip]
 +
 +
<nowiki>$ sudo apt-get update
 +
$ sudo apt-get install python-serial
 +
$ sudo pip install pyfirmata</nowiki>
 +
 +
=== Script de test ===
 +
 +
Créer le script firmatatest.pu
 +
 +
nano firmatatest.py
 +
 +
et tapez le script suivant:
 +
 +
<nowiki>#!/usr/bin/env python
 +
# -*- coding: latin-1 -*-
 +
 +
import time
 +
import RPi.GPIO as GPIO
 +
import pyfirmata
 +
GPIO.setmode(GPIO.BOARD)
 +
GPIO.setup(12, GPIO.OUT)  # GPIO18 (broche 12) en mode sortie (OUTPUT)
 +
GPIO.output(12, GPIO.LOW)  # GPIO18 LOW (niveau bas) -> désactivé du Reset Arduino
 +
# Démarrer la connection avec Arduino UNO
 +
#  USB: /dev/ttyUSB0 ou /dev/ttyACM0
 +
#  UART: /dev/ttyAMA0
 +
board = pyfirmata.Arduino('/dev/ttyUSB0')
 +
board.digital[13].write(1) # activer la LED sur la broche 13
 +
time.sleep(3)              # delai de 3s
 +
board.digital[13].write(0) # Eteindre la LED
 +
time.sleep(3)              # delai de 3s
 +
board.exit()</nowiki>
 +
 +
=== Exécuter le script ===
 +
 +
pour exécuter le script, taper simplement la commande suivante dans un terminal.
 +
 +
$ python firmatatest.py
 +
 +
== Contrôle avec Node.JS ==
 +
 +
=== Installation ===
 +
Pour utiliser Firmata et Node.js, vous devrez installer:
 +
* [http://nodejs.org/ Node]
 +
* [https://npmjs.org/package/firmata La bibliothèque Firmata] pour Node.js
 +
* [https://npmjs.org/package/rpio|La bibliothèque rpio] pour Node.js
 +
 +
<nowiki>$ sudo mkdir /opt/node
 +
$ wget http://nodejs.org/dist/v0.10.12/node-v0.10.12-linux-arm-pi.tar.gz
 +
$ tar zxf node-v0.10.12-linux-arm-pi.tar.gz
 +
$ sudo cp -r node-v0.10.12-linux-arm-pi/* /opt/node
 +
$ sudo nano /etc/profile
 +
 +
# add these lines before *export PATH*
 +
PATH="$PATH:/opt/node/bin"
 +
 +
$ sudo /opt/node/bin/npm install -g firmata
 +
 +
$ sudo /opt/node/bin/npm install -g rpio</nowiki>
 +
 +
=== Créer le script firmatatest.js ===
 +
 +
Créer le fichier firmatatest.js en utilisant la commande
 +
 +
nano firmatatest.js
 +
 +
Et y copier le code suivant:
 +
 +
<nowiki>var rpio = require('rpio');
 +
var firmata = require('firmata');
 +
 +
// GPIO18 low = Niveau bas -> Reset Arduino désactivé
 +
rpio.setOutput(12);
 +
rpio.write(12, rpio.LOW);
 +
 +
// Démarrer une connexion avec Arduino
 +
//  USB: /dev/ttyUSB0 ou /dev/ttyACM0 (via convertisseur FTDI)
 +
//  UART: /dev/ttyAMA0 (via GPIO)
 +
var board = new firmata.Board('/dev/ttyUSB0', function(err)
 +
{
 +
  if(err)
 +
  {
 +
    console.log(err);
 +
    return;
 +
  }
 +
  console.log('connexion etablie');
 +
  board.pinMode(13, board.MODES.OUTPUT);
 +
  // Allumer la LED
 +
  board.digitalWrite(13, board.HIGH);
 +
  // eteindre la LED après 3s
 +
  setTimeout(function()
 +
  {
 +
    board.digitalWrite(13, board.LOW);
 +
    process.exit(0);
 +
  }, 3000);
 +
});</nowiki>
 +
 +
=== Exécuter le script ===
   −
{{traduction}}
+
Taper la commande suivante dans un terminal pour exécuter le script
    +
$ sudo node firmatatest.js
 
{{RPI-ShieldBridge-TRAILER}}
 
{{RPI-ShieldBridge-TRAILER}}
29 918

modifications

Menu de navigation