Besoin d'aide communication arduino/arduino, arduino/ordinateur

Bonjour, je suis élève de terminal SI et j'ai comme projet pour le bac un robot piloté à distance. J'ai quelques connaissances en algorithmie mais c'est la première fois que je programme sur arduino.

Je souhaite pouvoir déplacer le robot dans toutes les directions et avec deux vitesses. Ce programme est déjà fait et fonctionne, du moins quand la carte est directement reliée à l'ordinateur par câble usb. Remarque: j'utilise processing pour que l'appuie d'une touche fasse directement réagir le robot.

Pour la communication à distance, j'ai deux cartes arduino UNO, deux modules xBee série 1 et deux shields xBee. Le principe est donc qu'une carte soit installée sur le robot avec un xBee, l'autre reliée à l'ordinateur avec un autre xBee. Je ne souhaite transmettre que des variables simples et je sais que des simples commandes types Serial.println() sont suffisantes pour ça. Cependant je n'arrive pas à savoir si une carte peut à la fois communiquer avec l'ordinateur et avec une autre carte. (notamment parce que les commandes sont les mêmes... ( Serial.println() )).

Peut-être ce problème a-t-il déjà été éludé sur ce forum mais j'ai toujours été mauvais chercheur sur le net (et je jure que ce n'est pas par flegme!), et je reconnais aussi m'y prendre un peu tard... Si vous pouviez m'aider.

Merci d'avance.

Bonjour,

l’autre reliée à l’ordinateur avec un autre xBee

pas clair, est-ce ceci que tu veux ?
robot - arduino - xbee <-> xbee - arduino - ordi

robot - arduino - xbee <-> xbee - arduino - ordi

C’est exactement ça.
Le programme de la carte sur le robot associe la variable aux différents ordres moteur, et le carte arduino reliée à l’ordinateur sert juste d’intermédiaire pour transmettre le signal xBee. (Je sais qu’il existe des modules directement reliés à l’ordinateur, mais je fais avec ce qu’on m’a donné.)

Bonjour,

Je débute également dans l’utilisation des modules xbee et shield, mais j’ai déjà pas mal lu de doc.

En effet, tu vas être embêté je pense. Certains arduino peuvent réaliser ton montage car ils ont plusieurs sortie série (Comme l’arduino MEGA).

Le UNO n’en a qu’un, les pins TX et RX sont mutualisé avec le port USB.
Mais je sais que cela doit dépendre aussi du shield.

Car chez Sparkfun, le shield doit permettre cette double communication, voir cette page

Si tu regarde le code d’exemple, tu vois qu’il y a bien d’un côté la communication Xbee et l’autre serial

/*****************************************************************
XBee_Serial_Passthrough.ino

Set up a software serial port to pass data between an XBee Shield
and the serial monitor.

Hardware Hookup:
  The XBee Shield makes all of the connections you'll need
  between Arduino and XBee. If you have the shield make
  sure the SWITCH IS IN THE "DLINE" POSITION. That will connect
  the XBee's DOUT and DIN pins to Arduino pins 2 and 3.
*****************************************************************/
// We'll use SoftwareSerial to communicate with the XBee:
#include <SoftwareSerial.h>
// XBee's DOUT (TX) is connected to pin 2 (Arduino's Software RX)
// XBee's DIN (RX) is connected to pin 3 (Arduino's Software TX)
SoftwareSerial XBee(2, 3); // RX, TX

void setup()
{
  // Set up both ports at 9600 baud. This value is most important
  // for the XBee. Make sure the baud rate matches the config
  // setting of your XBee.
  XBee.begin(9600);
  Serial.begin(9600);
}

void loop()
{
  if (Serial.available())
  { // If data comes in from serial monitor, send it out to XBee
    XBee.write(Serial.read());
  }
  if (XBee.available())
  { // If data comes in from XBee, send it out to serial monitor
    Serial.write(XBee.read());
  }
}

Tu as quels shield ?

J'ai les XBee shield V1.4. Je remarque que j'ai divers option dessus, le choix XBEE/USB et le choix RUN/PROG.

J'ai essayé de taper la commande XBee.begin() mais le programme ne la reconnait pas. Je dois importer quelque chose?

Bouloulbl: J'ai les XBee shield V1.4. Je remarque que j'ai divers option dessus, le choix XBEE/USB et le choix RUN/PROG.

J'ai essayé de taper la commande XBee.begin() mais le programme ne la reconnait pas. Je dois importer quelque chose?

Attention le code que j'ai cité me fonctionne qu'avec le shield sparkfun que j'ai cité. Inutile de l'utiliser sans ce shield.

Oui tu as des switch sur le shield justement pour passer du mode USB, ou tu échange via ton cable USB et l'arduino, notamment pour le programmer. Ensuite, quand tu veux passer en mode RUN (fonctionnement de ton programme), tu passe sur xbee.

Il faut que tu ailles regarder le datasheet et tutos de ton shield pour en savoir plus.