Jukebox für Kinder mit RFID (die x-te)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo liebe Boardmitglieder,

    durch einen Beitrag in Raspberry PI Geek 03-14 "Jukebox mit QR Codes für Kinder" inspiriert wollte ich eine für unsere Tochter 3½ Jahre nachbauen. Relativ simpel mit Webcam gestrickt, aber wegen verschiedener Faktoren vor Ort dann doch verworfen.

    Zufällig bin ich bei der Suche auf Youtube dann auf ein Video aufmerksam geworden, welches einer unserer Boardmitglieder hier Jukebox4kids bereits in zwei Versionen sehr schön aufgebaut hat.

    Jedoch rein mit den Code der für das Projekt verwendet wurde wird meine Idee nicht wirklich laufen, da mein Projekt nicht 1 zu 1 übernommen werden kann/soll.

    Hier meine Stichpunkte zu diesem Projekt

    PROJEKTIDEE:

    • Einfache Steuerung durch RFID
    • Abspielen von MP3 und Webstreams
    • M3U Playlists sollen ebenfalls abgespielt und per Skript verwaltet werden können (optional)
    • Modulare Erweiterung später (Infrarotbedienung/Touchscreen/Display usw.)
    • .....

    PROJEKTHARDWARE:

    • Raspberry PI B+ (Genug I/O, verbesserte Sound und Preis/Leistung aktuell wohl mit am besten unter den PIs)
    • 12V Netzteil
    • Spannungswandler 12 -> 5 Volt
    • Pegelwandler 5 <-> 3,3 Volt
    • RFID 125khz Reader mit UART (RS232)
    • RFID 125khz Karten
    • WLAN USB
    • Testumgebung (Breadboard, Jumperwires, Messmittel usw.)

    PROJEKTSOFTWARE:

    • Aktuelle Raspberry Distribution (nur so startet der B+ bei mir)
    • Datenbank SQL (evtl. wird die auch nicht benötigt)
    • MPD (Audiosoftware)
    • Putty
    • Python
    • ?



    PROJEKTUMSETZUNG:

    Über DX (weiter unten meine Erfahrung mit DX) habe ich mir einen 125khz Leser, einen 5V <-> 3,3V bi-direktionalen Pegelwandler und einen 12 -> 5 Volt Spannunswandler und aus einen großen Onlineautkionshaus dann RFID Karten (10x für 6,70€ zum Testen) bestellt.

    Aktuell wird der PI mit dem neuesten Image betrieben und RFID Karten werden richtig erkannt.

    Jedoch hatte sich hier im Testbetrieb ein Fehler eingeschlichen.

    OSError: [Errno 11] Resource temporarily unavailable

    Dieser kam zwar reproduzierbar, aber trotzdem nicht immer zur gleiche Zeit.

    Wenn die Karte zur Leseantenne geführt wurde, musste man die Karte fast schon rein drücken (Versprochen waren bis zu 50mm Leseabstand).

    Google brachte zwar ein paar Links zu anderen Seiten die ebenfalls dieses Problem kannten, aber jedoch keine richtige Lösung woher der Fehler genau kam.

    Überlegung war an erster Stelle ein defektes Bauteil, wobei auch schon leichte Bauchschmerzen wegen des aktuell verwendeten 5v, 1,2 A Netzteiles bestand.

    Eine Abhilfe schaffte dann ein 5A/5V Netzteil das direkt über die GPIO und Ground auf den PI als Unterstützung mit gezogen wurde.

    Leseentfernung sind jetzt fast die 5cm (hängt leicht auch von den Karten ab) und der PI spuckte seit dem wie es sich gehört, eine Kartennummer nach der anderen im Python Script aus.


    Hardwaretechnisch bin ich aktuell soweit erst einmal zufrieden, jedoch kommt jetzt der für mich schwierigerere Teil -> SOFTWARE :s

    Meine aktuelle Überlegung ist es, eine Datenbank über SQL aufzubauen mit folgenden Bereichen

    ID -> Fortlaufende Nummer für Registrierung
    Name -> Übersichtshalber welche Playlist ist es, z.B. Weihnachtslieder usw.
    Path -> Pfad zur m3u Datei die aufgerufen werden
    Code -> Nummer der Karte, die der Leser über das Pythonscript ausgibt.

    Wird jetzt über das Script im Hintergrund eine Karte erkannt ->
    soll die Datenbank abgefragt werden ob die Karte vorhanden ist ->
    der Pfad zur Playlist/Datei aufgerufen werden bzw. an z.B. MPD weitergereicht und abgearbeitet werden ->
    neue Karte gescannt wurde ->
    Schleife auf Karte bzw. Dateiende und keine Aktion bis wieder Karte erkannt.


    Wenn das soweit alles läuft, soll später eine Möglichkeit von Zurück/Pause/Stop/Vorwärts über Arcade Buttons realisiert werden (bzw. für den Junior dann über Touchscreen am Bett).

    Mir geht es jetzt aber in erster Linie darum, ob die Übergabe aus der Datenbank an den Musikplayer so geschickt ist, oder ob ich hier mit Kanonen auf Spatzen schieße.

    Fraglich ist es für mich auch, ob ich die Seriennummer der Karte erst in eine Datei schreiben muss um sie mit der Datenbank abzugleichen, oder ob dies direkt im Script ablaufen kann.

    Vermutlich werden es im Laufe der Zeit an die hundert Playlists werden. Die Daten werden alle zentral auf einem anderen PI als Medienserver per Freigabe liegen.

    So muss ich unter umständen manche Playlists nur einmal eingeben und kann sie an die Datenbank weiter reichen, oder gleich über eine zentrale Datenbank gehen und von dort dann aus die jeweiligen PIs füttern. Kinderzimmer Tochter / Kinderzimmer Sohn / Wohnzimmer / Mobiler Punkt für Gartenpartys usw.


    Vielleicht hat ja auch jemand schon Erfahrungen hier gemacht und kann mir mit der Datenbank bzw. dem Scripting weiter helfen. Alle Erfahrungen die in das Projekt weiter einfließen werden hier als Update im ersten Beitrag hinzugefügt.

    Aktuell (bin Autodidakt) versuche ich mich mit verschiedenen Büchern, YT und Seiten im Netz in die Arbeit mit Datenbanken zusammen mit Python einzuarbeiten.


    Danke für alle die sich die Zeit genommen haben, hier alles zu Lesen


    * Kurz über die Erfahrung noch zu DX. Dies soll keine Werbung darstellen vielleicht hat jemand anderes auch schon überlegt dort zu bestellen (Preise sind fast gleich wie in der Bucht). Jedoch war ich Anfangs etwas skeptisch, ob das alles reibungslos so klappt. Die Ware kommt immerhin aus China und da sind meist 4-6 Wochen ja minimum an Lieferzeit.

    - versprochen wird bei den meisten Artikeln 2 Tage Handlingtime plus 7-9 Tage nach Deutschland, wenn über das Europaportal bestellt wird. Hier sind die Preise etwas teurer wie wenn direkt aus dem Chinaportal gekauft wird.

    -Nach 2 Tagen kam die Bestätigung - Ware auf dem Weg, alles wurde verschickt! Zusätzlich eine Tracking Nummer, welche aber leider in Deutschland nicht funktioniert - da der Anbieter es für Deutschland nicht unterstützt.

    -Nach 10 Tagen etwas nervös geworden, ob wirklich die Bestellung ankommt

    -Am 11ten Tag dann die freundliche Postbotin mit einen kleinen Paket (welches Zollamtlich abgefertigt wurde) an der Haustüre. Durch die Zollbegutachtung wurde das Paket gebremst, aber alle Formalitäten werden direkt von DX übernommen (inklusive Steuer usw.)

  • Was der gute da für seinen Opa gebaut hat ist zwar interessant, aber hier muss die RFID beständig auf dem Player liegen.

    Ich weiß nicht, ob es sinnvoll ist den Code von solchen komplexen Sachen rückwärts zu schreiben. Dabei macht man sich mehr Fehler wie man daraus gewinnt.

    Ich weiss nicht ob ich es mir gedanklich zu leicht mache.

    Denn meiner Meinung reichen ein paar Zeilen Code. Ich werde mich über die Feiertage mit SQL und Python auseinander setzen und prüfen ob es wirklich so viel Code sein muss.


  • Was der gute da für seinen Opa gebaut hat ist zwar interessant, aber hier muss die RFID beständig auf dem Player liegen.

    Das stimmt so nicht ganz. Ich habe das ganze mal auf dem Steckbrett aufgebaut.
    Einmal kurz Karte davor und das Lied läuft. Nächste Karte ....nächstes Lied usw...

    Gruß mattes

  • Hallo,
    wenn ich mich recht erinnere, habe ich auf einer der vielen Internetseiten mal was dazu gelesen. Der Reader soll wohl nur einmal die Karte scannen und dann auf die nächste warten.
    Ein Abspielen der Datei solang die Karte im Scan-Bereich sich befindet soll also nicht möglich sein.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!