In zwei vorherigen Artikeln habe ich über die Verwendung eines Smartphones zur Steuerung eines Spielzeugautos gesprochen, sowohl direkt per Sprache als auch über ein anderes Bluetooth-Smartphone. Aber die Kontrolle war primitiv - ein Befehl wurde gegeben, das Auto führte den Befehl aus, hielt an und wartete auf den nächsten Befehl. Dies war auf die hohe Geschwindigkeit des Fahrzeugs unter Innenbedingungen (ca. 1,2 m / s) sowie auf die lange Befehlszeit und die Unfähigkeit zurückzuführen, über das Menü schnell in die Bewegung einzugreifen. Selbst die Standardfernbedienung erlaubte keine Steuerung. In der neuen Version der Fernbedienung mit grafischer Oberfläche habe ich mich für PWM entschieden, um die Geschwindigkeit anzupassen und die Lenkung zu simulieren.

Das Bild zeigt die Maschine, die das Smartphone steuert, und unter dem Smartphone mit einem funktionierenden Bluetooth-Fernbedienungsprogramm.
Am oberen Bildschirmrand befindet sich ein Schieberegler (grüner Kreis), der mit dem Finger bewegt wird.

Beim Entfernen eines Fingers vom Bildschirm wird der relative Abstand vom Schieberegler zum linken Bildschirmrand an das Steuerungs-Smartphone übertragen, wo die Breitenmodulation des Impulssignals gebildet wird.
GR.GET.POSITION c1, xx, yy r6=(xx-xc)*(xx-xc)+(yy-yc)*(yy-yc) IF r6<rkn THEN GR.TOUCH touched, x, y IF y < 120 THEN DO GR.TOUCH touched, x, y GR.GET.POSITION c1, x1,z1 GR.MOVE c1 ,x-x1, y1 GR.RENDER UNTIL !touched ENDIF GR.GET.POSITION c1, x1,z1 POPUP STR$(x1/w) BT.WRITE "#"+STR$(x1/w) ENDIF
Das kleinste Tastverhältnis des Signals beträgt 20%, das größte 80%. Die theoretisch mögliche Frequenz beträgt 10 Hz. In der Tat wahrscheinlich etwa 4 - 5 Hz, da die Signale für die Modulation in den allgemeinen Strom von Befehlen gehen und einige von ihnen auch eine Zeitverzögerung haben. Daher ist bei niedrigem Arbeitszyklus eine Vibration deutlich sichtbar.
Zwei grüne Knöpfe - oben vorne, unten hinten. Rechter roter Knopf - still stehen. Zwei weiße Tasten - Stoppt Programme auf der Fernbedienung und auf der Schreibmaschine. Am unteren Rand des Bildschirms befinden sich drei lila Tasten, mit denen Sie die Bewegungsrichtung nach links, gerade und rechts auswählen können. Bei
Wenn der entsprechende Modus aktiviert ist, wird in der Mitte der Schaltfläche ein Kreis mit kleinerem Durchmesser und derselben, aber dunkleren Farbe angezeigt. Zusätzlich zu den Tasten habe ich auch einen Beschleunigungsmesser verwendet, um die Bewegungsrichtung zu steuern. Wenn das Smartphone horizontal ist, ist die Projektion des Schwerkraftbeschleunigungsvektors auf die 0Y-Achse 0, was der Bewegung direkt entspricht (siehe Abbildung oben).

Wenn Sie die linke Seite des Smartphones anheben, wird die Projektion mit einem + -Zeichen versehen, das der Bewegung nach rechts entspricht.

Wenn Sie die rechte Seite anheben, dann mit einem Schild - das entspricht der Bewegung nach links.
Das Programm liest die Messwerte des Beschleunigungsmessers und sendet die entsprechenden Befehle an das Smartphone, das das Auto fährt, wobei der Modus auf den Tasten angezeigt wird.
SENSORS.READ 1, sx, sy, sz IF (sy<=1)&(sy>-1)&(lrsh) THEN rsh=1 lsh=1 lrsh=0 GR.HIDE cc13 GR.HIDE cc15 GR.SHOW cc17 GR.RENDER BT.write "f" pause 100 ENDIF IF (sy>2)&(rsh) THEN rsh=0 lsh=1 lrsh=1 GR.HIDE cc13 GR.HIDE cc17 GR.SHOW cc15 GR.RENDER BT.write "r" pause 100 ENDIF IF (sy<-2)&(lsh) THEN lsh=0 rsh=1 lrsh=1 GR.HIDE cc17 GR.HIDE cc15 GR.SHOW cc13 GR.RENDER BT.write "l" pause 100 ENDIF
So funktioniert die Fernbedienung. Der Betrieb des Fahrzeugsteuerungsprogramms hat sich ebenfalls geändert, ist jedoch nicht sehr bedeutsam. In Zukunft möchte ich das Programm durch die Funktionen ergänzen, Befehle zu speichern und im automatischen Modus auszuführen.