Aus Raspberry Pi Geek 06/2016

Mit dem Raspberry Pi einen Weihnachtskalender ansteuern (Seite 2)

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

Die Sounddateien lagern im Unterordner sounds/ des Projektverzeichnisses (bei uns: /home/pi/calendar/), die ersten zwei Stellen des Dateinamens entsprechen dem Tag der Wiedergabe.

Fallmagazin

Eine grobe Vorstellung davon, wie das Projekt in seiner Rohfassung aussieht, zeigt Abbildung 2. Den Bauplan (Abbildung 3) haben wir absichtlich nicht bemaßt, da sich die Baugröße an den von Ihnen verwendeten Schachteln orientiert. Sie müssen das Magazin aber mindestens so hoch bauen, dass 24 Schachteln hineinpassen.

Dafür eignen sich beispielsweise einfache Streichholzschachteln, die Sie weihnachtlich dekorieren. Es gibt auch für den Bastelbedarf kleine Schachteln, die sich für ein solches Magazin bestens eignen. Jeden Tag schiebt der Kalender eine Schachtel unten heraus, die für den Folgetag rutscht von oben nach. Die Mechanik, die das erledigt, ist ziemlich einfach aufgebaut. Auf der Heft-DVD finden Sie ein kleines Video, das zeigt, wie der Mechanismus arbeitet.

Abbildung 2: Das obere Bild zeigt die Frontansicht des technisch funktionsfähigen, aber undekorierten Kalenders, das in der Mitte dessen Rückseite und das untere den Mechanismus, der später die Geschenke herausschiebt.

Abbildung 2: Das obere Bild zeigt die Frontansicht des technisch funktionsfähigen, aber undekorierten Kalenders, das in der Mitte dessen Rückseite und das untere den Mechanismus, der später die Geschenke herausschiebt.

Abbildung 3: Damit sich der Kalender problemlos an die Größe der Geschenkschachteln anpassen lässt, verzichtet der Bauplan bewusst auf die Angabe von Maßen.

Abbildung 3: Damit sich der Kalender problemlos an die Größe der Geschenkschachteln anpassen lässt, verzichtet der Bauplan bewusst auf die Angabe von Maßen.

Um den Servomotor zum Auswerfen der Geschenke anzusteuern, verwenden wir das Tool Servoblaster. Der Schaltplan (Abbildung 1) zeigt, wie Sie den Servo richtig anschließen. Weil alle Motoren Störungen in der Spannungsversorgung erzeugen, versorgen Sie ihn nicht über den 5-Volt-Anschluss der GPIO, sondern über eine separate Spannungsversorgung. Auch die Signalleitung trennen Sie mithilfe eines Optokopplers galvanisch. Nach dem Anschluss des Servomotors am RasPi folgt die Installation der nötigen Software (Listing 4).

Listing 4

 

$ git clone git://github.com/richardghirst/PiBits.git
$ cd PiBits/ServoBlaster/user
$ make

Beachten Sie bitte, dass die Servoblaster-Software derzeit nur mit dem RasPi 1 fehlerfrei zusammenarbeitet. Um den Userspace-Treiber für den Servomotor zu laden, tippen Sie folgenden Befehl:

$ sudo ./servod --p1pins=11 --pcm

Die Option --pcm ist wichtig: Ohne sie würde Servoblaster den PWM-Generator verwenden und damit die Soundausgabe des Raspberry Pi stören. Um den Servoblaster-Daemon servod zu beenden, beenden Sie zunächst mittels sudo killall servod alle entsprechenden Prozesse.

Servod erstellt einen recht einfach zu bedienenden Gerätetreiber. Der Servoblaster-Treiber unterstützt das Ansteuern von bis zu 21 Servomotoren. Folgende Anweisung weist dem Servo 0 den Wert 140 zu:

$ echo 0=140 > /dev/servoblaster

Das entspricht normalerweise etwa der Mittelposition des Motors. Ermitteln Sie durch Ausprobieren jetzt die Werte, die Sie für Ihren Aufbau benötigen. Beim Kalender des Autors lautet der Wert “vorgeschoben” 100, für “eingefahren” liegt er bei 140. Diese Einstellungen unterscheiden sich aber je nach Aufbau, da verschiedene Servomotor-Modelle sich leicht unterschiedlich verhalten. Nicht zuletzt hängt der richtige Wert auch vom Aufbau der Schubmechanik ab.

Software

Die Steuerung des Weihnachtskalenders übernimmt dieses Jahr kein eigenes Programm. Stattdessen kommen ausschließlich Linux-Bordmittel zum Einsatz, konkret einige Shell-Skripte und die CLIs von WiringPi und Servoblaster. Die Projektdateien lagern in unserem Beispiel im Ordner /home/pi/calendar/ und dessen Unterordnern.

Der Scheduler Cron sorgt dafür, dass die Skripte zu den richtigen Zeitpunkten starten. Haben Sie mit Cron noch keine Erfahrung, hilft der Artikel “Punktlandung” aus LU 02/2006 weiter [2], den Sie auch als PDF auf der Heft-DVD finden.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 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