Raspberry Pi Audio Player für Blinde


Hardware

Material

Für den Audioplayer sind als Hardware ein 1B oder Zero völlig ausreichend. Hier ein paar Vorschläge:

  • Hauptplatine
    • Raspberry Pi Zero W
      • Falls in Kombination mit Tastern und HiFiBerry geplant, bitte eine Version ohne GPIO-Leiste kaufen und später nur die genutzten Pins auflöten.
      • keine Klinke
      • eingebautes WLAN und BT
    • Raspberry Pi 1B
      • sehr schlechte Qualität an Klinkeausgang
  • Audio
    • HiFiBerry DAC+ Zero mit 2x Chinch
      • passt bei allen Pi mit Standard-GPIO,
      • belegt ab Werk ALLE GPIO, das kann aber umgangen werden
    • Klinke-Buchse, sofern vorhanden und Qualität ausreichend für die eigenen Bedürfnisse
    • Bluetooth, onboard bei Zero W und ab 2B?
    • beliebige? USB Soundkarte
  • Bedienung
    • eine Handvoll Taster
    • Handy mit beliebiger App, die den MPD steuern kann (Netzwerk notwendig)
    • TODO kleines Display
  • System
    • (Micro-)SD-Karte mindestens 8 GB
  • Medienvorrat
    • SD remote bestücken (Netzwerk notwendig)
    • Online-Quelle (Netzwerk notwendig)
    • Auf Auto Mount USB-Stick
      • für Raspberry Zero ist ein MicroUSB-Adapter und/oder USB-Hub notwendig
  • Wifi und BT
    • Kann mittels einfacher USB-Dongles nachgerüstet werden, falls das Modell diese nicht mitbringt
  • Stromversorgung
    • Original-Netzteil, angeblich "einzig", da geglättete VCC
    • Beliebiges 5V USB-Netzteil (Audioqualität vergleichen)
    • TODO Lithium Akku
      • Waveshare Battery Hat für 14500 Lithium-Akku
        • Falls nicht kompatibel mit HiFiBerry kann es auch über USB angeschlossen werden
  • TODO Gehäuse

Taster

Die GPIO-Pins des Pi sind nicht geschützt. Bei falschem Anschluss ist ruck zuck der Spannungsregler defekt. Dieser kann nicht getauscht werden. Totalschaden. Aus diesem Grund müssen einige Vorsichtsmaßnahmen getroffen werden:

  • Wir verwenden grundsätzlich GND als Input für die Buttons
  • Wir blockieren alle anderen Anschlüsse durch leere Stecker so, dass nur die gewünschten Anschlüsse verwendet werden können.
  • Wir setzen die Pins derart ein, dass der Stecker verkehrtherum aufgesteckt werden kann, ohne Schäden zu verursachen.

Für mich sieht die Lösung so aus:

  • HifiBerry verwendet die Pins 12,27,28,35,38 und 40 außerdem benötigt er natürlich Spannungsversorgung.
  • Ich habe mühsam die GPIO-Leiste zum Teil abgelötet und die Pins 5 bis 10 sowie 13 und 14 durch eine gewinkelte Leiste ersetzt.
  • Darauf kommt ein 2x5 Stecker.
  • Wir verwenden nun die beiden äußeren Paare sowie das mittlere Paar für jeweils einen Taster. Auf diese Weise tauschen schlicht zweier Taster ihre Funktion, falls der Stecker falschrum aufgesteckt ist.
  • Als GPIO dienen nun also 3,15 und 27

Software

System installieren und einrichten

  • Installiere Debian/Raspian auf der SD-Karte.
  • Starte mit Monitor, Tastatur und Netzwerk
  • Login pi/raspberry
  • Ändere das Passwort mit passwd???
  • Aktiviere den SSH Server mittels
   sudo systemctl enable ssh
   sudo systemctl start ssh
  • Am besten jetzt auch den Wifi-Zugriff einrichten
    • Network-Manager installieren
    sudo apt install network-manager-gnome
    • TODO
  • /etc/hostname setzen, anschliessend Reboot?
  • Nun kann remote auf die Kiste zugegriffen werden
  • NTP einrichten, um die Uhrzeit automatisch einzustellen
   /etc/systemd/timesyncd.conf
  • Update durchführen
   sudo apt update
   sudo apt upgrade
  • Weitere Pakete installieren
    • Pakete für MPD
   sudo apt install mpd mpc
    • Pakete für manuelle Audiosteuerung???
    • Pakete für das Pythonscript
   sudo apt install git libespeak1 python3-pip 
    • Weitere Pakete für das Pythonscript, alternativ!! per APT oder per PIP3:
   sudo apt install python3-mpd python3-gst-1.0 python3-rpi.gpio
   pip3 install python3-mpd? python3-gst-1.0? python3-rpi.gpio? ???
    • Weitere Pakete mittels PIP3
   pip3 install pyttsx3
    • Optional Pakete für die Ansteuerung der GPIOs von der Kommandozeile
   sudo apt install gpio-utils

MPD einrichten

  • Medienverzeichnis
  • Audiodevice

Python Skript einrichten

   # 
   cd
   git clone https://github.com/JPT77/RaspberryMediaPlayer.git
   cd RaspberryMediaPlayer
   sudo nano playerbuttonmonitor.service
   # check path to playerbuttonmonitor.py
   cp playerbuttonmonitor.service /etc/sytemd/system
   cd /etc/sytemd/system
   chown root:root playerbuttonmonitor.service
   ??? sudo systemctl enable playerbuttonmonitor.service
   sudo systemctl start playerbuttonmonitor.service


Audio einrichten

   check your audio volume using alsamixer
   check your audio device using ...
   ...

Quellen einrichten

Webradios

  • In Playlists "playlist.m3u" anlegen mit den URLs der Webradios.

Lokale Medien

  • Dateien in den Musik-Folder legen

Lokale Medien auf Auto-Mount USB-Stick