W-LAN RC Car

Die Entwicklung des Projektes:

Die vorhandenen Ressourcen:

Ein Chassis mit 2 Motoren eines alten ferngesteuerten Autos und der dazugehörige 8,4V Akku.
20120816-092928.jpg20120816-092941.jpg

Die erste Platine und das erste Interface:

Aufgebaut ist die Platine wie folgt:

Durch die 3,3V GPIO Pins, steuere ich einfache Transistoren an, die dann die Motoren mit den 8,4V des Akkus versorgen.

Per Klick auf einen der Links im Interface, wird ein “shell_exec” Befehl ausgeführt, der mittels sleep() bzw. usleep() die Motoren nur eine gewisse Zeit laufen lässt.

Hierdurch fährt das Auto zwar nur schrittweise, aber ich laufe keine Gefahr, durch Verzögerungen irgendwo vorzufahren.
20120816-094303.jpg20120816-094316.jpg

20120816-092958.jpg

Es folgten Versuche mit einer Motorradbatterie.

Diese ist allerdings überdimensioniert. Da ich zur Zeit nur einen einfachen 7805 zur Spannungsregelung auf 5V hatte, war die Verlustleistung, die nötig ist um 12V auf 5V zu regeln, einfach zu groß. Der Spannungsregler wurde trotz Kühlkörper viel zu heiß. In Zukunft werde ich versuchen einen DC/DC-Wandler zu bekommen. Hierbei ist der Wirkungsgrad weitaus besser als bei einem linearen 7805.

Die Motorradbatterie habe ich nach einiger Zeit wieder verworfen.

20120816-093010.jpg20120816-093030.jpg

Mittlerweile hat das Auto Gestalt angenommen und führt seine grundlegenden Funktionen aus.

Die Platine zur Motorsteuerung habe ich nun komplett überarbeitet:

– 4 GPIO Pins werden benötigt (Rechts vor / zurück, Links vor / zurück)
– damit wird ein Motortreiber IC (L298) angesteuert. Dieser ist für meine Zwecke sehr praktisch, da es die H-Brücke integriert hat. Ich brauche “nur noch” mit meinen TTL Pegeln der GPIO Pins auf die Eingänge gehen und kann so 2 Motoren unabhängig voneinander vor oder zurück fahren lassen.
– Versorgungsleitung vom Akku durch 1A Sicherung abgesichert (dazu sollte man wissen, dass ich bereits meinen zweiten Pi habe. Der erste ist aufgrund der fehlenden Sicherung und eines doofen Fehlers meinerseits leider abgeraucht.. ).
– Beseitigung des Kabelsalats durch Flachbandleitung
– Spannungversorung des RPis durch aufgelötete USB-Buchse auf meiner Platine. Diese wird immer noch durch einen 7805 versorgt. Allerdings ist der Spannungsabfall von 8,4V auf 5V nicht mehr so hoch. Nun wird er mit Kühlkörper auch nur handwarm. Die energieeffizienteste Lösung ist dies aber immer noch nicht.
– die selbst erstellte Platine und alle Anschlüsse in eine Kunststoffbox gebaut

20120816-093050.jpg20120816-093119.jpg

Die letzte Veränderung des Autos war der “Mast”. Dieser bewirkt, dass der WLAN-Stick nun überall in der Wohnung Empfang hat, da er aufrecht in den Raum ragt.

Die Kamera wurde später auch dort angebracht um beim Fahren etwas mehr zu sehen als nur den Fußboden.
Zur Erstellung der Webseite:
Das Bild der Kamera wird durch das Programm “motion” ins Netzwerk gestreamt. Die Einrichtung des Programms geht sehr einfach und ist gut dokumentiert.
Gedacht ist das Programm zur Bewegungserkennung und Überwachung von Räumen.
Wenn man diese Funktion in der motion.conf allerdings deaktiviert, fungiert es super als Streaming-Lösung.
Für die Optimierung der Seite habe ich mir auch etwas Hilfe geholt, von jemandem der etwas mehr Ahnung von Javascript hat.
Hierdurch kann ich nun die Knöpfe betätigen, ohne dass die Seite mit dem Bild immer neu geladen wird. Realisiert ist das durch HTTPRequests.
Momentan wird die Laufzeit der Motoren immer noch durch sleep() begrenzt.
Theoretisch ist es möglich, auch durch Tastendrücke auf der Tastatur und das Loslassen derselbigen das Auto wie in einem PC-Spiel zu steuern. Jedoch habe ich hier noch Probleme mit dem “Loslassen”. Manchmal fährt das Auto einfach durch, bis eine Wand kommt 😉 Also werde ich, bis ich das behoben habe, erstmal die schrittweise Methode beibehalten.

20120816-093131.jpg20120816-093240.jpg

Zu guter Letzt (aktueller Stand), habe ich das Interface noch mal erweitert.

Nun ist es möglich mit der Kamera Bilder zu machen und diese dann auch direkt herunterzuladen.
Des Weiteren gibt es nun für die Drehung zwei Möglichkeiten:
Pfeile: Drehung um ca 15° (zeitlich gesteuert)
FF-Pfeile: Drehung um ca 90° (zeitlich gesteuert)
So ist es einfacher, aus einer Sackgasse zu drehen statt 100x auf einen Pfeil zu drücken.

Ebenfalls kann nun die Kamera aus dem Web ein- oder ausgeschaltet werden.

Interface

Ich versuche, diese Seite aktuell zu halten und alle Änderungen zu dokumentieren.

Zu den Videos

Geplante Erweiterungen:

– (kurzfristig) per Web einschaltbare Beleuchtung durch LED
– (sehr langfristig) Robotergreifarm
– Umrüstung auf DC/DC-Wandler zur Verlängerung der Akkulaufzeit
– evtl. Einsatz von UMTS-Stick für Fahrten ausserhalb der Wohnung
– wenn alles ausgereizt ist, wäre ein GPS-Modul sehr interessant, aber das liegt noch in weiter Ferne

16 Gedanken zu “W-LAN RC Car

  1. Sehr spannendes Projekt! Hut ab. Das Gleiche was ich auch machen möchte wenn meiner nach den 11 Wochen endlich mal da ist.
    Wir nur ein schwerer Einstieg werden… wird das erste mal sein, dass ich was mit Servertechnik mache. Mal hoffen, dass ich mir das Genick nicht breche 😛
    Interessante Dokumentation!

    • Danke :-)

      Wo hast du deinen Pi bestellt?
      Hm, ich will jetzt kein Salz in die Wunde streuen, aber ich habe bereits den 2. Pi von Farnell. Und die Lieferzeit des 2. war ca. 5 Tage. Bestellt im Juni.
      Hast du bei RS bestellt?

      • Ja, habe schon öfter gehört, dass Farnell um einiges schneller ist.
        Hab (leider) bei RS bestellt…
        Wäre das Geld nicht schon überwiesen etc pp. würde ich das Ganze canceln.
        Und bevor ich jetzt tausende Kommentare schreibe:
        Deine Tutorials sind echt gelungen!

  2. SUPER!!!
    In ähnlicher Weise würde ich es auch gerne nachbauen. Würdest du das Unterstützen? Wie viele Arbeitsstunden stehen dahinter?

    LG
    Marlon

    • Hey,
      danke für dein Feedback.

      Die Steuerung funktioniert bisher über php.
      Hier werden einfach shell Befehle ausgeführt.
      Bisher sehr simpel, aber wenns draußen wieder richtig ungemütlich wird, werde ich hier auch weitermachen 😉

  3. Hallo,

    wir planen so ein ähnliches Projekt wie Sie und wissen noch nicht genau, wie wir es realisieren sollen. Haben Sie vielleicht für uns weitere Hilfe bzw. Informationen da? Wir wollen ein Auto bauen, was Licht vorne und hinten hat und blinker. Dieses Auto wollen wir dann entweder wie Sie per Wlan über das Handy steuern bzw. per Wlan über ein PC/Laptop. Wir haben dafür 6 Wochen Schulzeit da und können noch weiterhin zuhause da dran weiterarbeiten.

    Mfg aus neuwied

  4. Vorab: Ich kann ich meinen Vorrednern nur anschließen, wirklich ein super Projekt!

    In Deinem blog ist meist die Rede von der Steuerung über das Internet. Wie genau hast Du das gelöst? DynDNS?

    • Hey, danke.

      Ja, die Steuerung über das Internet erfolgt im Prinzip über DynDNS und Portweiterleitung am Router.

      Also wenns im WLAN läuft, ist die Erweiterung aufs Internet eig. kein Problem mehr.

  5. Hallo, das gleiche Projekt möchte ich auch gerne machen. Mich würde die Webseite interessieren die Sie gebaut haben zur Steuerung. Würden Sie den Code evtl. zur Verfügung stellen? Das würde mir sehr helfen da ich noch nicht so fitt bin mit dem Raspberry Pi. Danke

  6. Pingback: Ferngesteuertes Auto mit Raspberry Pi

  7. Ich habe derzeit ein ähnliches Projekt.

    Zur ansteuerung des Antriebs nutze ich einen Modellbaufahrtregler, welchen ich mittels Pulsweitenmodulation über (PIN12 (GPIO18)) steuere.

    Derzeit arbeite ich noch an einer Batterieüberwachung die den Akku vor Tiefenentladung und den Pi vorm rumspinnen bewahren soll.

  8. Genau so etwas habe ich gesucht. Hab das auch gemacht nur bei mir funktioniert das mit der Steuerung nicht so gut. Könntest du bitte den PHP Code veröffentlichen? Das würde mir echt sehr helfen. Danke schonmal dafür :)

    Roman

Kommentar verfassen