沼津高専 電子制御工学科 | ||||||
| ||||||
改訂記録 | ||||||
---|---|---|---|---|---|---|
版数 | 作成日 | 作成者 | 承認 | 改訂内容 | ||
A01 | 2001.12.17 | 高橋 | 齋藤 | 初版 |
自班はポストの位置確認に超音波センサを主に使用し、それをPICというマイコンで自作する予定である。そのため、PICで超音波距離測定器を作る方法を調査する。
小型で外付け部品が少ないオールインワンのマイコンチップ。
使えるメモリとサイズPIC(Peripheral Interface Controller)はその名前の由来どおり、コンピュータの周辺に接続される周辺機器との接続部分を制御するために開発された「マイクロコントローラ」と呼ばれる領域のICである。つまり、それほど高機能、高速性は必要としないが、周辺機器を制御するのに便利な機能は内蔵しているといった、使用目的が比較的明確な範囲に限られているマイクロコンピュータの1種である。
次のような特徴がある。
- TTLではちょっと大変だがZ80のようなマイコンを使うほどでもない、電池で長時間動作させたい、というような用途に最適な小さなワンチップマイクロコンピュータ。
- メモリも入出力回路も全て1個のICに入っている便利なもの。特にPIC16F84は、メモリがEEPROMなので、何度でもプログラムを消去、書き換えが出来る。
- 開発用のソフトがフリーソフトで入手でき、ROMライタも自作出来る。自作でなくても市販品が安く入手できる。
- 命令数が少ないので覚えやすくプログラミングが易しい(35命令)ので、素人でも使える。
*RISC(Reduced Instruction Set Computer)…縮退命令セットコンピュータ。命令は全て14ビット長を1単位(1ワードという)として構成されていて、これがプログラムメモリの1番地につき1命令という形で格納されているもの。
開発元 米国マイクロチップテクノロジ社(Microchip Technology Co.) 名称 PIC16/17シリーズ ピン数 8ピン、18ピン、28ピン、40ピン、64ピン 中身 12bit、14bit、16bitの*RISC型コンピュータ
小型ながら周りに電源とクリスタル発振子さえつなげば、LEDが直接駆動できる入出力ポートを個々にプログラム制御できる。最高20MHzという高速、電池駆動もできる低消費電力。
PICには、目的に合わせて数多くの種類がある。わずか8ピンの小さなICの中に、マイクロコンピュータとしての機能が一通り納まっているものから、数多くの周辺機能を内蔵し、パッケージも40ピンや64ピンもある大型のタイプまで用意されている。さらにこれらのアーキテクチャが共通となっているため、大きなPICは、小さなPICの上位互換となっていて、同じプログラムで動かすことが出来る。
ちなみに、超音波速度に依存しない距離測定を行うことも可能である。
例えば左図のように超音波受信用のセンサを二つ用意し、ずらして配置する。二つの受信センサ間の距離をa、超音波の速度をvとすると、超音波が距離Lの対象に反射して返ってくるまでの時間は
信号増幅回路
受信用センサで受けた超音波信号はオペアンプ増幅器を2段使用して1000倍(60dB)の電圧に増幅される。1段目で100倍(40dB)、2段目で10倍(20dB)の増幅をする。オペアンプは通常プラスとマイナスの2電源を使用するが、この回路では+9Vの単電源で動作をさせている。そのため、オペアンプのプラス入力に電源電圧の半分(4.5V)の電圧をバイアス電圧として加え、増幅する交流信号の中心電圧を4.5Vにしている。オペアンプを負帰還で使用した場合、プラス入力端子の電圧とマイナス入力端子の電圧がほぼ等しくなるので、このバイアス電圧により交流信号のプラス側とマイナス側を均等に増幅することが出来る。このバイアス電圧を加えないと交流信号に歪みが生じることになる。この方法は2電源用のオペアンプを単電源で動作させ、交流信号の増幅をする場合に採られる方法である。
検波回路
受信した超音波信号を検出するために検波を行う。左の回路が*ショットキー・バリア・ダイオードを使用した半波整流回路である。ダイオードの後のコンデンサで平滑することにより、検出信号の信号レベルに沿った直流電圧を得ることが出来る。
*ショットキー・バリア・ダイオード…ダイオードは交流を直流に整流するとき使用されるが、交流の周波数が高くなると整流が出来なくなる。これは逆回復(リカバリ)特性に関係する。逆回復特性というのは次のようなことである。ダイオードに順方向電流が流れている状態で急に逆方向の電圧をかけると一瞬逆方向に電流が流れてしまう。この逆方向に流れる電流が止まるまでの(逆電流のピークの10%位にまで下がる)時間を逆回復時間という。ショットキー・バリア・ダイオードはこの逆回復時間が短く、順方向の電圧降下が低いので高周波の整流に適したダイオードである。しかし、漏れ電流が多いこと、サージ耐力が低いことなどが欠点である。
信号検出回路
測定対象物で跳ね返ってきた超音波の検出を行う回路。先の検波回路の出力を電圧比較器(コンパレータ)で検出する。この回路では電圧比較器の代わりに単電源のオペアンプを使用している。オペアンプはプラス入力とマイナス入力の差を増幅して出力する。通常オペアンプは負帰還をかけて使用するが、負帰還をさせない場合少しの入力電圧の差でも出力は飽和状態になる。オペアンプの増幅率は種類にもよるが数万倍の増幅率があるので、プラス入力がマイナス入力より少しでも高くなると、その差は数万倍で増幅され出力はほとんど電源電圧と同じ位(飽和状態)になる。逆に、プラス入力がマイナス入力より少しでも低くなると、その差は数万倍で増幅され出力はほとんど0V(OFF状態)になる。この動作は電圧比較器の動作そのものである。ただ、基本的に電圧比較器とオペアンプは内部の回路が違うので、電圧比較器をオペアンプに使うことは出来ない。この回路では検波回路の出力を信号検出回路のプラス入力に接続し、マイナス入力の電圧は一定にしている。
信号保持回路
超音波を送出してから測定対象物で反射して帰ってきた信号を保持するための回路。RS(セット・リセット)フリップフロップを使用している。送信パルスの回り込みによる誤検出を防止するために送信パルスを出してから一定時間(約1.5msec)検出回路が動作しないようにしている。この状態はPICのソフトで制御する。
この回路は反射信号検出時間(約65msec)以内に信号を検出したかどうかを確認するために使用する。次の超音波パルスを出すときにこの回路の出力をチェックし、Lレベルであれば反射信号は検出できなかったという信号を出す。
送信回路
インバータを使用して超音波センサのドライブを行う回路。2つのインバータを並列に接続して出力電力に余裕を持たせている。センサのプラス端子とマイナス端子に加える電圧の位相は180°ずらしてある。また、コンデンサにより直流カットをしているので、センサにはインバータ出力の約2倍の電圧が加わることになり、センサからの超音波出力を高めている。
このドライブ回路は+9Vの電源で動作させる。PICの動作電圧(+5V)で制御させるためにトランジスタにより電圧変換している。インバータにはC-MOS回路を使うとON/OFFが比較的高速に行える。
温度補正電圧発生回路
空気中を音波が伝搬する速度は温度により変化する。0℃では331.5m/sec、40℃では355.5m/secである。PICで超音波距離測定回路を作る場合、キャプチャ機能というものを用いて計測した伝搬時間を距離換算値で割ることにより距離を求めることができる。
例えば0℃の環境で1mの距離のとき、音波が往復する時間は2[m] / 331.5[m/sec] = 0.006033[sec] = 6.033[msec]である。キャプチャ機能では1μsecでカウンタをカウントしているので、カウンターの内容は6033となる。これを距離(cm)に換算するには60で割ることになる。6033 / 60 = 100.55[cm]で小数点以下は切り捨てられる。この切捨て分が誤差となる。この換算値(60)は温度によって決まり、計測する距離には関係しない。9mの場合にはカウンタは54298で60で割ると904.9cmである。つまり、距離が長くなると換算誤差が大きくなることになる。これは小数点以下の換算が出来ないためである。40℃の場合は2[m] / 355.5[m/sec] = 5625[μsec]で換算値は56。このことから、周囲温度により換算値を変更して計測する必要があることがわかる。
この回路は可変抵抗器で電圧を変化させ、A/D変換をして換算値として使用する。A/D変換では入力電圧を10bitのデジタルデータに変換する。この回路は10bitのうち上位3bitを使っている。つまり、0Vから5Vの入力をA/D変換すると0から7までの値が得られることになる。これに54を加えて換算値とすると、換算値は54から61まで変化させることが出来る。
1cm待機プログラム