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
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.