Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


materiel:xbee:star:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
materiel:xbee:star:accueil [2014/09/19 12:39]
resonance [Explications]
materiel:xbee:star:accueil [2018/01/28 15:41] (Version actuelle)
resonance ancienne révision (2016/02/01 00:06) restaurée
Ligne 1: Ligne 1:
-====== XBee - Star ======+====== XBee en étoile ======
 ([[.en|English version]]) ([[.en|English version]])
  
Ligne 7: Ligne 7:
   * Fichiers : {{:materiel:xbee:star:codes.zip|}}   * Fichiers : {{:materiel:xbee:star:codes.zip|}}
   * Remerciements : Martin Peach, Hans-Christop Steiner, Vincent Pillet   * Remerciements : Martin Peach, Hans-Christop Steiner, Vincent Pillet
 +
  
 Les modules XBee sont une solution pour transmettre des données sans-fils, par ondes radio. Si cela ne vous dit rien et que vous êtes plus déterminé que jamais, veuillez suivre l'initiation [[http://jeromeabel.net/ressources/xbee-arduino|Xbee & Arduino]]. Nous avons vu comment transmettre des données d'un module à un autre en remplacement d'un câble, c'est une topologie de réseau "point-à-point". Ici, nous explorerons une autre topologie très utile qui est en "étoile". Cela permet deux types de configuration : un émetteur (//Coordinator//) envoie des données à plusieurs receveurs (//End Device//) ou bien l'inverse, plusieurs émetteurs envoient des données à un seul receveur. L'article décrit comment faire ça avec les modules **XBee Series 1**, **Pure Data** et **Arduino**. Certaines de mes pièces artistiques ([[:projets:patatas-de-goma:|Patatas de goma]] et [[:projets:chimeres-orchestra:|Chimères Orchestra]]) utiliseront cette technique. Les modules XBee sont une solution pour transmettre des données sans-fils, par ondes radio. Si cela ne vous dit rien et que vous êtes plus déterminé que jamais, veuillez suivre l'initiation [[http://jeromeabel.net/ressources/xbee-arduino|Xbee & Arduino]]. Nous avons vu comment transmettre des données d'un module à un autre en remplacement d'un câble, c'est une topologie de réseau "point-à-point". Ici, nous explorerons une autre topologie très utile qui est en "étoile". Cela permet deux types de configuration : un émetteur (//Coordinator//) envoie des données à plusieurs receveurs (//End Device//) ou bien l'inverse, plusieurs émetteurs envoient des données à un seul receveur. L'article décrit comment faire ça avec les modules **XBee Series 1**, **Pure Data** et **Arduino**. Certaines de mes pièces artistiques ([[:projets:patatas-de-goma:|Patatas de goma]] et [[:projets:chimeres-orchestra:|Chimères Orchestra]]) utiliseront cette technique.
Ligne 14: Ligne 15:
  
  
-{{vimeo>106574642?medium}}+{{ vimeo>106574642?medium }}
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 38: Ligne 39:
   * [[http://arduino.cc/en/Main/Software|Arduino]]   * [[http://arduino.cc/en/Main/Software|Arduino]]
   * [[https://processing.org/download/?processing|Processing]]   * [[https://processing.org/download/?processing|Processing]]
-  * [[http://www.itp.nyu.edu/physcomp/uploads/xbeeSerialTerminal.zip|xbeeSerialTerminal.zip]] (fait en processing), pour configurer le XBee+  * {{:materiel:xbee:star:xbeeterminal.zip|}} (fait en processing), pour configurer le XBee
   * Bibliothèques additionnelles (dans "codes.zip") : [[http://code.google.com/p/xbee-api/|xbee-api]], [[https://code.google.com/p/xbee-arduino/|xbee-arduino]] et [[https://github.com/scogswell/ArduinoSerialCommand|SerialCommand]]   * Bibliothèques additionnelles (dans "codes.zip") : [[http://code.google.com/p/xbee-api/|xbee-api]], [[https://code.google.com/p/xbee-arduino/|xbee-arduino]] et [[https://github.com/scogswell/ArduinoSerialCommand|SerialCommand]]
  
Ligne 64: Ligne 65:
 Le premier exemple consiste à contrôler directement les sorties numériques et PWM des XBees à partir de Pure Data sans passer par Arduino. Pour les tests, nous branchons une LED sur la sortie D0 (digital) et une autre sur la sortie PWM1 (PWM). Le premier exemple consiste à contrôler directement les sorties numériques et PWM des XBees à partir de Pure Data sans passer par Arduino. Pour les tests, nous branchons une LED sur la sortie D0 (digital) et une autre sur la sortie PWM1 (PWM).
  
-**Schéma** :  Pd/AT/SERIAL/XBEE1 ---> XBEE2, XBEE3, ... \\+**Schéma** :  Pd/AT/SERIAL/XBEE1 ---> XBEE2/LEDS, XBEE3/LEDS, ... \\
 **Code** : to-xbee-star.pd **Code** : to-xbee-star.pd
  
Ligne 113: Ligne 114:
 |RAT 0x0 0x3 2 M1 $1 | Control PWM (0-255) with M1 (use P0 and M0 for PWM0 pin)| |RAT 0x0 0x3 2 M1 $1 | Control PWM (0-255) with M1 (use P0 and M0 for PWM0 pin)|
  
-**Décryptage du message "Remot AT commands (RAT)"**+**Décryptage du message "Remote AT commands (RAT)"**
 |64-bit_destination| 0x0 (any, not needed here)| |64-bit_destination| 0x0 (any, not needed here)|
 |16-bit_destination:| XBee end devices addresses| |16-bit_destination:| XBee end devices addresses|
Ligne 153: Ligne 154:
  
 =====3/ XBee API - Arduino ===== =====3/ XBee API - Arduino =====
-On fait communiquer uniquement des Arduinos entre elles pour comprendre comment envoyer et recevoir des trames XBee avec Arduino.+On fait communiquer uniquement des Arduinos entre elles pour comprendre comment envoyer et recevoir des trames XBee avec Arduino. On branche une LED sur la pin 9 pour voir le résultat.
  
-**Schéma** : ARDUINO/TX/XBEE1 ---> XBEE2/RX/ARDUINO et XBEE3/RX/ARDUINO\\+**Schéma** : ARDUINO/TX/XBEE1 ---> XBEE2/RX/ARDUINO/LED et XBEE3/RX/ARDUINO/LED\\
 **Codes** : to_xbee_api.ino, from_xbee_api.ino\\ **Codes** : to_xbee_api.ino, from_xbee_api.ino\\
                          
Ligne 171: Ligne 172:
  
 =====4/ XBee API - Arduino et Pure Data ===== =====4/ XBee API - Arduino et Pure Data =====
-N'étant pas arrivé à envoyer des données en passant par le convertisseur série, j'ai dû utilisé une Arduino pour formater correctement ces données pour les autres modules récepteurs. On utilise la bibliothèque //SerialCommand// dans Arduino pour récupérer six données envoyées de Pure Data (une liste de six données). Celles-ci sont ensuite formatées par Arduino et la bibliothèque //XBee//. Les récepteurs récupèrent uniquement le tableau de données de la trame.+N'étant pas arrivé à envoyer des données en passant par le convertisseur série, j'ai dû utilisé une Arduino pour formater correctement ces données pour les autres modules récepteurs. On utilise la bibliothèque //SerialCommand// dans Arduino pour récupérer six données envoyées de Pure Data (une liste de six données). Celles-ci sont ensuite formatées par Arduino et la bibliothèque //XBee//. Les récepteurs récupèrent uniquement le tableau de données de la trame. La LED branchée sur la pin 9 permet toujours de visualiser ce qu'il se passe.
  
-**Schéma** : Pd/CMD/ARDUINO/XBEE1 ---> XBEE2/RX/ARDUINO et XBEE3/RX/ARDUINO\\+**Schéma** : Pd/CMD/ARDUINO/XBEE1 ---> XBEE2/RX/ARDUINO/LED et XBEE3/RX/ARDUINO/LED\\
 **Codes** : to-xbee-cmd.pd, to_xbee_api_cmd.ino, from_xbee_cmd.ino  **Codes** : to-xbee-cmd.pd, to_xbee_api_cmd.ino, from_xbee_cmd.ino 
  
Ligne 191: Ligne 192:
  
 =====4/ Réception des données (direct) ===== =====4/ Réception des données (direct) =====
-Réception des données directes (capteurs) de plusieurs XBees sans Arduinos par le XBee coordinateur, avec Pure Data et Processing. Très pratique pour récupérer les données d'un réseau de capteurs. +Réception des données directes (capteurs) de plusieurs XBees sans Arduinos par le XBee coordinateur, avec Pure Data ou Processing. Très pratique pour récupérer les données d'un réseau de capteurs. 
  
-**Schéma** : XBEE2 et XBEE3 (seules) --->  SERIAL/XBEE1\\+**Schéma** : CAPTEUR/XBEE2 et CAPTEUR/XBEE3 (seules) --->  SERIAL/XBEE1\\
 **Codes** : from-xbee-star-1.pd, from-xbee-star-2.pd\\ **Codes** : from-xbee-star-1.pd, from-xbee-star-2.pd\\
  
Ligne 204: Ligne 205:
  
 ==== Pure Data ==== ==== Pure Data ====
-Sans unpackxbee\\+Sans [mrpeach/unpackxbee]\\
 {{:materiel:xbee:star:from-xbee-star-1.png|}} {{:materiel:xbee:star:from-xbee-star-1.png|}}
  
-Avec unpackxbee\\+Avec [mrpeach/unpackxbee]\\
 {{:materiel:xbee:star:from-xbee-star-2.png|}} {{:materiel:xbee:star:from-xbee-star-2.png|}}
  
Ligne 229: Ligne 230:
 |50 01  |Destination address low| |50 01  |Destination address low|
 |00     |Option byte| |00     |Option byte|
-|48 65 6C 6C 6F |Data packet(ASCII: "Hello")|+|48 65 6C 6C 6F |Data packet (ASCII: "Hello")|
 |B8     |Checksum| |B8     |Checksum|
  
Ligne 250: Ligne 251:
  
 ==== Broadcast / Unicast ==== ==== Broadcast / Unicast ====
-Pour envoyer des commandes à plusieurs destinataires, une autre solution aurait été d'utilise d'envoyer des messages à tout le monde (Broadcast) et que les destinataires analysent les données (parser) pour ne récupérer que ce qui leur était destiné. Je pars du principe que le mode API fait pour cela est peut-être plus rapide à exécuter ces opérations, sachant que l'envoi de message physiquement (ondes radio) est envoyé à tout le monde. C'est les modules entre eux qui font le travail de déterminer qui est le destinataire, quelles sont les données, etc.+Pour envoyer des commandes à plusieurs destinataires, une autre solution aurait été d'envoyer des messages à tout le monde (Broadcast) et que les destinataires analysent les données (parser) pour ne récupérer que ce qui leur était destiné. Je pars du principe que le mode API fait pour cela est peut-être plus rapide à exécuter ces opérations, sachant que l'envoi de message physiquement (ondes radio) est envoyé à tout le monde. Ce sont les modules entre eux qui font le travail de déterminer qui est le destinataire, quelles sont les bonnes données, etc.
  
 **Series 2** ([[https://forum.sparkfun.com/viewtopic.php?f=13&t=31047|forum.sparkfun.com]]) : \\ **Series 2** ([[https://forum.sparkfun.com/viewtopic.php?f=13&t=31047|forum.sparkfun.com]]) : \\
/home/resonancg/www/wiki/data/attic/materiel/xbee/star/accueil.1411123173.txt.gz · Dernière modification: 2014/09/19 12:39 de resonance