Listing 1
MP3-Dateien umwandeln
$ sudo apt-get update $ sudo apt-get -y install sox $ sox input.mp3 -r 8k output.mp3 channels 1
Software
Die Software für den Pico umfasst nur wenige Zeilen CircuitPython-Code. Die Installation von CircuitPython war schon mehrmals Thema in einer der früheren Ausgaben, im Internet gibt es dafür viele Anleitungen. Das komplette Anwendungsprogramm beziehen Sie über das Projekt-Repository [1] des Autors, wo Sie auch eine kurze Installationsanleitung finden. Insgesamt dauert das Vorbereiten des Pico nur wenige Minuten.
Der Kern der Anwendung (Listing 2) besteht aus zwei Schleifen, einmal über die Liste der Musikstücke und einmal über alle Bilder. Die Ausgabe der Musik (Zeile 31) erfolgt dabei asynchron und die Bilder wechseln parallel zur Musik. Das Ganze läuft in einer Endlosschleife. Der Bildwechsel erfolgt recht langsam, was verdeutlicht, wie sehr das Abspielen der Musik den Pico belastet. Das stört hier aber nicht, denn der Effekt wirkt wie eine Diashow mit langsamer Bildüberblendung.
Listing 2
Software (Auszug)
[...]
import board
import time
import busio
import displayio
# SPI-TFT-Display
from adafruit_st7735r import ST7735R
import audiomp3
import audiopwmio
# --- Konstanten
PIN_PWM = board.GP0
[...]
IMG_FILES = [
'stern-von-bethlehem.bmp',
'kugel+kerze.bmp',
'blauer-stern.bmp'
]
SND_FILES = [
'stille-nacht.mp3',
'o-tannenbaum.mp3'
]
# --- Bild aktualisieren
[...]
# --- main loop
audio = audiopwmio.PWMAudioOut(PIN_PWM)
decoder = audiomp3.MP3Decoder(open("./media/"+SND_FILES[0], "rb"))
while True:
for snd in SND_FILES:
# aktuelle Sound-Datei abspielen
decoder.file = open("./media/"+snd, "rb")
audio.play(decoder)
# beim Abspielen Bild anzeigen
while audio.playing:
for img in IMG_FILES:
time.sleep(5)
upd_image(img)
# Sound-Datei schliessen
decoder.file.close()
Die Box
Die Box kommt beim Autor aus dem 3D-Drucker, aber das ist nicht unbedingt nötig. Eine ausreichend große und schöne Lebkuchendose tut es auch. Wer mit Holz umgehen kann, kann die Box auch mit diesem Material gestalten.
Den Lautsprecher und den Bildschirm montieren Sie auf eine Blende, die Sie dann in den Deckel einsetzen. In Abbildung 3 befindet sich der PAM8302A unterhalb der grünen Hilfsplatine. Dazu ist eine Mindestgröße der Blende von etwa 10 x 6 Zentimetern notwendig. Die Blende in der Abbildung fällt mit 14 x 12 Zentimetern aber deutlich größer aus. Vom Deckel führen dann die Kabel zum Pico.
In das Unterteil der Box kommt später wie bei russischen Matroschka-Puppen eine weitere Box hinein, die kleiner und weniger hoch ist als die äußere Schachtel. Dadurch entsteht ein doppelter Boden. Der Hohlraum sollte so bemessen sein, dass der Batteriehalter hineinpasst (Abbildung 4). Der Halter samt Batterien gibt der Box auch eine gewisse Stabilität. Die innere Box (Einsatz) stellen Sie am Schluss nur hinein, damit der Batterietausch kein Problem darstellt.
Da der Einsatz kleiner ist als die Box selbst, entsteht auch Platz zwischen den Wänden. Diese Hohlräume nehmen dann den Pico sowie die Verkabelung auf. Der Einfachheit halber sorgt Klebeband für die Fixierung aller Komponenten.
Die komplette Box sehen Sie in Abbildung 5. Die Verzierungen auf der Schachtel kommen aus dem 3D-Drucker. Auf Thingiverse finden Sie unter dem Stichwort Christmas Ornament diverse Vorlagen dazu.
In der Abbildung nicht zu sehen sind die Scharniere, die eine besondere Herausforderung darstellen. Eine Möglichkeit bieten kleine Metallscharniere, die Sie für wenig Geld bei diversen Versendern erhalten. Alternativ drucken Sie die Scharniere selbst. Eine parametrische Vorlage dafür gibt es ebenfalls auf Thingiverse [2]. Der 3D-Drucker erstellt die Scharniere in einem Stück, sie funktionieren aber auf magische Weise trotzdem.
Wenn Sie das Ganze nachdrucken möchten, finden Sie weitere Abbildungen, Hinweise sowie die Designdateien im OpenSCAD-Format im Projekt-Repository des Autors. Dank Parametrisierung lassen sich alle Modelle einfach an eigene Bedürfnisse und die Toleranzen des verwendeten Druckers anpassen. Der Deckel, das Unterteil sowie der Einsatz der Box sind für den Vasendruck ausgelegt, was den Vorgang ungemein beschleunigt.
Fazit
Der Raspberry Pi Pico überrascht immer wieder durch seine vielseitigen Einsatzmöglichkeiten, im konkreten Fall als einfacher MP3-Spieler. Das ist nicht nur der Hardware zu verdanken, sondern auch der Community, die für alle möglichen Einsatzzwecke Programme entwickelt hat. Das hier vorgestellte Projekt können Sie zwar eins zu eins nachbauen, aber mehr Spaß verspricht eine Anpassung und Weiterentwicklung.
Eine Möglichkeit wäre zum Beispiel der Einsatz als Adventskalender. Mit dem neuen Pico W können Sie über das Internet das aktuelle Datum abfragen und im Dezember für jeden Tag ein anderes Bild anzeigen. Dafür wird auf einem normalen Pico W der Speicherplatz zwar etwas knapp, aber diverse Hersteller haben Pico-Varianten im Angebot, die statt 2 MByte die doppelte, vierfache oder sogar achtfache Speichergröße bieten. Alternativ dazu könnten Sie die SD-Karte auf der Rückseite des Displays nutzen oder die Bilder gleich von einem Webserver laden. Da das Display die teuerste und sperrigste Komponente ist, könnten Sie es auch weglassen und stattdessen mit LEDs für zusätzliche Stimmung sorgen. Beachten Sie dabei aber das Strombudget des Pico.








