Springe zum Inhalt

die Musikbox

 Was es ist
Wie es umgesetzt ist
Was man noch machen könnte
Was Du brauchst
NFC-Leser Verkabelung
Die einzelnen Schritte (für Dokumentation und Nachbau)


Was es ist

Die Musikbox soll es Kindern (natürlich genauso auch Senioren) ermöglichen, ohne technische Kenntnisse, ihre Lieblings-Musik bzw -Hörbücher o.ä. abzuspielen. Dafür wird alles auf eine möglichst einfache und intuitive Benutzung ausgerichtet. Um ein Hörbuch abzuspielen, muss lediglich die Musikbox eingeschaltet und ein Gegenstand, der mit diesem Hörbuch assoziiert wird, auf ein markiertes Feld gestellt werden. Nimmt man den Gegenstand weg, pausiert der Abspieler und beim Zurückstellen des Gegenstands wird die Wiedergabe fortgesetzt.

Die Kosten liegen bei ungefähr 45 Euro

 


Wie es umgesetzt ist

  • Ein Raspberry Pi Version 2 oder 3 oder Pi Zero bootet ein Raspbian
  • ein Benutzer wird automatisch angemeldet
  • ein Auto-Start-Skript fragt ständig den NFC-Leser ab
  • sobald der Leser ein NFC-Signal empfängt
    • wird entweder ein zuvor pausiertes Abspielen fortgesetzt
      oder:
    • es wird geprüft, ob dieser ID schon ein abzuspielendes Verzeichnis zugeordnet ist
    • Ist noch kein Verzeichnis der ID zugeordnet, wird das nächste, noch keiner ID zugeordnete Verzeichnis auf einem angeschlossenen USB-Stick dieser ID zugeordnet
    • die erste Datei im zugeordneten Verzeichnis wird abgespielt und die folgenden Dateien werden in der Wiedergabeliste eingereiht
  • sobald der Leser kein NFC-Signal mehr empfängt
    • wird die Wiedergabe pausiert

 


Was man noch machen könnte

  • Bootzeit optimieren
  • Problem mit Umlauten und SOnderzeichen in Musik-Verzeichnisnamen
  • Stromsparen
    • LEDs aus
    • HDMI aus
  • NFC-Tag zum Herunterfahren festlegen
  • Images für Zero und normale Pis gegenseitig testen und zusammenbringen
  • auf Python- oder C-Lösung festlegen

 


Was Du brauchst

  • Raspberry Pi (egal welche Version)
  • Stromversorgung für den Pi
  • bei dem Raspberry Zero wird zusätzlich benötigt:
    • eine USB-Soundkarte (ebay-link)
    • otg-Kabel: micro USB auf mindestens 2 USB-Anschlüsse (ebay-Link)
  • micro sd Karte (4 GB oder größer)
  • USB-Stick (zum Speichern der abzuspielenden Musik)
  • SD-Karten-Abbild - raspbian user: pi  pass: R0teB0x
  • Lautsprecher mit Klinkenanschluss (bspw. klassische PC-Boxen)
  • NFC-Leser: MIFARE RC522 Chip (ebay-Link)
  • Regenbogen-Kabel weiblich-weiblich (ebay-Link)
  • Lötkolben und Lötzinn

 

 


 NFC-Leser Verkabelung

 

 

 

 

 

 

 

Use the following wiring:

RFID-RC522 Pin Raspberry PI Pin Raspberry PI Pin name
SDA/NSS 24 GPIO8
SCK 23 GPIO11
MOSI 19 GPIO10
MISO 21 GPIO9
IRQ None None
GND 20 GND
RST 22 GPIO25
3.3V/VCC 17 3V3

 

 


die einzelnen Schritte (zwecks Doku und Nachbau)

Das folgende ist teilweise unvollständig oder aus der Erinnerung dokumentiert. Es hilft sicher weiter, ist aber keine Schritt-Für-Schritt-Durchklick-Anleitung.

 

SPI aktivieren

Run sudo raspi-config,
choose Advanced Options -> SPI -> Yes . You can reboot, but it isn't necessary (dtoverlay -l will show that there is a run-time overlay that enables the SPI interface).

 

Install git and python-dev:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-dev git

 

Install the SPI-Py library:

git clone https://github.com/lthiery/SPI-Py.git
cd SPI-Py
sudo python setup.py install
cd ..

 

Install MFCR522-python:

cd ~
git clone https://github.com/mxgxw/MFRC522-python.git
cd MFRC522-python/

 

Run the script:

sudo python Read.py

 

MusikBoxSkript automatisch starten

benutzer automatisch einloggen lassen

sudo joe /etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin "user account" %I

 


nach Benutzer-Login automatisch Skript starten

joe /home/pi/.profile
bash /home/pi/musikbox/start.sh

 

Umlaut-Fragezeichen-Dreck:

sudo apt-get install convmv

convmv -f iso-8859-15 -t utf8 -r /Pfad/zur/Datei/oder/Ordner/ --notest

 

GPIO für Knopf

echo 4 >/sys/class/gpio/export
echo in >/sys/class/gpio/gpio4/direction
cat /sys/class/gpio/gpio4/value

 

Audio standardmäßig auf USB-Soundkarte ausgeben

sudo joe /usr/share/alsa/alsa.conf

defaults.ctl.card 0
defaults.pcm.card 0

ändern auf:

defaults.ctl.card 1
defaults.pcm.card 1

 

c-Programm fuer RFID-Lesegerät

quelle: http://www.nikolaus-lueneburg.de/2014/06/rfid-rc522-modul-mit-spi-schnittstelle/

Für den Zugriff auf die Raspberry Pi Schnittstellen wird die C Bibliothek für den Broadcom BCM 2835 Chip benötigt.

  1. wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.50.tar.gz
  2. tar -xzf ./bcm2835-1.50.tar.gz
  3. cd bcm2835-1.50/
  4. ./configure
  5. make
  6. sudo make install

dann das c-Programm runterladen und bauen

  1. wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/rpi-rc522/source-archive.zip
  2. unzip source-archive.zip
  3. cd rpi-rc522/trunk/rc522
  4. gcc config.c rfid.c rc522.c main.c -o rc522_reader -lbcm2835
  5. sudo cp RC522.conf /etc/
  6. sudo ./rc522_reader -d

 

alternativ: das Python-Dingen:

sudo python /home/pi/MFRC522-python/Read.py

 

das Paket usbmount

apt get install usbmount