ラジオモジュールでＦＭ放送を聴こう

#目的
　プログラミングなんかのバックグラウンドとして音楽を流しているのだけど、
　限られたリソースから同じ曲ばかりなので、少し鼻に付きだした。別のものも聴きたいな。
　◆◆◆　そうだ、ラジオを作ってＦＭ放送を聴こう　◆◆◆
　内容は今更だろうし、大した内容じゃ無いが、同じ事考えている人が居るかも知れないから。

#経緯
　出来合いのラジオで良いじゃ無いと言われそうだが、
　　・多少マシなBTスピーカー使ってるので、此処から音を出したい。
　　・パソコンからも操作したい。
　　・今更ＡＭ要らんだろう。
　この制約を受け、アマゾ〇でも購入可能なＦＭ放送対応の下記三点をチョイス。ポチッとな。
　　・USB接続ワンセグチューナー DS-DT310BK(1.5K位)
　　・FMラジオモジュール RDA5807M(0.1K位)
　　・高感度 FM ステレオ DSP＆PLL デジタル ラジオ モジュール(型式名無し)(1K位)

　自動選局したら、ＦＭでＡＭ放送が聞こえるじゃないか(意味判るかな)。
　２０２８年までに、ほぼすべてがＦＭ放送化するんだって、聴こえたのは先行した放送局だな。
　２０２３年にはＡＭを停波する「実証実験」も有るそうな。
　　※暫くラジオを聴いてなかったので、この動きは知らなかった。地デジ化で電波が空いたらしい。

#USB接続ワンセグチューナー DS-DT310BK
　ソフト(ミニＣＤ)も付いており、インストールして繋げば即使用可能。
　　※ワンセグテレビも見られる。ソフト有ればワイドバンドラジオ(SDR)としても使える。
　広範囲な受信機能を持ってるが、下記の弱点が有る。
　　・感度が若干悪い、ちゃんとしたアンテナが必要。
　　・受信処理をパソコンで行っており、パソコン起動中で無いと聴けない。
![DS-DT310.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159764/ae14786b-d31f-72db-cb82-43bb2948e716.jpeg)

　ワイドバンドラジオ(SDR)としての使用は、付属ソフトでは当然対応していない。
　　※50MHz～1100MHz位のバンド幅で受信できるらしい。
　　※既に販社は消滅しており、今後入手困難になるかも。
　別途ソフト(フリー)のインストールが必要となるので、下記のサイト等を参考にした。
　　・「[ソフトウェア無線 SDR#(SDRsharp)のインストール手順](https://falconblog.org/sdr-sharp-realtek-install/)」
　　・「[中華製1セグチューナー、ゾックス「DS-DT310」を広帯域受信機に改造する。](https://blog.goo.ne.jp/jf1vxb/e/aef31c0ae062cfa6f3cf2bbd61e2752b)」

　色々書かれていたが、下記の３点を行う事により動いた(ような気がする)。
　　1.DS-DT310のDriver差し替え。
　　　Zadigを使用して、DriverをWinUSBに差し替える。
　　　　※正しく設定出来たら、ユニバーサルシリアルバスデバイス(当方環境では)に、RTL2832Uが現れる。
　　　　※付属ソフトは使えなくなります。
　　　　　デバイスマネージャを使用して、一端RTL2832Uを削除すれば再インストール可能になるだろう。
　　2.受信ソフトのインストール
　　　色々なソフトが公開されているらしい。
　　　今回は上記サイトに書かれていた「[ＳＤＲ＃](https://sdrchile.cl/en/)」をインストール。
　　　　※SDRSharp-installer.exeがDLされるので、ブラウザにいちゃもんを付けられるかも。
　　　　　DLしたらノートンさんは安全ですと仰ったので、大丈夫だろう。
　　3.起動と設定
　　　ＳＤＲ＃をインストし起動したら、画面の左下の方にSource:選択のプルダウンで、RTL-SDR USB を設定。
　　　画面左上の三角釦を押すと受信開始して四角に変化。
　　　周波数の数字をクリックしてキーを押すと、周波数を選択できる。
　　　　※No Device Available なんて出たら、デバイスが刺さってないか、1.の設定誤りかな。
![sdr.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159764/812771dc-dc24-69ca-f454-6a6ddd9e5c89.jpeg)


#FMラジオモジュール RDA5807M
　Arduino対応のソフトが有り、VCC(5:2.7-2.6V),GND(6:),SDA(1:),SCL(2:)を繋げば制御可能。
　　※勿論、音を聴くにはANT(10:アンテナ)とROUT(8:),LOUT(7:)も繋ぐ必要が有るよ。
　　※しかし、何だよこの値段は。
　「[FMラジオモジュール RDA5807Mを使ってみる](https://mobile.k05.biz/e/2020/02/rda5807m-fm-radio.html)」
　この通りやればFMラジオになります。感度もそれなり。
　　※書かれている事だが、サンプルスケッチを動かす時に、FIX_BANDをRADIO BAND FMWORLDに変更を忘れない様に。
　　　こうしておかないと、87MHz以下の周波数をワッチできない

　当然、ESP32で動作させる事が出来る。
　ESP32のGPIO21をSDA(1:)に、GPIO22をSCL(2:)に繋ぐだけ。
　　※ESP32のWireライブラリに互換性が有った。
　　※ディスクリート部品(C,R等)は無くとも動作した。
　音声をESP32に取り込み、UDP当たりを使って、WiFi放送局てのも作れるかな。
![RDA5807M.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159764/c479c791-2ef8-faca-62c9-9e0229dcd90f.jpeg)


#高感度 FM モジュール(型式名無し)
　購入元で開示されている回路を組めば、パソコンなしで使える。
![kairo.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159764/1fbe0570-6928-5184-c314-21cecadefb91.jpeg)


　パソコン無しで運用する場合は初期設定として、下記を操作。
　　※操作ボタンを５個付けておく。
　　1. 音量+と音量-釦を押したまま電源を投入して、LCDにC1が表示される事を確認。
　　　※受信範囲を76-108MHzに設定。
　　　※C0と表示されたら再度電源オンオフ。
　　2.停止と自動選局釦をしばらく押す。
　　　[　]の表示に変わったら、自動選局が始まったので放して可。
　　　自動選局完了後には先頭の局が選択される、以降は選局釦での選挙区が可能になる。
　　　※チョン押しだと、ミュート動作になる。

　使い勝手向上の為に、USBシリアルと操作SWを繋いで、プリントしたケースに入れた。
　　※TX(11),RX(12)に、USBシリアルのRX,TXを接続する。自動選曲釦は不付。
　　　回路にUSB2.0の表記有るが、多分USBメモリ(スピーカーかも)につなげられる(未確認)
　　※コマンドは一気に送らないと駄目、手打ちでパラパラ打っても無反応。
　　※アマゾ〇に書かれているが、AT-BANK=10は間違い。
![FM_Hard.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159764/f07c5b56-b349-e490-7a6a-111f389e4903.jpeg)

　パソコンからの操作の為にソフトを作成した。
　シリアルで接続して、ラジオを制御できるが、別に無くても実用上は問題無いだろう。
　　※でもパソコンを使っている時は便利だよ。
　「[高感..モジュールのパソコン制御ソフト](https://github.com/hi631/FM_RADIO/tree/master/com_FM)」
![FM_RADIO.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159764/2b10546d-60bb-65e1-a58c-211bfaf513e3.jpeg)

　モジュールが工場出荷状態の場合は、下記の操作を行い初期化する。
　　1.USBシリアルをパソコンに接続して、デバイスマネージャーでCOM番号を確認。
　　　※シリアル接続状態でモジュールの電源を入れると、"+?萠FM mode"と応答が帰って来る。
　　　　TERA_TERM等を起動し38400bpsで接続していれば之が確認できる。
　　2.制御ソフトを起動し、COMxを確認したCOM番号に書き換え、「接続」を選択。
　　　※受診周波数選択リストがグリーンになれば、接続成功。
　　3.コマンド送信リストで、"AT+CAMPUS=1"を選択。応答リストに表示される。
　　　※受信範囲を76-108MHzに設定。
　　4.コマンド送信リストで、"AT+SCAN"を選択。"SCAN OK"が表示されるまで暫く待つ。
　　　※表示されない場合もあったので、その場合は再操作。
　　5.受信リスト更新を選択。
　　　※これによりscandt.txtが作成、更新される。
　初期化後は、受診周波数選択リスト選択で周波数選択が可能になり、
　リスト上のマウスホイール回転で音量調整が出来る。

#注意事項
　1.モジュールのアンテナ端子にはアンテナ接続が必要。
　　※よっぽど局の近くで無ければ、繋がないと受信できないだろう。
　　　ちゃんとしたものの方が良いが、１、２ｍの投げ線でもそこそこ受信する。
　2.アンテナ線やオーディオ出力とUSB配線が近づくと、ノイズを拾う。

#感想
　当たり前だが、何れもそれなりに使える。
　自分の利用方法を鑑み、単独使用可能な高感度 FM モジュールを常使いとして色々改善。
　当然ですが、上記記載内容は全て無保証であり、各自の責任においてご利用願います。