Dienstag, 26. Februar 2019

3.Teil iRadio: Steuerung


welche Steuerungsmöglichkeiten bietet iRadio?


webinterface

Grundsätzlich stehen uns ohne weiteres zutun bereits 2 Möglichkeiten zur Verfügung. Da wäre zum einen das webinterface, welches von VLC mitgestartet wird. An einem Client-PC in unserem Netz rufen wir im browser unseren Raspberry Pi mit seinem Namen oder seiner IP-Adresse auf, gefolgt von der Portangabe :8080

Im Beispiel hab ich dem iRadio mittels sudo raspi-config während der Installation den Hostnamen raspi2b gegeben.

Es erfolgt erst mal eine Authentifizierung. Dazu lassen wir den Benutzername leer und geben als Passwort raspberry ein. Wenn gewünscht kann das Passwort gespeichert werden, das erspart die ständige Eingabe. Nun startet das webinterface, wo wir die Wiedergabeliste ausklappen können bis zur Auflösung der einzelnen URL's unserer playlist.

wir können die Sender anklicken oder vor-rückwärts schalten, die Lautstärke einstellen, sowie Start-, Stop und Pausebefehle absetzen.

Tastersteuerung

Die zweite Möglichkeit wäre über Taster, welche an die GPIO-Leiste des Raspberry angeschlossen werden. Vorbelegt ist bereits Pin11 um auf den nächsten Sender zu schalten. Dazu wird Pin11 mit einem Taster gegen Masse geschaltet. Mit Pin12 wird einen Sender in der Liste zurück geschaltet.
Ein Taster von Pin8 gegen Masse läßt die Wiedergabe pausieren, über Pin10 wird sie wieder gestartet.



Drehencoder

eine sehr komfortable Möglichkeit der Bedienung bieten Drehencoder (rotary encoder). Der Drehencoder liefert bei jedem Betätigen auf die nächste Raststellung 2 Impulse, deren zeitlicher Versatz von der Drehrichtung abhängt. Ein kleines Programm kann also erkennen in welche Richtung gedreht wurde und dann passend darauf reagieren. Auch ein solches Programm ist bereits vorinstalliert. Um von Tastensteuerung auf Drehencoder zu wechseln klemmen wir an Pin11 und 12 der GPIO-Leiste die Leitungen CLK und DT des Encoders. Falls die Drehrichtung nicht stimmt werden die beiden Leitungen einfach umgetauscht.

Ein solches Encoder-Modul (breakboard) hat bereits pull-up Widerstände eingebaut. Es benötigt weiterhin noch eine Verbindung von + auf einen 3,3V Pin der GPIO-Leiste und von GND auf einen GND-Pin. Bitte keinen 5V-Anschluss benutzen!



Bei einem Encoder-Einzelbauteil hingegen müssen noch 2 Widerstände für pull-up angelötet werden:



Nun muss unser kleines Hintergrundprogramm (gpiod), welches bisher die Taster abgefragt hat, geändert werden auf eine Encoder-Abfrage. Dazu wird einfach nur im Ordner /home/pi/iRadio ein script gestartet:

cd /home/pi/iRadio
sudo ./install_Drehencoder.sh

für den umgekehrten Weg, also eine Encoder-Steuerung auf Taster-Steuerung zu ändern, gibt es ebenfalls ein script:

cd /home/pi/iRadio
sudo ./install_Tastensteuerung.sh

beide scripte verlangen nach ihrer Ausführung einen Neustart:

sudo reboot

das wären die grundsätzlichen Bedienfunktionen des iRadio. Es kann erforderlich sein die Steuerung auf andere Pin's zu legen, falls z.B. ein Display die Pin's 11 oder 12 benötigt.

Wenn wir Taster-Steuerung benutzen schauen wir dazu in die gpiod.c:

cd /home/pi/iRadio
sudo nano gpiod.c

bei den Definitionen finden wir diesen Abschnitt:

// Tasteranschluesse
#define PIN_PRG_HOCH RPI_GPIO_P1_11
#define PIN_PRG_RUNTER RPI_GPIO_P1_12
#define PIN_PRG_HALT RPI_GPIO_P1_08
#define PIN_PRG_WEITER RPI_GPIO_P1_10


eine "Pin Map" findet man hier:

Install BCM2835 Library in Raspberry Pi

Demnach würden die neuen Einstellung für z.B. Pin33/GPIO13 und Pin35/GPIO19 so aussehen:

#define PIN_PRG_HOCH RPI_V2_GPIO_P1_33
#define PIN_PRG_RUNTER RPI_V2_GPIO_P1_35

 

Anders sieht es aus bei Encoder-Steuerung. Der Quellcode liegt in der Datei rotary.c:

cd /home/pi/iRadio
sudo nano rotary.c

So sehen die Definitionen aus:

#define RoAPin 0 // GPIO-Pin 17, Pinnummer 11
#define RoBPin 1 // GPIO-Pin 18, Pinnummer 12


Die 0 und die 1 entsprechen den wiringPi-Bezeichnungen. Die GPIO-Bezeichnungen und die Pin-Nummern dazu sehen wir als Kommentar. Wollen wir den Encoder z.B. auf die Pin 15 und 16 umlegen entsprechen diese den wiringPi-Bezeichnungen 3 und 4:

#define RoAPin 3 // GPIO-Pin 22, Pinnummer 15
#define RoBPin 4 // GPIO-Pin 23, Pinnummer 16


Ein wichtiges Hilfsmittel ist eine solche Tabelle, welche die wiringPi-Bezeichnungen zeigt:


Nach einer Änderung im Quellcode muss die gpiod durch Ausführen des entsprechenden scriptes wieder neu gebaut werden:

sudo ./install_Tastensteuerung.sh

bzw.

sudo ./install_Drehencoder.sh


Danach ist noch ein reboot notwendig:

sudo reboot

weitere Informationen zu Drehencodern und eine Möglichkeit die Lautstärke digital zu steuern finden sich im Teil:  iRadio FAQ und Release Notes

Keine Kommentare:

Kommentar veröffentlichen