Publicité

Liens rapides

Quand il s'agit de concevoir des systèmes embarqués, interactifs ou bien quand des objets doivent communiquer
entre eux, plusieurs solutions sont possibles. Nous explorerons ici le protocole
par ondes radio, c'est-à-dire sans fil. Je m'efforcerais dans un premier temps de présenter les caractéristiques de
ce protocole et d'éviter certaines confusions (partie 1). Ensuite je présenterais des cas pratiques avec et sans la
carte Arduino (parties 3 et 4). Pour en savoir plus sur la carte Arduino, vous pouvez consulter ma page Arduino.
À noter que ces cas pratiques ne concernent pour l'instant (01/2013) que la série 1 du module XBee.
Nous aborderons des domaines variés faisant appel à des notions plus ou moins avancées en réseaux in-
formatiques. Loin d'être un obstacle, ce sera l'occasion d'apporter quelques éléments de compréhension dans
l'apprentissage classique des systèmes informatiques (partie 2).
N'hésitez pas à me faire part de vos remarques pour améliorer ce document, rectifier certaines erreurs sur la
page contact.
– PDF :
xbee-arduino.pdf
– SOURCES :
./ressources/xbee-arduino
– URL :
http ://jeromeabel.net/ressources/xbee-arduino
– LICENCE : GNU/GPLv3
XBee Arduino
Jérôme Abel
Jan 21, 2013
(4.7M0)
(images, textes, codes, schémas)
Zigbee
1
qui permet de communiquer

Publicité

Table des Matières
loading

Sommaire des Matières pour Arduino XBee

  • Page 1 (partie 1). Ensuite je présenterais des cas pratiques avec et sans la carte Arduino (parties 3 et 4). Pour en savoir plus sur la carte Arduino, vous pouvez consulter ma page Arduino. À noter que ces cas pratiques ne concernent pour l’instant (01/2013) que la série 1 du module XBee.
  • Page 2: Table Des Matières

    ........1.3 Xbee ou Zigbee ? .
  • Page 3: Présentation Du Xbee

    Les principales caractéristiques du XBee : – fréquence porteuse : 2.4Ghz – portées variées : assez faible pour les XBee 1 et 2 (10 - 100m), grande pour le XBee Pro (1000m) – faible débit : 250kbps – faible consommation : 3.3V @ 50mA –...
  • Page 4 Ici un couple d’oiseaux de papier communiquent ensemble. Quand l’un est manipulé, l’autre s’allume (Jie Qi messenger). Dans Robotics drums, des servo-moteurs contrôlés à distance tapent sur 18 percussions Darbukas pour créer des rythmes inédits dans la ville.
  • Page 5: Pourquoi Choisir Le Sans Fil

    Une autre application peut s’avérer très utile : programmer à distance une carte Arduino. En effet, d’habitude on relie sa carte avec câble USB, mais comment faire quand la carte est située à trois mètres de hauteur comme c’est le cas dans mon projet Chimères Orchestra...
  • Page 6: Xbee Ou Zigbee

    Bee signifiant "abeille", le choix du nom donne l’image qu’il peut y avoir plusieurs petits modules connectés ensemble comme une colonie d’abeilles. Au début, on peut confondre les termes XBee et ZigBee. En fait, comme expliqué au début de l’article, le ZigBee est un protocole de communication qui s’appuie sur le travail du groupe IEEE 802.15.4 et définit par le groupe de professionnels ZigBee Alliance.
  • Page 7: Zigbee Et 802

    Plusieurs produits XBee existent, ce qui peut créer quelques confusions. Il faut retenir qu’il y a deux catégories de XBee : la série 1 et la série 2. Les modules de la série 1 ont souvent un "802.15.4" qui s’ajoutent à leurs noms.
  • Page 8 Les modules de la série 2 sont disponibles en plusieurs versions : XBee ZNet 2.5 (obsolète), le ZB (l’actuel) et le 2B (le plus récent). Vous avez aussi des XBee Pro, qui font la même chose, mais avec de plus grandes capacités, notamment la portée qui semble pouvoir aller jusqu’à...
  • Page 9: Antennes

    Pour établir une communication avec l’ordinateur, il y a deux options : l’assemblage de différents éléments comme sur l’image ou le XBee USB Explorer. J’ai choisi la première option car un peu moins cher et plus flexible. L’inconvénient est que ça nécessite un peu de soudure (3 minutes) et un petit montage sur plaque à essais. Bref, cela revient au même.
  • Page 10: Alimentation

    Alimentation L’alimentation doit être comprise entre 2,8V et 3,4V. Dans mes montages j’utilise l’alimentation stabilisée 3.3V. Dans d’autres exemples, il semblerait qu’assembler deux piles 1,5V ensemble soit suffisant. Pour être plus autonome, on peut trouver des montages sur le Web avec le régulateur de tension LM7833 qui sort directement une tension de 3,3V ou bien avec le LM317 qui permettrait avec des valeurs de résistances adaptées d’obtenir ce que l’on souhaite, mais je ne l’ai pas testé.
  • Page 11: Matériel Nécessaire

    2 (au moins 2 pour créer une connection !) : série 1 ou 2, antennes filaire ou à puce – XBee Explorer USB (Platine d’interface USB pour modules "XBEE") : en option si vous choisissez la carte FT232 –...
  • Page 13: Notions De Réseaux

    Je mettrais l’accent sur deux notions qui nous serviront directement à appréhender le XBee : les protocoles et la communication série.
  • Page 14 Le message à envoyer est découpé en paquets (datagram). On leur ajoute généralement une étiquette composée de son adresse, celle du récepteur et son ordre dans le message original. Il est envoyé par des chemins divers évitant les congestions du réseau. Le destinataire remet ensuite le message dans l’ordre grâce aux étiquettes. On oppose cette technique à...
  • Page 15 est seulement une des nombreuses applications fonctionnant sur Internet, qui lui est un ensemble de réseaux interconnectés. Les protocoles peuvent être ouverts et devenir des standards. Ils sont alors décris dans des textes publics dont nous avons accès et qui sont approuvés par des organismes de normalisation nationaux, internationaux ou privés. L’intérêt est de poser un référentiel commun pour rendre le système ouvert, stable et modulaire.
  • Page 16: Communication Série

    à la radio FM qui envoient les informations dans un seul sens (simplex) et au talkie-walkie qui ne permet pas à deux émetteurs de parler en même temps (half-simplex). On dit aussi que le XBee est un transceiver...
  • Page 17: Liaison Série / Parallèle

    "Serial : Used for communication between the Arduino board and a computer or other devices. All Arduino boards have at least one serial port (also known as a UART or USART) : Serial. It communicates on digital pins 0 (RX) and 1 (TX) as well as with the computer via USB. Thus, if you use these functions, you cannot also use pins 0 and 1 for digital input or output."...
  • Page 18: Synchrone / Asynchrone

    "Toute l’astuce d’une liaison série asynchrone repose sur la forme des signaux envoyés ; signaux qui permettent une synchronisation du récepteur sur chaque caractère reçu. Examinez la figure ci-dessus qui représente la transmission asynchrone de l’octet 01010010 (caractère ASCII "R", valeur décimale 82).
  • Page 19: Baud / Bits Par Seconde

    8 bits par baud en associant une modulation d’amplitude à une modulation de phase. 9600bps = 1200 baud * 8 bits per baud. Pour Arduino, les débits possibles sont : 300, 600, 1200, 2400, 4800, 9600, 14400,...
  • Page 20: Norme Rs 232

    Cette norme est encore très souvent utilisée notamment au travers des puces FTDI qui équipent les anciennes Arduinos et dans les cartes d’interface qui permettent de communiquer en série avec le module XBee. Les nouvelles cartes Arduino Uno utilisent un ATmega328 à la place. "Les signaux logiques aux niveaux...
  • Page 21 Pour la transmission de données dans le milieu aérien, plusieurs options sont possibles. On utilise souvent des ondes électromagnétiques dans le domaine radio utilisant des fréquences porteuses réservées selon les pays. Vous verrez souvent les mêmes valeurs en France : 433Mhz et 2,4Ghz (comme le four micro-ondes). Ne sont répertoriés ici que les systèmes utilisant les radio-fréquences.
  • Page 22 Vous pouvez utiliser n’importe quelle technique, cependant il faut prendre de soin de cerner les buts de votre réseau sans fil et les contraintes des technologies disponibles : infra-rouge, 433Mhz, Bluetooth, Wi-Fi, ZigBee, GPS, RFID et bien d’autres que je ne connais sûrement pas. Dites-vous qu’il existe des montages avec Arduino pour toutes ces techniques.
  • Page 23 Le schéma ci-dessus permet de comparer le ZigBee, le Bluetooth et le Wi-Fi en termes de portée et de débits. Une courte vidéo présente les caractéristiques principales dans le choix des technologies sans fil : http ://www.youtube.com/watch ?v=buV11ZPJ7MQ...
  • Page 24: Configuration

    1, il ne reste plus qu’à assembler notre premier montage, à établir une connection avec l’ordinateur et connaître la syntaxe pour configurer le module XBee. Montage Souder l’adaptateur XBee, il permet juste d’avoir des contacteurs avec le bon espacement pour pouvoir enfoncer le module dans une platine d’essais.
  • Page 25: Terminal

    – faire attention, le programme ouvre par défaut le premier port série ouvert. Donc si deux modules séries sont connectés (une Arduino en est un), seul un, que l’on ne peut pas choisir est accessible.
  • Page 26: Modes

    XBee, sous forme de paquets. Je crois comprendre que ce mode devient utile quand il s’agit de construire des messages au format XBee à partir d’un ordinateur ou d’un microcontrôleur comme Arduino. Le mode API n’est possible qu’avec une connection locale en série et filaire avec l’ordinateur ou la Arduino, pas entre modules XBee.
  • Page 27: Adressage

    Vous avez défini ici l’adresse du module à 1234 (ATMY 1234) puis demander quelle était votre adresse (ATMY). Adressage Pour tout XBee, il faut impérativement définir l’adresse du réseau ATID, son adresse personnelle ATMY et si besoin, l’adresse de destination des paquets ATDL. Entrées / sorties...
  • Page 28 Il faut savoir que les entrées fonctionnent par paire, c’est la notion de "line passing". L’entrée 0 du XBee#2 correspond à la sortie 0 du XBee#1. Comme il y a deux sorties 0 (PWM0, DIO0), alors si on veut avoir deux...
  • Page 29: Mode Api

    Mode API En mode API, on peut reconstituer la trame ZigBee pour communiquer directement en binaire avec le module. Voilà, ce que ça pourrait donner en langage Arduino, pris sur http ://www.faludi.com/classes/sociableobjects/code/XBee_A Une autre solution, au lieu de reconstituer la trame, utiliser une bibliothèque spéciale : –...
  • Page 30: Montages

    XBee XBee On peut faire un montage très simple, le montage direct entre deux modules XBee. Il met deux capteurs sur le XBee#2, un bouton poussoir et un potentiomètre et deux actionneurs sur le XBee#1, deux LEDs. Le bouton allume et éteint une LED en on/off (digital), le potentiomètre allume et éteint l’autre LED de façon progressive (en PWM).
  • Page 31: Xbee Xbee/Ordinateur

    BOUTON : D1 pour pin19 (DIO1, AD1) et 3 pour Digital Input ATD1 LED : D1 pour pin19 (DIO1, AD1) et 4 pour Digital Out Low Sup ATWR Écrit la nouvelle configuration dans la mémoire flash du module ATCN Sort du mode configuration XBee XBee/ordinateur...
  • Page 32: Xbee/Arduino Xbee/Ordinateur

    Avec le même montage, on peut visualiser dans le terminal, les informations reçues par le XBee#1 avec le convertisseur relier à l’ordinateur. Ces informations ne sont cependant pas tout à fait compréhensibles dans le terminal, on ne voit pas de chiffres par exemple car il s’agit de paquet ZigBee.
  • Page 33: Xbee/Arduino Xbee/Arduino

    XBee/Arduino XBee/Arduino Montage récepteur L’émetteur est le même que précédemment, une Arduino avec un bouton poussoir et le XBee2.
  • Page 34 Code récepteur Téléchargement : ./ressources/xbee-arduino/code/recepteur. Simplification du code de Robert Faludi. On configure tout d’abord le module XBee1 pour qu’il reçoive les données de l’autre XBee.
  • Page 35 En pratique, on voudrait avoir la possibilité d’envoyer plusieurs données différentes provenant de plusieurs capteurs et d’actionner plusieurs sorties. Les méthodes présentées ici ne le font pas. Pour cela, deux options semblent envisageable : construire des messages série plus compliqués avec un identifiant (comme ici) ou bien utiliser l’API XBee pour Arduino.
  • Page 36: Ressources

    Talk, de Tom Igoe : présente les communications Ethernet, infra-rouge, radio, XBee, GPS. Attention, le XBee utilisé est de la série 1 et un seul montage XBee est disponible qui est décevant. Il faut plutôt choisir ce livre pour le support d’informations concernant un ensemble de communications.

Table des Matières