Le javascript est désactivé sur votre navigateur
 
Prononcer /'po.bot/
   
Accueil du siteComposants et techniqueCommunicationsRéseaux ZigBee
  publication inférieure à 7 jours
  publié < 7j sous cette rubrique
     
À propos de l'article
    Publié le 3 janvier 2009
    par Julien H.

    Mis à jour le 25 juin 2011
Mots-clés de cet article
    Sponsors :
    MATLOG ,
    Communications :
    sans-fil , XBee , Zigbee , maillé ou "mesh" ,
    Electronique :
    composant
Choisir votre langue :

Un réseau sans-fil avec des XBee

configuration des modules et différentes utilisations

Les modules XBee sont des circuits de communication sans-fil utilisant les protocoles 802.15.4 et Zigbee, permettant de réaliser différents montages, d’une liaison série RS232 classique à un réseau maillé (mesh) auto-configuré.

Un composant XBee série 1 coûte désormais moins de 20 euros.

Différents protocoles ont été implémentés sans que le packaging - désormais reconnaissable entre tous avec ses coins coupés - ne change. Il faut donc faire attention sur la série que vous utiliserez : le 802.15.4 des débuts jusqu’aux nouvelles Séries 2, ZNet 2.5 et ZB Zigbee. Les modules de séries différentes ne peuvent pas communiquer entre eux.

Selon les modèles et les pays, ils utilisent la bande des 2,4 gigahertz (comme le Wifi ou le Bluetooth) ou les 900 MHz. Selon leur puissance, ils émettent à une distance comprise entre 30 mètres et 1,5 kilomètre.

Ils sont développés à l’origine par la société Maxstream, devenue Digi. Vous pouvez toujours trouver en vente les premières séries du module marquée Maxstream.

Le débit peut atteindre 250 kbps, mais si on les utilise pour réaliser une liaison série sans fil, les débits standards sont compris entre 9600 bps à 38400 bps. La vitesse et la bande passante ont des effets sur les erreurs de transmission et ne sont pas possibles à obtenir dans tous les environnements.

 Matériel pour un premier test

Nous allons utiliser ici des modules de la série 1, qui porte le nom du protocole IEEE : "802.15.4" (moins évolué que Zigbee mais déjà bien pratique). Pour l’usage que nous en ferons dans cet article, le modèle n’a pas d’incidence et vous pouvez réaliser ces mêmes tests avec une version 2 ou supérieure (à condition d’utiliser des XBee de la même série bien sûr).

Modules XBee
vue du dessus et vue du dessous

 Documentation technique

Le minimum à savoir est... minimal, car il faut surtout s’occuper de connecter les modules à vos équipements, et pas du tout besoin de savoir comment le protocole sans-fil fonctionne. C’est un peu comme pour un câble série : vous devez savoir quelle est la patte qui émet et la patte qui reçoit sans forcément vous préoccuper de la façon dont le courant électrique va traverser le fil de cuivre, même si certains devront s’en préoccuper pour des utilisations particulières.

Cette simplicité est un des principes qui ont fait le succès de ces modules, et que la société qui les conçoit s’emploie à conserver. Mais bien sûr on va aussi exploiter les possibilités de point-à-point ou de maillage (1 XBee écoutant plusieurs XBee).

Pour le détail, une datasheet est disponible sur le site de Digi ou des différents distributeurs.

 Interfaces

Nous avons besoin d’interfacer le XBee avec des microcontrôleurs (pour que les robots communiquent entre eux) et aussi avec un simple PC (pour avoir une possibilité de télécommande ou de télémétrie.

Pour se connecter avec un microcontrôleur, on va simplement relier les pattes RX,TX de notre µC aux pattes Din et Dout et alimenter le module en 3,3 volts. Quelques autres pattes sont intéressantes, nous les détaillerons ultérieurement.

Voici le schéma réalisé par Yannick pour son propre circuit. Vous pouvez vous en inspirer pour votre propre microcontrôleur mais notez que c’est vraiment simple du côté XBee, il n’y a aucun composant supplémentaire.

Connexion d’un XBee à un PIC16F628
(et profitez-en bien, ce n’est pas tous les jours que vous verrez un PIC dans nos pages)

Alimentation

L’intérêt du protocole 802.15.4 est d’être fait pour une puissance faible, avec une consommation réduite permettant de conserver un équipement autonome pendant une année, contrairement aux équipements Bluetooth par exemple.

Donc l’alimentation est un point essentiel. Au début, c’est vrai que ce 3,3 volts est un peu embêtant, car nous sommes habitués à utiliser des composants TTL en 5V (comme nos cartes à base de microcontrôleurs Atmel). Mais on s’y fait très bien et de plus en plus d’équipements sont en 3,3 volts.

En attendant, il existe des adaptateurs entre 5v et 3,3v. Et Yannick nous propose un circuit permettant d’alimenter en 3,3 volts un module XBee à partir d’une pile grâce à un convertisseur DC-DC "step-up" (le Max856 de chez Maxim) :

Alimentation 3,3 volts
utilisation d’un convertisseur pour monter la tension d’une pile.

Shield XBee pour Arduino

Comme nous utilisons parfois des cartes Arduino, nous pouvons également utiliser une carte d’extension dédiée aux modules XBee qui ajoute des leds, un convertisseur 3,3 volts et des cavaliers de configuration permettant de conserver la liaison USB-série : le "Arduino Xbee shield".

XBee shield pour Arduino
carte d’extension qui se branche directement sur la carte Arduino.

Son utilisation est très simple : il faut mettre les cavaliers vers l’intérieur (i.e. selon inscription "XBee/USB", se mettre en position "Xbee") et désormais les pattes RX/TX de votre Arduino sont connectées au Shield XBee. Cela implique que vous devez changer de position (USB) quand vous voulez reprogrammer la carte.

Interface avec un ordinateur

Pour se connecter à un ordinateur (PC ou Mac), on réalise très facilement un circuit adaptateur en connectant un chip USB/série au module XBee. On trouve pour quelques euros des circuits à base de FTDI qui en plus offrent des leds indiquant la mise sous tension, la transmission / réception et l’appariement avec un autre module, toutes ces choses pratiques qu’on oublie souvent.

Adaptateur USB Xbee
disponible chez Sparkfun, NKC electronics et tous les autres distributeurs Arduino habituels.

Mais si vraiment vous voulez le faire vous-même, suivez l’exemple très bien présenté de Totof :

 Jouons avec les modules XBee

Il est temps de laisser de côté tous ces fils, ces câbles, ces composants et de passer aux travaux pratiques, avec un peu de logiciel.

Premier test

Par défaut, les circuits XBee sont faits pour se trouver tous seuls, s’apparier et fonctionner en liaison série. Les paramètres sont les suivants : 9600 bauds, pas de parité, pas de contrôle de flux, 8 bits et 1 bit de stop. On va le constater avec une Arduino.

Côté Arduino, rien d’autre que ce code :

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.print('H');
  delay(1000);
  Serial.print('L');
  delay(1000);
}

Et côté PC, le bon vieil hyperterminal :

Configuration de la communication série
Il faut choisir le bon port COM : celui du module USB et pas celui de l’Arduino.

Le résultat est bluffant, puisqu’on dispose pour 30 euros d’une communication série sur plus de 100 mètres. Ce qui permet déjà de ressortir tous ses projets de mesure de température, alarme de boite aux lettres, etc..

Et pour un robot, on peut envisager de le contrôler ou de recevoir des tonnes de télémesures sans s’emmeler dans des fils qui s’enroulent autour :)

Second test

Mais que se passe-t-il si on utilise 3 modules ? Pour ce test, on va écrire un code avec un identifiant unique pour chacun, et un compteur.

int xbee_id = 0x01;   // ou 0x02

int count1 = 0; 
int count2 = 0;
int count3 = 0;

Chacune des cartes mobiles émet son adresse toutes les secondes.

  // toutes les secondes, envoie mon code
  Serial.write(xbee_id);
  delay(1000);

Lorsqu’il reçoit un code, tout module doit incrémenter le compteur correspondant :

      case 0x01:
        count1++;
        break;
      case 0x02:
        count2++;
        break;
      case 0x03:
        count3++;
        break;

Le module relié au PC permettra d’interroger chacun des modules embarqués sur une Arduino pour connaitre la valeur de leurs compteurs, en envoyant ’ ?’ sur la liaison série.

    int reception = Serial.read();
    switch(reception) {
      case '?':
        Serial.print("(");
        Serial.print(count1);
        Serial.print(",");
        Serial.print(count2);
        Serial.print(",");
        Serial.print(count3);
        Serial.println(")");
        break;
        ...
    }

Ainsi, on va pouvoir observer ce qui se passe en allumant et éteignant successivement un ou plusieurs modules.

Une fois chargé les programmes dans chacune des Arduino (en pensant à passer en mode USB pour le transfert et à changer l’ID dans le code avant compilation), on peut ouvrir un terminal série (ici, Docklight pour visualiser les valeurs décimales, hexadécimales ou ASCII) et observer ce qui se passe.

Tout d’abord, le GRAND avantage des XBee, c’est que les programmes ne plantent pas quand la connexion série est rompue, par exemple quand on éteint un des modules : la liaison série sur le microcontrôleur n’est pas ouverte avec un module précis mais avec le module XBee directement connecté, qui lui reste alimenté puisque branché sur la même alimentation. C’est vraiment pratique car le plus embêtant dans une liaison série classique, c’est de débrancher la carte et de faire planter tout le programme par une bête exception (ok, ça peut se gérer mais bon...)

Voici le résultat en images de ce second test. On a paramétré Docklight pour qu’il envoie le caractère ’ ?’ sur la liaison série du module USB toutes les 5 secondes.

Tout d’abord, on va allumer l’Arduino 01 : au bout de 2 secondes, on commence à recevoir ses "bips" (c’est notre Spoutnik moderne) puisqu’on observe 5 "01" (1 par seconde) dans la console en mode hexadécimal.

On éteint l’Arduino 01 et on allume l’Arduino 02 :

Pareil, 5 ’02’ sans avoir rebooté le module connecté à l’USB ! après un temps de démarrage de quelques secondes (promis, la prochaine fois je sors l’analyseur logique).

Premier test "critique" : on rallume l’Arduino 01, les deux sont donc allumées en même temps, soit 3 modules XBee en fonction. C’est éloquent : on reçoit à la fois les 01 et les 02 sur notre module branché au PC.

Second test "critique" : qui de la réception ? On va émettre depuis le PC l’identifiant ’03’ (Docklight nous permet de le faire juste en cliquant sur un bouton paramétré) :

Et bien ça marche : on s’aperçoit que les deux cartes Arduino ont incrémenté leur compteur n°3, preuve que le caractère a été reçu par les 2 modules.

 Conclusion

On a donc SANS AUCUNE CONFIGURATION fait communiquer ensemble 3 cartes distantes de plusieurs mètres, de manière bidirectionnelle et multi-réception : ce qu’un module envoit, tout le monde peut le recevoir.

Il est donc désormais facile d’imaginer de contrôler des robots mobiles en envoyant à la fois des consignes communes de synchronisation puisque chacun des XBee va recevoir le message, ou bien en envoyant l’identifiant du module ciblé, d’en contrôler un en particulier, tout en laissant les autres robots libres de connaître les consignes envoyées.

C’est un grand progrès qui est accessible à tout le monde. On verra prochainement comment protéger tout ça en limitant la réception à des modules appariés, ou à un groupe de modules qui partage le même identifiant de groupe.

 
Répondre à cet article
Vous avez aimé cet article ? Merci de nous recommander !
Commentaires :
  1. Anne-So
    lundi 28 novembre 2011 à 01:50
    Répondre Fil de discussion

    Bonsoir,

    J’aimerais savoir s’il est possible de configurer des modules XBee pour que leur adressage se fasse de façon dynamique ? Les modules seront placés sur des palettes et les adresses devront se déterminer en fonction des mouvements des palettes.

  2. Julien H.
    mercredi 30 novembre 2011 à 22:28
    Répondre Fil de discussion

    Bonjour,

    Oui il est possible de changer leur adresse à tout moment en envoyant par la liaison série les commandes nécessaires.

  3. Rizmo
    dimanche 10 juillet 2011 à 15:57
    Répondre Fil de discussion

    En fait je me demande si c’est pas plutot

    Serial.print(xbee_id) ;

    plutot que Serial.write(xbee_id) ;

    dans ton code ?

  4. Julien
    dimanche 10 juillet 2011 à 20:54
    Répondre Fil de discussion
    Non non c’ est bien write. Ainsi la valeur binaire est envoyée, pas la valeur ASCII.
  5. romain
    vendredi 6 mai 2011 à 11:35
    Répondre Fil de discussion
    Bonjour, J’ai commencé a faire une carte permettant à un pic (16F876) de communiquer avec un Xbee.Un peu comme celle proposée par Yannick. L’électronique n’etant pas ma formation, je cherche à savoir si mon pic peut communiquer avec le XBee par liaison RS232 ou s’il faut une liaison UART non RS232. J’avoue ne pas avoir bien saisi la différence profonde entre les 2 et la communication RS232 est bien documentée, donc celle-ci me parait plus simple a mettre en oeuvre.
    Liaison PIC-WBee
  6. Julien
    samedi 7 mai 2011 à 19:30
    Répondre Fil de discussion

    Bonjour,

    En fait, UART fonctionne en 0 / 5 volts (ou 3,3 dans le cas du XBee) et RS232 fonctionne en -12 / +12, mais parfois les documents confondent les deux : le protocole est le même.

    Donc oui on peut connecter un PIC aux entrées/sorties DI et DO du XBee si les deux sont en tension nominale 3,3 volts.

  7. Hugo F.
    jeudi 10 février 2011 à 21:54
    Répondre Fil de discussion

    Bonjour, je cherche à remplacer mon câble USB par une liaison san-fil. Je veux savoir si un réseau sans-fil XBee est approprié ?

    Je m’explique : je communique actuellement avec mon montage à l’aide d’un câble USB pour changer certaines variable qui contrôle le mode de clignotement de LED à l’aide d’un petit programme sur mon ordinateur. Le fichier envoyé est de 1200 octets en moyenne et est un fichier .xml.

    J’ai lu plus haut que cela ne marcherait pas pour une webcam mais est-ce possible dans mon cas vu la petite taille du fichier à envoyer ?

    Merci beaucoup pour la doc, très intéressant.

  8. Julien
    dimanche 13 février 2011 à 10:42
    Répondre Fil de discussion

    Bonjour,

    Un réseau XBee peut remplacer une liaison série sans-fil, mais pas n’importe quel câble USB.

    Pour le débit : il faudra plusieurs secondes pour transférer les 1200 octets.

    Pour le format : le XML est un flux de caractères donc pas de problème.

    Pour la communication : il faut que ton programme sur ordinateur puisse gérer une liaison série.

    Je pense que ça peut fonctionner.

  9. dimanche 10 juillet 2011 à 15:39
    Répondre Fil de discussion

    Salut Julien Je débute dans l’Arduino et la programmation. Ton site est vraiment symapa. Mais pour l’exemple ici j’ai du mal à saisir le programme complet avec les incrémentations. Serait il possible de le mettre ?

    Merci d’avance

  10. macfly
    dimanche 2 janvier 2011 à 13:51
    Répondre Fil de discussion

    Bonjour Je voudrais faire la partie n°2 mais je n’arrive pas à taper le programme j’ai toujours des erreurs.

    Quelqu’un aurait une version qui fonctionne ?

    int xbee_id = 0x01 ; // ou 0x02

    int count1 = 0 ; int count2 = 0 ; int count3 = 0 ; // toutes les secondes, envoie mon code Serial.write(xbee_id) ; delay(1000) ;

    case 0x01 : count1++ ; break ; case 0x02 : count2++ ; break ; case 0x03 : count3++ ; break ;

    int reception = Serial.read() ; switch(reception) case ’ ?’ : Serial.print("(") ; Serial.print(count1) ; Serial.print(",") ; Serial.print(count2) ; Serial.print(",") ; Serial.print(count3) ; Serial.println(")") ; break ; ...


    La partie n°2
  11. Julien
    dimanche 2 janvier 2011 à 18:01
    Répondre Fil de discussion

    Bonjour,

    Avant de dire que ça ne fonctionne pas, si tu nous disais quelles erreurs tu rencontres ?

  12. quentinduv
    lundi 10 janvier 2011 à 14:17
    Répondre Fil de discussion

    je suis élevé de bts électrotechnique et nous avons pour projet de réaliser le pilotage de l’éclairage public par l’intermédiaire de liaison sans fils.Nous sommes convaincu que le module Xbee sera à la hauteur.

    Mais pouvez vous me dire si le module Xbee possède une tempo interne programmable ou faut il en ajouter une ?

    merci d’avance pour l’intérêt que vous porter à notre projet pour finaliser nos études

  13. Julien
    lundi 10 janvier 2011 à 16:05
    Répondre Fil de discussion
    Il faut en rajouter une, éventuellement avec une horloge RTC pour faire une temporisation sur toute la journée, avec alarme pour réveiller automatiquement le système.
  14. duvigneau
    lundi 10 janvier 2011 à 16:21
    Répondre Fil de discussion
    merci pour votre rapidité
  15. Lanimal
    mercredi 8 septembre 2010 à 18:04
    Répondre Fil de discussion

    bonjour tout le monde et felicitation pour vos realisations :) je voudrais poser quelques questions :) apres un entretien telephonnique ave un gars de chez matlog(importateur de module pour la france)qui etait destiné a me rassurer pour mon achat....a produit l effet inverse... pour eux...pas de serie 1 ou 2... juste une version point a point et une version reseau maillé ..... Oo ensuite je voulais savoir si parmis vous certains avaient des infos sur le starter kit "Le XBee Professional Development Kit contient : (ref : XB24-PDK)" et si les xbee pro communiquais avec les xbee "normales".... de plus je voudrais coupler sa avec du 68hc908 qui gere le protocole usb pour mes futurs montages...n y a til pas de contre indication ? et pour finir si en plus d un module xbee... je rajoute un module RF a 2.4gHz pour faire passer de la video...ya til risque de parasitage ??

    voila j espere avoir ete clair :) je retourne lire votre site :) et merci de me consacrer un peu de temps :p

    petit ps qui na rien a voir :) quelqun aurait un site pour ce construire son oscillo ?

  16. Julien
    jeudi 9 septembre 2010 à 11:37
    Répondre Fil de discussion

    Bonjour et merci.

    Effectivement, Matlog choisit de les différencier par leur fonctionnalité plutôt que par leur nom, ce qui se comprend. Mais ça rend les comparaisons plus difficiles avec d’autres vendeurs qui font le choix inverse et qui utilisent les séries. Sachant qu’effectivement "Serie 1" est un abus de langage, MaxStream n’ayant pas prévu de seconde série au moment où ils ont sorti la 1 :)

    Oui il y a risque de parasitage, au moins ça va diminuer la portée, au pire ça va créer des pertes de connexion —> à tester.

    Pour construire son oscillo en kit (dans une gamme de valeurs correspondant à nos activités) : http://www.nkcelectronics.com/digital-storage-oscilloscope-diy-kit.html

  17. christophe
    dimanche 19 septembre 2010 à 11:17
    Répondre Fil de discussion
    Salut J’ai acheté ce kit chez Matlog, par contre il est un peu cher compter 160€,juste une petite remarque, les cartes de teste qui suporte les modules xbee sont toutes les mêmes et lorsque tu veux tester par exemple une entrée sortie T.O.R tu te retrouves avec d’un côté comme de l’autre avec un BP !!!!. Et oui car sur un xbee lorsque tu programmes une DI/DO sur une pin exemple DI6, l’information ressortira sur l’xbee distant sur DO6. Pour ta question sur xbee pro et standard pas de différence ils sont interchangeable. A+
  18. ReliKenS
    mardi 11 mai 2010 à 11:12
    Répondre Fil de discussion

    Bonjour,

    Je voudrais savoir si il est possible d’envoyer un signal de fréquence 50Hz d’un module à l’autre sans fil ?

    J’ai configuré les modules pour que l’un puisse recopier les pattes de l’autre en faisant de l’I/O passing.

    Mais apparemment ils ne peut pas recopier un signal carré de cette fréquence.

    Merci d’avance

    ReliKenS


    transfert de signal
  19. jeudi 13 mai 2010 à 10:00
    Répondre Fil de discussion

    Je n’ai jamais fait l’essai, mais 50Hz me semble un peu rapide pour le mode de communication impliqué (ça fait une transmission toutes les 20ms). Le XBee et les modules radio similaires ne sont pas vraiments faits pour cela.

    Si on veut transmettre un signal à ces fréquences-là, il vaut mieux s’orienter vers une transmission analogique par modulation (AM ou FM).

  20. ReliKenS
    lundi 17 mai 2010 à 15:13
    Répondre Fil de discussion

    C’est bon j’arrive à transmettre un signal de plus de 120Hz avec quelques tout petis problemes

    j’ai mis le baud rate à 115200 pour les 2 chez l’emetteur g mis IT et IR à 1 pour diminuer le temps d’échantillonnage

    et chez le récepteur IT à 0xFF et IR à 0xFFFF pour recopier le signal avec précision

    enfin.. je crois

    ReliKenS



    Page de référence : transmission d’un signal "haute" fréquence avec xbee
  21. Louix
    mercredi 20 janvier 2010 à 19:10
    Répondre Fil de discussion

    Bonjour,

    Je voudrais faire du transfert de données type USB par liaison XBee, est-ce possible ?

    Je m’explique : j’ai un capteur lambda (ici, une webcam) qui sors des infos par câble USB. Je voudrais brancher un module XBee directement en sortie de capteur, par l’intermédiaire d’un chip USB/série, et faire communiquer ce XBee avec un autre, qui lui serais brancher directement au port USB de mon ordi.

    L’idée étant de pouvoir embarqué ma wbecam sur robot. Est-ce que cette communication entre XBee peut se résumer à un "cable" USB wireless, ou un micro-controleur est-il nécessaire pour gérer la communication ? Est-ce que mon ordinateur sera capable de reconnaitre la webcam ? La question du débit n’est pas importante (je sais que l’XBee n’est pas adapté pour la vidéo, je me contenterai de ce qu’il pourra faire).

    Merci d’avance

    Bonne soirée

    Louix

  22. Julien
    jeudi 21 janvier 2010 à 00:02
    Répondre Fil de discussion

    Bonjour,

    Oui on peut relier 2 ordinateurs avec des XBee (ou un ordinateur et un robot) mais seulement avec une liaison de type série à une vitesse maximum de 115200 bauds (bits par seconde).

    Il est donc exclu d’atteindre les vitesses de transfert de l’USB nécessaires pour du transfert de webcam.

    Il faut trouver une autre solution (RF 2,4GHz pour modélisme par exemple).

  23. fky
    mercredi 19 janvier 2011 à 16:16
    Répondre Fil de discussion
    Bonjour Peut on utiliser un kit XBee sans utiliser un ordinateur central connecter au XBee-pro, aprés l’avoir programmer ? Et donc remplacer la commande effectuée par l’ordinateur central par un simple capteur Pyroélectrique (IR). Merci
  24. Julien
    mercredi 19 janvier 2011 à 19:09
    Répondre Fil de discussion

    Bonjour,

    Oui il est tout à fait possible d’utiliser un module XBee en connectant des capteurs sur ses entrées/sorties (ce qui nécessite d’utiliser un protocole spécial pour transmettre la valeur à un second XBee.

    Mais une seconde solution consiste à utiliser un micro-contrôleur : externe, comme l’Arduino, ou intégré à certaines versions de XBee. On est alors libre de lire tout type de capteur, et de commander différents actionneurs (moteurs, lumières, relais).

  25. Arthur
    mercredi 11 mai 2011 à 16:10
    Répondre Fil de discussion
    Bonjour, je suis en terminale SSi et rencontre le meme probleme : Je souhaite connecter deux Cubloc par des modules Xbee. Néanmoins, je ne sais comment m’y prendre. Comment faire ?
  26. Julien
    mercredi 11 mai 2011 à 22:59
    Répondre Fil de discussion

    Bonjour,

    S’il s’agit de XBee Serie 1 jamais utilisés, il suffit de les connecter par 4 fils à chaque Cubloc (0 volts, 3.3 volts, DO et DI pour TX et RX).

    S’il s’agit de XBee Serie 2, il faut d’abord les configurer : il existe un logiciel (X-CTU) et différentes interfaces avec un ordinateur par USB pour ce faire.

  27. Dex
    mercredi 23 mars 2011 à 18:07
    Répondre Fil de discussion

    Bonjour, J’aurais besoin d’aide pour contrôler plusieurs servomoteurs avec des potentiomètres via un réseau ZigBee. J’arrive parfaitement à en contrôler un (malgré des tremblements) mais impossible avec plusieurs...

    Voici mes codes pour le contrôle d’un seul servo :

    Envoyeur :

    int Tension ; int Potentiometre = 0 ;

    void setup() Serial.begin(9600) ;

    void loop()

    Tension = analogRead(Potentiometre) ; Tension = map(Tension, 0, 1023, 0, 180) ; Serial.print(254, BYTE) ; Serial.print(Tension, BYTE) ; delay(30) ;

    Pour le Receveur :

    #include

    Servo servo1 ;

    void setup() servo1.attach(9) ; Serial.begin(9600) ;

    void loop() if (Serial.available()) byte val = Serial.read() ; servo1.write(int (val)) ;

    Voilà je vous remercie d’avance !

    P.S. : Ce que je voudrais exactement c’est contrôler 5 servos donc envoyer plusieurs bits mais pour le "Receveur" je ne sais pas faire pour écrire les valeurs du potar1 sur le servo1, les valeurs du potar2 sur le servo2, etc... Comment "identifier" ces bits ?

  28. Julien
    mercredi 23 mars 2011 à 23:42
    Répondre Fil de discussion

    Ouh là... tu envoies deux octets mais tu n’en lis qu’un seul. Donc une fois sur deux tu vas demander au servo d’aller à 254, je comprends qu’il tremble.

    Il faut que tu envoies tous tes 5 octets à la suite des uns des autres, puis que tu fasses une détection du 254 et 5 lectures Serial.read() successives.

    Ce problème n’est pas lié aux XBee, regarde plutôt nos articles sur Arduino et les servomoteurs (avec le nunchuck par exemple).

  29. Dex
    vendredi 25 mars 2011 à 13:45
    Répondre Fil de discussion

    Bonjour, J’essaye d’envoyer plusieurs données d’une Arduino à une autre Arduino via Xbee. J’ai donc 5 valeurs de potentiomètres à envoyer, ensuite ces valeurs seront lues par l’autre Arduino pour les écrire sur 5 servomoteurs différents. Le problème c’est que lorsque j’envoie ces valeurs, l’Arduino qui les reçoit ne sait pas quelle valeur doit être inscrite sur tel ou tel servomoteur. Lorsque je fais un "Serial.read()", l’Arduino qui reçoit les valeurs lis toutes les valeurs et donc les inscrites toutes sur chaque servomoteur. Mes questions :
    - Comment lire les valeurs de chaque potentiomètre à part (avec par exemple un Serial.read()) ?
    - Dois-je utiliser un tableau (ou chaîne de valeurs) pour stocker les données des potentiomètres ? Puis, de quelle manière récupérer les données sous forme de tableau ? (Merci de m’expliquer les bases du tableau ou de me donner un lien en français si possible).
    - Avez-vous une autre solution autre que celles-ci ?

    Je vous remercie d’avance de votre aide.

    P.S. : essayé de me répondre svp car j’en ai besoin pour l’école... ou de simplement m’éclairer.

    Merci d’avance !

  30. Julien
    samedi 26 mars 2011 à 17:57
    Répondre Fil de discussion
    Comme j’ai répondu ci-dessus, ton problème n’a rien à voir avec les XBee, et je dirais même rien à voir avec les servomoteurs. C’est de l’algorithmique et de la logique : reprends le problème étape par étape et tu trouveras la solution. Tu as toutes les infos qu’il te faut, te donner le code ne t’aiderait pas à comprendre.
Articles du web sur Zigbee
vendredi 18 mars 2011
kenshin87
Vu sur forums.futura-sciences.com
Comment commencer avec Zigbee?
bon pour mes compétences je suis débutant je vais faire la communication sans fil pour la première fois c pour ça je suis intéressé par le kit l'explorateur (rouge) c pour connecter le module (...)
dimanche 13 mars 2011
admin
Vu sur www.electronics-lab.com
Zigbee-powered wireless scale
fivevolt.blogspot.com writes: My idea is to take this scale and add ZigBee wireless so that I can automatically capture my weight on my computer without having to remember it. OK lets backup. (...)
lundi 27 décembre 2010
cscm
Vu sur www.csquad.org
Présentation du standard Zigbee
Je reviens des mercredis de la RFID organisé par filrfid, le sujet de la présentation était le protocole ZigBee. Lors de la présentation faite par Véranith Ly de la société oRFIDée, j’ai (...)
vendredi 3 décembre 2010
Zozo_MP
Vu sur forums.futura-sciences.com
Zigbee pour les nuls
Salut Citation: Envoyé par Darktrouble (Message 3299131) Bonjour, je découvre très lentement le protocole ZigBee et je me suis fixé un objectif : faire communiquer un (...)