HaBuRo6 RemoteXY Software

Zurück

Für die Funktionalität Roboter und RemoteYX wurde nur die Datei main.cpp geändert. Alle anderen Dateien (Module) bleiben unverändert. Das gilt auch für die Definitions- und Variablen Dateien. Globale Variablen werden jetzt in der main.cpp deklariert. Bibliotheken AsyncTCP und OSC wurden entfernt. AsyncTCP.h und ESPAsyncWebServer.h sind nicht mehr Bestandteil des Projekts. Weiters Details siehe weiter unten in diesem Kapitel.


HaBuRo6 RemoteXY PlaformIO_Init


Nur noch eine Bibliothek für das Projekt. Visual Studio Code, Extension PlatformIO, Datei platfom.ini Zeile 17.

HaBuRo6 RemoteXY Software1 HaBuRo6 RemoteXY Software2 HaBuRo6 RemoteXY Software3 HaBuRo6 RemoteXY Software4 HaBuRo6 RemoteXY Software5


main.cpp, Zeile 28 bis 35, Funktion void throttlw_steering(void): Von der Fernbedienung gesendete Fahrbefehle werden hier für die zwei Regler, PD-Balance & PI-„Move“, aufbereitet. Diese Funktion wird in der loop-Funktion zum Anfang (wichtig) aufgerufen, Zeile 208. Die Aktivierung der Fahrbefehle für vorwärts, rückwärts, links und rechts triggert diese Funktion. Im Original-Framework entspricht das der Funktion void processOSCMsg() Zeile 423 bis 432.

main.cpp, Zeile 38 bis 129, Funktion void remote_Task(void) : Sie ist Bestandteil eines Parallelprogramms (Task). Zeile 40 bedeutet, sie läuft forever. Zeile 42 bis 47: Handler für RemoteXY und Verbindungskontrolle LED.

Die vom Smartphone gesendeten Fahrbefehle erhalten in der Datei remote.h den Status einer Variablen und die Zugänglichkeit für die Datei main.cpp. In den Zeilen 49 bis 103 wird ein Offset (OSCfader[0] & OSCfader[0]) generiert und anschließend der Funktion throttlw_steering(void) übergeben. Der Anwender betätigt einen Fahrbefehl über längere Zeit, jedoch in der Software darf der Funktionsaufruf für throttlw_steering(void) immer nur ein einziges Mal passieren. Die Software funktioniert hier wie ein Flip-Flop.

Zeile 105 bis 129. Ohne Buzzer könnte die gesamte RemoteXY Funktionalität in der loop() laufen. Habe ich ausprobiert. Jedoch der Buzzer ist mit delay() ausgerüstet und wenn man den Buzzer aktiviert kippt der Roboter um. delay() ist immer ein Nadelöhr! Das ist der einzige Grund für den RemoteXY-Betrieb in einem Parallelogramm! Besuche auch die Webseite des Entwicklers für die Bibliothek RemoteXY Es gibt einen weiteren Zusammenhang zwischen delay() und RemoteXY.Header! Zeile 131 bis 141: Parallelprogramm.

Zeile 143 bis 153: Identisch mit dem Framework.

Zeile 156 bis 160: Identisch mit dem Framework.

Zeile 161: Initialisierung RemoteXY.

Zeile 162 bis 202: Identisch mit dem Framework.

Zeile 206 bis 209: Wurde weiter oben in dieser Beschreibung behandelt.

Zeile 323 bis 333: Identisch zu diesem Thema.



Zurück