Forum: Mikrocontroller und Digitale Elektronik XBee S2B - Explorer Problem


von Matthias T. (brayn)


Lesenswert?

Guten Abend ihr Lieben,

mein weit entferntes Zeil ist es, meinen kleinen "Roboter" über eine in 
Java geschriebene GUI zu steuern. Da dieses Zeil zur Zeit noch in den 
Sternen steht, wollte ich mit einem Minimalbeispiel beginnen.

Mal kurz zur Ausstattung:
Ich habe einen Arduino MEGA 2560,
ein XBee Shield 
(http://www.watterott.com/de/Arduino-Xbee-Shield-without-Xbee-Module),
zwei XBee Module XBee S2B 
(http://www.watterott.com/de/XBee-Pro-60mW-Series-25-Draht-Antenne)
und ein XBee Explorer USB 
(http://www.watterott.com/de/XBee-Explorer-USB)

Die Idee für das Minimalbeispiel ist ganz einfach. Ich will über den 
"Serial Monitor" der Arduino IDE mit den Eingaben 0 und 1 eine LED an 
und ausschalten.


Ich würde hier nicht schreiben wenn ich nicht schon in vielen Foren 
gelesen oder mir Tutorials angesehen und getestet habe. Daher erstmal zu 
dem was schon funktioniert bzw. was ich schon gemacht habe:
Zu begin habe ich mir X-CTU heruntergeladen und installiert. Damit habe 
ich die beiden XBee-Module konfiguriert. Dem Sender habe ich die 
Funktion "ZIGBEE COORDINATOR AT" und die Seriennummern ("Serial Number 
HIGH" und "Serial Number LOW") des Empfängers und dem Empfänger die 
Funktion "ZIGBEE ROUTER AT" und die Seriennummern des Senders in den 
Einträgen "Destination Adress HIGH" und "Destination Adress LOW" 
zugewiesen. Desweiteren ist die "Baud-Rate" (9600) und die "PAN ID" 
(2000) bei beiden Modulen gleich.

Anschließend habe ich einen Range-Test durchgeführt und über das 
Terminal ein wenig gechattet. Das Ganze funktioniert auch, solange ich 
eine Brücke zwischen "Reset" und "GND" auf dem MEGA ist. Sobald ich die 
Brücke entferne kann ich nicht mehr chatten.

Hier mal ein Video wie ich mir das ganze vorstelle:
https://www.dropbox.com/s/9rb17xl07llzgbm/LED%20on%20and%20out%20with%20Arduino%20Serial%20Monitor.mp4

In diesem Video erkennt man schon das Ziel des angestrebten 
Minimalbeispiels, allerdings wurde hier nur über Kabel und nicht über 
die XBees interagiert. Ich habe schon versucht den COM-PORT in der 
Arduino-IDE zu wechseln (auf den Sender) und dann über den "Serial 
Monitor" eine 1 und eine 0 einzugeben, doch es tut sich nichts.

Habt ihr noch eine Idee was ich versuchen könnt oder findet ihr 
vielleicht schon einen Fehler? Ich kann euch auch gerne noch ein paar 
Screenshot oder Videos von verschiedenen Einstellungen zukommen lassen.


Ich freue mich auf eure Antworten,
liebe Grüße Matthias

von Markus U. (markjus) Benutzerseite


Lesenswert?

Moin,

zunächst einmal würde ich LEDs nie ohne Vorwiderstand irgendwo 
anschließen. Das kann u.U. schief gehen.
Wie sind denn die XBees angeschlossen? Die eine am USB Explorer und die 
andere am Mega? Wie sieht die Beschaltung der XBee am Mega aus? 
Level-Shifter? 3V3 benutzt? DIO/ DIN richtig verkabelt?
Wie sieht der Sketch für den Empfang aus, oder ist es der gleiche wie im 
USB-Kabelbeispiel?
Code & Schaltpläne wären toll.

von Matthias T. (brayn)


Lesenswert?

Hallo Markus,

vielen Dank für deine Antwort.

> zunächst einmal würde ich LEDs nie ohne Vorwiderstand irgendwo
> anschließen. Das kann u.U. schief gehen.
Ja, das ist eine schlechte angewohnheit von mir :(

> Wie sind denn die XBees angeschlossen? Die eine am USB Explorer und die
> andere am Mega?
Ja genau, und zwischen XBee und Mega ist natürlich noch das Shield.


Wie sieht die Beschaltung der XBee am Mega aus?
> Level-Shifter? 3V3 benutzt? DIO/ DIN richtig verkabelt?
Ohhjee, jetzt habe ich aber ein schlechtes Gewissen. Ich sitze seit 
Samstag den ganzen Tag dran und weiß nichtmal was du damit meinst.
Ich weiß allerdings dass die XBees mit 3,3V laufen. Ich dachte die 
Stromversorgung macht das Shield in Kombination mit dem MEGA und bei dem 
anderen der Explorer mit der USB Stromversorgung. DIN und DIO Habe ich, 
genauso wie alle anderen Pins gar nicht benutzt sondern einfach die 
Teile zusammengesteckt. Der Chat über den X-CTU funktioniert ja auch und 
der Range-Test ja auch.


> Wie sieht der Sketch für den Empfang aus, oder ist es der gleiche wie im
> USB-Kabelbeispiel?
Da habe ich schon vieles ausprobiert, hier der aktuellste (der gleiche 
wie im Video):
int led = 12;

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop(){
  if(Serial.available() > 0){
    byte daten = Serial.read();
    if(daten == '1'){
      digitalWrite(led, HIGH);
      delay(250);
    }

    if(daten == '0'){
      digitalWrite(led, LOW);
      delay(250);
    }
  }
}

> Code & Schaltpläne wären toll.
Mal davon abgesehen, dass man auf den Explorer kein Code laden kann, 
dachte ich mir, ich mache die ausgabe (also die zu sendenden Zeichen, 
über den PC (Serial Monitor)), also gibts dafür kein Code.


Hier der Link zu meinem Dropbox-Ordner. Dort ist der gesamte Code, 
Bilder Videos und Schaltpläne etc. drin.
https://www.dropbox.com/sh/1xydfgup2j4l6sy/FFvPUZ4m75



Liebe Grüße Matthias

von Matthias T. (brayn)


Lesenswert?

Hallo Markus,

hast du dir die Sachen mal angesehen? Ich habe nochmal bischen 
weitergemacht, doch außer dem Chat und dem Range-Test funktioniert die 
Komunikation immer noch nicht und der Chat funktioniert auch nur dann 
wenn ich eine Brücke zwischen GND und RESET am MEGA habe.

Würd mich freuen wenn du mir noch ein paar Tipps geben könntest. :)


Liebe Grüße Matthias

von Matthias T. (brayn)


Lesenswert?

Hallo Markus,

es funktioniert :)
dein Tipp mit den DIO und DIN hat mich dazu gebracht nochmal alle 
Einstellungen durch zu gehen. Da ist mir aufgefallen, dass bei X-CTU 
unter dem Eintrag "I/O Settings" der Unterpunkt "D0" bei mir 
standardmäßig auf "1 - COMMISSIONING BUTTON" stand, doch das ist beim 
Arduino der Input Pin (RX0). Daher musste man den auf "3 - DIGITAL 
INPUT" umstellen.

Super gut jetz funktioniert es genauso wie ich es mir vorgestellt habe 
:)
Als nächstes folgt die GUI ;) aber dazu komme ich zeitlich 
wahrscheinlich erst frühstens im Herbst.

Vielen Dank für deine Hilfe,
liebe Grüße Matthias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.