HaBuRo3, Bluetooth als Empfänger

Zurück

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.


HaBuRo3 Remote


(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.

HaBuRo3 Software Remote -1- HaBuRo3 Software Remote -2-


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.



Zurück