Aus Raspberry Pi Geek 06/2015

Mit dem RasPi zu Halloween richtig spuken

© Sandra Cunningham, 123RF

Süßes oder Saures

Martin Mohr

Zu Halloween geht es diesmal richtig gruselig zu, denn die Gespenster bekommen digitale Unterstützung von einem Raspberry Pi.

Am Abend vor Allerheiligen ziehen vielerorts Kinder auf der Jagd nach Süßem oder Saurem durch die Straßen. Der Brauch hat sich auch in Deutschland geradezu seuchenartig verbreitet, obwohl er eigentlich aus Irland stammt und durch Einwanderer in den USA sehr populär wurde. Wer einen RasPi sein Eigen nennt, der hat die Möglichkeit, diesem alten Brauch einen modernen Anstrich zu verpassen: mit einem digitalen Gespenst, das nicht nur schaurig mit den Augen funkelt, sondern dazu passend heult und stöhnt.

Augen und Mund

Für die Augen und den Mund kommt ein fertig aufgebautes LED-Modul zum Einsatz, das aus dem MAX7219 und einer LED-Matrix mit 8 x 8 Dioden besteht. Dieses Bauteil gibt es unter anderem bei Ebay [1]. Dabei lohnt es sich, darauf zu achten, dass der Versand aus Europa stattfindet – aus China dauert die Anlieferung mitunter vier Wochen.

Das Modul verfügt über eine SPI-Schnittstelle, über die Sie es ohne zusätzliche Bauelemente an den Raspberry Pi anschließen. Sollten Sie mit dem SPI-Interface nicht vertraut sein, werfen Sie einen Blick in den Kasten “SPI-Schnittstelle”. Der Schaltplan in Abbildung 1 zeigt, wie Sie die Module verschalten müssen; Sie finden ihn auf der Heft-DVD in den Formaten gEDA und EPS. Damit die Module einen stabilen Halt bekommen, verwenden Sie als Basis eine handelsübliche Lochraster-Europlatine.

Abbildung 1: Der Schaltplan für das komplette Halloween-Gespenst.

Abbildung 1: Der Schaltplan für das komplette Halloween-Gespenst.

Abbildung 2 zeigt, wie das Gespenstergesicht hinter den Kulissen aussieht. Falls die Module mit abgewickelten Pfostensteckern ausgestattet sind, sollten Sie diese durch gerade Pfostenstecker austauschen. Damit befestigen Sie die Module dann einfach über Buchsenleisten [2] auf der Platine. So lassen sich die LED-Module bei Bedarf später auch leichter in anderen Projekten recyceln.

Abbildung 2: Das Gesicht unseres Gespenstes. Hier sehen Sie, wie die LED-Module auf der Europlatine angeordnet sind.

Abbildung 2: Das Gesicht unseres Gespenstes. Hier sehen Sie, wie die LED-Module auf der Europlatine angeordnet sind.

SPI-Schnittstelle

Das Serial Peripheral Interface (SPI) stammt aus den Labors von Motorola, wo es entwickelt wurde, um unterschiedliche Peripheriebausteine (“Slaves”) an einen Busmaster anzuschließen. Die Kommunikation erfolgt seriell und synchron, was bedeutet, dass der Busmaster über die mit CLK bezeichnete Leitung einen festen Takt für die Datenübertragung vorgibt. Neben der Leitung für den Takt gibt es noch die Leitungen MOSI (“Master Out, Slave In”) und MISO (“Master In, Slave Out”), über die die Daten laufen.

Die einzelnen Teilnehmer erhalten keine festen Adressen, sondern schieben die Daten einfach zum nächsten Slave weiter. Damit funktioniert der SPI-Bus wie ein langes Schieberegister. Damit die Slaves sich vom konsistenten Zustand der Schieberegister vergewissern können, gibt es noch die Leitung CE (“Chip Enable”). Sobald der Master alle Daten an die richtigen Stellen geschoben hat, setzt er dieses Signal, damit die Slaves wissen, dass sie jetzt den Bus lesen oder schreiben dürfen.

Damit dieses Verfahren fehlerfrei funktioniert, muss der Busmaster die komplette Topologie des Busses kennen. Daten für den letzten Teilnehmer wandern durch alle anderen Teilnehmer auf dem Bus. Normalerweise verfügen die Slaves über eine Funktion NOOP (“No Operation”), die sie dazu veranlasst, nichts mit den Daten zu machen.

Um den SPI-Bus einzusetzen, gilt es, die Steuersoftware exakt an die Hardware anzupassen. Dazu sollten Sie die Datenblätter der einzelnen Teilnehmer auf dem Bus sorgfältig studieren. Der SPI-Bus kommt oft in Displays zum Einsatz, da hier immer eine große Datenmenge am Stück anfällt. In Fällen, in denen Sie oft verschiedene I/O-Bausteine einzeln auslesen oder beschreiben, bietet der I2C-Bus gegenüber SPI zahlreiche Vorteile.

Die Arme

Um die Arme in Bewegung zu versetzen, erhält die Konstruktion zwei kleine Servomotoren. Die Arme selbst bestehen aus einfachem Spanndraht, wie Sie ihn für Zäune verwenden würden. Als Hände kommen, wie sich in Abbildung 3 unschwer erkennen lässt, einfache Latex-Handschuhe aus dem Erste-Hilfe-Kasten zum Einsatz. Einen Knackpunkt im wahrsten Sinne des Wortes stellt die Befestigung des Servomotors dar: Die Arme üben einen langen Hebel aus, daher gilt es, hier auf eine stabile Verbindung zu achten.

Abbildung 3: Der Aufbau für die Arme des Gespensts mitsamt der Servomotoren und Latex-Hände.

Abbildung 3: Der Aufbau für die Arme des Gespensts mitsamt der Servomotoren und Latex-Hände.

Haben Sie kein Netzteil mit der passenden Spannung für den Servo parat, hilft ein DC-DC-Wandler [3] weiter. Allerdings verursachen die Servomotoren oft Störungen in der Spannungsversorgung, daher empfiehlt es sich, ein zusätzliches Netzteil zu betreiben. Die Leitungen für die Signale an die Servos trennen Sie über Optokoppler galvanisch, damit darüber keine Störungen bis zum RasPi durchkommen. Achten Sie darauf, die Leitungen für Masse nicht zu verbinden, um die galvanische Trennung zu gewährleisten. Sie sehen die beiden Optokoppler im unteren Teil des Schaltplans.

Winken und Sprechen

Damit das kleine Gespenst nicht den ganzen Halloween-Abend spukt, setzt ein Infrarot-Bewegungsmelder [4] (PIR) die Mechanik in Gang. Er weckt das Gespenst immer dann auf, wenn jemand in dessen Nähe kommt. Der Sensor arbeitet problemlos mit dem GPIO-Interface des Raspberry Pi zusammen. Die Empfindlichkeit stellen Sie über eines seiner zwei Potentiometer ein.

Darüber hinaus gibt das Gespenst Laute von sich. Dazu schließen Sie einfach eine handelsübliche Aktiv-Lautsprecher-Box an den Klinkenstecker des RasPi und spielen darüber ein schauriges Heulen ab (siehe Datei gost.wav auf der Heft-DVD). Zum Ausprobieren genügt das Tool Play, das Sie mit sudo apt-get install sox installieren. Klappt das Abspielen nicht auf Anhieb, überreden Sie den Mini-PC mit folgendem Befehl dazu, die entsprechende Buchse für die Ausgabe des Sounds zu verwenden:

$ sudo amixer cset numid=3 1

Zum Testen verwenden Sie eine beliebige WAV-Datei. Das Laden des SPI-Moduls erledigen Sie via Raspi-config. Unter dem Menüpunkt 8 Advanced Options finden Sie den Unterpunkt A6 SPI. Dort beantworten Sie die zwei Fragen mit Yes. Sobald Sie das Tool beenden, möchte es den Rechner neu starten, was Sie erlauben. Sobald Sie wieder Zugriff auf den RasPi haben, laden Sie das SPI-Modul mittels gpio load spi. Das sollte jetzt ohne Fehler funktionieren.

Endmontage

Um aus den einzelnen Komponenten ein richtig schauriges Gespenst zu machen, benötigen Sie jetzt noch ein nicht zu schweres weißes Tischtuch, das Sie über die Konstruktion legen. Es sollte dünn genug ausfallen, dass die LEDs gut durchscheinen. Abbildung 4 zeigt das komplett aufgebaute Halloween-Gespenst mit Raspberry Pi. Auf der Heft DVD finden sich zudem zwei Videos, die es in voller Aktion zeigen.

Abbildung 4: Nach der komplizierten Endmontage steht das Gespenst zum Einsatz bereit.

Abbildung 4: Nach der komplizierten Endmontage steht das Gespenst zum Einsatz bereit.

Der Raspberry Pi 2 bringt genügend Rechenleistung mit, um für die Programmierung Java zu verwenden. Mit der passenden Bibliothek Pi4j und genug CPU-Power eignet sich diese Sprache bestens für Hardware-Projekte. Um die GPIO über Java anzusteuern, kommt die Library des Pi4j-Projekts zum Einsatz. Damit diese fehlerfrei arbeitet, fallen vor ihrer Installation einige Vorarbeiten an.

WiringPi installieren

Die Bibliothek WiringPi ermöglicht einen einfachen Zugriff auf die GPIO-Schnittstelle des Raspberry Pi. Gordon Henderson hat die Software geschrieben und pflegt sie derzeit laufend weiter. WiringPi stellt einfache Kommandos sowie eine C-API bereit, um die I/O-Ports auszulesen und zu beschreiben. Außerdem bringt WiringPi auch Treiber für den I2C- und den SPI-Bus mit.

Sie integrieren die Bibliothek mit den Kommandos aus Listing 1 ins System. Der Raspberry Pi benötigt einige Zeit für den Build; anschließend testen Sie, ob die Installation erfolgreich war (Listing 2). Für weiterführende Informationen zu WiringPi sei auf die Homepage des Projektes verwiesen [5].

Listing 1

 

$ sudo apt-get update
$ sudo apt-get upgrade
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben