kleine Bastelei am Rande.
Die Sony Ericsson Transmitter-Module bekommt man z.B. im 5er-Pack für knapp 5 Euro inkl. Porto (aus Deutschland!)
Eine Anleitung findet man u.a. bei GitHub
Build an open source fm radio station with your raspberry pi
mit weiterführendem link zur hardware
FMBerry - Hardware
schöne Videos gibt es natürlich auch
man kann nicht so sehr viel falsch machen, und die Sendeleistung ist
einigermassen unkritisch (0,5mW im unteren level). Trotzdem hab ich in
der ganzen Etage, spätestens nach Ausrichten der Telekop- bzw.
Wurfantenne, wunderbaren Empfang in optimaler Qualität. Hier läuft wie
im Video der mplayer mit einem Internetradio-Stream.
bei mir muss ja niemand nacket rumlaufen. Statt 3D-Druck heute nur etwas
Holzbearbeitung. Jetzt kann ich mit der Box im Einzugsbereich meines
WLAN im Haus rumlaufen und UKW-Empfänger mit Rockantenne-Classic-Perlen
füttern.
etwas Eigenwerbung muss auch mal sein:
es spielt keine Rolle wo die NF herkommt, die Übergabe an FMBerry
geschieht an der Audiobuchse. Das kann also VLC, MPD, mplayer, volumio
oder sogar eine externe Audioquelle sein.
Die Steuerung von FMBerry geschieht durch Anweisungen die ich in die rc.local eingetragen habe. Bei mir wird der mplayer mit einem Internetradiostream gestartet. Ich höre nur den einen Sender damit. Meine Sendebox hat keine Bedienteile. Sie läuft automatisch an wenn ich meinen Arbeitsplatz anschalte und 20sec. später kann ich auf meinen UKW-Radios "Rockantenne Classic Perlen" hören.
Die Steuerung von FMBerry geschieht durch Anweisungen die ich in die rc.local eingetragen habe. Bei mir wird der mplayer mit einem Internetradiostream gestartet. Ich höre nur den einen Sender damit. Meine Sendebox hat keine Bedienteile. Sie läuft automatisch an wenn ich meinen Arbeitsplatz anschalte und 20sec. später kann ich auf meinen UKW-Radios "Rockantenne Classic Perlen" hören.
Die Übersicht der Befehle (der link ist oben angegeben):
It currently allows the following commands:
ctlfmberry set freq 99000 - Frequency in kHz (76000 - 108000)
ctlfmberry poweron
ctlfmberry poweroff
ctlfmberry set rdsid DEADBEEF (8 chars! Longer strings will be truncated, shorter - padded with spaces)
ctlfmberry set rdstext Mike Oldfield - Pictures in the Dark (max. 64 chars. Longer strings will be truncated)
ctlfmberry set txpwr 0 - 0.5 mW Outputpower
ctlfmberry set txpwr 1 - 0.8 mW Outputpower
ctlfmberry set txpwr 2 - 1.0 mW Outputpower
ctlfmberry set txpwr 3 - 2.0 mW Outputpower (Default.)
ctlfmberry stereo on - Enables stereo signal (Default)
ctlfmberry stereo off - Disables stereo signal
ctlfmberry muteon - Mute audio
ctlfmberry muteoff - Unmute audio
ctlfmberry gainlow - Audio gain -9dB
ctlfmberry gainoff - Audio gain 0dB"
ctlfmberry set volume 0-6 Audio volume level 0 to 6, equal -9dB to +9db, 3dB step
ctlfmberry status - Print current status
ctlfmberry stop - Stop FMBerry daemon
Umbau des FMBerry auf iRadio
dieser Umbau ersetzt den mplayer durch den vlcd und bringt die ganzen Annehmlichkeiten von iRadio mit sich, wie Steuerung über webinterface, Taster oder Encoder, die Möglichkeit ein Display einzusetzen, und die Aktualisierungsmöglichkeiten von playlist und WLAN-Zugangsdaten.
Als erstes sichern wir die doch recht aufwändige rc.local, da iRadio diese überschreibt.
cd /etc
sudo cp rc.local rc.rette
dann erfolgt eine ganz normale iRadio-Installation
git clone https://github.com/BM45/iRadio.git
an der Stelle können wir bereits einen GPIO-Konflikt beseitigen. FMBerry belegt GPIO 17 (Pin 11) für den RDS-Interrupt. iRadio hat an dem Pin aber standardmässig eine der Sendersteuerungsleitungen.
wir definieren also in der rotary.c (für Drehencoder-Steuerung) die GPIO's z.B. so (meine bevorzugte Belegung auch in Hinsicht auf Konflikte mit Displays):
dieser Umbau ersetzt den mplayer durch den vlcd und bringt die ganzen Annehmlichkeiten von iRadio mit sich, wie Steuerung über webinterface, Taster oder Encoder, die Möglichkeit ein Display einzusetzen, und die Aktualisierungsmöglichkeiten von playlist und WLAN-Zugangsdaten.
Als erstes sichern wir die doch recht aufwändige rc.local, da iRadio diese überschreibt.
cd /etc
sudo cp rc.local rc.rette
dann erfolgt eine ganz normale iRadio-Installation
git clone https://github.com/BM45/iRadio.git
an der Stelle können wir bereits einen GPIO-Konflikt beseitigen. FMBerry belegt GPIO 17 (Pin 11) für den RDS-Interrupt. iRadio hat an dem Pin aber standardmässig eine der Sendersteuerungsleitungen.
wir definieren also in der rotary.c (für Drehencoder-Steuerung) die GPIO's z.B. so (meine bevorzugte Belegung auch in Hinsicht auf Konflikte mit Displays):
#define RoAPin 23 // GPIO-Pin 13, Pinnummer 33
#define RoBPin 24 // GPIO-Pin 19, Pinnummer 35
und können sodann das iRadio-script und im Anschluss das Drehencoder-script starten:
cd /home/pi/iRadio
sudo ./install.sh
danach:
sudo ./install_Drehencoder.sh
die gesicherte und die neu erzeugte rc.local führen wir zusammen. In meinem Beispiel inkl. Lautstärkeerhöhung:
....
ctlfmberry set freq 107900
ctlfmberry set rdsid saarfrze
ctlfmberry set rdstext "Jupp's Internetradio"
ctlfmberry set txpwr 0
ctlfmberry stereo off
ctlfmberry set volume 0
#mplayer -ao alsa -playlist http://www.rockantenne.de/webradio/channels/classic-perlen.m3u
/usr/bin/vlcd
#/usr/bin/displayd &
/usr/bin/gpiod &
sleep 10
echo "play" | nc 127.0.0.1 9294 -N
amixer -M set PCM 85%
exit 0
falls nach dem Neustart keine Modulation zu hören ist ist evtl. mit raspi-config die Audioausgabe noch nicht auf Klinke geschaltet. Auch musste ich in der vlcd noch wie gehabt den gain-Wert ergänzen.
sudo nano /usr/bin/vlcd
...
--compressor-makeup-gain 0.0 \
--gain 3 \
...
das HF-Spektrum sieht eigentlich ganz gut aus, zumindest bedarf es
keiner nachträglichen Filterung oder Abschwächer. Problematisch ist
jedoch die Stromaufnahme, der Transmitter sollte unbedingt aus der 5V
Leitung des Raspberrys mit nachgeschalteten 3.3V Spannungsregler
versorgt werden. Versorgt man den Sender aus dem 3.3V Anschluß des Pi
(zum Beispiel 3A+), dann funktioniert das bei gleichzeitigen Betrieb des
WLAN Moduls noch gerade so. Geht das iRadio aber in den Bluetoothmodus
schafft der Regler auf dem Pi nicht mehr alle Komponenten mit einer
stabilen Spannung zu versorgen, es kommt zu hörbaren Störungen in der
BT-Übertragung.
Also Raspi 5V - 3.3 V Regler - Sender, dann funktioniert das Gesamtpaket gut.
die Verwendung von iRadio ermöglich natürlich auch ein Display. Hier experimentiere ich mit LCD und OLED:
ich hab mich aus mechanischen Gründen für das OLED entschieden.
Erstaunlicherweise stellte ich fest das mein Vorrat aus 0,96" OLED aus
monochromen sowie aus farbigen Typen besteht. Aber auch Defekte sind zu
beklagen. Zwei Stück leuchten gar nicht, zwei weitere haben ein
streifiges Bild. Hab sie mit gleichem Ergebnis auch in einer anderen
Umgebung getestet.
Keine Kommentare:
Kommentar veröffentlichen