Schwarz auf Weiß

Auch als Buch mit dem Titel '10 Selbstbauprojekte', ISBN-Nr. 978-3-7448-3433-9 und als e-book mit der ISBN-Nr. 9783744806299 erschienen.

Besuchen Sie auch meine Art site https://khomet.de

Sonntag, 11. August 2019

Internetradio mit Raspberry

Inhaltsverzeichnis

Motivation
Aufbau
Taste und Poti
Display
WLAN und Sound
Kodi

Audio-Amp
Fotostrecke
Downloads


Motivation
Mit dem Raspberry und einem entsprechenden Linux sollte  ermöglicht werden, freie Software und Dienste für ein Internetradio zu verwenden.



Das fertige Internetradio. Zu sehen ist der KODI 17.4 mit der Favoritenseite

Aufbau
Das Internet Radio wird in ein ähnliches Dreiecksgehäuse eingebaut wie das Lesegerät. Das Gehäuse bietet eine hervorragende Ablesbarkeit des Touch-Displays. Statt Touch kann alternativ auch mit einer Maus bedient werden (Nano-Stick der Maus in den freien USB Port stecken). Der WLAN-Receiver incl. Antenne ist im Gehäuse angeordnet. Die Bedienelemente auf der Frontplatte bestehen lediglich aus einer Taste zum Einschalten und einem Potentiometer für die Lautstärke. Es wird der Raspberry Pi 2 B+ mit 4x0,9 GHz eingesetzt.  Das Betriebssystem ist ein spezielles Linux vom Displayhersteller (raspbian-jessie), um die entsprechende Unterstützung für das Display incl. Touchfunktion zu bekommen. Beim Download von der Herstellerseite ist es wichtig, den richtigen Raspi auszuwählen. Die Vorgehensweise beim Brennen der SD-Card ist bereits beim Lesegerät beschrieben. In config.txt sind entsprechende Einträge ein- oder auszuschalten.


Taste und Poti

Die Stellung des Potis (Lautstärke) bildet das Eingangssignal für den 10-Bit ADC MCP3008. Dieser wird ständig über das Python-Programm adafruit_mcp3008.py im Raspi ausgelesen. Damit wird dann die System-Lautstärke eingestellt. Dazu wird ausgeführt:

sudo chmod +x /home/pi/3151375/adafruit_mcp3008.py

In der /etc/rc.local wird (unbedingt vor exit 0) eingetragen:

/home/pi/3151375/adafruit_mcp3008.py &                                     #sonst stürzt der raspi ab

Damit ist die Datei adafruit_mcp3008.py im Autostart.
Die Datei adafruit_mcp3008.py wird entsprechend abgeändert:

set_vol_cmd = 'sudo amixer -c 2 cset numid=6 {volume}%' .format(volume = set_volume)

os.system(set_vol_cmd)                                                                 # set volume

Die Taste wird mit dem speziellen Raspi-Port GPIO3 verbunden. Dieser wird auch im power-down Modus des Raspi ausgelesen, so dass damit das Linux wieder hochgefahren werden kann (Taste nur kurz drücken, bis die Tasten-LED grün blinkt). Das Runterfahren geschieht entweder vom Desktop aus mit Menü-Power-Shutdown oder im Kodi links oben mit dem Powersymbol-Ausschalten (Tasten-LED blinkt langsam).

Schaltplan Raspberry 2 B+, Taste, Tasten-LED, Poti und MCP3008 (fritzing)

Experimentalaufbau (fritzing)
Die Tasten-LED wird an Stelle der on-board ACT-LED angeschlossen.



Display

Das Display hat eine Auflösung von 1024x600 Pixel und wird vom USB des Raspi versorgt (wichtig: Netzteil 5V/3A). Gleichzeitig läuft die Touch-Steuerung ebenfalls über USB. Das Videosignal wird per HDMI-Kabel übertragen. Dem Download für das LINUX-Image liegt eine config.txt bei, in der das Display initialisiert wird.  Das Netzteil sollte unbedingt 5V/3A liefern können. Nicht vergessen, den Backlight switch auf ‘ON’ zu stellen.
In der config.txt wird mit sudo nano /boot/config.txt geändert:



hdmi_boost=4                                            #mehr Strom vom USB

hdmi_drive=1                                             #HDMI sound off
hdmi_group=2
hdmi_mode=87

hdmi_cvt 1024 600 60 6 0 0 0                   #Auflösung




Display montiert, links in der Mitte sieht man den Backlight switch


Blockschaltbild Raspberry mit Grafik-Display



WLAN und Sound
Um einen guten Empfang zu garantieren, wird ein WLAN-Stick mit Antenne eingesetzt. Er befindet sich innerhalb des Gehäuses. 
Der on-board Sound des Raspis hat keine gute Qualität. Deshalb kommt eine ‘Soundkarte’ in Einsatz, die am USB angeschlossen wird. Ein folgender Endverstärker liefert max. 5W an den Dayton Lautsprecher. Der Audio-Verstärker wird von einem step-up Wandler mit 12 V versorgt. Im LINUX muss folgendes geändert werden, um die ‘Soundkarte zu enablen:

sudo nano /etc/modprobe.d/alsa-base.conf
options snd-usb-audio index=2 nrpacks=1
options snd-bcm2835 index=-0

In Einstellungen Audio Devices kann dann die USB Soundkarte ausgewählt werden. Sollte die USB Soundkarte im KODI nicht auswählbar sein (es wird z. B. nur HDMI-Sound und pulseaudio angeboten), muss pulseaudio deinstalliert werden:

sudo apt-get purge pulseaudio gstreamer0.10-pulseaudio
sudo apt-get autoremove

Die Entwicklung wurde mit dem SSH-Client Bitvise auf einem Windows 10 PC realisiert. Auf dem Raspi ist dazu im System-Menü SSH einzuschalten. Die Raspberry screenshots wurden mit dem Gnome aufgenommen:

sudo apt update && sudo apt upgrade
sudo apt install gnome-screenshot


Desktop Auswahl Soundkarte (Menü - Einstellungen - Audio Device Settings)


Blockschaltbild Raspberry, WLAN, Sound und step-up Wandler 5 V nach 12 V

KODI

Als Multimedia Plattform wird der Kodi 17.4 Krypton eingesetzt. Die Installation unter Raspbian Jessie wird im Internet ausführlich beschrieben. Der KODI kann über entsprechende Apps auf dem Handy incl. Lautstärke ferngesteuert werden. Dazu wird in Einstellungen - Dienste - Allgemein Zeroconf eingeschaltet. In - Steuerung wird Steuerung über HTTP erlaubt. Gleichzeitig wird dadurch der Port z. B. 8080 sowie der Name z. B. Kodi bekannt. Ebenso wird Anwendungskontrolle eingeschaltet.
Für den Sound wird in Einstellungen - System - Audio ALSA: USB Audio Device analog ausgewählt. Dazu die Beschreibung im Kapitel 'WLAN und Sound' beachten.
In dieser KODI-Version sollte es möglich sein, beim Ausschalten über das Power-Symbol oben links entweder mit 'Ausschalten - Verlassen' zum Desktop zurückzukehren oder mit 'Ausschalten - Ausschalten' das Gerät herunterzufahren.



Desktop mit KODI-Icon


Die KODI 17.4 Krypton Oberfläche


Audio-Amp

Als Mono-Audio Endstufe wird eine eigene Konstruktion mit dem TDA7056B eingesetzt. Bei diesem Chip ist kein Koppel-Elko zum Lautsprecher notwendig (BTL-Typ). Die on-board Klangregelung dient lediglich der akustischen Anpassung. Die on-board DC-gesteuerte Lautstärke wird fest eingestellt, da diese über das Eingangssignal mit der Systemlautstärke geregelt wird. Natürlich ist auch jeder andere geeignete Mono-Audio-Amp mit max 5W bei 12 V Versorgungsspannung  geeignet. Der Breitband-Lautsprecher ND65-8 ist von Dayton und bietet eine hervorragende Klangqualität.

Der fertig aufgebaute Audio-Amp
Schaltplan Audio-Amp



Fotostrecke


Links sieht man den in die Seitenwand eingebauten Dayton-Lautsprecher und dahinter den Audio-Amp mit dem abgesetzten Step-up Wandler 5 auf 12 V. In der Mitte ist der Raspberry angeordnet, davor die USB-Soundkarte und rechts da hinter der 10-Bit ADC MCP3008. Um die Störungen so gering wie möglich zu halten, ist die Masse sternförmig verschaltet. 


Blick in das Innere des Gerätes


Rückansicht mit Anschlussleiste


Downloads