Den Raspberry Pi mit Lego mobil machen

© Wunchai Intararit, 123RF

Spiel mit mir

Mit wenigen Handgriffen steuern Sie aktive Bauelemente der Lego Power Functions (PF) mit dem Raspberry Pi und basteln so ein via WLAN ferngesteuertes Fahrzeug, das Sie mit einem Xbox360-Gamepad bedienen.

README

In diesem Artikel erfahren Sie, wie Sie mit Lego, einem RasPi, einem Gamepad und Java ein über WLAN ferngesteuertes und leicht modifzierbares Fahrzeug konstruieren.

Um ein Lego-Fahrzeug fernzusteuern, bieten sich die entsprechenden Bauteile aus Lego Mindstorms [1] oder auch die Infrarotkomponenten (IR) aus der Power-Functions-Reihe (PF, [2]) an. Allerdings bleibt ein Lerneffekt dabei weitgehend auf der Strecke, und das Spielzeug wäre auch schnell langweilig. Für den wissbegierigen Bastler gibt es deswegen keine Alternative zum Eigenbau. Auch finanziell lohnt sich eine Eigenentwicklung gegenüber Lego Mindstorms allemal. Der RasPi als Hauptsteuerelement bietet Ihnen alle Freiheiten und Erweiterungsmöglichkeiten, die damit einhergehen, wohingegen die PF-IR-Komponenten Sie sehr stark einschränken.

Neben dem RasPi und den Bauelementen für ein Lego-Fahrzeug benötigen Sie die Motoren, die die Schnittstelle von Lego zur Steuerelektronik bilden. Motoren aus der Lego-PF-Reihe eignen sich sehr gut. Als native Elemente integrieren sie sich direkt und problemlos in ein vorhandenes Modell. Für den schnellen Einstieg bietet sich als Basis das Lego-Modell 42006 an, das Sie mit zwei PF-Motoren aufrüsten (Abbildung 1). Das Anbauen der Antriebe gestaltet sich bei diesem Modell sehr einfach, weitere Komponenten für Getriebe und Lenkung benötigen Sie nicht.

Abbildung 1: Als Basis dient das Lego-Modell 42006 mit zwei modifizierten Motoren aus der PF-XL-Reihe von Lego.

Wie Abbildung 1 zeigt, wurden bei den Motoren die originalen Lego-Anschlüsse ersetzt. Damit sich die Motoren an ein Steckbrett anschließen lassen, lötete der Autor die Enden von Jumperkabeln an. Die PF-Motoren besitzen vier Leitungen (Abbildung 2). Die rote und die blaue dienen zur Stromversorgung, die inneren mit den gelben Kabelenden zur Steuerung durch den PF-IR-Empfänger [3]. Für das Ansteuern mit dem RasPi benötigen Sie nur die äußeren Leitungen.

Abbildung 2: Um ihn an das Steckbrett anzuschließen, besitzt der PF-XL-Motor modifizierte Kabelenden.

Motortreiber

Die Enden der Jumperkabel besitzen eine männliche Bauform, da es in den meisten Fällen keine gute Idee ist, Motoren direkt an die GPIO-Pins des RasPi anzuschließen. Das liegt daran, dass diese nur eine sehr geringe Leistung liefern. Statt die Motoren direkt anzuschließen, nehmen Sie also besser einen Umweg über einen sogenannten Motortreiberchip. Diesen gibt es in verschiedenen Modellen, die sich aber in der Praxis wenig voneinander unterscheiden. Manche davon kommen auf einer eigenen Platine mitsamt Anschlüssen – in diesem Fall benötigen Sie kein zusätzliches Steckbrett. Den Motortreiberchip L293E bekommen Sie für wenige Euro beispielsweise bei Ebay. Abbildung 3 zeigt zwei teils schon verkabelte L293E-Chips auf einem Steckbrett.

Abbildung 3: Auf dem Steckbrett angebrachte L293E-Chips sorgen in einer späteren Ausbaustufe für das korrekte Ansteuern der Motoren.

Ein L293E steuert bis zu zwei Motoren an. Die gilt es gemäß der Chip-Spezifikation anzuschließen (Abbildung 4). In diesem Fall bedeutet das: Sie stecken die äußeren Kabel des ersten Motors an Output 1 und Output 2 an, die des zweiten Motors an Output 3 und Output 4.

Abbildung 4: Die Pin-Belegung des Motortreiberchips L293E.

Zur Orientierung besitzt der L293E eine Aussparung an der Oberseite. Die Input-Pins des Chips schließen Sie an geeignete GPIO-Pins des RasPi an (Abbildung 5), etwa in der Kombination Input-Pins 1 und 2 an die GPIO-Pins 11 und 12 sowie Input-Pins 3 und 4 an die GPIO-Pins 15 und 16 [4].

Abbildung 5: Das GPIO-Pin-Layout des Raspberry Pi.

Um zu verhindern, dass eine falsch angelegte Spannung den RasPi beschädigt, schalten Sie optional Dioden direkt hinter die GPIO-Pins. Diese bewirken, dass der Strom von diesen nur in Richtung Chip fließt und nicht entgegengesetzt. An den L293E schließen Sie außerdem den Strom für die Motoren an (Vs-Pin) und die Spannungsversorgung für den Chip selbst (Vss).

Die PF-Motoren besitzen eine Spannungsaufnahme von 9 Volt, lassen sich in der Regel aber auch problemlos mit 12 Volt betreiben (womit sie sogar mehr Leistung liefern). Eine Batterie-Box mit zehn 1,2-Volt-AA-Akkus (Abbildung 6) für die Motorversorgung liefert bei voller Ladung bis zu 12 Volt. Die Spannungsversorgung für den Motortreiberchip kommt vom 5-Volt-Pin des RasPi.

Neben dem Pin für die Versorgung des Chips müssen Sie auch noch die beiden Enable-Pins Chip**Enable**1 und Chip**Enable**2 mit 5 Volt beaufschlagen. Diese beiden Pins aktivieren und deaktivieren den dazugehörigen Output und dienen optional über ein PWM-Signal zur Geschwindigkeitsregelung. Zu guter Letzt verbinden Sie den GND- sowie die Sense-Pins mit dem 0-Volt-Pin des RasPi und dem entsprechenden Anschluss der Motorversorgung.

Abbildung 6: Eine Batterie-Box mit zehn 1,2-Volt-AA-Akkus sorgt für den Vortrieb der Konstruktion.

Nach dem Fertigstellen der Anschlüsse sollte die Belegung so aussehen wie in Abbildung 7 dargestellt. Nun gilt es, die Baugruppe an ein Chassis anzubringen, am besten unter Zuhilfenahme der oben genannten Lego-Kits. Zusätzlich fügen Sie noch die 5-Volt-Versorgung für den RasPi hinzu. Der EasyAcc PB12000A ist einer der 5-Volt-USB-Akkus, die sich in der Liste der bereits für den Mini-Rechner getesteten Geräte wiederfinden [5].

Abbildung 7: Nach diesem Schema schließen Sie den RasPi an den L293E-Steuerchip und die Stromversorgung an.

RasPi-Konfiguration

Auf der SD-Karte für den RasPi installieren Sie Raspbian. Ein Grundlagenartikel über die Inbetriebnahme des RasPis finden Sie in Ausgabe 02/2014 [6]. In diesem Projekt kam ein RasPi Modell B Rev.2 mit Raspbian Version 3.6.11+ zum Einsatz.

Um ins WLAN zu gelangen, benötigen Sie zusätzlich einen USB-WLAN-Adapter. Ein WL-167G V3 von Asus funktioniert mit dem RasPi problemlos [7], sodass Sie nur noch die Verbindung konfigurieren müssen. Hierzu öffnen Sie die Konfigurationsdatei /etc/network/interfaces und ergänzen diese um einen weiteren Eintrag. Falls die Datei noch nicht existiert, erstellen Sie diese zunächst. Eine Beispielkonfiguration, bei dem das System den WLAN-Adapter als Gerät wlan0 erkennt, zeigt Listing 1.

Listing 1

 

[...]
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf

Die letzte Zeile der Beispielkonfiguration referenziert die Datei /etc/wpa.conf, die Sie ebenfalls erstellen und editieren müssen. Sie enthält die für die WLAN-Verbindung wichtigen Informationen (Listing 2).

Listing 2

 

network={
  ssid="Netzwerkname"
  proto=RSN
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP
  psk="Netzwerkschlüssel"
}

Im Beispiel kommt DHCP zum Beziehen einer dynamischen IP-Adresse und WPA2 für die Verschlüsselung zum Einsatz. Für beide Konfigurationsdateien gilt, dass Sie sie auf die entsprechende Konfiguration Ihres RasPi anpassen müssen.

Außerdem benötigen Sie auf dem RasPi ein Java Runtime Environment (JRE). Das OpenJDK-JRE richten Sie bei vorhandener Internetverbindung auf Debian-basierten Distributionen mit folgendem Befehl ein:

$ sudo apt-get install openjdk-7-jre

Unter Raspbian ist allerdings bereits das unfreie Oracle-Java vorinstalliert. Welche der beiden Umgebungen Sie verwenden, macht prinzipiell keinen Unterschied, solange diese alle Funktionen der Anwendung unterstützt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

12/2019
RasPi-Alternativen

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Grußbotschaften

    Mit Sonic Pi zaubern Sie komplexe Sounds, die Sie bei Bedarf sogar noch während des Abspielens modifizieren.

  • Das Runde und das Eckige

    Mit dem MCP4725 ergänzen Sie einen RasPi um einem D/A-Wandler, der bei Bedarf noch weitere Funktionen erfüllt.

  • Alles unter Kontrolle

    Schon ein einfaches Mikrocontrollerboard wie das CY8CKIT-049-42xx bietet erstaunlich viele Möglichkeiten beim Ansteuern von Hardware.

  • Viele Kerne

    Das Spresense Development Board von Sony lässt sich mit der Arduino IDE programmieren und bringt auch ein eigenes Entwickler-SDK mit.

  • Exotische Früchte

    Der aus China stammende Orange Pi positioniert sich mit einem guten Preis und interessanten Features gegen die RasPi-Truppe. Kann er sich auch behaupten?

  • Flexibler Surfer

    Mit dem neuen RasPi 4 setzen Sie einen öffentlichen Webkiosk schnell und kostengünstig auf.

  • Auskunftsfreudig

    Viele Devices, so auch der E.ON-Aura-Controller, verwenden eine Schnittstelle namens REST, um Zustandsdaten zu übermitteln. Mit ein wenig Bastelei lesen Sie diese auch über Ihr Smartphone aus.

  • Doppelt gemessen

    Mit wenig Aufwand und einem Pi Zero realisieren Sie einen mobilen Zweikanal-Spannungsprüfer.

  • Elegant zusammengeführt

    Tizonia streamt Musik von Online-Quellen und lokalen Sammlungen. Die schlanke Architektur macht den Player zur guten Wahl für den Einsatz auf dem RasPi.

  • Kommunikativ

    Nicht jeder traut sich zu, sein eigenes Smartphone zu bauen. Allerdings kann jeder Linux-Nutzer den Raspberry Pi im Handumdrehen zu einem VoIP-Telefon aufrüsten.