Aus Raspberry Pi Geek 10/2020

DAB+-Platine für den RasPi (Seite 2)

DABBoardRadio nutzt die Ncurses-Bibliothek und eignet sich deshalb auch für den Einsatz via SSH. Starten Sie es per Sudo, scannt es einmalig alle Frequenzen und zeigt die gefundenen Sender in einer einfachen Oberfläche an (Abbildung 3).

Abbildung 3: Das Ncurses-Tool DABBoardRadio dient unter anderem dazu, die Liste der Sender zu erstellen.

Abbildung 3: Das Ncurses-Tool DABBoardRadio dient unter anderem dazu, die Liste der Sender zu erstellen.

Sie navigieren mit den Pfeiltasten; die Lautstärke ändern Sie über [Q]+ und [W]+. Über [X] beenden Sie die Anwendung samt Radio, während Sie mit [Strg]+[C] nur das Programm beenden; das Radio läuft dann weiter. Findet die Software zu wenige Sender, liegt das in aller Regel am mangelhaften Empfang. Eine bessere Antenne oder ein anderer Standort helfen hier oft weiter.

Ursprünglich nutzte DABBoardRadio eine unergonomische Farbgebung für den Hinweis am unteren Bildschirmrand. Dieses einzige Manko des Programms behob der Hersteller nach einer entsprechenden Rückmeldung des Autors sofort.

Schwachpunkt Si4684

Der verbaute Radiochip hat einen Schwachpunkt: Sie dürfen ihn nicht einfach ausschalten. Deshalb gibt es auf der Platine eine LED, die anzeigt, dass er in Betrieb ist. Bei aktiver LED starten Sie entweder nochmals DABBoardRadio und verlassen die Anwendung über [X], oder Sie fahren das Board mit dem Befehl sudo radio_cli -k herunter.

Für den produktiven Einsatz empfiehlt sich hier ein Systemd-Service, der das beim Herunterfahren des Rechners automatisch erledigt. Eine entsprechende Vorlage liefert uGreen mit.

CLI-Steuerung

Der Befehl radio_cli dient ebenfalls zum Steuern der Platine. Während DABBoardRadio über eine textbasierte Oberfläche verfügt, ist Radio_cli ein reines Kommandozeilenprogramm. Sie steuern es über eine Vielzahl an Optionen und Parametern. Listing 2 zeigt einen typischen Anwendungsfall.

Listing 2

$ sudo radio_cli -b D
$ sudo radio_cli -c 9 -e 54036 -f 29
$ sudo radio_cli -p -l 60
$ sudo radio_cli -k

Der Befehl in der ersten Zeile initialisiert das Board und lädt die Firmware in den Chip. Das zweite Kommando stellt den Sender mit der Service-ID 54036 des Ensembles mit dem Index 29 und der Component-ID 9 ein. Danach spielt der Befehl aus Zeile 3 den Sender ab (-p), wobei die Option -l die Lautstärke regelt. Über die Option -k (Zeile 4) fahren Sie das Board sauber herunter.

Die Kommandos von Radio_cli wirken mitunter sehr kryptisch. Die Software richtet sich aber ohnehin nicht an Endanwender, sondern dient eigentlich dem Steuern aus eigenen Anwendungen heraus. Und das ist ja letztlich der Grund, warum man sich überhaupt eine DAB+-Platine für den RasPi kauft: Wer nur Radio hören will, kauft sich eins.

Anwendungsbeispiel

Für einen simplen Eigenbau kommt als einziges Bedienelement ein Drehknopf an den RasPi. Radios hatten früher zwei Drehknöpfe, einen für die Sendereinstellung und einen für die Lautstärke. Das im Projekt verwendete Exemplar, auch Rotary Encoder genannt, erfüllt beide Zwecke: Neben der Drehfunktion fungiert er noch als Druckschalter (Abbildung 4). Ein Druck wechselt zwischen Lautstärke- und Sendereinstellung hin und her.

Abbildung 4: Ein Drehknopf (Rotary Encoder) liefert beim Drehen und beim Drücken Signale, die es erlauben, zwei Funktionen über ein Element zu steuern.

Abbildung 4: Ein Drehknopf (Rotary Encoder) liefert beim Drehen und beim Drücken Signale, die es erlauben, zwei Funktionen über ein Element zu steuern.

Für den Drehschalter stellt Raspberry Pi OS ein fertiges Overlay bereit, dass Sie in die /boot/config.txt einbinden (Listing 3). Die erste Zeile definiert die Drehfunktion, die zweite Zeile den Taster. Das Overlay bezeichnet den CLK-Anschluss als pin_a und den DATA-Anschluss als pin_b. Den SW-Anschluss verbinden Sie mit dem Pin für den Schalter (zweite Zeile). Das angegebene label dient dabei der Dokumentation, wichtig ist nur der keycode.

Listing 3

$ dtoverlay=rotary-encoder,pin_a=17,pin_b=27,relative_axis=1
$ dtoverlay=gpio-key,gpio=22,keycode=28,label="PUSH"

Nach einem Neustart finden Sie dann unter /dev/input zwei neue Eingabegeräte, die bei einem Headless-RasPi input0 und input1 heißen. Hängt schon eine Tastatur am Rechner, fallen die Nummern entsprechend höher aus. Sie spielen aber ohnehin keine große Rolle: Das Python-Programm, von dem Sie in Listing 4 einen Auszug sehen, überwacht alle Input-Geräte und ändert je nach Eingabe die Lautstärke beziehungsweise den Sender. Das komplette Programm finden Sie im Github-Projekt [3] des Autors.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben