tl;dr: Ein Software–Joystick mit nippleJS verbessert die Steuerung und die Motoren werden per Powerbank versorgt, was die Mignons überflüssig macht.
DIY Raspberry Car Touch–Screen Joystick (Teil 6)
...oder wie ich eine mobile Kamera baute (Teil 6)
Die Steuerung von dem Raspberry Pi Auto aus dem letzten Blog–Artikel hat noch einige Wünsche offen gelassen. Außerdem haben mich ein paar Messergebnisse überrascht, weshalb ich den Schaltplan aus Teil 3 ein wenig angepasst habe. In diesem Blog–Artikel geht es darum,
- die Steuerung auf einem Handy nutzbar zu machen.
- die Motoren über die Powerbank mit Strom zu versorgen (wegen der interessanten Messergebnisse).
Steuerung per Joystick
Die Buttons auf dem Handy gedrückt halten… das hat nicht so gut geklappt. Auf einem Touch–Screen wollte ich die Steuerung über einen Software–Joystick lösen. Die Steuerung per Fingerposition macht viel Spaß und der weg ist frei für eine sehr sensible Steuerung anstelle von "vorwärts", "links" und "rechts". In diesem Artikel gibt es allerdings nur diese drei Kommandos, damit der Code aus dem letzten Artikel unverändert verwendet werden kann. Die Verfeinerung der Steuerung oder den Rückwärtsgang würde ich dir überlassen.
Ein einfacher Joystick ist mit der passenden Library schnell eingebunden: nippleJS. Den statischen Joystick habe ich fast unverändert übernommen und es funktioniert super. Danke an die Contributor auf GitHub.
Die controller.html, jetzt im Ordner static, hat sich verändert, in der server.js nur die hervorgehobene Zeilen.
Den Joystick könnt ihr in der offiziellen Demo ausprobieren.
Verzicht auf Mignons
Im Betrieb habe ich folgenden Stromverbrauch des Autos gemessen:
- ca 500 mA bei stehenden Rädern (Stromverbrauch des Raspberry Pi)
- 500 mA + 250 mA im Leerlauf, also 250 mA für die Motoren
- 500 mA + 500 mA, wenn ich zwei Räder festgehalten habe
Eine einfache Powerbank mit 10.000 mAh sollte also zwischen 10 und 20 Stunden durchhalten. Angenommen hatte ich, dass die Motoren deutlich mehr Strom verbrauchen als der Raspberry Pi, was ein Grund für die Mignons war. Die Geschwindigkeit des Autos bei den 5 V aus der Powerbank sind auch ok. Daher habe ich die Mignons eingespart und das USB–Kabel kümmert sich um die Stromversorgung der Motoren.
Bei der Messung ging zuerst der Raspberry Pi nicht mehr an: die Spannung war zu niedrig. Die zusätzlichen Kabel bei der Messung waren zu dünn. Über den Kabeln sind über 0,4 V abgefallen und dem Raspberry Pi waren knappe 4,6 V einfach zu wenig. Bedenke also bei der Wahl der Kabel unbedingt den Strom bei Betrieb.
Um die Motoren mit dem USB–Kabel zu versorgen, muss man es aufschneiden und die Kabel an den richtigen anlöten. Um das richtige Kabel zu finden, kannst du den Widerstand zwischen den Pins von einen USB–Stecker und dem Kabelende messen (verlasse dich lieber nicht auf die Farben). Bei meinem Kabel war alles normal: rot für 5 V und schwarz für Ground. Die Datenleitungen sind in unserem Fall unnötig.
Hoffentlich hast du genauso viel Spaß, das Auto umherfahren zu lassen, wie ich heute. Viel Spaß bei Basteln und immer her mit Feedback.