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