SimpleRFIDPlayer

Das folgende „Projekt“ ist ein simpler MP3 Player für meine Tochter.
Meine Tochter ist momentan 2 Jahre alt. Um ihr einen einfachen Zugang zu Musik und Hörspielen zu geben, habe ich mir Folgendes überlegt:
Eine Box mit MP3 Player und RFID-Lesegerät über die man ein RFID-Tag ziehen kann um ein Musikstück zu spielen. Die RFID Tags können dabei bedruckte Karten oder Tags (Anhänger) sein. Die Tags lassen sich recht gut an Kuscheltiere etc.pp. befestigen. Für meine Tochter ist es also ein drüberziehen eines Kuscheltieres um Musik abzuspielen.
Die Programmierung sollte ebenso simpel sein. Das Gerät spielt Songs ab, welche auf einer MicroSD Karte abgelegt sind und von 001 – xyz benannt sind. Der erste Tag der über das Gerät gezogen wird, wird mit Song Nummer 001 verknüpft. Der zweite mit 002 und so weiter.

Was braucht man nun alles dafür?
– Einen Arduino Nano ( https://www.amazon.de/AZDelivery-ATmega328-Nano-Arduino-kompatibel/dp/B01LWSJBTD/ref=sr_1_12?s=computers&ie=UTF8&qid=1483873173&sr=1-12&keywords=arduino+nano ~6,50€ – Allerdings bekommt man diese auch im 5er-Pack für 2-3 € pro Stück)
– Einen RFID Reader ( https://www.amazon.de/SainSmart-Mifare-Module-KeyCard-Arduino/dp/B00G6FK4DQ ~ 8 € )
– RFID Karten oder Tags die zum Reader passen (z.B. https://www.amazon.de/gp/product/B01B4IVFDC ~5-10€)
– Einfachheitshalber einen seriellen MP3 Player mit Lautsprecher ( http://www.dx.com/de/p/uart-serial-mp3-music-player-module-w-1w-speaker-for-arduino-440175?tc=EUR&gclid=Cj0KEQiAwMLDBRDCh_r9sMvQ_88BEiQA6zuAQ–Ju2knBxRtJFsf4GRPiYzclcq2IA_GW3WSeJrTggcaAj048P8HAQ#.WHIP78Lbs2w ~ 6€ )
– 2 Drucktaster ( http://www.ebay.de/itm/152295745935?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT ~ je 2 €) zur Lautstärkeregelung
– Wippenschalter als Ein-/Ausschalter ( http://www.ebay.de/itm/151023222553?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT ~ 1,60€)
– Batterieclip für 9V Block und 9V Akku zur Stromversorgung ~ 6€
– Ein paar Drähte zum Verlöten, Lötzinn, evtl. Krimpzange, Lötkolben etc.pp.
– Und natürlich ein passendes Gehäuse ( bei uns ein Dekokästchen vom Baumarkt + Abstandshalter + etwas Sperrholz und Farbe )
– Micro SD passender Größe (hier eine alte 2GB)
– Wenn man das ganze sauberer aufbauen will, noch eine Lochrasterplatine.
Wie wird das ganze nun zusammengebaut?
Der Batterieclip kommt mit + an den Wippenschalter, von dort führt ein Kabel zu Vin des Arduino. Minus kommt zu GND ( an GND landen noch mehrere Kabel, daher erst am Schluss verlöten).
Für RFID werden folgende Kabel gezogen:
RFID Arduino Nano
MOSI D11
MISO D12
SCK D13
SS D10
RST D9
3.3v 3.3v
GND GND

Zwischen dem MP3 Player und dem Arduino wird wie folgt verkabelt:
MP3 Arduino nano
VCC 5V
GND GND
Tx D5
Rx D6
Der Lautsprecher kann einfach auf das MP3 Board gesteckt werden.

Die beiden Buttons werden wie folgt verkabelt:
Button Arduino Nano
+-Button <–> D7
+-Button GND
–Button D8
–Button GND

Auf den Arduino wird der passende Sketch gespielt. Und alles in ein passendes Gehäuse verfrachtet. Ich habe in eine Spannplatte Öffnungen für die Wippenschalter und die Buttons geschnitten, auf der Rückseite den RFID-Leser verschraubt und mit Leisten den Lautsprecher angebracht. Diese halten auch die Batterie. Der Nano wurde von mir mit Heißkleber verklebt, da mein Gehäuse etwas zu enge war und er dann nur noch seitlich liegend neben dem MP3-Player Platz fand.

Link zum Projekt:

https://bitbucket.org/wosch/simplerfidplayer/src

8 Kommentare

  1. Hallo,

    könntest Du noch ein bisschen mehr Infos zu dem tollen Projekt spendieren?
    Wie/wo müssen die mp3 gespeichert werden ?
    Wie erfolgt die Zuordnung von mp3 (evtl. auch m3u) zu RFID Tag ?
    Danke

    1. Hallo,
      Die MP3s einfach ins Hauptverzeichnis der SD Karte mit Benennung 01 – nn.

      Die Zuordnung erfolgt automatisch. Der erste Tag der angehalten wird, wird mit dem Lied 01 verknüpft und die Verknüpfung im EEProm des arduino gespeichert. Der nächst RFID Tag wird mit 02 verknüpft und so weiter.
      Wenn der arduino einen Tag mit Verknüpfung findet, wird der entsprechende Titel abgespielt.

      Da der eigentlich ständig wenn ein Tag angelegt wird den erkennt, wird das ganze permanent ausgelöst und beim Wegnehmen des Tags der entsprechende Titel abgespielt.

      Der „Treiber“ für den RFID Reader mit Beispielen ist beim verlinkten Artikel. Bei dem MP3 Chip sind ebenso Demodateien.

      Gruß
      Wolfgang

  2. ok, ich bin ein Arduino-Neuling, und es sind noch nicht alle Teile da, sodass ich nicht einfach anfangen kann….
    Ich habe es noch nicht ganz verstanden glaube ich:

    1. die Mp3 heissen 01.mp3; 02.mp3; usw….?
    1.1 ein Tag ist immer einem mp3 zugeordnet (keiner Playlist) ?

    2. Über die Buttons steuerst Du die Lautstärke. Gibt es auch die Möglichkeit die Wiedergabe zu stoppen ?
    2.2 Buttons für nächstes Lied oder Lied zurück sind vermutlich vorgesehen, da keine Playlisten abgespielt werden (siehe 1.1) ?
    2.2.1 Was passiert wenn ein Lied zu Ende ist ? Einfach Ruhe im Karton, oder fängt der Palyer dann wieder von vorne mit dem Lied an ?

    Vielen Dank!

  3. Hallo Wolfgang,
    Endlich habe ich die Zeit gefunden anzufangen.
    Leider laufe ich direkt beim hochladen des sketches in eine Fehlermeldung.
    Scheinbar kann ein „include RFID.h“ nicht durchgeführt werden, da die Datei nicht gefunden wird.
    In deinem bitbucket Source ist sie auch nicht.
    Kannst du nochmal weiterhelfen?

    1. Hallo,
      RFID.h gehört zu dem jeweiligen RFID Player.
      Bei dem von https://www.amazon.de/SainSmart-Mifare-Module-KeyCard-Arduino/dp/B00G6FK4DQ ist z.B.
      https://s3.amazonaws.com/www.dasgute.com/20/20-011-951+/RC522+20-011-951.rar angegeben, da ist dann die passende RFID.h und RFID.c drin ( je nachdem ob man Atom mit PlattformIO oder die Arduino Oberfläche oder Visual Studio mit VisualArduino/VisualGDB verwendet muss es an die passende Stelle verschoben werden).
      Das wird dann grundsätzlich für den RFID Reader benötigt.

      1. Hallo Wolfgang!
        Danke für Deine Tipps – aber irgendwie kriege ich das nicht hin.
        Diese Arduino IDE bricht immer mit Fehlermeldunng – scheinbar weil er die RFID-h nicht finden kann. Ich habe die inzwischen im gleichen Verzeichnis wie deinen Sketch liegen – nix.

        d:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware d:\Program Files (x86)\Arduino\hardware -tools d:\Program Files (x86)\Arduino\tools-builder -tools d:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries d:\Program Files (x86)\Arduino\libraries -libraries D:\eigene Dateien\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10805 -build-path C:\Users\Cyrus\AppData\Local\Temp\arduino_build_211451 -warnings=none -build-cache C:\Users\Cyrus\AppData\Local\Temp\arduino_cache_417340 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=d:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=d:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=d:\Program Files (x86)\Arduino\hardware\tools\avr -verbose D:\Downloads\SimpleRFIDPlayer\SimpleRFIDPlayer.ino
        d:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware d:\Program Files (x86)\Arduino\hardware -tools d:\Program Files (x86)\Arduino\tools-builder -tools d:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries d:\Program Files (x86)\Arduino\libraries -libraries D:\eigene Dateien\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10805 -build-path C:\Users\Cyrus\AppData\Local\Temp\arduino_build_211451 -warnings=none -build-cache C:\Users\Cyrus\AppData\Local\Temp\arduino_cache_417340 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=d:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=d:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=d:\Program Files (x86)\Arduino\hardware\tools\avr -verbose D:\Downloads\SimpleRFIDPlayer\SimpleRFIDPlayer.ino
        Using board ’nano‘ from platform in folder: d:\Program Files (x86)\Arduino\hardware\arduino\avr
        Using core ‚arduino‘ from platform in folder: d:\Program Files (x86)\Arduino\hardware\arduino\avr
        Detecting libraries used…
        „d:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++“ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino“ „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs“ „C:\Users\Cyrus\AppData\Local\Temp\arduino_build_211451\sketch\SimpleRFIDPlayer.ino.cpp“ -o „nul“
        „d:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++“ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino“ „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs“ „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src“ „C:\Users\Cyrus\AppData\Local\Temp\arduino_build_211451\sketch\SimpleRFIDPlayer.ino.cpp“ -o „nul“
        „d:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++“ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino“ „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs“ „-Id:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src“ „C:\Users\Cyrus\AppData\Local\Temp\arduino_build_211451\sketch\SimpleRFIDPlayer.ino.cpp“ -o „C:\Users\Cyrus\AppData\Local\Temp\arduino_build_211451\preproc\ctags_target_for_gcc_minus_e.cpp“
        D:\Downloads\SimpleRFIDPlayer\SimpleRFIDPlayer.ino:25:18: fatal error: RFID.h: No such file or directory

        #include

        ^

        compilation terminated.

        Bibliothek SPI in Version 1.0 im Ordner: d:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI wird verwendet
        exit status 1
        Fehler beim Kompilieren für das Board Arduino Nano.

  4. ok, habe alles zum laufen gebracht!
    ich bin mal durch deinen Sketch gegangen und verstehe ein paar dinge nicht.
    Es sieht so aus, als ob buttons für play/pause, next, previous vorgeseshen (Void InputFrom Pc)?
    Wie steuer ich die an (per externen push buttons z.B.) ?
    Gibt es dann im nächsten Schritt irgendwie die Möglichkeit Playlisten (m3u) statt einzelnen Files zu verknüpfen (dann macht previous und next auch Sinn)?

    Danke

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.