色々なDSPラジオを製作してきたが、普段、聴く上で面倒なのはラジオ局の選択である。ボリュームで行うのは論外で、プリセット(ボタン)で行うのは許容範囲内であるが、番組の時刻になった時に、ボタンを押すのを忘れ聞き逃すことがある。常々、時刻になったら自動で番組を選択してくれる機能があればと思っていた。そのようなラジオはないので、自分で作ることにした。
求める機能は以下の通りである。
- 時刻機能(時刻設定は自動)を持つ。
- 番組の時刻になったら(電源をONして⇒目覚まし機能)該当のラジオ局を自動で選局する(スケジュール機能)。
- 指定の音量で再生する。
- 番組が終了したら、電源をOFFする(Sleep機能)。
- スケジュールの設定は、PCやスマホからブラウザ経由でできる。
- 最低限の操作(音量調節、選局、電源ON/OFF)はブラウザ経由でできる。
以上の機能は、RDA5807FP(FM DSPラジオ)とSeeed Studio XIAO ESP32C3(WiFi機能あり)を組み合わせることで可能となる。RDA5807FPは、安価であるが性能的には十分である。ワイドFMに対応し、聴きやすい音質で、ステレオをサポートする。XIAO ESP32C3は、サイズが500円硬貨位で、全体をコンパクトにできる。また、Arduino IDEでのプログラミングがサポートされている。RDA5807FPとXIAO ESP32C3は、I2Cで接続する。RDA5807FPは、小口径のスピーカーなら十分駆動できるので、アンプは不要である。全体の、消費電力は微少(0.3W程度)で、24時間電源ONでも大丈夫である。今回、作成したスケッチ(プログラム)と製作に関する情報はGithubに登録してある。
スケジュールは、曜日ごとに週間で設定する。ラジオの番組は、平日、土、日で異なり、毎週ほぼ同じなので、週間スケジュールで十分である。聴きたい番組について、「開始時刻、ラジオ局、番組の長さ(分)、音量、番組終了後に電源OFF(RDA5807FPのみ)するか否か」を設定する。以下に示すのは、ブラウザに表示された週間スケジュールの設定画面である。中央の表に各曜日ごとのスケジュールが表示されている。各エントリの指定項目は上記の通りである。ラジオ局については、”Station List:”の数字を設定する。
スケジュールを変更する方法は、まず各曜日のラジオボタンをクリックする。選択した曜日の設定が上部の入力領域にコピーされるので、それを編集後、”Submit”ボタンをクリックする、これで変更内容が保存される。
上の設定画面の下部”Control Functions”にあるボタンは、それぞれ、音量調節、選局、電源(RD5807FPのみ)をON/OFFするためのものである。
製作したDSPラジオの外観を以下に示す。
手前がXIAO ESP32C3、奥がRDA5807FP。部品数は少ない。口径10センチのスピーカーをRDA5807FPに直接接続している。アンテナは70センチ程のリード線を接続すれば十分受信できる。
OLEDの表示内容を以下に示す。
日付、曜日、時刻、音量、電源(1:ON,0:OFF)、受信周波数の順。
数か月間利用しているが、朝、電源ONした後はノータッチで自動選局してくれるので、大変便利である。