ラジオを聞く

 Raspberry Pi でラジをを聞きます。
 ラジオを聞くと言っても、ネットラジオではありません。
RTL というハードウェア使って、電波のラジオを聞く、ソフトウェアラジオです。

 ゾックス USBワンセグチューナー シルバー DS-DT308SV

DS-DT308SV

 これ、Amazonn で 800 円くらいで買えますが、SDR を使うとラジオが聞けるんです。電波状況が良ければ付属のアンテナでも聞けますが、できればちゃんとしたアンテナをつなげたほうがいいです。まあ、FM 放送だけ聞くなら、室内アンテナでも聞けました。

 Raspberry Pi の USB につなげ、lsusb で確認します。

$ lsusb
 :
Bus 001 Device 010: ID 0bda:2832 Realtek Semiconductor Corp. RTL2832U DVB-T
 :

 RTL2832U があれば大丈夫でしょう。

・SDR をインストールする。

$ sudo apt-get install -y rtl-sdr

 /etc/modprobe.d/ディレクトリにrtl-tcp-blacklist.confというファイルを下記の内容で作成します。

blacklist dvb_usb_rtl28xxu blacklist rtl2830 blacklist dvb_usb_v2 blacklist dvb_core

 一度、再起動します。
起動したら rtl_test でテストします。

$ rtl_test
Found 1 device(s):
0: Generic, RTL2832U, SN: 77771111153705700

Using device 0: Generic RTL2832U
Found Fitipower FC0013 tuner
Supported gain values (23): -9.9 -7.3 -6.5 -6.3 -6.0 -5.8 -5.4 5.8 6.1 6.3 6.5 6.7 6.8 7.0 7.1 17.9 18.1 18.2 18.4 18.6 18.8 19.1 19.7
Sampling at 2048000 S/s.

Info: This tool will continuously read from the device, and report if samples get lost. If you observe no further output, everything is fine.

Reading samples in async mode…
Allocating 15 zero-copy buffers
lost at least 24 bytes
^CSignal caught, exiting!

User cancel, exiting…
Samples per million lost (minimum): 0

 ctrl+c でブレークします。デバイスが認識できていれば大丈夫です。

 再生は以下のようにします。82.5M は選局する周波数です。(1行で入力します。)

$ rtl_fm -f 82.5M -M fm -s 200000 -r 48000 – | aplay -r 48000 -f S16_LE

やってみたらワイドFM まで受信できました。

(2021.03.08 追記)

コマンドラインから入力するのは面倒なので、tcl/tk でフロントエンドを作りました。

こちらからどうぞ。

Raspberry Pi

Posted by sirius