HaBuRo3, Bluetooth als Empfänger
Der selbstbalancierende Roboter HaBuRo3 besteht aus zwei Applikationen:
Eine Fernbedienung und HaBuRo3. Einen Self Balancing Robot, der nur sein
stabiles dynamisches Gleichgewicht hält, ist langweilig. Er soll auch vor-
und zurückfahren einschließlich Kurven absolvieren. In diesem Kapitel behandle
ich den Empfänger für die Fernsteuerung. Zwei Betriebsarten kann man auswählen:
1) Remote über RF95 (Jumper auf der Steuerplatine gebrückt) oder 2) Remote über
Bluetooth (Jumper auf der Steuerplatine offen). Betriebsart "RF95" ist für andere
HaBuRo-Projekte vorgesehen. Der HaBuRo3 kann nur Bluetooth.
Ich kurve mit dem Roboter überwiegend im Garten herum mit einer Distanz von mehr
als 10 Meter gibt es Signalunterbrechungen und dann fällt der Roboter auf die
Schnauze. Kippt er auf den weichen Rasenboden, ist das immer noch besser als auf
hartem Fliesenboden.
(1) sind Informationen, die in der
Initialisierungsphase generiert werden. (2) sind
Werte, die die Fernsteuerung liefert. +-x.xx / +-y.yy
bedeutet: (x)Kurve links oder rechts und
(y) vor oder zurück. Wobei die Fernbedienung für
die Kurvenfahrt Werte von +/-8,5 generiert, und für die Fahrgeschwindigkeit
Werte von +/-2,5 vorgesehen sind. Achtung!
Da muss ich nochmal ran! Die Werte sind zu hoch.
Die Fernbedienung liefert zwei Variablen vom Typ float. Diese müssen in ein Byte-Array
gewandelt werden, damit die Read-Routine Bluetooth diese einlesen kann. Siehe Zeile 6 bis 11 und Zeile 17.
Das Bluetooth Modul läuft in einer Task (Thread). Siehe Zeile 55 bis 64. Ansonsten gibt es
einen Konflikt mit der Bereitstellung des Neigungswinkels vom MPU6050 Breakout Board
(Beschleunigungssensor und Gyroskop). Initialisierung, Zeile 39 bis 50, speziell Zeile 48:
In der Dokumentation über Threads mit ESP32 wird oft für den Parameter Priorität Task
eine Ziffer 1 eingegeben! Das funktioniert hier nicht. Es muss der Name:
tskIDLE_PRIORITY sein.