Roomba - XBee - IPS - Hilfethread

Hallo,

da jetzt wieder der Roombathread aktiver wird, dachte ich,
viellicht kann mir da jemand mit einigen Tipps behilflich sein.

Ich habe nach Pinki99 Anleitung mal das Xbee-Interface zusammengebastelt.
Die Xbees konfiguriert und in IPS die Einstellungen getätigt.

Aber nichts funktioniert. Ist ja nicht so seltsam, wenn man das zum
erstenmal macht.

Ich müsste erstmal rausfinden ob die Xbees überhaupt funktionieren,
bzw. ob das zusammengelötete so korrekt ist. Eventuell hab ich ja
bei der PIN-Belegung einen Fehler drin?

Wenn man sich den Stecker im Schaltplan anschaut, ist das die Draufsicht auf den Stecker? oder sind das die Lötnasen? Oder anders ausgedrückt,
wenn ich den Stecker in den Roomba stecke ist dann an der rechten Seite
des Steckers in der Draufsicht PIN 4 oder PIN 3? Bei mir ist da PIN 3.

Hallo,

ich habe gestern noch weiter rumgebastelt und nun scheint
es technisch zu funktionieren.

Nun hab ich ein paar IPS Fragen.

Nachdem ich alles laut Anleitung von RWN (Xbee Einbindung) und pinki99 (Roomba Scripte) angelegt habe, funktioniert es trotzdem nicht.

Die Kommunikation zwischen den Xbee´s scheint zu funktionieren?
Wenn ich das XBee debugge bekomme ich Daten angezeigt, wenn
ich den Roomba anschalte.

15.05.2011 20:34:32.00 |             RECEIVED | ~  $processor-
15.05.2011 20:34:32.00 |             RECEIVED | sleepó
15.05.2011 20:34:37.00 |             RECEIVED | ~ i $ key-wakeup 000
15.05.2011 20:34:37.00 |             RECEIVED | 00000000000000000000000000010
15.05.2011 20:34:37.00 |             RECEIVED |
slept for 0 minutes 6 seconds
15.05.2011 20:34:37.00 |             RECEIVED |2009-05-04-1442-L   
‰~ i 
15.05.2011 20:34:37.00 |             RECEIVED | $r3_robot/branches/release-3
15.05.2011 20:34:37.00 |             RECEIVED | .0:3448 CLEAN bootloader id:
15.05.2011 20:34:37.00 |             RECEIVED |  4702 545A E6A1 2FFF 
assembl
15.05.2011 20:34:37.00 |             RECEIVED | y: 3.5
rev¸~ X * ision: 0
f
15.05.2011 20:34:37.00 |             RECEIVED | lash version: 10
flash info cr
15.05.2011 20:34:37.00 |             RECEIVED | c passed: 1

battery-current
15.05.2011 20:34:37.00 |             RECEIVED | -zero 253

15.05.2011 20:35:00.00 |          TRANSMITTED | ~   
 €q
15.05.2011 20:35:00.00 |          TRANSMITTED | ~   
 •\
15.05.2011 20:35:00.00 |          TRANSMITTED | ~   
 ð
15.05.2011 20:35:00.00 |          TRANSMITTED | ~   
 d
15.05.2011 20:35:02.00 |          TRANSMITTED | ~ BMY
15.05.2011 20:35:02.00 |             RECEIVED | ~ aˆBMY  
15.05.2011 20:35:02.00 |             RECEIVED | Ž
15.05.2011 20:35:02.00 |          TRANSMITTED | ~   
 €q
15.05.2011 20:35:03.00 |          TRANSMITTED | ~   
 •\
15.05.2011 20:35:03.00 |          TRANSMITTED | ~   
 ð
15.05.2011 20:35:03.00 |          TRANSMITTED | ~   
 d
15.05.2011 20:36:00.00 |          TRANSMITTED | ~   
 €q
15.05.2011 20:36:00.00 |          TRANSMITTED | ~   
 •\
15.05.2011 20:36:00.00 |          TRANSMITTED | ~   
 ð
15.05.2011 20:36:00.00 |          TRANSMITTED | ~   
 d
15.05.2011 20:36:02.00 |          TRANSMITTED | ~ BMY
15.05.2011 20:36:02.00 |             RECEIVED | ~ aˆBMY  Ž
15.05.2011 20:36:39.00 |          TRANSMITTED | ~   
 €q
15.05.2011 20:36:39.00 |          TRANSMITTED | ~   
 •\
15.05.2011 20:36:39.00 |          TRANSMITTED | ~   
 ð
15.05.2011 20:36:39.00 |          TRANSMITTED | ~   
 d
15.05.2011 20:37:00.00 |          TRANSMITTED | ~   
 €q
15.05.2011 20:37:00.00 |          TRANSMITTED | ~   
 •\
15.05.2011 20:37:00.00 |          TRANSMITTED | ~   
 ð
15.05.2011 20:37:00.00 |          TRANSMITTED | ~   
 d

Diese Sonderzeichen und wirren Zeichen weiß ich allerdings nicht woher die kommen.

Leider passiert weiter nichts. Anbei meine Konfiguration als Bild.
Wo liegt mein Fehler?

Danke Shadowdan

Hallo,

ich komme einfach nicht weiter und weiß nicht wo ich nun
ansetzen soll.

Wenn ich den Roomba anschalte und den Seriellen Port
des Xbees debugge kommt das hier.

26.05.2011 21:56:17.00 |             RECEIVED | ~ i E key-wakeup 0000000000000000 0000000000000011
slept for 0 minutes 4 seconds

2009-05-04-1442-L   
i~ i E 
r3_robot/branches/release-3.0:3448 CLEAN

bootloader id: 4702 545A E6A1 2FFF 
assembly: 3.5
rev—~ X E ision: 0
flash version: 10
flash info crc passed: 1

battery-current-zero 253
é

Wenn ich das Script auslesen starte kommt im Debug des Xbees folgendes

26.05.2011 21:57:53.00 |          TRANSMITTED | ~   
 €q
26.05.2011 21:57:53.00 |          TRANSMITTED | ~   
 •\
26.05.2011 21:57:53.00 |          TRANSMITTED | ~   
 ð
26.05.2011 21:57:53.00 |          TRANSMITTED | ~   
 d

Mein Script zum Auslesen sieht so aus.

<?
$ID=40264 /*[XBee Gateway]*/ ;
XBee_SendBuffer($ID,13, chr(128)); //Start Command
XBee_SendBuffer($ID,13, chr(149));  //Opcode 149
XBee_SendBuffer($ID,13, chr(1)); //Number of packets
XBee_SendBuffer($ID,13, chr(100));  //Packet ID 100
?>

XbeeGateway ist die ID 40264
XbeeSplitter ist die ID 43300
SerialPort Xbee ist die ID 29866
RegisterVariable ist ID 44439

Ich habe auch schon den Serial Port, Xbeesplitter und Xbeegateway neu erstellt.

Kann mir jemand irgendwie auf die sprünge helfen woran es liegen kann?

Shadowdan

Ich antworte jetzt mal selbst…

Hat alles soweit geklappt. Hatte tatsächlich einen falschen DC/DC Wandler
bestellt. mit 5 Volt lief der Xbee zwar auch, aber ohne Kommunikation g.

Der Wandler ist beim Conrad auch wieder lieferbar.
Mit 3.3 Volt kommen nun auch die Befehle an.

Mit eine bisschen Mühe passt das ganze auch in die Aushöhlung wo
man den Netzadapter reinsteckt. So das der Roomba auch normal unter
die Möbel passt. Vom Stecker braucht man nur die Kontakte mit den durch-
geleiteten Lötnasen, 4 Kabel ran und Schrumpfschlauch. Die Kabel dann unter
die Gehäuseabdeckung bis zum Netzadapteranschluß ziehen. So ist dann der
Stecker auch nicht höher als die höchste Stelle am Roomba.

Könntest du bitte mal ein Foto machen?
Der fehlende DC/DC Wandler hat auch mich bisher davon abgehalten meinen Roomba mit IPS zu verbinden. Wobei der lieferbare, eine Nummer kleiner, auch reichen müsste.

Hier die Fotos.

Shadowdan

roomba1.jpg

Hallo.

Danke für die Fotos. Wenn die Teile komplett ins Gehäuse wandern können wird die Sache für mich interessant. Welches XBee-Modul genau hast Du da verbaut?

Grüsse.

Ich habe das XBee-PRO 802.15.4 verbaut. (Stück 25 Euro Projet …per Google gefunden.)
Die abstehende Antenne hab ich etwas umgebogen.
Reichweite ist aber immernoch super, Rechner steht im Keller, Kontakt
zum Xbee im Roomba besteht überall im Haus (und sogar im Nebengebäude).
Also vollkommen ausreichend.

Shadowdan

Auch Danke für die Fotos. Das zweite Foto (rommba1.jpg) ist zwar etwas klein geraten aber es reicht für einen Überblick. Da weiss man doch was einem erwartet wenn man ihn weiter aufschraubt. Welchen Adapter hast du für den XBee benutzt?

Für den USB-Part am Rechner habe ich das Xbee Explorer USB Board von Waterott.

Shadowdan

Kennt jemand diesen hier:

DFRobot XBee USB Adapter for Arduino

Und welchen zum Einbau im Roomba? Oder direkt anlöten? Sind ja nicht viele Leitungen. Aber zum Programieren muß XBee ja wieder steckbar sein.
Für die USB Seite habe ich das XBee USB Board, Art.Nr.: 990.002 von 1-Wire.

Wird aus Platzgründen auf der Roomba-Seite wohl beim löten bleiben. Wüsste nicht wo man da noch eine zusätzliche Platine im Roomba-Gehäuse unterbringen könnte. Eventuell könnte man sich einen Adapter von Mini-DIN-Busche aus DB9 basteln um im zweifelsfall den Adapter neu über den seriellen Port zu konfigurieren.

Roombaseitig habe ich nicht am Xbee rumgelötet, nehmt einfach 10 Polige Buchsenleisten.
Es reicht ja eine, da nur 4 Pins auf der linken Seite des Xbees benötigt werden.

So kann man leicht das Xbee ruckzuck abziehen, wenn man es mal neu
konfigurieren will.

BL 1X10G 2,00 - 10pol. Buchsenleiste, gerade, RM 2,00 - Buchsenleisten bei Reichelt Elektronik

So, gestern Abend die Umrüstung fertig gestellt. Dank der Vorarbeit von Pinky99 und Shadowdan war alles kein Problem. XBee ist im Roomba-Gehäuse untergebracht und der Roomba daher nicht höher als vorher.

Geniale Sache das…:smiley:

Bei den ganzen XBees die es so gibt. Welcher ist dernn der richtige:

Hier wurde vom PRO-802.15.4 gesprochen.

Ich habe nun folgenden gefunden.

Description: This is the very popular 2.4GHz XBee module from Digi (formally Maxstream). These modules take the 802.15.4 stack (the basis for Zigbee) and wrap it into a simple to use serial command set. These modules allow a very reliable and simple communication between microcontrollers, computers, systems, really anything with a serial port! Point to point and multi-point networks are supported.

Features:

3.3V @ 50mA
250kbps Max data rate
1mW output (+0dBm)
300ft (100m) range
Built-in antenna
Fully FCC certified
6 10-bit ADC input pins
8 digital IO pins
128-bit encryption
Local or over-air configuration
AT or API command set

für 20 Euronen. Ist der denn richtig? Nachdem Ihr alle den roomba angeschlossen habt, bin ich langsam heiss :wink:

Von den Bildern her sieht mir der Xbee nicht nach einem PRO aus (hab nur die Beschreibung gegoogld und die Shops angeklickt).
Ich weiß allerdings nicht, ob ein Pro nötig ist um mit IPS zu
funktionieren.

Shadowdan

Such mal nach dem mit 50mw.

Nach dem nun mein Roomba über XBee mit IPS verbunden ist versuche ich mit den OI Befehlen klar zu kommen und die passenden Variablen Profile zu erstellen. Da fallen mir ein paar Ungereimtheiten in Pinki’s Skripten auf.

  1. Die Variable Mode (Integer, „Unterwegs“) müsste der PacketID34, Charging Sources Available entsprechen. Wie müssten da die Profile 0-3 heißen? Wie kommt Pinki auf „Unterwegs“?

  2. Die Variable OIMode (String, „Passive“) müsste der PacketID35, OIMode entsprechen. Die finde ich gar nicht im Skript. Wenn, müsste sie Integer sein.
    Oder?

Pinki’s Doku lässt da noch Raum für Spekulationen - ging mir auch so. Sie lässt da doch einiges offen.

Anbei meine Erkenntisse:

  • Mode
    0 = unterwegs
    1 = Laden über Netzteilanschluss
    2 = In Ladestation

  • OIMOde
    Ist bei mir ein String und wurde von den ursprünglichen Skripten nicht berücksichtigt. Ich habe sie der Vollständigkeit halber angelegt und nichts weiter.