タッチキーヤーの記事の前に、ラジオの製作を。

「ラジオはWIDE-FMの方に移行する。」というようなニュースを見かけるようになりましたので、FMラジオが部屋にひとつづつくらい欲しくなってきますよね。
 ただ、現代風のラジオ作りってことになると、SDRってことになるんでしょうね。
 ってなわけで、私も秋月電子でゲットしたKT0913を使って、FMラジオを作ってみました。
 仕様ですが、「この大きさなら持ち運びが簡単なので、リモコンは不要だろう。」と思っていたのですが、同じ部屋の中でも窓際が一番綺麗に聞こえるので、ラジオ本体はそこに置きたくなります。そうすると、やはりリモコン機能があった方が嬉しいわけです。
 ってなわけで、リモコン機能も付けてみました。動画はリモコンで動作させているところを示しています。

 で、作ってみたら・・・従来ながらの「ラジオ作り」という感じはしませんでした。これは、ただのマイコン工作ですね。
 高周波絡みのテクニックも使っていません。ご覧のようにデバッグのためにデバイス間の配線も長くしてありますが、そのまま使ってもトラブルは起きていません。気温・気圧・湿度記録器を作ったときと同じ感覚でした。
 プログラムも以前作ったLCDドライバ、I2Cドライバ、IRドライバを組み合わせて、これらを制御するプログラミングだけで済みましたので、仕様の試行錯誤も含めて1日程度で完成しました。自作ラジオが完成したときに味わう感動は少しもありませんでした。(・ω・`)

HWについて
さて、まずはHW。

 このラジオの構成ですが、フロントエンドにKT0913、制御にPIC16F1938、低周波増幅にNJM2073(回路図に番号入れるの忘れてる。^^;)、IRセンサにPL-IRM0101-3、LCDにSC1602の3.3Vバージョン、としました。また、IRセンサを意識して、同調と音量の調整はそれぞれロータリーエンコーダを使ってみました。
 見たまんまで、回路はなんの変哲もなく、ただ、各デバイスをPICにつなぎこんだだけです。高周波に特有のテクニックもありゃしません。^O^)""

 この程度の回路なのになぜPIC16F1938?
 これについては、この図を見ればわかります。
 操作部をできるだけ減らすことを裏目標にしましたので、実機デバッグを容易にしようということで、ICSP接続をすることにしました。また、KT0913はI2C接続を必須とするので、ここに他の割り当てをすることができません。
 また、LCDの駆動プログラムは4ビットのデータバスが必要なので、これはまとめてとっておきたいわけです。
 この条件を満たすCPUとして、とりあえず部品箱の中にあったのが1938だったのでありました。
 そんなわけで、ピン割り当ては以下の通りとなりました。


SW
今回はモジュールが4つあります。
(1)mainプログラム
(2)I2Cモジュール ヘッダーファイル プログラム
(3)LCDモジュール ヘッダーファイル プログラム
(4)赤外リモコンモジュール ヘッダーファイル プログラム
(5)ロータリーエンコーダモジュール ヘッダーファイル プログラム

まとめてダウンロードなんてする方は居られないと思いますが、こちらで

固定チャネルとVFOをどう割り振るか?
FMラジオという以上、100kHz単位で周波数を可変にしたいと思いますが、一方で、簡単に在京各局には簡単にアクセスしたいとも思うわけです。通常はメモリースイッチを設けて、固定チャネル・可変周波数の切り分けをするところだとは思うのですが、今回は、初期状態では固定チャネル、これらをロータリーエンコーダで選択していって更にその上に行こうとすると、76.0MHzから順に100kHzステップで上がっていくという手法を採りました。所詮、固定チャネルを使うのが殆どですし、リモコンもあるので、まぁ、これで良いかなと思っています。

使ったリモコン
使ったリモコンは、何年も前にベスト電器で買ったIRC-700D。いろんな会社のTVに使えるというものですが、機種コードを012で使うことにしています。
 このコード体系の下では、機種IDとして0x50が出てくるようになります。

まぁ、そんなところです。別にラジオを作らずとも、PICでのI2Cのアクセスの仕方とか、LCDのスクロールとか、ロータリーエンコーダの受け方とか、何かの参考になれば幸いです。^^;