Roomba + Wemos D1 mini (Esp8266)

Hat da zufällig schon jemand was gebastelt??

Ich komme leider bei der Software nicht weiter, die Hardware steht…

Viele Grüße!

Erst mal welche Model des Roomba , 500 oder 700 oder 900 ?

Was heist hardware steht.

500er
aber bis auf die polzahl vom stecker als hardware, sind die io interfaces alle gleich laut irobot…

Hardware steht heisst das die verkabelung soweit fertig ist…
ich habe von einem anderen projekt die software bekommen, alles installiert…

nach start des wemos schaltet dieser auch das io interface von off auf an… danach allerdings reagiert der roomba auf keinen anderen befehl…

da der wemos laut script mit 115200baud sendet und der roomba bei neustart (bat raus rein) das io interface auch auf 115200 setzt, sollte es daran nicht liegen.

das script hat eine möglichkeit die befehle direkt zum roomba zu schicken, oder vorher durch einen pic… da ich das ganze derzeit ohne pic betreibe müsste ich hier die var von 0 auf 1 setzen, was ja nicht das problem ist. problem ist, das meine arduino ide das script nicht kompillieren will, somit bin ich auf die fertige .bin angewiesen…

es heisst also jetzt neu schreiben, oder jemand finden der mir das ding kompillieren kann…

Ich habe aktuell zwei 500er Roombas mit ESP8266 ausgestattet, wobei sich die zwei Modelle 534 und 531 leicht unterschiedlich verhalten.
Als Firmware auf den ESPs verwende ich esp-link. https://github.com/jeelabs/esp-link
Hier gibt es fertige bin Dateien.

In IPS ist das dann über einen Client-Socket eingebunden.

Grüße

Vielen herzlichen Dank für deine Meldung!
Werde ich mir mal ansehen und testen!

Wie äußert sich denn das leicht unterschiedliche verhalten der beiden Geräte?

Viele Grüße!

Das unterschiedliche Verhalten liegt an Pin 5 der seriellen Schnittstelle. Bei einem Model ist Pin 5 (BRC) Baud rate change und beim anderen Model ist Pin 5 (DD) Device detect.
Das Model mit BRC kann einfach angesprochen werden und wacht dabei auf. Das Model mit DD muss erst durch ein Low-Signal an Pin 5 aufgeweckt werden.
Aufwecken über Pin 5 ist bei mir über GPIO12 (Reset) der ESP-Link firmware realisiert. Hier ist dann ein HTTP-Request zum aufwecken notwendig.

Sys_GetURLContent("http://".$SocketIP."/console/reset");

Grüße

Hallo,
verstehe ich das richtig:

der Wemos bekommt die Bridge aufgespielt + wird mit dem Roomba verkabelt…
im Symcon lege ich einen Client Socket an (Adresse und Port 23 vom Wemos)
dann kann ich via Script mit dem Befehl CSCK_SendText ( integer $InstanzID, string $Text ) einfach meine Zahlenkombis zum Roomba schicken?

Wie kommen dann beim Befehl 142 (Sensorabfrage) die dann ausgelesenen Werte wieder zu IPS?
Grüße!

Roomba + Xbee + IPS HowTo

Was willst du mir damit sagen? Ich will eben nicht mehr die Xbees nutzen…

Zusätzlich zum Client-Socket muss eine Register-Variable angelegt werden. (Übergeordnete Instanz: Client-Socket)
Hier wird ein Script hinterlegt, welches die Empfangenen Daten verarbeitet. Das Script für die Verarbeitung habe ich auch von „Roomba + Xbee + IPS HowTo“ genommen und angepasst.

Senden eines „Clean“ Befehls schaut bei mir so aus:

$ParentID = IPS_GetParent ( $_IPS['SELF'] );
$SocketID = GetValueInteger (IPS_GetVariableIDByName("Socket ID",IPS_GetCategoryIDByName("Config", IPS_GetParent ( $_IPS['SELF'] ))));
$SocketIP = IPS_GetProperty($SocketID, "Host");
$ping = Sys_Ping($SocketIP, 2000);
if ($ping == false)
{
echo "Roomba ".$SocketIP." nicht erreichbar";
return;
}
IPS_SetProperty($SocketID, "Open", true); //I/O Instanz soll aktiviert sein.
IPS_ApplyChanges($SocketID); //Neue Konfiguration übernehmen
Sys_GetURLContent("http://".$SocketIP."/console/reset");
sleep(1);

$data = chr(128);
CSCK_SendText($SocketID, $data);
sleep(1); 
$data = chr(128).chr(135);
CSCK_SendText($SocketID, $data);

IPS_SetProperty($SocketID, "Open", false); //I/O Instanz soll aktiviert sein.
IPS_ApplyChanges($SocketID); //Neue Konfiguration übernehmen

Ich aktiviere den Client-Socket bevor ich ein Kommando sende und deaktiviere ihn danach wieder. Muss man aber nicht machen.

Grüße