Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-09-06 19:11:45 Flux de données avec 2 XBee

zsilu
membre
Date d'inscription: 2010-04-01
Messages: 50

Flux de données avec 2 XBee



Bonjour

On rencontre un souci sur de la communication sans fil en XBee :
Pour une install, on va utiliser 2 modules identiques, chacun relié à l'ordi en sans fil par une carte XBee sur une arduino.

Sur chacun module, il y a une boussole electronique. Chaque module transmet la valeur de la boussole à 2 récepteurs XBee branchés sur l'ordi en USB.

Quand ils sont branchés chacun leur tour, ca marche très bien, on récupère les données fluidement. Par contre, quand les 2 modules sont allumés en même temps, ça fonctionne un moment (une trentaine de secondes), puis les données se mettent à arriver par paquets d'une dizaine de valeurs très rapidement, puis plus rien pendant quelques secondes, etc...

On n'a pas trop compris pourquoi ça déconne comme ça, peut-il y avoir un conflit entre les 2 XBee ? Ou bien une sorte de goulet d'étranglement à un certain niveau ?

Si quelqu'un a des idées...

Merci!

Hors ligne

 

#2 2014-09-08 09:40:53 Re : Flux de données avec 2 XBee

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Flux de données avec 2 XBee



Bonjour,

Dans ta configuration des Xbee, tu donnes bien des adresses différentes à chacun de tes modules ?
Comme pour les récepteurs je suppose.
Sinon, voici un lien pour commencer avec les Xbee :
http://wiki.labomedia.org/index.php/Xbee

Hors ligne

 

#3 2014-09-08 16:43:40 Re : Flux de données avec 2 XBee

zsilu
membre
Date d'inscription: 2010-04-01
Messages: 50

Re: Flux de données avec 2 XBee



Salut !
Oui les XBee sont bien configurées et appairées 2 à 2...
Mais c'est moins pire qu'avant : on avait un souci au niveau d'une boussole (un faux contact pour être précis !!), donc la boussole envoyait des valeurs erratiques quand on la bougeait pour tester. hmm
Mais bizarrement, ça marche quand même mieux quand une seule est connectée que quand les 2 transmettent en même temps.
De même, on a remarqué que ça marchait mieux avec un Serial.print() qu'avec un Serial.write() dans le prog Arduino...
C'est quand même pas parfait... On continue les tests, je vous dirai si on a réussi à résoudre le problème!
Merci !!

Hors ligne

 

#4 2014-09-08 19:27:56 Re : Flux de données avec 2 XBee

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Flux de données avec 2 XBee



S'ils sont appairés deux à deux, tu peux les configurer avec deux adresses de réseaux différentes avec la commande : ATID

De plus, tu peux te délester de la programmation arduino, il suffit d'enlever l'atmega 328 et t'en servir comme convertisseur série /USB (ou alors de connecter le pin RESET avec le GND)
Attention, les pin rx et tx sont alors inversés.

Ainsi, tu peux programmer directement en processing pour recevoir les valeurs.

Peux-tu donner les références de tes boussoles ? Elles renvoient des valeurs analogiques ?

Dernière modification par Mushussu (2014-09-08 19:52:33)

Hors ligne

 

#5 2014-09-09 04:31:52 Re : Flux de données avec 2 XBee

boby6killers
nouveau membre
Date d'inscription: 2013-04-24
Messages: 1

Re: Flux de données avec 2 XBee



Bonjour,

J'interviens dans la discussion...

En fait j'étais présent lors de ces tests avec Zsilu, c'est moi même qui ai configuré les Xbee.

On a pris des Xbee pro série 5avec un paramétrage via X-CTU.
Je n'ai pas utilisé les commandes AT, mais priviligié l'onglet à droite dans X-CTU pour les paramétrer (read de la carte pour reconnaitre toute les infos, puis write après modifs).
Ça à l'air de marcher pas mal. En tout cas quand il n'y a qu'un couple en fonctionnement !!!

J'ai bien adressé avec 2 réseaux différents pour chaque couple et une adresse de destination pour chacun en fonction de son binôme (sur les pro j'ai l'impression qu'ils ont tous un adressage particulier, le "low bit" !).

Sur l'arduino, on a 1 boussole CMPS10 sur 2 pin analogiques pour la rotation (on n'utilise pas l'inclinaison) et 1 micro qui capte un volume sonore sur une pin analogique, avec une boucle toute les 100ms.
Le tout est ensuite récupéré sur PUR DATA grâce à des [COMPORT].
+ 1 ordre retour via PURE DATA pour faire allumer ou éteindre des LED sur une pin numérique.

Donc ça marche nickel avec des "serial.write" ou des "serial.print" lorsqu'ils ne sont que 2 (1 seul couple), mais à 4 on a quand même des gros soucis.
Avec des "serial.print" ça semble pas trop mal lorsque qu'on a uniquement la rotation (plus de micro ni d'ordre aux LED), mais ça lague quand même plus qu'avec un seul binôme. Mais c'est acceptable.

Je ne me suis même pas plongé sur la mise en réseau parce que ça me semblait plus simple comme ça, mais est-il possible que toutes ces données se retrouve en conflit à un moment ???

J'ai essayé une arduino et USB et 1 couple de Xbee ça marche très bien avec les [COMPORT] mais il nous faudrait 2 communications sans fil distinctes... avec un bon rendu de préférence.

Voilà pour les infos... je ne sais pas si c'est très clair, je débute un peu dans ce genre de communication.

A plus tard.

Dernière modification par boby6killers (2014-09-09 04:36:47)

Hors ligne

 

#6 2014-09-09 08:46:31 Re : Flux de données avec 2 XBee

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Flux de données avec 2 XBee



Je commence à comprendre votre installation. Un schéma aurait permis une compréhension plus aisée.

Vous savez que vous pouvez modifier la vitesse de transmission des XBee jusqu'à 115200 (ATBD7) pour éliminer des problèmes de temporalité. Il faut bien évidement configurer la paire de XBee avec la même vitesse.
Je ne connais pas X-CTU, je n'ai pas Windows donc j'utilise les commandes AT.

Sinon, la boussole n'envoie pas de valeurs analogiques sur l'arduino. Elle utilise le protocole de communication I2C.

Personnellement, comme il s'agit de données et non de caractères, j'utiliserais la méthode write :
http://arduino.cc/en/Serial/Write
Je mettrais les trois valeurs transmises dans un tableau que j'enverrais avec write(tableau, 3);

int valeur = analogRead(3); 
tableau[0] = highByte; // Valeur de l'exemple de la boussole
tableau[1] = lowByte;
tableau[2] = valeur >> 2; // Permet d'avoir la valeur analogique entre 0 - 255
write(tableau, 3);

Cela règlera peut-être les problèmes.

Hors ligne

 

#7 2014-09-11 09:40:07 Re : Flux de données avec 2 XBee

zsilu
membre
Date d'inscription: 2010-04-01
Messages: 50

Re: Flux de données avec 2 XBee



Merci Mushussu, on n'a pas le matériel pour l'instant, on s'y remet la semaine prochaine, on te dira ici si on a réussi à améliorer les choses !

Hors ligne

 

#8 2014-09-19 21:27:20 Re : Flux de données avec 2 XBee

zsilu
membre
Date d'inscription: 2010-04-01
Messages: 50

Re: Flux de données avec 2 XBee



Yep, petit retour sur notre expérience avec les XBee.

Finalement, on a utilisé un seul récepteur configuré en Coordinator, et donc les 2 emetteurs en End Device... On a configuré toutes les cartes en 115200 bauds, mais il y avait toujours du retard dans les données (comme si un buffer devait se vider), une petite parade a été d'augmenter le temps de pause dans le programme Arduino entre l'envoi des données dans le loop(), avec un delay(200) au lieu de 100, mais ca saccade plus, c'est bizarre, mais on avait pas trop le temps de trouver mieux.

On a eu pas mal de problèmes avec les boussoles, qui sont extremement sensibles au metal a proximité (utiliser des boulons plastiques pour les fixer, et garder le metal a distance), donc pas mal de bugs a cause de ca aussi (on pensait que le souci venait du XBee, mais en fait ca venait de la boussole qui déconnait).

On essaiera d'améliorer le système au fur et à mesure...

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024