FMラジオを聴く(FMラジオモジュール使用)(Python-smbus利用)

解説

FMラジオモジュールを使用すると、FMラジオを聴くことができます。

アマゾンで販売されている「RDA5807Mを使用したFMラジオモジュール」を使用しました。
「RDA5807Mのデータシート」に従い、RDA5807Mの操作を容易にするためのクラスを作成しました。

作成したRDA5807Mクラスを利用して、FMラジオを聴きます。

部品表

部品名 数量 商品名 参考価格
ラジオモジュール 1 KKHMF 6個 FMラジオモジュール RDA5807M RRD-102 V2.0 799円
3.5mmステレオミニジャック 3.5mmステレオミニジャックDIP化キット 150円
ピンヘッダ ピンヘッダ (オスL型) 1×40 (40P) 50円
アンテナ用ビニール線 耐熱通信機器用ビニル電線 2m×10色 導体径0.65mm 単芯 680円
Raspberry Pi 1 Raspberry Pi4 11,000円
ブレッドボード 1 EIC-801 370円
ジャンパーワイヤ 適量 ジャンパーワイヤ(オス-メス) 220円
スピーカー 1 ミニスピーカー 330円

「RDA5807Mを使用したFMラジオモジュール」のピンピッチが2mmでしたので、2.54mmピッチのL型のピンヘッダのピンをペンチで向きを調整し、「RDA5807Mを使用したFMラジオモジュール」にはんだ付けしました。

「RDA5807Mを使用したFMラジオモジュール」と2.54mmピッチのL型のピンヘッダをはんだ付けしたもの。


2つの「2.54mmピッチのL型のピンヘッダ」の間隔は、ブレッドボードに刺さる間隔にします。

接続表

FMラジオモジュール
RDA5807M RRD-102
接続先(Raspberry Pi、
オーディオジャック)
ピン番号 ピン名称 接続先
1 SDA Raspberry Piの3番ピン(GPIO2,SDA)
2 SCL Raspberry Piの5番ピン(GPIO2,SDA)
3 NC (無接続)
4 NC (無接続)
5 3V3 Raspberry Piの1番ピン(3V3)
6 GND GND
7 L OUT オーディオジャックのLピン
8 R OUT オーディオジャックのRピン
9 NC (無接続)
10 ANT アンテナ用ビニール線

接続例

I2C通信の有効化

I2C通信を有効化していない場合は、I2C通信の有効化が必要です。

例えば、Terminalから、以下のコマンドを実行し、「raspi-config」を起動し、「3 Interface Options」 > 「I5 I2C」と進み、「<Yes>」を選択し、I2C通信を有効化します。



TeraTermを使用しSSH通信でRaspberry Piに接続し、「raspi-config」でI2C通信を有効化した際の画面。

Python-smbusのインストール

Python-smbusをインストールしてない場合は、以下のコマンドを実行し、Python-smbusをインストールします。

クラスファイルの作成

「RDA5807Mのデータシート」に従い、RDA5807Mの操作を容易にするためのクラスを、Python言語で、Python-smbusを利用して作成しました。

rda5807m.py

スクリプトファイルの作成

ラジオを聴くことを開始するスクリプトと、ラジオを聴くことを終了するスクリプトを作成します。

クラスファイル「rda5807m.py」は、スクリプトファイル(radio_on.py 、 radio_off.py)と同一フォルダに配置します。

radio_on.py


radio_off.py

実行

Terminalにて、スクリプトファイルのあるディレクトリに移動します。

以下のコマンドを実行し、ラジオを聴くことを開始します。



TeraTermを使用しSSH通信でRaspberry Piに接続し、ラジオを聴くことを開始するスクリプトを実行した際の画面。


ラジオの音声を、スピーカーから聴くことができました。
165cmほどの長さのビニール線アンテナを使用し、アンテナ線の配置をあれこれ試した結果、ラジオをクリアに聴くことができました。(ラジオを受信した所在地は、東京都の23区内です。)

ラジオを聴くことを終了するには、以下のコマンドを実行します。



ダウンロード

サンプルスクリプトファイル