78F0533のコーナー(7)

更新日:2007年10月17日


短波ラジオ用予約制御装置を作ろう

今回は前回作りました短波ラジオを予約時間に自動的にONし周波数を設定し、指定時間が経過すれば自動的にOFFする装置を作ります。夏休み前から取り掛かりやっと完成しました。もっと凝ることも出来ますがそれなりの仕上がりになったので製作記事を公開します。オマケ機能も付いてますので、色々楽しめる(?)と思います。
短波ラジオ用予約制御装置を作ろうの基本仕様
1)曜日付きの時計機能があります。
2)予約は9つまで可能です。予約開始時間、周波数、ON時間をそれぞれ設定します。
3)記憶したデータはS-RAMに記憶し、電源を抜いてもバックアップが可能です。
4)S-RAMには時刻をバックアップしますので瞬停しても早期の復旧が可能です。
5)表示は16文字4行の液晶ユニットで行います。
6)CAULの赤外線リモコンユニットを用いてワイヤレス操作が可能です。

7)短波ラジオの受信レベルをスキャンしてPCに取り込むことが可能です。
短波ラジオ用予約制御装置を作ろうの全体構成図
まずは全体の構成図です。今回はマイコンのみですので簡単です。
(短波ラジオ用予約制御装置の構成図)
今回は大きく4つのブロックに分かれています。
@マイコンブロック
以前の製作にも使いました、uPD78F0533を使用します。ピン数が多いので今回のように外部にS-RAMを接続するような製作にはピッタリです。
Aデータ記憶ブロック
256kbitのS-RAMを使います。今回はそのうち4kbyte分を使います。ちなみに私は手持ちの部品を使いました。海外メーカーはまだ製造していると思いますので、インターネットで探してみて下さい。電源を抜いてもS-RAMのデータを保持するようにスーパーキャパシタでバックアップします。
BPC接続ブロック
PCとシリアル接続をするためにRS232Cの変換回路を作っています。コネクタの配線はクロスのケーブルを想定していますので、独自なケーブルを使われる方は、注意して下さい。シリアル接続ですのでPCとの接続にUSB-シリアル変換ケーブルを使用しても全く問題はありません。ちなみにPCにデータを吸い上げるのは「オマケ機能」の部分のデータです。予約関連のデータはPCでは処理出来ませんのでご了解願います。
C表示ブロック
16文字4行の液晶表示ユニットを駆動します。
Dリレーブロック
外部の短波ラジオの電源をON・OFFします。ただ単に電源を制御しているだけです。
E周波数制御ブロック
外部の短波ラジオに周波数を設定する部分です。といってもトランジスタでオープンコレクタにしているだけです。
Fレベルアンプブロック
外部の短波ラジオの受信強度をアンプする部分です。今回「オマケ機能」に使います。
G赤外線ユニット
CAULのAタイプを使いました。簡単でとても便利に使えますので「ちょっとひとやすみのコーナー」をのぞいてみて下さい。
電源は今回も特別には掲載しませんでした。皆さんで考えて下さいね。
短波ラジオ用予約制御装置を作ろうのマイコンブロック
uPD78F0533のボードを入手して製作しました、。前回の製作にも記載しましたが、ボード上で電源系は次のように配線されています。A/Dコンバータの基準電圧は電源電圧と同じになります。
(マイコン側の電源とGNDの接続)
このボードにそれぞれの回路を接続して全体を構成します。
操作ボタンやスイッチ、LED表示などは特別な回路を付けずにマイコンが直接入力、駆動しています。時計機能は32.768kHzの水晶発振子を取り付けて0.5秒の時計割り込みで計測しています。水晶のコンデンサを調整することによりかなりの精度の時計になります。現状の定数でも実用的には問題ありません。
(水晶発振回路)
(操作ボタン回路)
(LED表示回路)
LED表示回路はPCへデータ送信している時に点灯することにしました。
(テンキー回路)
(テンキーの配置はこうなってます)
今回は操作キーとテンキーの部分を分けました。特に理由はありませんがつぎはぎ(ブロック化)で設計している影響かもしれません。
(ポート割付と設定)
ポート設定は難しいことはありません。同じブロックは同じポートに配線していますので制御ソフトもそのまま使えてかなり便利です。
短波ラジオ用予約制御装置を作ろうのデータ記憶ブロック
測定データの記憶方法はいくつか考えられますが、私はS-RAMに記憶する方式を取りました。部品さえ入手出来れば駆動方法は極めて簡単です。
(データ記憶回路)
今回アドレスバスは12本しか使いません。丁度4kバイトになります。使用しないアドレスバスはGNDにきっちり落としておきます。今回も電源が無い時にもデータを保持するためにCEをとトランジスタを介して制御しています。S-RAMのみの電源をダイオードを介してスーパーキャパシタで保持します。S-RAMのスピードは気にすることはありません。入手出来るものを使用して下さい。面実装タイプしかありませんでしたので変換基板でDIPタイプにしています。
(S-RAMを変換基板に載せる)
S-RAM内部の使用状況は次の通りです。
(S-RAMマップ)
RAMの前半と後半にバックアップ判定用データを用意して、電源投入時に全てが保たれていればRAMの内容をクリアせずに起動します。最初に電源を投入した時はデータは入っていませんのでRAMの内容は初期化されます。時刻を1分おきにバックアップします。電源を投入した時にバックアップ判定用RAMが正しく保持されていた時にはバックアップしてあるデータを読み込んで初期値とします。停電になった時には時計は進みませんが次に電源を入れた時にはバックアップデータを初期値として動きますので少しの設定で正常な時刻に戻すことが出来ます。
前半部分には9つの予約関連のデータを入れています。それ以降は「オマケ機能」で取得したデータを記憶します。後半部分には未使用があります。
短波ラジオ用予約制御装置を作ろうのPC接続ブロック
記憶したデータをPCに吸い上げるためにシリアル接続します。定番のICを使って回路を構成します。
(PC接続回路)
最近のPCにはRS-232CのコネクタがついていませんがUSB-シリアル変換ケーブルで接続することが可能です。シリアルで直接する場合も変換ケーブルを使う場合も同じですがこの製作からはクロスケーブルで接続して下さい。
PCとのシリアル通信のマイコン側ソフトは「マイコン電子工作あれこれ - 78K0 横丁」の記事を参考にさせて頂きました。ありがとうございました。アプリレットから生成されるルーチンではどうしてもうまく動きませんでした。申し訳ございません。
PCへのデータ転送は「オマケ機能」の部分のみです。操作キーの多重押しで行います。
短波ラジオ用予約制御装置を作ろうの表示ブロック
16文字4行の液晶表示を使います。毎度おなじみのモジュールですね。
(16文字4行の液晶表示モジュール)
短波ラジオ用予約制御装置を作ろうのリレーブロック
外部短波ラジオの電源を制御する回路です。リレーをON・OFFする極めて簡単な回路です。短波ラジオの中にも電源回路が入っているのでACアダプターのDC12Vをそのまま通すか通さないかの回路になっています。
(リレー回路ブロック)
短波ラジオ用予約制御装置を作ろうの周波数制御ブロック
ポートからシリアルデータと同期クロックを出力することにより短波ラジオ側の受信周波数を設定します。短波ラジオ側は通常電源が入ってませんので、オープンコレクタ出力回路にすることによって電源電圧の相違による不都合を回避しています。
(周波数制御ブロック)
ごめんなさい大袈裟な割には、トランジスタ2個のみです。
短波ラジオ用予約制御装置を作ろうのレベルアンプブロック
「オマケ機能」に使います。周波数ごとの受信強度のデータを収集するための回路です。短波ラジオから出力される受信強度電圧が比較的低いので約1.5倍にアンプしています。
(1.5倍レベルアンプ)
短波ラジオ用予約制御装置を作ろうの赤外線ユニット
CAULの「Aタイプ」を使いました。前回製作しました「4ヶ月温度記憶装置」にCAULの「Bタイプ」を使いましたので誤操作を防ぐために変えました。4つのスイッチを押すことが出来ますが4つめは隠しスイッチになってます。従って製作装置上にはありません。ワイヤレス操作のみで押せるスイッチとしています。
(CAULの受信ユニットの改造です)
(Aタイプの操作ユニットは赤色です)
短波ラジオ用予約制御装置を作ろうの液晶表示内容
最初は通常表示の状態です。
(通常画面・1画面目)
(通常画面・2画面目)
(通常画面・3画面目)
通常表示は3画面分あります。一番上の行は現在時刻を表示します。下3行が予約内容です。それぞれ開始時間、周波数、ON時間を表示しています。
「*」がついている行は予約が有効になっている設定です。この行のみ予約を予約を実行するかどうかの判断を行います。せっかく曜日があるのだから有効に使ったら良いのにと思われるかもしれませんがそれは皆さんのオリジナルで月〜金予約とか、土日のみとかに改良してみて下さい。
次は時刻設定中の画面状態を示します。
(時刻設定中表示)
対象の行のみを連続して記しています。キーの操作方法は後述しています。設定終了時には「00」秒スタートしますので、時、分、曜日のみの設定となります。
次に予約設定中の画面状態を示します。
(予約設定中表示)
開始時間、受信周波数、ON時間を設定します。ON時間は8bitのRAMを使用していますので最大で240分までに制限しています。基本的に短波は聴きたい番組に応じて周波数を変えるので全く問題はないと思います。
予約実行中の画面状態を示します。
(予約実行中画面)
時刻と曜日の間に現在実行中の予約番号を表示します。
「オマケ機能」実行中の画面です。約1時間半も掛かります。この間予約機能は全く動いていませんのでご了解願います。本当に「オマケ機能」です。この間時計はきっちり動いていますのでご安心下さい。
(オマケ機能実行中画面)
短波ラジオ用予約制御装置を作ろうのキー操作とモード遷移
キー操作をまとめておきます。モードは大きく4つあります。長押しは数秒間押し続けると機能します。SCANボタンはリモコン操作のみで可能としています。TEN,CLEAR,ENTERキーがマトリックスキーとして12キー操作としている部分です。オマケ機能の記憶データはUP+SETキーの2重押しの長押しとしています。(皆さんはほとんど使うこともない機能と思います)
(キー操作一覧)
短波ラジオ用予約制御装置を作ろうの予約確認と制御
予約があるときは毎分予約時間と設定時間が同じかどうかの確認をしています。
短波ラジオ側の電源を入れてから受信周波数を送り込むので、操作のシーケンス時間を分けて制御しています。
(予約確認の時間制御)
毎分00秒と20秒と55秒に上記の確認をしています。周波数はその時間の20秒後に短波ラジオ側に送り込むので、予約時間を少し早めに設定することをお薦めします。
複数の予約の制御は次の通りです。
(複数予約の制御)
短波ラジオ用予約制御装置を作ろうの短波ラジオへの周波数制御
予約制御装置から短波ラジオへはシリアルデータを送り込むことにより周波数を設定します。次のようにクロックとデータ線で制御します。短波ラジオ側には予めこれらの端子を割り当てていますのでそちらのページも見て下さい。
(周波数設定のシリアルデータ)
4桁の周波数を16bitのバイナリデータで送ります。上記の信号はマイコンから出力される状態を示しています。実際にはトランジスタを通して短波ラジオ側に入力されるので、信号レベルはHL反転します。
短波ラジオ用予約制御装置を作ろうの短波ラジオ側の改造
今回の「オマケ機能」として短波ラジオの受信レベルをスキャンする機能があります。そのためには短波ラジオを改造する必要があります。受信のレベル電圧が出力される端子をラジオから取り出し予約制御装置のレベルアンプブロックに接続します。
(受信レベル出力)
受信レベル出力端子は使用するICによって異なりますので各自でトライして下さい。
予約制御装置より周波数をコントロールするのに短波ラジオ側のソフトも変更する必要があります。短波ラジオ側のuPD78F0533のソフトを準備しましたので各自バージョンアップして下さい。ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全ファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
短波ラジオ用予約制御装置を作ろうの「オマケ機能」のPCへのデータ転送
「オマケ機能」は予約制御装置より4500kHzから9960kHzまでの周波数を5kHzステップで短波ラジオに設定してその時の受信レベルを順次記憶するものです。これといって面白みはありませんが、どこの周波数の感度が良いかが確認(?)出来るような気がしています。周波数を設定して5秒後に受信レベルをS-RAMに記憶します。周波数によっては5秒間で受信が安定しない場合が稀にありますが気にしないで下さい。
データの吸い取りは専用のソフトで行います。前回のデータロガーで作った時のものと同じソフトを使用します。使い勝手はあまり良くありませんが、皆さんで工夫してみて下さい。ちなみにVB2005で作ってあります。(終了操作の使い勝手がよくありません。申し訳ございません。)
PCへ転送するデータは最終的にはエクセルで開ける内容にしてあります。(拡張子をCSVにして保存して下さい)。エクセルでどのように開けるかを示しておきます。
(PCで吸い取ったデータをエクセルで開く)
受信可能な周波数について5kHzごとの受信レベルのデータです。数値が高いほど受信レベルが高いですが、必ずしも強力局を受信しているとは限りませんが、時間を変えてスキャンすれば周波数ごとの受信状態がわかると思います。表だけではなかなか認識出来ないのでグラフ化してみました。100kHzごとに平均、最大、最小レベルをそれぞれマッピングしました。
(受信レベルの状況)
エクセルの表を皆さんで自由に加工して楽しんで下さい。
短波ラジオ用予約制御装置を作ろうのPC側データ読み込みアプリ
PC側のソフトはまだ未熟ですが、簡単に操作方法を記します。
(PC側データ読み込みアプリ)
最初に接続するCOMポート番号を記入して下さい。USB変換コネクタを使用される方は特に番号に注意を払って下さい。COMポート番号は「マイコンピュータ」「プロパティ」「ハードウェア」「デバイスマネージャ」で内容を確認して下さい。記入後「接続」ボタンを押して下さい。ワイヤレス装置の「UP」と「SET」を同時長押しすることでPC側にデータが吸い込まれます。転送は数秒で終了します。
受信が全て終了するとアプリのボタンを押せる状態となりますので「名前を付けて保存」を押して下さい。ファイルセーブのダイアログが現れるので好きなファイルネームで保存して下さい。CSVの拡張子でセーブすればエクセルで使い勝手の良いデータと開くことが出来ます。
このアプリを皆さんのPCで動かす場合には次のふたつのファイルをインストールする必要があります。
Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)
Microsoft .NET Framework 2.0 日本語 Language Pack (x86)

マイクロソフトのHPにありますのでGoogleで検索するなどして探して下さい。
短波ラジオ用予約制御装置を作ろうの短波ラジオをワイヤレス操作にする
ついでですので短波ラジオの操作もワイヤレス化にしておきましょう。Q−STEERは4バンドあるので今回は「D」バンドを使用します。まずはQ−STEERを購入して分解改造しましょう。
(今回の餌食になったQ−STEER)
(Q−STEERユニットの改造)
(Q−STEERの電源コントロール)
ちょっとひとやすみでも解説していますが、Q−STEERは3分でコントロール不能になりますので電源コントロールをして制御を継続しています。
短波ラジオ用予約制御装置を作ろうの大完成の姿
それでは大完成した姿を披露いたします。
(今回はこんな感じの本体内部です)
(正面は極めてシンプルです。背面には入出力多いです)
(テンキーユニットはコンパクトです)
(CAUL改造のワイヤレス受信ユニットです)
(受信ユニットは表示ユニットのキーに接続しています)
(全体ではこんな感じです)
(表示中の様子です)
短波ラジオ用予約制御装置を作ろうのマイコン側ソースファイル
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全てのファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
短波ラジオ用予約制御装置を作ろうの「オマケ機能」用PC側アプリ
実行ファイルはこちらからダウンロードして下さい。ダンロード後は適当なフォルダ上にて解凍後実行して下さい。過去の製作のデータロガーで使ったものと全く同じソフトです。
いかがでしたでしょうか。私の製作内容は伝わりましたでしょうか。短波ラジオをセットで使用するので少し複雑(私の説明不足?)だったかもしれません。久しぶりの大型製作で完成までにかなりの時間が掛かりました。その間にすっかり季節は秋になりましたが、本格的な製作日和が続きますのでこれまで以上にがんばりたいと考えています。そろそろ次は新しいマイコンにトライしようかなと思っています。
これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります。

NEC78K0/K0Sマイコン開発室へ戻る