Die Schembergs!

QR Music - Ein MP3-Player für Kindergartenkinder

Dezember 2014

Die Ausgangslage

CDs machen in der Handhabung viele Probleme:

  • sie zerkratzen leicht (und funktionieren dann nicht mehr)
  • ihre Hüllen gehen leicht kaputt
  • man muss sie richtig herum einlegen
  • man muss sie sehr genau einlegen
  • sie hat nur 70min Inhalt
  • sie ist immer nur an einem Ort (im Wohnzimmer oder(!) im Auto)

Die Erkenntnisse sind nicht neu, daher benutzen die meisten ja auch heute MP3-Dateien und MP3-Player. CDs gehören nicht in Kinderhände, wenn sie länger funktionieren sollen, leider kann man MP3-Player aber erst bedienen, wenn man lesen kann.

Der Lösungsansatz

Über einen Artikel bei PI Geek bin ich auf die Idee gekommen einen Raspberry PI (Modell B+) mit einer USB-Webcam zu einem QR Code lesenden MP3-Player zu machen.

Wichtig: Die Basis, also welche Softwarepakete usw. zu installieren beschreibe ich hier nicht, bitte laden Sie sich für 0,99 € den Artikel.

Die weitere Google Suche brachte noch eine weitere Seite zum Vorschein.

Beide Lösung erschienen mit aber nicht robust genug, sondern sind wohl eher Versuchsaufbauten. Ich wollte aber eine robuste Lösung, die von den Kindern auch genutzt werden kann.

Stückliste

Ich habe folgende Dinge zu einem Player umgebaut:

  • Raspberry Pi (ca. 35€)
  • Micro SD-Karte 8 GB (ca. 8 €)
  • Netzteil 5V 2A (5 €)
  • USB-Stick für MP3s 8 GB (5 €)
  • USB-Webcam (Logitech C270) (10€)
  • Logitech S-120 Aktivlautsprecher (13 €)
  • 2 Taster (6 €)
  • USB-LED-Leuchte (2 €)
  • 4 GPIO-Kabel
  • 2 Stk. 1k Widerstand
  • 2 Stk. 10k Widerstand
  • 3,5mm Klinkenverlängerungskabel (1 €)
  • Holzkiste mit Deckel (6 €)
  • Kleinmaterial (Schrauben, Kleber, Draht usw.)

Die Webcam könnte auch eine billigere sein, für das Aufnehmen der QR Codes wird nur eine Auflösung von 320x240px verwendet, aber diese WebCam hatte ich noch über. Hier finden Sie Informationen, wie man die Webcam auf der Kommandzeile überprüft.


In der Holzkiste habe ich alles mit Heißkleber befestigt und die Kiste selbst ist an ein Regal geschraubt.

Mein Musikhase

Entgegen der ursprünglichen Lösung von PI Geek habe keine Infrarotfernbedienung genutzt, weil ich mutmaße, dass die dann stets zu suchen ist. Das hängt aber von den Kindern ab und kann bei Ihren Kindern die beste Lösung sein.

Ich habe einen Taster mit der Funktion scannen und den anderen mit der Funktion nächster Titel belegt.

Aufbau

Die Taster habe ich an GPIO angeschlossen. Damit sie einen definierten Zustand haben werden hier die Widerstände genutzt. Die Verschaltung finden Sie hier linker Teil (GPIO 17 und GPIO 27).

Zur USB-LED-Lampe habe ich gegriffen, weil es eine sehr einfach Lösung ist, Beleuchtung für die Webcam bereitzustellen.

Logik + Skripte

Anders als beim IR Empfänger muss man den Zustand der GPIO-Schnittstelle überwachen. Dazu gibt ein Skript (qrmusic.sh), welches beim booten gestartet (wie siehe hier) wird und nach der Initialisierung der GPIO-Schnittstellen in einer Endlosschleife die Werte von GPIO 17 und GPIO 27 ausliest. Dazu muss das Skript als Benutzer root laufen ... naja, Sicherheitsbedenken habe hier nicht. Den Root-Accout muss man erst anlegen, siehe hier.

Zusätzlich wird von dem Skript beim Systemstart auch der MP3-Player xmms2 initialisiert (die Datenbank wird aktualisiert).

Wird GPIO 17 gedrückt - der value ändert sich von 1 in 0 - , dann wird das qrmusic-Skript remote.sh mit dem Parameter power aufgerufen. Bei GPIO 27 wird remote.sh mit Parameter next aufgerufen.

Ebenfalls beim Systemstart wird der USB-Stick eingebunden (via /etc/fstab Eintrag, siehe hier).

MP3

Es nutzt leider nichts irgendwelche MP3 zu besitzen. Der MP3-Player XMMS2 baut seine Datenbank mit den ID3-Informationen auf, die in einer MP3-Datei enthalten sind. Hinzu kommt die Schwierigkeit, dass der QRCode-Scanner (ZBar) keine Umlaute usw. beherrscht.

Da musste ich ein wenig Lehrgeld zahlen, denn man muss dafür sorgen, dass die Album- und Interpreteninformationen im ID3 ordentlich gepflegt sind.

Am einfachsten ist es also direkt beim Erzeugen von MP3s die Informationen direkt richtig zusetzen (und nicht nur das zu übernehmen, wass in freedb oder so steht).

Bei bestehenden MP3s kann man beispielsweise mit dem Programm mp3tag die ID3-Tags nachträglich ändern oder vereinheitlichen.

QR-Code

Die QR-Codes die ausgewertet werden sind normaler Text und ich habe Sie nicht mit dem Programm qrencode auf dem Raspberry Pi erzeugt, sondern einfach im Internet.

Folgendes habe ich eingetragen:

artist:<Interpret>
album:<Albumtitel>

und dann den QR-Code in eine Tabelle kopiert.

LibreOffice Tabelle

In meiner Textdatei (6cm hohe Zeilen, fest Breite) passen je DIN A4-Seite sechs QR-Codes mit Albumcover. Ausdrucken und auseinanderschneiden.

Notizen

  • Die XMMS2 Datenbank ist eine sqlite db und liegt unter /home/pi/.config/xmms2/medialib.db
  • Datenbank aufbauen lassen mit
    xmms2 server import /path/to/music
  • Den Inhalt der XMMS Datenbank kann man sich mit xmms-Befehlen anschauen, z.B.
    xmms2 search artist:Sven*

    oder

    xmms2 search album:Gesch*
  • Mit dem .deb Paket sqlite3 kann man Abfragen gegen die Datenbank machen.
  • SQLite Befehle.
    • sqlite3 medialib.db = öffnet Datenbank
    • .tables = listet alle Tabellen auf
    • select * from Media = gibt den Inhalt der Datenbank aus.
    CD-Nummer (von MP3-Tag) findet sich in Spalte partofset
  • Das Jahr in date

News

Mein neuer MFP von Lexmark hat mich jetzt zwei Stunden mit der Funktion "Scan to mail" und "Scan to FTP" beschäftigt. Da ich die richtige Lösung nirgendwo gefunden habe, hier einige Hinweise.

Bei einem Senioren Linux ist es wichtig auch eine Fernwartung/Remote Support zu haben.

Die Welt von 64 Bit erschließt sich Windows ja erst langsam. Erst seit Windows 7 kaufen wirklich viele die 64 Bit Version. Leider gibt es nicht für jede Hardware einen Treiber.