??? Die Baudrate ist nach Akkuwechsel / 1. Start immer erstmal auf dem höheren Wert, kann dann aber durch das lange-Drücken der Clean-Taste oder der Impulstriggerung auf Pin 5 runtergesetzt werden.
Guggstdu hier:
Serial Port Settings
Baud: 115200 or 19200 (see below)
Data bits: 8
Parity: None
Stop bits: 1
Flow control: None
By default, Roomba communicates at 115200 baud. If you are using a microcontroller that does not
support 115200 baud, there are two ways to force Roomba to switch to 19200:
Method 1:
When powering on Roomba, hold down the Clean/Power button. After about 10 seconds, Roomba plays a
tune of descending pitches. Roomba will communicate at 19200 baud until the power is turned off, the
battery is removed and reinserted, the battery voltage falls below the minimum required for processor
operation, or the baud rate is explicitly changed by way of the OI.
Method 2:
Use the Baud Rate Change pin (pin 5 on the Mini-DIN connector) to change Roomba’s baud rate. After
turning on Roomba, wait 2 seconds and then pulse the Baud Rate Change low three times. Each pulse
should last between 50 and 500 milliseconds. Roomba will communicate at 19200 baud until the
processor loses battery power or the baud rate is explicitly changed by way of the OI.
…und dann war da noch der „Baud“-Befehl (Opcode 129), der natürlich nur Sinn macht, wenn man schon miteinander spricht…
Ich beziehe mich auf diese Anleitung hier. Das o.g. Anschlussschema des Steckers sieht zwar sehr ähnlich aus zu dem auf (page 3), aber eben mit anderen Infos in der Tabelle darunter zu Pin 5 („5 - BRC - Baud Rate Change“)
Welches ist aber denn nun diese „zweite Anleitung“?
@1007:
Danke für die Info, das mit „Device Detect Input use to wake up“ ist mir bisher entgangen. Hast Du mal einen Link für mich, wo das herstammt? Vielleicht gibts da ja noch andere neue Infos für mich.
Übrigens, das „keep-Alive“ als Workaround per 2minütiger IPS-Befehle (128, 1sek, 131, 1sek, 128) scheint erstmal prima zu klappen, hat bisher keinen Aussetzer, die ganze Nacht lang. Aber konstant gut 170mA „Ruhestromverbrauch“. Für „stehenlassen während des Urlaubs“ ist das wohl eher nichts.
Grosse Wohnung: Nein, aber abgeschirmte Bereiche (zwischen Metallschränke usw.) bzw. vor, den Robby unterwegs mal „zwischenzuparken“, wenn er noch nicht wirklich loslegen darf, aber schon wo hingefahren ist in einen Raum. Wenn er da ins Timeout fallen würde, wäre das sehr kontraproduktiv. Aber die Idee mit dem PullUp ist gut. Hast du den Pin5 permanent per Widerstand auf + (Pin1, 2) gelegt?
Das mit dem minütlichen Pollen der Werte mache ich auch, hilft aber nichts gegen das Timeout, wenn er grade nicht saugt (2. „Clean“ stoppt ihn wieder). Timeout kommt (normal) offenbar nur dann nicht, wenn er wirklich arbeitet oder in der Ladestation steht.
Wegen dem 2-Sek-Pollen beim Fahren, warum nimmst du nicht den Stream-Modus (OpCode 148), getoggelt mit OpCode 150? Gibt es da schon Erfahrungen? Dachte, weil der doch extra empfohlen wird…:
„This method of requesting sensor data is best if you are controlling Roomba over a wireless network
(which has poor real-time characteristics) with software running on a desktop computer.“
Oder schaffen die XBees die 15ms-Zyklen nicht? Auch nicht, wenn man per OC 150 je nach „Verarbeitungsstand“ toggelt?
Gruß Gerd