Trianguler une carte Xbee avec 2 autres

Bonsoir à tous !

Important : ce message principal n'est plus à jour, voir mon dernier message ! Merci :slight_smile:

Je suis en terminale S SI et dans le cadre du projet de PPE, nous faisons de la programmation Arduino.

Le projet est le suivant : notre groupe crée un chariot qui suit son utilisateur sans liaison mécanique, un peu à l'image de la valise "Hop!". Ainsi il serait déplacé grâce à deux moteurs dont la vitesse est calculée grâce à la carte électronique qui triangule l'utilisateur avec un émetteur qu'il porte sur lui.

Pour contrôler les moteurs, on utilise une carte Arduino Uno reliée à un contrôleur moteur "DC Motor driver 2x15A_lite" de chez DFMotor. Pour cette partie, aucun problème niveau programmation.

Cependant, nous sommes pressés par le temps (2h consacrées au PPE par semaine ce n'est vraiment pas suffisant) et nos connaissances en programmations sont tout de même limitées...

Après de nombreuses recherches, il s'est avéré que la façon la plus précise et rapide de connaître la distance entre un émetteur et un récepteur pouvait être fournie par la carte Xbee : la valeur qui nous intéresse est le RSSI : ça donne le rapport cyclique des données envoyées (je vous avoue que je n'ai pas très bien compris le pourquoi du comment mais c'est la suite qui est intéressante) qui peut ensuite être converti en dB (intensité du signal, donc autrement dit, en imaginant que ce signal n'est pas détérioré, témoin de la distance émetteur - récepteur).

Seulement j'ai beau avoir regardé de nombreuses explications aussi bien écrites qu'en vidéo, aucune ne correspond précisément à nos "attentes". C'est à dire qu'actuellement j'ai pu rapporter chez moi le matériel suivant afin d'avancer un peu hors des heures de cours :

  • 3 cartes Xbee (on pensait à : 2 sur le chariot en récepteur et un sur l'utilisateur en émetteur, pour trianguler)
  • une carte Arduino Uno
  • un shield "ArduinoXbee" de chez libelium mais je pense qu'il n'est pas nécessaire de l'avoir.
  • une carte UartsBee qui permet de configurer les cartes Xbee avec X-CTU sur l'ordinateur.
  • (de nombreux câbles et piles, etc.)

C'est donc là que j'ai besoin de votre aide, la question est la suivante :
Comment récupérer la valeur RSSI de deux Xbee avec cette exacte configuration ? Et comment le programmer ?

J'insiste vraiment sur tous les mots simplement parce que les tutoriels que j'ai pu voir nous montraient comment se servir des xbee mais avec d'autres configuration (par exemple communication entre deux Arduino, mais là ce serait plutôt entre une Arduino et une carte Xbee en standalone, si cela est possible).

Voilà un dessin très simpliste qui résume globalement bien la situation, si déjà je pouvais avoir les directives pour réaliser ça ce serait génial :

Merci et bonne soirée, Thooto

Je ne crois pas qu'on puisse utiliser deux xbee sur le mème arduino (sauf si c'est un mega il me semble)

Une triangulation avec 2 récepteurs très proche risque d'être assez foireuse.
Si la base du triangle est trop étroite le calcul n'est pas précis.

Salut ! et merci pour vos réponses.

S'il n'est pas possible d'utiliser deux xbee sur la même carte Arduino, il est possible de récupérer une carte Mega (j'en ai au lycée mais pas à la maison).

Elles seront espacées d'environ 60cm, d'un bout à l'autre du chariot, et j'avais vu une vidéo qui montrait une véritable précision avec ces cartes Xbee (le gars modifiait la distance entre récepteur et émetteur, pour faire allumer/eteindre une lampe : au centimètre près ça changeait).

Voilà, bonne journée, Thooto

Salut à tous ! :slight_smile:

Tout d'abord je tiens à préciser quelques mises à jour : j'ai pu récupérer une carte Arduino Mega en plus de l'Arduino Uno que j'avais déjà.

Je vais tenter donc de refaire ma question, un peu moins spécifiquement au projet . Ce serait vraiment cool si vous pouviez me dire si tout ce que je demande est réalisable, autant dans la réalisation des "blocs" que dans la programmation etc. :

On a un bloc émetteur (mobile et à alimentation indépendante, par exemple une pile 9V) que j'aimerais composé de :
-une carte Arduino Uno
-un adaptateur Arduino/Xbee (de chez Libelium.com)
-une carte Xbee

Et un bloc récepteur (qui se chargera de contrôler le chariot, car situé dessus) :
-une carte Arduino Mega
-deux cartes Xbee

Je précise que j'ai à disposition des breadboards et que par rapport aux branchements (je pense surtout à l'incompatibilité entre les pins des Xbee et ceux standards) il n'y a pas de problèmes.

Pour configurer les cartes Xbee, j'ai un adaptateur usb/Xbee de type UartsBee (http://www.seeedstudio.com/depot/UartSBee-V4-p-688.html), que j'essaye en vain de configurer avec X-CTU (j'ai installé les deux versions : moderne et ancienne) car aucun tutoriel n'est dédié à cet adaptateur : en effet les paramètres dans X-CTU varient en fonction de l'adaptateur utilisé...

Question générale : maintenant que j'ai deux cartes Arduino, comment puis-je faire pour récupérer la valeur du RSSI des cartes qui seront branchées à l'Arduino Mega ?

Première question : comment configurer les Xbee qui serviront de "récepteurs" et celle qui servira "d'émetteur" ? À l'aide de X-CTU j'entends ; ou alors ne nécessite-t-on aucune configuration avec cet adaptateur (du genre le truc magique, qui marche dès qu'il est branché, non j'y crois pas) ?

En sous entendant que forcément, pour qu'il y ait un retour RSSI, il faut qu'elles captent un signal, qui donc sera émis à partir de la Xbee sur l'Uno, et donc, deuxième question : comment programmer la carte Arduino Uno afin qu'elle envoie un signal continu qui permettra de rendre les valeurs du RSSI des deux autres Xbee exploitables ? Ou alors mieux encore : la carte Xbee peut-elle fonctionner et émettre un signal exploitable en "standalone" ?

Au final, troisième question : comment programmer la carte Arduino Mega afin qu'elle exploite les données ? J'aimerais beaucoup pouvoir les récupérer sur les terminaux (après je modifierai le code puisqu'au final ces données resteront internes au programme et ne permettront que de contrôler la vitesse des moteurs).

Bien entendu si je pose toutes ces questions, c'est bien parce que j'ai cherché des heures une solution, sans jamais en trouver...

Donc voilà, si vous pouviez répondre à ces trois questions numérotées, ce serait vraiment génial... :slight_smile:

Bonne soirée, Thooto