RFID Media Player

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo nochmal
    Der Autostart wollte bei mir gar nicht funktionieren.
    Das scheint daran zu liegen dass ohne explizites phyton die ausführbare py bei mir nicht startet. Da ich das Problem nicht lösen konnte habe ich das Startscript umgeschrieben.

    Mit dem Start von python und dem rfid script als Argument mit vollständigen Pfaden kappt es auch bei mir. :bravo2:

    Grüße

    Einmal editiert, zuletzt von mastermho (25. Januar 2017 um 08:59)

  • Hallo zusammen,
    ich bin auch gerade dabei, diesen Player mit OSMC nachzubauen.
    Vielen Dank an die beteiligten Forenmitglieder insb. an mex_ für die Erklärungen und die Mühe dies hier zu dokumentieren.

    Falls jemand diese Jukebox ebenfalls nachbauen möchte, hier einige Tips, um ein paar mögliche Stolpersteine auszuräumen:

    • falls man nicht über ssh auf den Pi zugreifen möchte, kommt man in OSMC auf die Kommandozeile, indem man das Ausschaltsymbol anklickt und dann auf "verlassen" klickt (erscheint nur, wenn eine Tastatur angeschlossen ist), dann beim Booten die ESC-Taste drücken
    • anmelden kann man sich bei osmc mit dem user osmc und dem Standardpasswort "osmc"
    • es empfiehlt sich, zunächst das Passwort des users osmc von osmc auf ein neues individuelles Passwort zu ändern, dazu einfach "passwd" in der Kommandozeile angeben

      Code
      passwd
    • vor dem Herunterladen von https://github.com/Fuzzwah/xbmc-rfid-music braucht man in /home/osmc keinen Ordner namens xbmc-rfid-music erstellen, dies passiert automatsich (der Pfad ist dann /home/osmc/xbmc-rfid-music)
    • um die benötigten Informationen zum Ändern der conf.py zu erhalten, kann man den Befehl [font="Calibri, sans-serif"]
      Code
      cat /proc/bus/input/devices

      benutzen[/font]


    [font="Calibri, sans-serif"]Viele Grüße[/font]
    [font="Calibri, sans-serif"]boje[/font]

  • kleine Ergänzung:

    für den Autostart gemäß Punkt 9 der Anleitung von Fuzzwah muss man bei OSMC den Pfand entsprechend ändern, dazu
    unter /home/etc/init.d/
    dann xbmc-rfid-music öffnen und dort den Pfand entsprechend anpassen

    Code
    DIR=/home/osmc/xbmc-rfid-music

    Einmal editiert, zuletzt von boje (23. April 2017 um 11:39)

  • Moin,
    ich versuche derzeit diesen RFID-Player für meine 2-jährige Tochter zu realisieren, da jedoch Programmierung/Elektronik und der Pi alles Neuland für mich sind, benötige ich :helpnew:.

    Mein derzeitiger Stand:
    Der Player läuft soweit und spielt nach Einlesen der Karten Musik ab (Autostart ist eingerichtet und der Player erkennt auch die zugewiesenen Playlisten per Rfid-Karte).


    Mein Problem:
    Ich möchte gern vier Taster anbringen, die die Funktionen Play/Pause, Stop, Next und Previous haben.
    Dazu habe ich das File taster.py von mastermho in den gleichen Ordner wie die anderen verwendeten Files abgelegt (also unter /home/osmc/xbmc-rfid-music).
    An dieser Stelle nochmal vielen Dank an mastermho für das Zuverfügungstellen von taster.py.
    Dann habe ich vier Arcade-Taster an die jeweiligen GPIO-Pins angeschlossen. (Also den Stop auf GPIO 18/Pin 12 plus GND, Play auf GPIO 23/Pin 16 + GND, Next auf GPIO 24/Pin 18 + GND und Previous auf GPIO 25/Pin 22 + GND).
    Ich habe versucht, taster.py in rfid-music.py einzubinden, indem ich

    Python
    from taster import *

    benutzt habe.
    Die rfid-music.py sieht dann so aus


    Ist das so richtig? :s

    Wenn ich nun eine Playlist-Karte an den Reader halte, wird die Musik ganz normal abgespielt, jedoch bei Benutzung der Tasten passiert nichts.
    Wenn ich taster.py von Hand starte, dann wird die Musik per Stop unterbrochen, jedoch erscheint unzählige Male das Wort "Stop" bis ich dies per Shift+C unterbreche ohne dass ich irgendeinen Taster gedrückt habe.

    .
    Dies passiert sogar, wenn keine Kabel an den GPIO´s angeschlossen sind.
    Ich habe auch versucht, "pull_up_down=GPIO.PUD_UP" in taster.py zu verwenden bzw. externe Widerstände benutzt, das Problem tritt leider trotzdem auf.


    Meine Hardware/Software:
    RPi 2, USB-RFID-Reader 125khz, OSMC

    Kann mir jemand helfen und mir sagen, was ich (alles) falsch mache.

    Und noch eine Frage: Welches Script nimmt man am besten hier bei OSMC für den Shutdown-Button?

    Vielen Dank im voraus für eure Hilfe.
    Beste Grüße
    Kati

  • Hallo boje,

    funktioniert denn das taster.py Skript allein? (ohne in die rfid-music.py zu integrieren)

    Für den Shutdown-Button kannst du in OSMC eine Taste / Tastenkombi festlegen. Dann brauchst du kein Skript.

  • Moin Moin,

    bin ich gerade der einzige der nicht ganz versteht was ein RFID media player ist?
    Schickst du die musik über nahfeld an die lautsprecher oder aktivierst du die musik mittels den karten?

  • Hallo mex_,

    danke für die Rückmeldung.
    Ich habe das Taster-Skript ein wenig modifiziert, jetzt funktioniert es (aber nur, wenn ich es per Hand starte). Die geänderte Datei hänge ich an. Wenn ich also auf mit der Maus auf dem Bildschirm Musik abspielen lasse und das Taster-Skript per Hand starte, dann funktionieren die Taster.

    Wenn ich jedoch das Skript in die rfid-music.py-Datei

    Python
    from taster11 import *


    integriere, habe ich das Problem, dass der RFID-Reader (in den meisten Fällen) nicht mehr gefunden wird, trotz mehrfachem Neustart.
    Ich weiß, dass

    Python
    from xxx import *

    in Python nicht so gern gesehen wird, jedoch fehlt mir leider die Erfahrung, das Taster-Skript anders zu integrieren.
    An dem Pi habe ich an den USB-Anschlüssen nur einen Wlan-Stick und den RFID-Reader hängen. Die Musik habe ich zeitweise (um ggf dies als Fehlerquelle auszuschließen) direkt auf die SD-Karte kopiert und keinen USB-Speicherstick angeschlossen.

    Wenn ich das Taster-Skript per import eingebunden habe in rfid-music.py, dann wird der Reader scheinbar nicht gefunden und das Starten der Playlisten mit den Karten funktioniert nicht. Es wird zwar eine Aktion ausgeführt, jedoch ist diese Aktion mit dem Drücken der rechten Maustaste vergleichbar. Wenn also z.B. auf dem Bildschirm bei Kodi "Musik hinzufügen" blau hinterlegt ist, dann bewirkt das Dranhalten der Karten das Anklicken von "Musik hinzufügen".
    Beim Anhalten der Karten piep der Reader als ob er funktionieren würde und die kleine LED am Reader leuchtet auch kurz von rot auf grün.

    Wenn ich (wenn der Reader nicht erkannt wird) rfid-music.py per Hand starte, dann erscheint ein kleines Fenster mit
    neue Verbindung erkannt
    RFID Music
    jedoch werden auch dann die Karten nicht gelesen vom Reader (Piepton und grünes LED-Licht funktionieren).

    Wenn ich in rfid-music.py das Taster-Skript auskommentiere mit #, dann funktioniert der Reader in 99% der Fälle ohne Probleme (nur die vier Taster natürlich nicht).

    Ich habe schon 2-Mal mit einem frischen OSMC begonnen und habe auch einen weiteren RFID-Reader gekauft. Das Problem besteht jedoch weiterhin. Ich habe den USB-Reader mit dem Windows-Logo ausprobiert und einen Reader ohne dem Logo.


    Danke für den Tip mit dem Shutdown. Das hat geklappt, der Shutdown-Button funktioniert *freu* immerhin.

    Viele Grüße
    boje
    Automatisch zusammengefügt:
    Hallo gizmoto,
    ich weise einer RFID-Karte dabei eine bestimmte Playliste zu (in der Datenbank ist also vermerkt, welche Karte mit seiner speziellen ID-Nr welche Playliste zugewiesen ist).
    Das RFID Reader erzeugt über eine Antenne ein schwaches elektromagnetisches Feld. Kommt die RFID-Karte in dieses Magnetfeld, wird der Mikrochip des Transponders mit Energie versorgt und kann nun kontaktlos Daten an das Lesegerät senden. Das Dranhalten der Karten bewirkt also, dass eine individuelle ID-Nr an den Reader gesendet wird und danach die Enter-Taste gedrückt wird. In einer Datenbank ist dann gespeichert, welche Playlist, der ich zuvor dieser Karte zugewiesen habe, abgespielt werden soll.
    Viele Grüße

    Einmal editiert, zuletzt von boje (14. Mai 2017 um 14:49)

  • hallo, ich bin ole und ich hoffe ihr könnt mir helfen.
    ich hab soweit alles gemacht wie in der anleitung. ich benutzte das aktuelle xbian. es war auch alles gut bis zum reboot. jetzt startet das rfid-music.py nicht. also auch nicht wenn ich es manuell starte. und bei addcard.py kriege ich den gleichen fehler wie lullie auf seit 1. und da bin ich dann auch langsam am ende mit meinen linux wissen.
    wäre super wenn mir jemand ein tipp geben kann! 1000 dank

  • Hallo killerlukas,
    ich hatte auch schon öfter, die o.g. Fehlermeldung.
    Nach Kontrolle, ob in der conf.py alles richtig eingetragen ist, hat es bei mir dann geholfen, wenn ich den Reader abziehe und wieder anschließe bzw. den Pi komplett runterfahren und wieder neu booten.
    Teilweise musste ich das bis zu 10 mal hintereinander machen, aber dann wurde der Reader bei mir wieder erkannt.
    Ich habe den Eindruck, dass diese Fehlermeldung bei mir seltener auftritt, wenn ich möglichst wenige USB-Geräte außer den USB-RFID-Reader anschließe (also auch keine Maus, Tastatur oder USB-Speicherstick).
    Viele Grüße
    boje

  • Ok, danke für den Hinweis. 10 mal ist natürlich viel zu oft für den headless betrieb im Kinderzimmer. Da werd ich wohl mal Ursachenforschung betreiben und meinen Schwager Interviewen. Scheint ja so als ob irgendetwas auf den Reader zugreifen will und der dann wiederum sagt er wäre busy.

  • Hallo killerlukas,
    ich habe das Problem mit den unter Umständen bis zu 10x jedoch nur, wenn ich zB vorher einen USB-Stick oder die Maus dran- oder abgesteckt habe.
    Bei mir ist es so, wenn der Reader erst mal erkannt wurde und ich weder andere USB-Geräte an- oder abstecke, dann wird er bis auf sehr wenig Ausnahmen auch erkannt und läuft headless gut.
    Viele Grüße
    boje

  • Hallo Zusammen,
    ich bin auch gerade dabei dieses tolle Projekt umzusetzen.
    Die Hardware ist da und es funktioniert alles - ich warte nur noch auf die Arcade Buttons, dann geht's weiter.
    Derweil habe ich mich gefragt, ob das ganze noch um "Elternkarten" erweitern könnte ?

    Also z.B. eine Karte mit einem Timer ("Noch eine CD, dann ist Schluss") ? Oder eine Karte, die die Lautstärke limitiert ?
    Hätte da jemand eine wie und ob man das einbauen könnte ?

    ======Update=====
    Also wenn ich mich so in der rfid-music.py so umschaue, dann hatte FUzzwah auch so eine ähnliche Idee mit "special cards".
    Es gibt da offenbar Karten die für Shuffle oder Reboot vorgesehen sind.

    Code
    elif playlist == "shuffle":
     print "Card {c} is assigned to {p}".format(c=card, p=playlist)
    xbmc.send_action("XBMC.PlayerControl(Random)")
    elif playlist == "reboot":
    print "Card {c} is assigned to {p}".format(c=card, p=playlist)
    xbmc.send_action("XBMC.Reset")

    ...dann schliesst sich natürlich direkt meine nächste Frage an: wie konfiguriert man solche Karten ? Habe mal naiv versucht eine Playlist einfach "shuffle" oder "reboot" zu nennen, weil ich dachte dass würde dann das Kommando auslösen, hat aber leider nicht geklappt.

    Einmal editiert, zuletzt von alwiz79 (23. August 2017 um 09:59)

  • Hallo allerseits,

    ich habe das Problem, dass nach einem Reboot, die Datenbank mit der Zuordnung Karte - Playlist geleert wird. Ich müsste also nach jedem Reboot die Karten alle neu zuweisen. Wie verhindere ich das?

    Einmal editiert, zuletzt von grenth83 (24. August 2017 um 21:54)

  • Ok..ich bin mit den "Elternkarten" weitergekommen.
    Ich habe einfach ein bisschen neuen Code eingefügt..das ist nicht schön, aber funktioniert:


    Code
    if card == '0002469514':
    kodi-send --action="AlarmClock(shutdowntimer,XBMC.Powerdown(), 30)" 
    # hier ein Timer über 30 Minuten

    Die Nummer Karte ist natürlich nicht in Music Datenbank enthalten. In meinem Fall sind die Nummern auf den Karten aufgedruckt, das hat einfacher gemacht.

    Ich habe mittlerweile auch Taster einbauen können. Ich benutze dazu im wesentlichen das Taster.py Skript aus diesem Thread.
    Mir ist allerdings noch nicht klar, wie ich das in das "Hauptprogramm" einbinde, oder ob ich das als zweiten Service ab Boot mitlaufen lasse oder wie das funktionieren soll.

    Einmal editiert, zuletzt von alwiz79 (25. August 2017 um 10:59)

  • Hallo zusammen,

    ich versuche mich gerade auch an diesem sehr coolen Projekt. Vielen Dank an alle für die vielen nützlichen Infos. Die Taster würde ich gerne über GPIO ansteuern, was mit dem hier eingestellten Skript auch funktioniert. Allerdings schaffe ich es zur Zeit noch nicht, das Skript für die RFID Karten und das Skript für die Taster gleichzeitig beim Start automatisch zu laden. Hat das hier schon jemand laufen und könnte mir verraten, wie er es angestellt hat?

    Vielen Dank!

  • Hi Chris1982,

    ich habe es selber (mangels Zeit) noch nicht ausprobiert, aber hier könnte was hilfreiches drinstecken https://www.debuntu.org/how-to-managin…th-update-rc-d/
    ich hänge jetzt an der selben Stelle. Mir ist nicht klar, wie das Tasterskript parallel zum RFID/Music Skript starten kann.
    Im Inet liest man viel über Cronjobs, aber wenn ich das alles richtig verstehe wurde das hier ja gar nicht angewendet (sondern rc.d oder so).
    Nun brauchen wir also euch, Ihr Linux und python Helden:
    Wie kann ich beider SKripts parallel laufen lassen ?


    Erzähl doch mal mehr zu Deinem Setup...ich bin derzeit noch sehr unsicher, ob das alles so läuft wie es soll.
    Bei mir kommt ein
    RasPi 2
    OSMC
    USB RFID Reader
    USB WLAN
    Hifiberry Soundkarte
    Arcade Buttons per GPIO (wobei ich noch die Variante mit dem USB Controller ausprobieren möchte, da es mir Lötarbeit auf dem Hifiberry ersparren würde)
    zum Einsatz

    Alle Einzelteile für sich funktionieren, alles Zusammen habe ich noch nicht ausprobiert. Dann und wann piepst der RFID Reader wenn man eine Karte dran hält, es passiert aber überhaupt nichts. Es spielt keine Musik ab...Reboot hilft dann, aber ehrlich gesagt ist das nicht kindertauglich.

    Einmal editiert, zuletzt von alwiz79 (30. August 2017 um 01:26)

  • Hallo chris1982 und alwiz79,

    das Tastenskript wird direkt über den Autostart gestartet, dazu fügt man das Tastenskript auf die gleiche Weise ein, wie man z.B. den Shutdown-Befehl in den Autostart einfügt (also sudo nano /etc/rc.local).

    Ich habe die Lautstärke-Regelung einfach über die Lautsprecher realisiert. Dazu habe ich einfache 5V-Computer-Aktivlautsprecher eingebaut, die an der Frontseite ein Rädchen für die Lautstärke haben. Meist ist auch ein Klinkensteckeranschluss dabei, so dass die Musikbox auch über Kopfhörer benutzbar ist.

    Zur Veranschaulichung anbei einige Bilder.

    Meine Teilliste sieht so aus:
    Teileliste:
    RPi2
    USB RFID Reader
    LED, grün
    5 Arcardebuttons
    USB_Lautsprecher 5V (Logilink Aktivlautsprecher)
    USB-Soundkarte
    Jumper und Widerstände
    Netzteil
    [font="Helvetica, sans-serif"]Holzkiste [/font]

    [font="Helvetica, sans-serif"]Viele Grüße[/font]
    [font="Helvetica, sans-serif"]boje[/font]
    Automatisch zusammengefügt:
    ... das Pferd ist der Hinweis für meine Tochter, an welcher Stelle sie die RFID-Karte ranhalten muss.

  • Hallo Boje,

    danke für die tollen Bilder (als Inspiration).
    Ich bin mit meinem Projekt zurück auf Start gegangen und habe die Plattform ausgetauscht.
    Ich realisiere das ganze jetzt mit dem Musicbox Image, das auf MPD aufsetzt. Im Grunde könnte ich auch ein blankes Raspbian Jessie nehmen und MPD installieren - aus irgendeinem Grund gefällt mir Musicbox aber ganz gut (vllt. wegen dem direkt mitgelieferten Webinterface).

    Atueller Status:
    - RFID Erkennung funktionier jetzt IMMER
    - Elternkarten (im Moment nur ein Timer) funktioniert
    - Arcade-Buttons funktionieren
    - HifiBerry Soundkarte läuft
    - 16x2 LCD Display funktioniert grundsätzlich, ich kriege nur noch keine sinnvollen Infos von MPD auf das Display
    - und dann muss noch eine hübsche Box etc. her

  • Hi,
    habe gerade dieses Thema hier gefunden. Ich wollte mich auch daran versuchen soetwas zu "erschaffen". Ein anderer User hier aus dem Forum hatte es schon gemacht und hatte damit angefangen aber NOCH funktioniert gar nichts.
    Ich habe ein Pi 3 mit NFC Reader/Writer.
    Kann man auch die playlisten zb auf einem LAN NAS liegen haben und dadrauf zugreifen?
    Und kann man auch die Tasten weglassen und das über Karten steuern oder per putty (zb Lautstärke).
    Da ich den Pi 3 habe wollte ich auch nicht zwingend eine externe Soundkarte nehmen oder wäre das empfelenswert?
    Danke schonmal euch :)

    PS
    So eine "Detail" Installations Anleitung für Doofe wäre auch cool ^^

    Einmal editiert, zuletzt von cyberworm83 (10. September 2017 um 19:53)

Jetzt mitmachen!

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