Modifications

Sauter à la navigation Sauter à la recherche
1 810 octets supprimés ,  7 avril 2013 à 11:49
Ligne 2 : Ligne 2 :     
== Introduction ==
 
== Introduction ==
Cet exemple est certes rudimentaire mais il met en place tous les éléments nécessaires à la communication I2C structurée entre un Raspberry Pi et un Arduino.
+
{{bloc-etroit|text=Cet exemple est certes rudimentaire mais il met en place tous les éléments nécessaires à la communication I2C structurée entre un Raspberry Pi et un Arduino.}}
    
Dans l'exemple suivant:
 
Dans l'exemple suivant:
* Raspberry Pi est le MASTER WRITER<br />Pi est donc le maître de la communication envoyant ses instructions.
+
* <strong>Raspberry Pi est le MASTER WRITER</strong><br />Pi est donc le maître de la communication envoyant ses instructions.
* Arduino est le SLAVE LISTENER<br />Il attend donc les instructions envoyée sur le bus I2C.
+
* <strong>Arduino est le SLAVE LISTENER</strong> (esclave qui écoute)<br />Il attend donc les instructions envoyée sur le bus I2C.
   −
Dans cet exemple, le programme Arduino se content d'envoyer les informations reçues vers le Moniteur Série... ce qui permet d'espionner le processus de communication I2C.
+
Dans cet exemple:
 +
* Le programme Raspberry se content d'envoyer des messages simples.
 +
* le programme Arduino se content de renvoyer les informations reçues vers le Moniteur Série
   −
== Arduino ==
+
Grâce à cet exemple, il devient possible d'espionner le processus de communication I2C entre Arduino et Raspberry Pi.}}
Commençons par le programme Arduino, c'est le plus simple.  
     −
Comme déjà précisé, il reçoit des informations en provenance du Raspberry-Pi sur le bus I2C.
+
== Montage ==
 +
Nous utilisons ici le [[ArduPi-I2C-Montage|montage général]] décrit dans ce tutoriel.
   −
Il se contente simplement de le renvoyer vers le Moniteur Série d'Arduino. Nous pourrons par la suite analyser le contenu de l'information et ainsi parfaire notre connaissance.
  −
  −
=== Programme SlaveListener ===
  −
Voici le contenu du programme Arduino. N'oubliez pas d'ouvrir le moniteur série d'Arduino pour voir ce qui passe sur le bus ;-)
  −
  −
  <nowiki>// === ArduPi-I2C ================================================
  −
// Communication entre Arduino et Raspberry Pi via le BUS I2C
  −
// ===============================================================
  −
// Tutoriel: http://mchobby.be/wiki/index.php?title=ArduPi-I2C
  −
//
  −
// Programme Esclave qui Recoit les données données envoyées par Raspberry Pi
  −
// S'utilise avec le programme Arduino MasterWriter.py
  −
//
  −
// Ecrit par D. Meurisse pour MCHobby.be
  −
// www.mchobby.be - Vente de kit et composant Arduino et Raspberry Pi
  −
// Licence CC-BY-SA
  −
//
  −
// Basé sur l'exemple de Nicholas Zambetti <http://www.zambetti.com>
  −
//
  −
#include <Wire.h>
  −
  −
void setup()
  −
{
  −
  Wire.begin(4);                // Joindre le Bus I2C avec adresse #4
  −
  Wire.onReceive(receiveEvent); // enregistrer l'événement (lorsqu'une demande arrive)
  −
  Serial.begin(9600);          // Démarrer une communication série
  −
}
  −
  −
void loop()
  −
{
  −
  delay(100);
  −
}
  −
  −
// Fonction qui est exécutée lorsque des données sont envoyées par le Maître.
  −
// Cette fonction est enregistrée comme une événement ("event" en anglais), voir la fonction setup()
  −
void receiveEvent(int howMany)
  −
{
  −
  Serial.println("---- READING ---");
  −
  Serial.print("Number of Bytes: ");
  −
  Serial.println( howMany );
  −
  while(1 < Wire.available()) // Lire tous les octets sauf le dernier
  −
  {
  −
    char c = Wire.read();    // lecture de l'octet/byte comme caractère
  −
    Serial.print(c);          // afficher le caractère
  −
  }
  −
  int x = Wire.read();        // lecture de l'octet/byte ignoré comme un entier
  −
  Serial.println(x);          // Afficher la valeur numérique
  −
}
  −
</nowiki>
   
{{ArduPi-I2C-TRAILER}}
 
{{ArduPi-I2C-TRAILER}}
29 917

modifications

Menu de navigation