2003年 7月 6日(日)
● 「冷蔵庫、中身なければただの箱」
パソコンもソフトがあって初めて目的の機能が達成されます。なのでこの言葉、コンピューターの方がもっとも合うように思います。
さて、今回はこのプログラムとマイコン周辺の回路を作りいよいよ全体を完成させましょう。
●基本回路
ますばマイコンを中心とした「回路図」。
外部とインターフェースするいわば手足に相当する出力ポート、目耳に相当する入力ポート。
これは「前回」お話した通り6本で、名称はGPIO0〜5ですが、その内1本はマイコン側で入力固定となっております。
今回はスイッチ入力割り込みを使用するので専用ピンGPIO2も入力にします。その他詳細はページがいくつあっても足りなくなりますので割愛しますが、
テストボードにはGPIO2にプッシュスイッチ、出力ピンに圧電プザー、モニターとしてLEDをつけております。クロックは内部発振を利用します。
●プログラム
いよいよ、プログラムですがこれにはアセンブラを使用します。
ソフトは「マイクロチップ社」から無償でダウンロードできる
MPLAB IDE バージョン6.2を使用します。
※今回のマイコンはバージョン5ではサポートされておりません。
まずは基本としてポートをONさせるプログラムを書きました。「こちら」
次に割り込み制御の動作確認を終えいよいよ、中核の処理。
●目的とおさらい
既にお忘れの方がいるかも知れないので最終目的を再確認しましょう。
今回のマイコンは超音波ディテクター(超音波を可聴する装置)の可聴域アップに使用します。
現在40Khz固定のリファレンスクロックを切り替えることにより実現します。
なのでまずは、しっかり40Khzを発生させるプログラムが必要ですが、これには簡単な計算が必要となります。
●マイコンの処理速度
マイコンのクロックは4Mhz これは一秒間に400万回のON/OFFを繰り返す信号です。
※クロック?、よく聞くパソコンのペンティアム2Ghzとか、あれです。
このマイコンは1命令 4クロック(1サイクル)で処理しますので1秒間に100万回の命令を実行します。
※一部 ジャンプ、条件分岐等8クロック(2サイクル)で実行する命令もあります。
これを踏まえて、40Khzのクロックを発生させるには下記のようになります。
40Khzは 0.000025秒 = 1/40000Hz = 25μS
マイコン1サイクルは 0.000001秒=4(1/4000000Hz)
=1μS
40Khz サイクル 25回 = 25μ/1μ
以上から1サイクル命令を25回繰り返す事になります。実際にはON/OFFさせるのでON→12命令/OFF→13命令としました。
●可変範囲
まずは広範囲でと20〜60Khzを10Khzステップで切り替えるようにプログラミングしましたが、
超音波マイクロホンの特性40Khz±7Khzが利いているようで、フィルターの特性もありますが20と60Khzはどうも使い物にならないようです。
従って、もう少し帯域を絞って30〜50Khzを5Khzステップで切り替える事にしました。早速プログラムを書き直し実験。
結果超音波マイクロホンの帯域±7Khzをフルに利用できそうです。
●実装 & 組立て
毎度、趣味での部品実装は部品と道具がネックにはなりますが、まずは器を決めてから製作に入ります。
これは肝心、何も考えず作ってから気づくとかなりでかい物になっていた・・・って事はよくあります。
今回は更にプッシュスイッチと圧電ブザーが追加になりましたので、これらを納めるんだと決め込んでがんばると、なんとかなるものです。
●使ってみて
身の回りの高域音では調子いいようです。やはり目的はコウモリが発声する超音波なので、これは週末に多摩川の河原で試してみます。}
●プログラムソース
超音波ディテクター PIC12F629用ソースコード 「こちら」 30〜50Khzバージョン
プッシュスイッチにより5Khzステップで5段階に切り替わります。
●今後の予定
白色LEDライト、LEDハイパードライブをべースにこの回路をマイコン制御します。
j●最後に
長文でしたが、ここまでお付き合い頂きありがとうございました。
|