Hallo zusammen,
ich habe kürzlich mein schon etwas länger andauerndes Projekt soweit abgeschlossen, dass ich fürs Erste zufrieden bin.
Was genau ist nun dieses Projekt?
Die Grundidee war, dass ich mein noch vorhandenes 1:10 RC-Auto über eine eingebaute Kamera und dann per Smartphone steuern kann. Das ist hauptsächlich für das "in der Wohnung fahren" gedacht, man sollte daher aber noch die normale Fernsteuerung zum richtigen Schnellfahren verwenden können.
Verwendete Hardware:
- RC-Auto: Tamiya M02L (VW Käfer)
- Fernsteueranlage (kompl. mit PWM Servos und Empfänger)
- 7,2V 5Ah NiMH Racing Akku
- RPi Rev B
- RPi Camera Modul mit IR-Filter
- Realtek WLAN Stick (8192 Chipsatz)
- Step-Down Wandler
- je 1x 74HC00, 74HC02, 74HC08
- diverse Buttons und LEDs
// Edit: Bilder der Hardware in Beitrag #6
Soo, jetzt kommt der eigentlich schwierige Teil, die Software Lösung der Problemstellung.
Prinzipiell hatte ich vor mich mit dem Projekt ein wenig in Javascript und auch Node.js einzuarbeiten. Deshalb war die Wahl des Interfaces schon vor Projektbeginn klar.
Die Entscheidung ist mir zudem sehr leicht gefallen, da Node einfach eine der neuesten Sachen ist und sehr viel Potential hat und man sich auch nicht extra um ajax kümmern muss.
Ein weiterer Punkt, der mir sehr wichtig ist, ist die Integration des Autos in bestehende WLAN Netzwerke, sofern welche vorhanden sind. Ansonsten wird automatisch ein Hotspot erstellt. Das Koppeln des Autos geschieht in beide Richtungen (Smartphone zu Hotspot-Modus oder auch Client-Modus in neues WLAN aufnehmen) mit dem integrierten (!) WPS Taster des WLAN Sticks.
Außerdem sind natürlich noch einige andere Programm, sowie deren Abhängigkeiten von Nöten, um das alles ans Laufen zu bekommen.
Verwendete Software:
- Node.js (Web-Server)
- motion (RPi-Cam Stream zum WebIf)
- pi-blaster (Software PWM)
- hostapd (Realtek Version)
- dnsmasq (DHCP-Server)
- diverse kleine Scripte für Kleinigkeiten
// Edit: Zum Thema WLAN habe ich einen gesonderten Beitrag (#7) erstellt
Lange Rede, kurzer Sinn, hier sind erstmal n paar Screenshots des Web-Interfaces meines RC-Autos, auf dem man auch glaube ich ganz gut sehen, wie sich das Interface bedienen lässt
Control-Mode (-> Let Me Drive It) - Stillstand:
Control-Mode (-> Let Me Drive It) - Bedienung:
Configuration - Lenkung und Gas Einstellungen:
Configuration - Diverse Switches:
Configuration - Umschalten auf Kontrolle der PWM Signale durch den RPi:
System - Umschalten des WLAN-Modus:
Logout - bei Shutdown/Restart/WLAN-Switch:
Bei den Screenshots mit mehreren Browserfenstern waren jeweils einmal Opera, Firefox und Chrome geöffnet. Alle relevanten Daten werden in Echtzeit an jeden verbunden Client gepusht (z.B. eine Änderung eines Sliders, Move-Button Position, etc.).
Hinterlasst mir gerne schonmal ein kleines Feedback zum Interface, im Laufe der kommenden Tage wird es dann mit dem Rest weiter gehen