Controller für das Fahren https://github.com/jakkra/mars-rover. Webseite zum Anzeigen von Telematik-Diagrammen auf dem Telefon https://github.com/jakkra/rover-mission-control.
Eingerichtet einen AP, der Rover automatisch verbindet, wenn er sich in Reichweite befindet. Der Rover wird kontrolliert, indem er Joystick und Switch State entweder über Lora oder ein WebSocket sendet. Wenn der Rover nicht mit dem AP verbunden ist, werden stattdessen Daten über Lora gesendet. Es gibt einen Schalter, um dieses Verhalten zu überschreiben und immer Daten über Lora zu senden, auch wenn der Rover mit dem AP verbunden ist.
Wenn der Rover mit dem lokalen AP verbunden ist, sendet er Telematikdaten über das Websocket oder über Lora, wenn sich der Rover außerhalb des WLAN -Bereichs befindet. Die Daten werden dann wiederum an ein Telefon weitergegeben, wenn einer angeschlossen ist. Wenn der Rover in der Nähe der Telematik liegt, wird die Telematik über Lora transportiert. Da Lora -Module keine echte Duplex -Datenübertragung durchführen können, müssen wir zwischen Senden und Empfangen wechseln, was bedeutet, dass die Telematik vom Rover gesendet werden, während wir Joystick -Daten verloren gehen. Aus Experimentieren kommt die Lora -Telematik etwa alle 500 ms an.
Ein Telefon kann eine Verbindung zum Controller -AP herstellen, um die Telematik aus dem Rover anzuzeigen. Das Telefon öffnet eine WebSocket -Verbindung zum Controller und empfängt die telematischen Daten, die der Rover sendet. Die Telematik-Website finden Sie hier: https://github.com/jakkra/rover-mission-control.
Das vollständige Fusion 360 -Projekt befindet sich im CAD -Ordner.
Für Pinmapping siehe: https://github.com/jakkra/rovercontroller/blob/master/main/controller_input.c#l46





Befolgen Sie die Anweisungen unter https://github.com/espresssif/esp-idf, um die ESP-IDF einzurichten, und führen Sie dann idf.py build aus oder verwenden Sie die VSCODE-Erweiterung.
TBD auf Anfrage.
Führen Sie git apply esp-idf-patch/no_delay.patch in Ihrem ESP-IDF-Ordner aus. Dies verringert die Verzögerung für TCP, da es die Puffer nach jedem Schreiben anstelle von LWIP -pufferenden TCP -Daten spülen, um sie in Stücken zu senden.