Die Umsetzung
Wen die technischen Details nicht interessieren: zum Ergebnis
Nach so einem ausgefeilten Plan, kann ja fast nichts mehr schief gehen - also ran an die Umsetzung ☺
Natürlich war die Umsetzung nicht so "stringent", wie in weiterer Folge beschrieben. V.a. die Software Entwicklung verlief parallel zum Aufbau der Hardware.
Raspberry Pi 3 aufsetzen
Ein fertiges Image mit der Version 2.0.0 könnt ihr hier herunterladen: Google Drive
Dieses Image kann einfach mit den üblichen Mitteln auf die SD Karte
kopiert werden. Wer sich in sein WLAN verbinden will muss halt noch (wie
weiter unten beschrieben) die SSID und sein WLAN Kennwort eintragen.
In den weiteren Abschnitten ist erklärt, wie das Image zustande kam. Für die "Faulen" geht's bei "IDE Kabel" weiter.
Hinweis:
Im Laufe der Zeit verändern sich die Gegebenheiten, sodass erfahrungsgemäß die beschriebenen Schritte unter Umständen nicht mehr so funktionieren.
Als erstes braucht es ein lauffähiges Betriebssystem. Die "natürliche"
Wahl fällt hier auf das offizielle System für den Raspberry Pi 3 - und
zwar in der Lite Version ohne Desktop Oberfläche, weil wir ja kein
Display anschließen: Zur Zeit ist das Raspberry Pi OS Lite
Einfach herunterladen und auf die SD Karte kopieren (wie auf der verlinkten Seite beschrieben).
Noch einfacher geht es mit dem Raspberry Pi Imager
Prinzipiell ist es möglich alles weitere zu konfigurieren, ohne dass am
Raspberry Pi 3 ein Monitor oder eine Tastatur angeschlossen ist.
Eine Beschreibung dazu siehe
https://caffinc.github.io/2016/12/raspberry-pi-3-headless/
Etwas einfacher ist es aber, einen Monitor und eine Tastatur anzuschließen.
Egal wie, nun geht es an die Konfiguration:
Speicherkarte ins Gerät gegeben und das Netzteil anhängen, sodass der Rechner gestartet wird.
Grundkonfiguration
Als erstes ist das Login notwendig:
User: "pi"
Kennwort: "raspberry"
Starten wir erst mal das KOnfigurationsprogramm:
sudo raspi-config
Nun benötigen wir folgende Einstellungen:
1 System Options
- S1 Wireless LAN
<optional> Wenn man auf eine WLAN Verbindung verzichtet oder wenn man "headless" (siehe oben) unterwegs ist, kann dieser Schritt natürlich ausgelassen werden.
- S2 Audio - Headphones
Da wir den Analog Audio Ausgang (also die Kopfhörerbuchse) benötigen, muss dieser hier entsprechend konfiguriert sein - S3 Password
Sicherheitshalber sollte das Standard Kennwort geändert werden
- P2 SSH
<optional> Aktivieren wenn man sich per SSH/SFTP über das Netwerk (ob LAN oder WLAN) auf die Box verbinden will. - P4 SPI
müssen wir aktivieren, um mit dem RFID Reader zu kommunizieren
Mit <Finish> kann man nun die Konfiguration wieder beenden und am besten gleich die Frage nach dem "reboot" mit <yes> beantworten.
System aktualisieren
FrimpieBox spezifische Installationen
MP3 Player installieren
Als MP3 Player habe ich MOC ausgewählt, der ganz einfach folgendermaßen installiert wird:sudo mkdir /root/.moc
sudo nano /root/.moc/config
welche folgende Zeilen enthält:
Im root Verzeichnis darum, weil die Software später mir dem root User ausgeführt wird.
USB Automount konfigurieren
Nun muss noch eine Konfiguration gemacht werden (https://raspberrypi.stackexchange.com/questions/100312/raspberry-4-usbmount-not-working):
sudo nano /lib/systemd/system/systemd-udevd.service
PrivateMounts=no
SPI für RFID Reader
Um auf den RFID Reader zu kommunizieren, benötigen wir die folgenden beiden Pakete installieren:
Power Button einrichten
LED Ausgänge Konfigurieren
gpio=15=op,dh
gpio=17,18=op,dl
Damit sorgen wir dafür, dass Pin 10 beim Hochstarten auf high geschalten wird, sodass die entsprechende LED aktiviert wird.
Die anderen beiden Pins werden auf low geschaltet, damit die anderen beiden LEDs sicher ausgeschaltet sind.
Autostart einrichten
FrimpieBox Software installieren
Die notwendigen Dateien sind hier zu finden:https://github.com/frimp73/FrimpieBox/releases/tag/v2.0.0
Am einfachsten ist es, den musicbox Ordner auf einen USB Stick zu kopieren, diesen in den Raspberry Pi 3 einzustecken (USB Automount haben wir ja vorher hoffentlich erfolgreich konfiguriert) und den musicbox Ordner in das /home/pi Verzeichnis zu kopieren.
cp -r /media/usb/musicbox /home/pi
So, nun sollte Software-seitig alles bereit sein - ab jetzt wird zum Lötkolben gegriffen :-)
Wichtig: Die Box darf nicht einfach ausgeschaltet werden, sondern muss immer Herunter gefahren werden!
sudo shutdown -h now
IDE Kabel
Ich hatte noch ein altes Festplattenkabel herum liegen - das eignet sich bestens, um die notwendige Hardware an den Raspberry Pi 3 anzuschließen.Quelle: www.pollin.de |
RFID Modul verdrahten
Eine sehr gute Beschreibung, zu der sonst nichts mehr erklärt werden muss, ist hier zu finden (Abschnitt "Aufbau"):Bedienelemente
Die Pins der Box sind folgendermaßen definiert:PIN 40 = MP3 Player lauter
PIN 35 = MP3 Player leiser
PIN 38 = MP3 Player nächster Track
PIN 37 = MP3 Player vorheriger Track
PIN 5 = Aus/Ein Shutdown / Restart
Für alle Taster außer dem Aus/Ein Schalter werden die internen PullUp Widerstände aktiviert und von der Software "entstört". darum können diese direkt über einen Taster auf Masse geschalten werden.
Für den Aus/Ein Taster an Pin 5 gilt dies aber nicht. Darum braucht es hier mindestens einen PullUp Widerstand.
Den Input dafür habe ich hier geholt:
https://www.elektronik-kompendium.de/sites/raspberry-pi/2110081.htm
https://www.xgadget.de/anleitung/raspberry-pi-taster-anschliessen/
Ich habe mich für 10kOhm PullUp Widerstände entschieden.
Quelle: www.elektronik-kompendium.de |
Fehlschaltungen
Vereinzelt ist es trotz dem PullUp Widerstand vorgekommen, dass die Box "von selber" einschaltet (in der Regel stecke ich die Box aber aus). Da ich bisher keinen Weg gefunden habe, dieses Problem zu provozieren, ist eine Behebung etwas mühsam. Ich werde zunächst mal einen kleineren PullUp Widerstand (1k) ausprobieren...LEDs Verdrahten
Um den Zustand der Box anzuzeigen, habe ich eine mehrfarbige LED verbaut.Der Wert der Widerständeum den Strom zu begrenzen, hängt von der verwendeten LEDs ab.
Erstellt mit www.digikey.at/schemeit |
PIN 10: blau - Box wird gerade hoch gefahren
PIN 11: grün - Box ist betriebsbereit
PIN 12: rot - Box wird herunter gefahren
Wurde die Box herunter gefahren, erlischt die LED.
Verstärker und Lautsprecher
Lautsprechersystem vs. Eigenbau
Wie schon erwähnt kann man sich einfach ein Lautsprechersystem kaufen und an den Kopfhörer Ausgang anschließen. Dann ist dieses Kapitel auch schon abgeschlossen.Da ich aber noch alte Lautsprecher aus einem defekten Radio herum liegen hatte und nicht zwei Geräte (Raspberry Pi und Lautsprechersystem) mit Spannung versorgen wollte, habe ich mich dazu entschlossen einen kleinen Verstärker zu verwenden.
Störgeräusche vermeiden
- Masse für den Verstärker direkt an die Masse des Netzteils anlöten
- Spannungsversorgung direkt an die 5V des Netzteils anlöten
- Für die Audio Leitungen ein abgeschirmtes Kabel verwenden
- Audio Masse direkt an die Masse der Kopfhörerbuchse anlöten
- Audio Eingang direkt an die Audio Ausgänge der Kopfhörerbuchse anlöten
Zusammengefasst also: löten statt stecken, und möglichst die direktesten Wege wählen.
Lautstärke anpassen
Als der Verstärker erfolgreich angeschlossen war, fiel sehr schnell auf, dass der Output viel zu laut war. Darum habe ich einen Spannungsteiler im Verhältnis 1:10 vorgeschalten, sodass nur ein geringer Teil der Spannung beim Verstärker ankommt.Das hat zusätzlich den Effekt, dass die Störgeräusche noch einmal geringer werden, sodass sie schließlich im Rauschen des Verstärkers untergehen.
Verstärker ein/ausschalten
Da die Versorgungs-Spannung immer anliegt, fiel in einer ruhigen Umgebung sehr schnell das Grundrauschen des Verstärkers auf. Darum beschloss ich, den Verstärker nur bei Bedarf (also nur wenn wirklich ein Hörspiel abgespielt wird) über einen MOSFET Transistor einzuschalten. Sobald das Hörspiel gestoppt wird, wird der Verstärker abgeschalten.Die Wahl fiel auf einen IRF9630PBF, wobei es eine Vielzahl ähnlicher Transistoren gibt, die den selben Zweck erfüllen.
Belegung des IRF9630 |
Wichtig ist nur, dass es sich um einen P-Channel Transistor handelt, da die RaspberryPi Ausgänge im Grundzustand 3.3V (und nicht 0V) führen.
https://www.electronics-tutorials.ws/de/transistoren/mosfet-als-schalter.html
Zum Schalten des Verstärkers wurde PIN 3 des Raspberry Pi 3 verwendet.
Schaltung
Erstellt mit www.digikey.at/schemeit |
Software
Folgende Features habe ich umgesetzt:- Automatische Zuweisung der Hörspiele zu den RFID Tags
D.h. man kann einfach mehrere Hörspiele (jeweils in einem eigenen Verzeichnis) auf die SD Karte kopieren. Jedesmal wenn eine neue Figur auf die Box gestellt wird, wird das nächste bisher nicht zugewiesene Hörspiel zugewiesen - Import über USB Stick
Sind alle Hörspiele die sich auf der Box befinden, schon zugewiesen, kann ein neues Hörspiel über einen USB Stick importiert werden.
Einfach einstecken, eine neue Figur auf die Box stellen und warten, bis das neue Hörspiel abgespielt wird (dann ist der Kopiervorgang abgeschlossen) - Abspielen
Durch Platzieren einer Figur wird das zugewiesene Hörspiel abgespielt. - Pausieren
Wird die Figur herunter genommen, wird das Hörspiel pausiert. Sobald die selbe Figur wieder auf die Box gestellt wird, setzt das Hörspiel dort fort, wo es zuvor pausiert wurde. - Auto Shutdown
Nach einer halben Stunde Inaktivität, schaltet sich die Box selber aus. - Verstärker wird nur bei Bedarf aktiviert
Gehäuse
Das Gehäuse war bis zuletzt ein offener Punkt, bis meine Frau eines Tages eine Karton Box von Aldi/Hofer mit nach Hause gebracht hat.Da nun die Ausmaße klar waren zimmerte ich schnell einen Rahmen aus verbilligtem "Abfall" Holz vom Baumarkt zusammen um darin die Lautsprecher und den Raspberry Pi 3 zu befestigen.
Dieser Rahmen konnte dann einfach in die Kartonbox gestellt werden und sorgt für die notwendige Stabilität und auch für etwas Gewicht.
Wichtig war natürlich, ein Loch für den Lautsprecher auszuschneiden, das dann um der Optik willen, mit einem runden Stück Filz abgedeckt wurde.
Einkaufsliste
1 Raspberry Pi 3 (ca. 32€)1 für den Raspberry passende Ultra SD Karte 16GB (ca. 8€)
1 Netzteil für des Raspberry Pi 3 (oder ein vorhandenes Smartphone Ladegerät + USB Micro-Kabel) für ca. 9€
1 Mifare RC522 RFID Modul (ca.7€)
1 Verstärker Einheit 5V, 5W, Mono (ca. 5€)
1 Gehäuse (in meinem Fall eine Schachtel aus stärkerem Karton für ca. 4€
5 Taster (ca. 12€)
1 5W 8 Ohm Lautsprecher (ca. 5€)
Elektrische Kleinteile (ca. 5€)
5 100k Widerstände
4 1k Widerstand
1 10k Widerstand
1 MOSFET P Kanal Transistor (z.B. IRF9630PBF)
1 RGB LED
je nach Gehäuse etwas Holz und ein paar Schrauben (ca. 10€)
D.h. in Summe kostet die Box ca. 100€.
Kommentare
Kommentar veröffentlichen