ことの始まりは、一ヶ月前。
最近、ニュースが同じ話題ばかりで、TVを見なくなってきた。と話していたところ
「ラジオがいいよ。他の作業が並行できるし」と勧められました。
で、AliExpressにてお安いラジオ(と部品)を探していたら・・・。
ダントツで安い!
なんと48円という激安FMラジオボードを発見。送料込み。
しかし、えらく小さくないか?コレ。1cm×1cm程しかないんだけど。
というわけで、電子工作でいっちょうFMラジオを作ってみました。
今回作ったラジオの回路図です。たったこれだけ。
Arduino nano(5V)と、RDA5807Mを搭載したRRD-102ボード(3.3V)を、レベル変換器をはさんで接続。
I2C通信で周波数、ボリューム、各種設定を制御します。
レベル変換なしの5Vでは全く動かなかったので注意。
RRD-102ボードの音声出力L/Rは、イヤホン端子に直結。アンプなしでイヤホンを鳴らせます。
アンテナは適当なジャンパー線を90cmほど連結しただけです。
なお工作にあたり、以下のブログを参考にさせて頂きました。感謝致します。
【Arduino】FMラジオモジュール RDA5807Mを使ってみる【RRD-102】
https://mobile.k05.biz/e/2020/02/rda5807m-fm-radio.html
この工作の最大の難所。
1cm角のRRD-102ボードの穴ピッチが、標準の2.5mmではなく2mmなのです。
そのままではブレッドボードに差し込むピンヘッダを取り付けできません。
困った挙げ句、ジャンパー線を真ん中で切った物を7本用意、裏面に震える手でハンダ付けしました。
端子にハンダを盛ってから、銅線をコテ先で押さえて埋めると、なんとか接続できました。
左がマイコン Arduino nano、右下がロジックレベル変換器。
奥がたばねたワイヤーアンテナ。伸ばした方が感度が良いです。
Arduino nanoで制御するプログラムは、以下の手順で用意します。
(1)Arduino IDEのライブラリの管理で、標準ライブラリ内の「Radio」をインストール
(2)スケッチ例→Radio→「TestRDA5807M」を開く
(3)3ヶ所修正
・#define FIX_BAND RADIO_BAND_FM → RADIO_BAND_FMWORLD に修正
・#define FIX_STATION 8930 → 8000 に修正。近隣FM局の周波数を指定、8000=80.0MHz
・Serial.begin(57600); → 9600 など、シリアルモニタの速度をお好みで。
Arduino nanoでプログラムを動かすと・・・イヤホンから音が聞こえました!
予想より良い音です。高品質とはいいませんが、中域低域がしっかりで、音楽も十分聴けます。
車のFMラジオの音がイメージに近いかもしれません。
シリアルモニタを開くと、FMラジオのステータスが表示されます。
RSSIは電波の強さでしょうか。20以上ないとSTEREOで受信せずMONOになってしまいます。
自宅の室内では2~3局が25以上で受信できましたが、もう少し感度が欲しいところです。
音量は、イヤホンで聴くならばうるさいくらいまで上がりました。
スピーカーを直結するには、少々力不足かもしれません。アンプモジュールを用意した方がいいでしょう。
Arduino nanoのプログラム次第で、
時計モジュールと組み合わせて「目覚ましラジオ」にしたり、
照明の明るさや気温でラジオがオフオンしたりすると、面白いかも。
また小さいので、100均などのいろいろな物に埋め込みができるかもしれません。
おしまい。