沼津高専 電子制御工学科
MIRS0205 技術調査
超音波センサ
MIRS0205-TECH-0003
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2001.12.17 高橋 齋藤 初版

目次

  1. 目的
  2. PICとは
  3. 使用する予定の超音波センサ素子
  4. 超音波距離測定の原理
  5. 超音波距離測定器の構成回路
  6. 超音波距離測定プログラム
  7. 終わりに

  1. 目的
  2. 自班はポストの位置確認に超音波センサを主に使用し、それをPICというマイコンで自作する予定である。そのため、PICで超音波距離測定器を作る方法を調査する。

  3. PICとは
  4. 小型で外付け部品が少ないオールインワンのマイコンチップ。

    PIC(Peripheral Interface Controller)はその名前の由来どおり、コンピュータの周辺に接続される周辺機器との接続部分を制御するために開発された「マイクロコントローラ」と呼ばれる領域のICである。つまり、それほど高機能、高速性は必要としないが、周辺機器を制御するのに便利な機能は内蔵しているといった、使用目的が比較的明確な範囲に限られているマイクロコンピュータの1種である。

    次のような特徴がある。

    開発元 米国マイクロチップテクノロジ社(Microchip Technology Co.)
    名称 PIC16/17シリーズ
    ピン数 8ピン、18ピン、28ピン、40ピン、64ピン
    中身 12bit、14bit、16bitの*RISC型コンピュータ

    *RISC(Reduced Instruction Set Computer)…縮退命令セットコンピュータ。命令は全て14ビット長を1単位(1ワードという)として構成されていて、これがプログラムメモリの1番地につき1命令という形で格納されているもの。


    小型ながら周りに電源とクリスタル発振子さえつなげば、LEDが直接駆動できる入出力ポートを個々にプログラム制御できる。最高20MHzという高速、電池駆動もできる低消費電力。

    PICには、目的に合わせて数多くの種類がある。わずか8ピンの小さなICの中に、マイクロコンピュータとしての機能が一通り納まっているものから、数多くの周辺機能を内蔵し、パッケージも40ピンや64ピンもある大型のタイプまで用意されている。さらにこれらのアーキテクチャが共通となっているため、大きなPICは、小さなPICの上位互換となっていて、同じプログラムで動かすことが出来る。

    使えるメモリとサイズ

    開発用ソフト

  5. 使用する予定の超音波センサ素子

  6. 送信用 T40-16
    受信用 R40-16
    ◆中心周波数 40±7kHz
    ◆音圧レベル 115dBmin
    ◆感度特性 -64dB/V/μBARmin
    ◆周波数帯域 6kHzmin
    ◆静電容量 2400pF±25%
    ◆外形寸法 16.2φ×12.2mm

    超音波センサは圧電効果という現象を利用したセンサである。圧電効果には圧電気直接効果と圧電気逆効果があり、圧電気直接効果は圧電素子に超音波などの外部応力・振動変位が加わると、その出力端に電気信号が発生する現象で、超音波の受信に利用出来る。 また圧電気逆効果は、圧電素子に外部から電圧を与えると、素子が機械的変位を生じる現象で、超音波の送信に利用出来る。基本的にこの二つの効果は一つの超音波センサで実現出来るが、送信波と受信波では空気の振動振幅にも大幅に異なり、しかもインピーダンスを変えたほうが効率がよいので、別個に利用するのが普通である。

  7. 超音波距離測定の原理
  8. 上記のセンサを使って距離を計測したいわけだが、そのためには左図のような構成にする。超音波の速度vは温度をT[℃]とすると

    v[m/sec] ≒ 331.5 + 0.6T   (1)

    となるので、送信機から超音波を発生させ、対象部からの反射波を受信機で検出すると、反射波が返ってくるまでの時間tから対象物までの距離Lを

    L[m] = (v[m/sec] * t[sec]) / 2  (2)

    から求めることが出来る。ちなみに、二つのセンサを使った場合には図のように角度θがある分だけ誤差が生じるが、Lがある程度大きければθが無視できるので、(2)式で距離Lが求まる。またPICを用いて距離計測を行うときには、(2)式を計算するのが困難であり、正確に計算しても誤差が生じるので、 測定距離1cmに相当する時間間隔ごとに受信をチェックすることにより距離を計測する。

    ところで超音波速度vは、(1)式から分かるように温度によって変化してしまう。 v ≒ 340[m/sec]と固定して考えてしまうのも一つの手だが、温度を入力できるような回路(温度センサ、可変抵抗など)を組めば、(1)式から温度補償を行うことが出来る。(温度によって可変抵抗を変え、温度補償を行う方法は後述する。)

    ちなみに、超音波速度に依存しない距離測定を行うことも可能である。

    例えば左図のように超音波受信用のセンサを二つ用意し、ずらして配置する。二つの受信センサ間の距離をa、超音波の速度をvとすると、超音波が距離Lの対象に反射して返ってくるまでの時間は

    受信センサ1 : t1 = 2L / v     (3)
    受信センサ2 : t2 = (2L + a) / v (4)

    となる。そこでこの2式を連立させると

    L=(t1 * a) / {2 * (t2 - t1)}   (5)

    となる。(5)式には超音波速度vが含まれず、したがって超音波速度に依存しない距離測定が可能である。 しかしこの測定方法は、PICで(5)式を計算することが難しいことと、素子を一つ余分に使うことなどの理由から今回は使わない。


  9. 超音波距離測定器の構成回路
  10. PICで超音波距離測定器を作る場合に必要な回路を以下に示す。

    信号増幅回路
    受信用センサで受けた超音波信号はオペアンプ増幅器を2段使用して1000倍(60dB)の電圧に増幅される。1段目で100倍(40dB)、2段目で10倍(20dB)の増幅をする。オペアンプは通常プラスとマイナスの2電源を使用するが、この回路では+9Vの単電源で動作をさせている。そのため、オペアンプのプラス入力に電源電圧の半分(4.5V)の電圧をバイアス電圧として加え、増幅する交流信号の中心電圧を4.5Vにしている。オペアンプを負帰還で使用した場合、プラス入力端子の電圧とマイナス入力端子の電圧がほぼ等しくなるので、このバイアス電圧により交流信号のプラス側とマイナス側を均等に増幅することが出来る。このバイアス電圧を加えないと交流信号に歪みが生じることになる。この方法は2電源用のオペアンプを単電源で動作させ、交流信号の増幅をする場合に採られる方法である。

    検波回路
    受信した超音波信号を検出するために検波を行う。左の回路が*ショットキー・バリア・ダイオードを使用した半波整流回路である。ダイオードの後のコンデンサで平滑することにより、検出信号の信号レベルに沿った直流電圧を得ることが出来る。

    *ショットキー・バリア・ダイオード…ダイオードは交流を直流に整流するとき使用されるが、交流の周波数が高くなると整流が出来なくなる。これは逆回復(リカバリ)特性に関係する。逆回復特性というのは次のようなことである。ダイオードに順方向電流が流れている状態で急に逆方向の電圧をかけると一瞬逆方向に電流が流れてしまう。この逆方向に流れる電流が止まるまでの(逆電流のピークの10%位にまで下がる)時間を逆回復時間という。ショットキー・バリア・ダイオードはこの逆回復時間が短く、順方向の電圧降下が低いので高周波の整流に適したダイオードである。しかし、漏れ電流が多いこと、サージ耐力が低いことなどが欠点である。

    信号検出回路
    測定対象物で跳ね返ってきた超音波の検出を行う回路。先の検波回路の出力を電圧比較器(コンパレータ)で検出する。この回路では電圧比較器の代わりに単電源のオペアンプを使用している。オペアンプはプラス入力とマイナス入力の差を増幅して出力する。通常オペアンプは負帰還をかけて使用するが、負帰還をさせない場合少しの入力電圧の差でも出力は飽和状態になる。オペアンプの増幅率は種類にもよるが数万倍の増幅率があるので、プラス入力がマイナス入力より少しでも高くなると、その差は数万倍で増幅され出力はほとんど電源電圧と同じ位(飽和状態)になる。逆に、プラス入力がマイナス入力より少しでも低くなると、その差は数万倍で増幅され出力はほとんど0V(OFF状態)になる。この動作は電圧比較器の動作そのものである。ただ、基本的に電圧比較器とオペアンプは内部の回路が違うので、電圧比較器をオペアンプに使うことは出来ない。この回路では検波回路の出力を信号検出回路のプラス入力に接続し、マイナス入力の電圧は一定にしている。

    Vrf = (Rb * Vcc) / (Ra + Rb) = (47[KΩ] * 9[V]) / (1[MΩ] + 47[KΩ]) = 0.4[V] (6)

    だから、整流した超音波信号が0.4V以上になると信号検出回路の出力はHレベル(ほぼ+9V)となる。この出力は後段の信号保持回路の入力(TTL:0V〜5V)に合わせるために抵抗器で分圧する。

    信号保持回路
    超音波を送出してから測定対象物で反射して帰ってきた信号を保持するための回路。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まで変化させることが出来る。


  11. 超音波距離測定プログラム
  12. 距離測定器は超音波パルスを送出した後、測定対象物からの反射波を検出する。その時間を計測し、対象物までの距離を測定する。

    1cm待機プログラム



    超音波送信プログラム

    距離計測プログラム


  13. 終わりに
  14. 自班はPICをMIRSに搭載する予定なわけであるが、実際にPICを使うためには今回の調査だけでは不十分であることは否めない。しかし、PICを使いこなせれば、超音波センサ以外の回路にも応用でき、FPGAの負担を減らせるはずである。そのため、PICについて独自に勉強する必要がある。