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区内です。)
ラジオを聴くことを終了するには、以下のコマンドを実行します。

