@Doc: So, ich habe den Roomba jetzt auch (endlich) mit IPS verbunden. Es funktioniert auch, zumindest zeitweilig. Leider ist es aus irgendeinem Grund so, dass der Roomba jeweils nach einigen Minuten keine Daten mehr sendet bzw. manchmal auch gar nicht mehr auf Befehle reagiert. Ich weiß noch nicht woran das liegt und ich bin jetzt auch langsam mit den Nerven am Ende was die Fehlersuche betrifft.
Ich habe die XBees auf 115200 Baud eingestellt und mache entsprechend die Kommunikation mit dieser Rate. Du hattest ja geschrieben dass du auf 19200 Baud gegangen bist. Wie bekommt man denn das hin, ohne dass man den Roomba jedes Mal von Hand umschalten muss?
Das Abfragen der Sensoren habe ich durch ein Skript gelöst, welche in regelmäßigen Abständen (bei mir alle 5 Sek.) den Befehl zur Übermittlung einiger, ausgewählter Sensoren sendet. Ich setze denn per Registervariable eine Stringvariable namens „XBee Buffer“, welche die zurückgesandten Bytes enthält. Ein Refresh dieser Variable löst dann ein weiteres Skript aus, welches die Werte in die entsprechenden Formate umwandelt.
All dies funktioniert bei mir ziemlich gut, allerdings nur jeweils ein paar Minuten lang, dann kommt auf einmal nichts mehr vom Roomba, auch kein Müll - mitunter ist vorher mal ein Datenpaket dabei das zu klein ist und das verwerfe ich dann eben. Aber ab diesem seltsamen Punkt X kommt wie gesagt plötzlich gar nichts mehr.
Ich muss dann immer die Bodenplatte vom Roomba ausschrauben und den Akku rausnehmen, manchmal zusätzlich den USB-Dongle vom IPS-Server abnehmen und einmal musste ich den Server sogar neustarten damit es wieder ging. Des nervt sehr und ich habe allmählich keine Nerven mehr, die immer neuen Verbindungsprobleme anzugehen. Vielleicht morgen.
Kann es denn mit diesen Verbindungsabbrüchen an der zu hoch gewählten Datenrate liegen? Oder würde sich ein Problem mit der Datenrate anders äußern?
Ich werde mir auf jeden Fall erstmal einen Watchdogtimer schreiben, der warnt sobald die Verbindung abreißt, aber das kann ja nun auch nicht sein dass es so häufig passiert. Ich vermute eher ein Problem mit den Xbees.
Was ich auch sehr schade finde ist, dass man den Roomba gar nicht aus dem Standby aufwecken kann per OI. Insofern verstehe ich dein Argument, dass das Xbee dann auch keinen Strom verbrauchen sollte. Ich dachte natürlich, man könne den Roboter jederzeit über Funk erwecken. Dann hätte es zumindest ein bisschen Sinn gehabt.
Nun ja, alles nicht so einfach offenbar. Ich habe zwar schon ein wenig Erfahrung mit solchen Sachen (RS-232, auch schon mal andere Funkstrecken benutzt), aber insbesondere die Xbees bringen mich schon gehörig ins Schwitzen (und immer wieder auch auf die Palme). Man hat irgendwie keinen Schimmer was sie tun und was nicht.