Zum Inhalt springen

Musik-Player für Kinder / RFID-Jukebox

Was kann das ?

Das ganze ist eine frei verfügbare Lösung um einen Musik-Spieler für Kinder zu bauen. Es gibt dazu auch gute kommerzielle Produkte, die Tonybox zum Beispiel. Aber viele - so wie ich - bauen halt lieber selbst.

Die Box kann Musik / Hörspiele abspielen, Internet-Radio-Streams abspielen, Spotify (wenn man möchte), Dateien einfach per Drag-Drop aufspielen, Diverse RFID Tags einlesen, hat eine Benutzeroberfläche die per IP Adresse zu erreichen ist. Und was meiner Frau und mir gut gefallen hat: Onkels und Tanten können einfach eine MP3 Datei schicken in der sie eine Geschichte vorlesen oder Lieder singen. Und Papa und Mama können im Urlaub Radio Bob hören wenn die kleinen im Bett sind 😉

 

Was braucht man ?

  • Raspberry Zero W
  • 2 Lautsprecher (z.B. Visaton Ø6cm)
  • Hifiberry MiniAmp
  • micro-SD Speicherkarte (z.B. 32GB)
  • RFID Transponder (EM4100)
  • USB-RFID Kartenleser (Neuftech)
  • Mini USB LiPo Akku Lademodul
  • On-Off Shim
  • Taster, LED´s
  • Kabel
  • Li-Ion Akkus + Halterung
  • Holzleim
  • MDF Platten
  • Lautsprecherabdeckung

Wie geht das ?

Es ist sehr viel bastelei, dass direkt vorweg!

Basieren tut das alles auf einer Linux Software die frei auf Github verfübar ist: Phoniebox: the RPi-Jukebox-RFID

Wer das nicht mit einem Raspberry machen möchte kann auch mal hier gucken, eine sehr sehr gute alternative! TonUINO

 

  • Raspberry Zero W'
    Das ist unser Computer, auf dem die Software läuft und der dafür verantwortlich ist das alles funktioniert
  • 2 Lautsprecher (z.B. Visaton Ø6cm)
    Hier kann man sich nach Lust und Laune etwas aussuchen, dass der MiniAmp befeuern kann...und natürlich was in seine Kiste passt. HIER NICHT AN 2€ SPAREN!!!
  • Hifiberry MiniAmp
    Die Soundkarte....ohne kommt nix raus.
  • micro-SD Speicherkarte (z.B. 32GB)
    Oder doch liebr 64GB ? Speicherplatz kost doch nix mehr....
  • RFID Transponder (EM4100)
    Passend zum Kartenleser, bitte drauf achten das es EM4100 sind, nach Bedarf kaufen, Karten oder Anhänger
  • USB-RFID Kartenleser (Neuftech)
    Bitte den und keinen anderen...kostet 12€ mit 5 Transpondern...Kann man auch auseinander nehmen und nur die "Spule" irgendwo aufkleben
  • Mini USB LiPo Akku Lademodul
    Das Ding sorgt dafür, dass ihr später Akku oder USB Netzteil oder beides zusammen benutzen könnt. Ohne Aussetzer. Und es lädt den Akku. WICHTIG
  • On-Off Shim
    Das kleine Teil sorgt dafür, dass man mit einem Taster später die ganze Maschine ein oder ausschalten kann
  • Taster, LED´s
    So wie jeder mag
  • Kabel
    Nach Bedarf
  • Li-Ion Akkus + Halterung
    Hier gibts Diverse Möglichkeiten, 3,6V Zellen wären gut, warum keine 18650 ? Da gibts auch preiswerte Halterungen für. Und ihr seit flexibel in der Laufzeit ohne Netzteil 😉
  • Holzleim
  • MDF Platten
  • Lautsprecherabdeckung

 

ON WORK

Wie geht das ? - Hardware

ON WORK

Wie geht das ? - Software

Software:

So, wir brauchen zunächst die leere Speicherkarte und dann laden wir uns Raspian runter. Die light Version, wir brauchen weder die GUI (Desktop) noch die erweiterten Programme. Ihr habt also ein Image runtergeladen und benötigt nun noch eine Software, die das alles auf die SD Karte schreiben kann. Hier gibt es viele Lösungen, Balena Etcher wird sehr oft empfohlen und ich nutze das auch gerne. Ich denke die Software könnt ihr alle selbst bei Google finden, installieren ist auch kein Thema. Ihr wählt dann später im Programm einfach das Image aus, das entsprechende Laufwerk und klickt dann auf FLASH.

Als nächstes braucht ihr ein Tool, mit dem man gut Textdateien umschreiben kann. Der Windows Text Editor ist dafür NICHT zu gebrauchen. Ich empfehle Notepad++. Hier muss noch eine Einstellung vorgenommen werden, und zwar die Formatierung am Zeilenende (ein paar Mausklicks). Sonst könnt ihr zwar alles eingeben, Raspian erkennt dann aber die Dateien nicht.

Auf der geflashten Speicherkarte findet ihr eine Datei die config.txt heißt, hier müssen ein paar Änderungen vorgenommen werden:

config_hdmi_boost=4
#dtparam=audio=on
dtoverlay=hifiberry-dac

das stellt sicher das später HiFi Berry Baustein lädt und der Pi ohne angeschlossenes HDMI Kabel bootet. Übrigens, wir werden alles ohne angeschlossene Tastatur und Monitor einstellen 😉

So, jetzt brauchen wir eine neue Datei: wpa_supplicant.conf

Die sorgt dafür, dass der Pi sich ins WLAN Netz anmeldet OHNE das wir das noch großartig einstellen müssen. Die Datei wird einfach mit Notepad++ im Hauptverzeichnis der SD Karte erstellt.
Inhalt der Datei:

country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       ssid="SSID DES WIFI"
       psk="WIFI PASSWORT"
       key_mgmt=WPA-PSK
}

Und jetzt erstellen wir noch eine Datei, die einfach SSH heißt, keine Dateiendung hat und ebenfalls im Hauptverzeichnis der Speicherkarte liegt. Das ermöglicht das wir später vom PC auf den Pi zugreifen können. In der Datei selbst steht NICHTS DRIN.

Damit wir das können, laden wir PUTTY runter und installieren das Programm. Und wir vergeben im Router eine feste IP-Adresse für den Pi, damit wir darauf später immer unter der gleichen Adresse zugriff haben. Putty ist ein Windows Programm das Konsolenzugriff per SSH zum Pi ermöglicht. Aber keine Angst das tut wirklicht nicht weh! Versprochen.

Schön, ihr habt Putty installiert, feste IP Adresse vergeben und Putty geöffnet. Ihr tragt dann da einfach die IP Adresse vom Pi ein und klickt dann auf open.

Der Pi möchte dann einen Benutzernamen wissen: Pi
Und dann ein Passwort: raspberry

Für diejenigen die noch nie mit Linux gearbeitet haben, Linux zeigt Passwörter nicht an, aber man kann sie trotzdem eintippen! Man sollte später unbedingt die Zugangsdaten ändern, da das die Standard-Zugänge sind! Auch hier hilft eine Suchmaschine eurer Wahl weiter.

Jetzt werden wir das Dingen erst mal auf den neuesten Stand bringen:
sudo apt update

Kleiner Hinweis.  Das muss man nicht abtippen, es reicht wenn man das hier kopiert und dann einmal in Putty links und dann einmal rechts klickt. Dann landet der Befehl in der Konsole! Sehr einfach! Danach sorgen wir dafür, dass alle Pakete auf dem neusten Stand sind:

sudo apt full-upgrade


War doch bis hierher einfach, oder ?

Jetzt müssen wir noch ein bisschen Dateien ändern, ebenfalls in der Konsole

sudo nano /boot/config.txt

 dort tragen wir ein:

dtoverlay=hifiberry-dac

und gucken nach ob

dtparam=audio=on

so aussieht

#dtparam=audio=on

(wenn nicht, ändern)
(Mit Strg+X speichern und schließen)

dann geht es weiter:
sudo nano /etc/asound.conf

Dort tragt ihr ganzen Unten (nicht vergessen das das auch mit Kopieren geht)

pcm.hifiberry {
type softvol
slave.pcm "plughw:0"
control.name "Master"
control.card 0
}
pcm.!default {
type plug
slave.pcm "hifiberry"
}
ein. Speichern, schließen, super.
Jetzt installieren wir die Phoniebox Software:
cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID/master/scripts/installscripts/buster-install-default.sh; chmod +x buster-install-default.sh; ./buster-install-default.sh
  • WiFi haben wir bereit konfiguriert! Also NEIN
  • Beim Audiointerface ist PCM falsch und wir tragen MASTER ein
  • Ihr wollte Spotify ? Das wisst ihr selbst (wir nutzen es nicht)
  • Ja wir wollen den MPD (Music Player Daemon) installieren
  • Ja wir wollen die Default locations
  • Ja ihr wollte die Installation starten 😉
  • Die WINS abfrage müssen alle mit Windows als JA beantworten
  • Dann müsste eine Abfrage kommen ob ihr den USB-RFID Reader angeschlossen habt. Da müsst ihr das Keyboard auswählen (der Reader wird als Keyboard erkannt)

So, wenn das fertig ist

sudo reboot

dann neu anmelden (putty)

Wir installieren nun die Software für den On/Off Shim:

sudo curl https://get.pimoroni.com/onoffshim | bash
danach ist die Frage, muss man die Pinbelegung noch anpassen oder nicht. Wer das muss, öffnet mit
sudo nano /etc/cleanshutd.conf
Da findet man unter anderem:
daemon_active=1
trigger_pin=17
led_pin=25
poweroff_pin=4
hold_time=2
shutdown_delay=0
polling_rate=1
Trigger Pin ist wichtig, da sollte der An/Aus Taster dran sein. Das gleiche gilt für Poweroff Pin und led_pin.
Mit hold_time könnt ihr einstellen wie lange man die Ein/Aus Taste drücken muss damit das Dingen aus geht.
Der erschaffer des Scriptes hat auch dafür gesorgt, dass man die Tasten beim Ein/Ausschalten animieren kann,
dazu müsst ihr folgende Dinge ausführen:
git clone https://github.com/splitti/phoniebox_led_control --branch master
sudo ln -s ~/phoniebox_led_control/service/phoniebox_led_control.service /etc/systemd/system/phoniebox_led_control.service
sudo systemctl daemon-reload
sudo systemctl enable /etc/systemd/system/phoniebox_led_control.service
sudo service phoniebox_led_control start
So, jetzt müssen wir noch Samba installieren und konfigurieren, dann wären wir fertig. Samba ist ein Dienst, der ermöglicht mit anderen Computern auf die Dateien und Verzeichnisse des Raspberry zuzugreifen.
sudo apt-get install samba samba-common-bin
weiter geht es mit:
sudo nano /etc/samba/smb.conf
da müsst ihr etwas suchen um zu gucken das da steht, evtl. nachtragen (WINS sollte yes sein (ihr erinnert euch an die Installation?))
workgroup = WORKGROUP
wins support = yes

und zu guter letzt:

sudo nano /etc/samba/smb.conf

da müsst ihr folgendes nachtragen:

[RFID-MUSIKSPIELER]
comment=RFID_MUSIKSPIELER
path=home/pi/RPi-Jukebox-RFID/shared/audiofolders
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=no

und ab jetzt solltet ihr über die IP Adresse zugriff auf den Phoniebox-Benutzeroberfläche haben.

 

Die verflixten Taster

Die Taster sind für viele echt ein Problen und mich haben sie fast in den Wahnsinn getrieben!

Wenn ihr Taster an eurem PI angeschlossen habt, müsst ihr evtl. noch was konfigurieren.
Zu nächst wieder  der gute alte Nano:

sudo nano home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons/gpio-buttons.py
darin findet ihr jede Menge Text. Genrell muss man jetzt aufpassen. In der Datei ist immer von den
GPIO-Pins die Rede. Die Nummerierung und Positionierung ist bei jedem Pi (also Zero, 2/3/4) anders,
informiert euch also, welche Hardware Pins, GPIO sind und welche Nummern die haben.
Genrell gilt - und das steht sonst nirgends - wenn ihr nur 2 Taster - sagen wir mal für Lauter und Leiser
einbauen wollte, ist das kein Problem, ihr müsst nur ALLE Zeilen auskommentieren die das Betrifft. Also
vor diesem Textbaustein und auch danach. Auskommentieren heißt: wir machen eine # davor. Wenn ihr einen
anderen GPIO Pin verwendet, ist das die richtige Stelle um die Zahlen zu ändern:
shut = Button(3, hold_time=2)
vol0 = Button(13,pull_up=True)
volU = Button(16,pull_up=True,hold_time=0.3,hold_repeat=True)
volD = Button(19,pull_up=True,hold_time=0.3,hold_repeat=True)
next = Button(26,pull_up=True,hold_time=2.0,hold_repeat=False)
prev = Button(20,pull_up=True,hold_time=2.0,hold_repeat=False)
halt = Button(21,pull_up=True)
shut.when_held = def_shutdown
vol0.when_pressed = def_vol0
Und dann sind wir fertig!