Startseite>Mit dem Raspberry Pi einen Weihnachtskalender ansteuern
Aus Raspberry Pi Geek 06/2016

Mit dem Raspberry Pi einen Weihnachtskalender ansteuern

© Ekaterina Bychoval, 123RF

Es weihnachtet sehr

Martin Mohr

Über einen gut bestückten Weihnachtskalender freut sich jeder – wer es richtig geekig möchte, der bastelt ein Exemplar mit RasPi-Steuerung.

Selbst gebastelte Weihnachtskalender erfreuen sich großer Beliebtheit. Sie eignen sich vorzüglich als individuelles Geschenk, über das sich nicht nur die Beschenkten freuen, sondern auch der RasPi-Bastler selbst.

Wie bereits im vorletzten Jahr bauen wir 2016 wieder einen Raspberry-Pi-gesteuerten Weihnachtskalender. Er gibt jeden Tag mit musikalischer Untermalung ein kleines Geschenk frei und zeigt den aktuellen Tag an. Sie dürfen den Adventskalender nach Belieben mit Schokolade, kleinen Botschaften, Gutscheinen oder Gadgets befüllen – es muss nur alles in die kleinen Schachteln passen.

Anders als die Konstruktion aus dem Jahr 2014 – sie wies die Maße eines Billy-Regals auf – planen wir diesmal einen Weihnachtskalender im handlichen Format, der sich problemlos auf einen Tisch stellen lässt.

Auch System und Design haben sich verändert. So gibt in dieser Variante ein einfaches Fallmagazin die Geschenke aus. Dessen Vorteil besteht darin, dass sich die einzelnen Schachteln nicht ineinander verhaken können. Die Anzeige des Datums übernehmen zwei Siebensegmentanzeigen, als Betriebssystem kommt das aktuelle Raspbian “Jessie” Lite 2016-05-27 zum Zug.

Taster

Der Taster dient als zentrales Element des Kalenders, der alle Abläufe startet. Um ihn zu verwenden. installieren Sie zunächst die WiringPi-Bibliothek (siehe Kasten “WiringPi einrichten”). Wie Sie den Taster am RasPi anschließen, zeigt der Schaltplan (Abbildung 1), den Sie auch als EPS- und GEDA-Datei auf der Heft-DVD finden. Danach starten Sie einen Testlauf, um die Funktionsfähigkeit des Tasters zu prüfen:

$ gpio mode 1 in
$ watch -n0.5 gpio read 1

Der erste Befehl definiert den Anschluss GPIO1 als Input. Der zweite liest alle 0,5 Sekunden das Ergebnis ein und gibt es auf dem Bildschirm aus. Drücken Sie den Taster, sollte eine 1 darauf erscheinen.

Abbildung 1: Der Schaltplan zeigt, wie Sie die einzelnen Komponenten des Weihnachtskalenders zusammenlöten müssen.

Abbildung 1: Der Schaltplan zeigt, wie Sie die einzelnen Komponenten des Weihnachtskalenders zusammenlöten müssen.

WiringPi einrichten

Die WiringPi-Bibliothek ermöglicht den einfachen Zugriff auf die GPIO des RasPi. Sie stellt einfache Kommandos sowie eine C-API zur Verfügung, um von den I/O-Ports zu lesen und darauf zu schreiben. Unter anderem bringt sie auch Treiber für den I2C-Bus mit. Die Installation nehmen Sie wie in Listing 1 gezeigt vor. Mit dem Aufruf gpio readall testen Sie abschließend den Erfolg der Installation. Bei korrekter Installation erscheint als Ausgabe die GPIO-Belegung des RasPi. Weiterführende Informationen zu WiringPi finden Sie auf der Homepage des Projekts [1].

Listing 1

 

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build
$ cd ..

Anzeige

Eine Anzeige des aktuellen Tages gehört zu jedem guten Weihnachtskalender. Im vorliegenden Projekt übernimmt eine zweistellige Siebensegmentanzeige diese Aufgabe. Der RasPi steuert sie über die I2C-Schnittstelle an. Ein PCF8574 fungiert dabei als I/O-Baustein und liefert die Anzeigedaten zunächst binär. Zwei Decoder vom Typ CD4543 bringen diese binären Daten in das Format, das die Siebensegmentanzeige benötigt. Abbildung 1 zeigt den Schaltplan dazu. Verwenden Sie für die Anzeige eine separate Platine, lässt sich diese auch nach Weihnachten in anderen Projekten weiter nutzen.

Um auf die I2C-Schnittstelle zuzugreifen, müssen Sie den I2C-Treiber installieren, was mittlerweile reibungslos klappt. Dazu starten Sie zunächst einmal die Raspi-Konfiguration mit dem Aufruf sudo raspi-config. Unter den Advanced Options finden Sie den Unterpunkt I2C, in dem Sie alle Fragen mit ja beantworten. Raspi-config bootet nach dem Beenden den Raspberry Pi neu, danach sollten die nötigen Treiber vorhanden sein.

Um den I2C-Hardware-Aufbau zu testen, benötigen Sie noch die i2c-tools (Listing 2, erste Zeile). Überprüfen Sie danach, ob sich der I/O-Baustein am I2C-Bus auch meldet (zweite Zeile). Wie die Ausgabe zeigt, findet sich unter der Adresse 0x3f ein Baustein am Bus. Mit der folgenden Eingabe sprechen Sie den Chip an:

$ i2cset -y 1 0x3f 0x00

Jetzt müsste eine 00 auf der Anzeige erscheinen. Anstelle von 0x00 tragen Sie jede beliebige Zahl ein, welche die Siebensegmentanzeige darstellen soll.

Listing 2

 

$ sudo apt-get install i2c-tools
$ i2cdetect -y 1
   0 1 2 3 4 5 6 7 8 9 a b c d e f
00:     -- -- -- -- -- -- -- -- -- -- -- -- --
[...]
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3f
[...]
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Sound

Erst eine passende musikalische Untermalung sorgt für die rechte weihnachtliche Stimmung. Dazu schließen Sie einen handelsüblichen Aktivlautsprecher an den Klinkenstecker des Raspberry Pi an. Zum Ausprobieren kommt das Tool play aus dem Paket sox zum Einsatz (Listing 3, erste Zeile). Zum Testen spielen Sie eine beliebige WAV- oder OGG-Datei ab (zweite Zeile). Klappt das nicht auf Anhieb, müssen Sie den RasPi noch mithilfe von Amixer dazu überreden, den Klinkenstecker für die Soundausgabe zu verwenden (letzte Zeile).

Listing 3

 

$ sudo apt-get install sox
$ play Audiodatei.wav
$ sudo amixer cset numid=3 1
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland