目次>5章 第2ステップ(色々な実験) (24)超音波を扱う(送受信の動作確認)
超音波を扱う
− 送受信の動作確認 −
更新日2008.6.7
ここでは超音波を使って、物体までの距離を測る実験を行います。
今回は、その手始めとして超音波をPICで扱う方法を説明します。
超音波とは
|
・ |
人間の耳に聞こえる音の高さは、20Hz〜20000Hzと言われています。(耳が良い人で)
超音波は音と全く同じですが、人間の耳で聞こえるよりも高い音を言います。
一般的に、20000Hz以上の音を超音波と言っているようです。
音は空気の振動で伝わり、そのスピードは1秒間に約347m(1気圧で気温が25度Cの場合)です。
そして、硬い物体からは反射してきます。(トンネルの中で大声を出したり、山に登ってヤッホーと叫んだ時の状態)
超音波も全く同じ性質を持っていますので、超音波を出すと壁などの硬い物からは反射して返ってきます。
従って、超音波を送信してから反射音を受信するまでの時間で、音を反射した物体までの距離を知る事ができます。
|
使用するパーツ
|
|
今回の主役は、超音波送信器と超音波受信器です。
音と同じですので、超音波送信器はスピーカ、超音波受信器はマイクの役割を果たします。違いは、扱う周波数が高いと言う点のみです。
-
| | 左が送信器、右が受信器です。 見た目は同じですが、送信器にはS、受信器にはRの文字が書かれています。
|
今回使用した超音波送受信器は、40KHzのものです。形状はどのような物でもOKです。
|
回路図
|
|
今回の回路は非常に簡単で超音波送信部のみです。
後のページで、受信部(アンプ)と表示部(LCD)を追加します。
超音波送信器をPICのRA0とRA1に接続し、反転したデータを出力することで強い超音波を発生します。
(送信器に加わる電圧は、PP約10V)
今回は受信部は作らず、受信器の信号はオシロスコープで確認しました。
-
【参考】 超音波送信器のために、9〜12Vの別電源を用意し、トランジスタやFETで制御するような方法もあります。
また、PICを使わず555などのタイマICで超音波を発生する方法もあります。
ですが、このページのポリシーは、「ハードウェアは極力単純化し、後はソフトウェアで頑張る」ですので、このような簡単な回路にしました。
|
こちらは、ブレッドボードに組んで実験しているところです。
-
| | 右下の黒い円柱が超音波送信器 その左の黒い円柱が超音波受信器 こちらはPICには接続していません
|
|
超音波送信プログラム
|
|
今回使用した超音波送受信器は40KHzのものです。
従って、40KHzをRA0/1に出力する必要があります。
超音波は送信し続けるのでは無く、50ミリ秒毎に20サイクル分送信するようにします。
-
送信サイクル数は多いほど強くなり、受信感度が上がります。ですが、短い距離を測定しづらくなります。
10,20,40,80サイクルを試した結果、10サイクルではかなり弱く、20サイクル以上は大差ありませんでしたので20サイクルにしました。
超音波送信間隔は、測定する距離の上限を5m程度とし、余裕を見て約9mを音が往復する時間(50ミリ秒)としました。
- 40KHzの1サイクルの時間は、25マイクロ秒、半サイクルの時間は12.5マイクロ秒です。
-
1秒/40KHz | =25マイクロ秒
| 25マイクロ秒/2 | =12.5マイクロ秒
|
従って、12.5マイクロ秒毎にRA0/RA1をON/OFFさせれば40KHzの超音波を送信できます。
-
この時間は、TMR0割込みを使って作ります。
-
- まず、クロックが20MHzですので、
・1クロックの時間 | :0.05マイクロ秒(1秒/20MHz)
| ・1命令の時間 | :0.2マイクロ秒(1クロックの時間×4)
|
- 従って、12.5マイクロ秒の命令数は、63になります。
- 12.5/0.2=62.5(四捨五入して63)
- 以上の事から、TMR0割込みの設定は、
・プリスケーラ | :なし
| ・TMR0設定値 | :256−63+10 (+10はTMR0割込みのオーバヘッド)
|
そして、TMR0割込み毎にRA0/RA1をON/OFFさせれば、約40KHzの超音波を発生できます。
この時の注意は、常にRA0とRA1は逆の状態にすると言う点です。
(RA0がONの時はRA1をOFF,RA0がOFFの時はRA1をON)
今回のプログラムはこちらです。
|
送受信の確認
|
|
今回のプログラムでいくつか動作を確認しました。
まず、超音波送信器の両端にかかる電圧を見てみましょう。
-
このように、最大10Vのパルスになっています。
| | 時間軸:10uS/DIV
|
次からは、送信器と受信器の波形です。
-
緑はRA0(送信器)、黄色は受信器の波形です。
緑の波形から、波長が約25マイクロ秒である事が分かります。
一方、受信器(黄色)には非常に高い周波数のノイズがたくさん乗っています。
| | 時間軸:20uS/DIV
|
-
時間軸を変えてみましょう。
緑の送信側は、52mS毎に超音波送信している事が分かります。
一方、黄色の受信側は、大きな三角波のようなうねりがあります。これは、商用電源の50Hzがノイズとして乗っているためです。
受信側で注目する点は、ノイズの他に超音波の受信波が見える点です。緑の超音波送信の直後に、受信側にノイズ以外の信号が見えます。
これは、約50cm先の手の平から反射した超音波です。
| | 時間軸:10mS/DIV
|
-
下は時間軸を少し拡大しました。
超音波送信(緑)から約3ミリ秒後に反射波を受信(黄)している事が分かります。上と同じで50cm先の手の平からの反射です。
音速は、約347m/秒ですので、1mだと約2.9ミリ秒です。(50cm先の手の平は往復1m)
このように反射波を受信するまでの時間で、反射した物までの距離を測る事ができます。
| | 時間軸:1mS/DIV
|
今回の実験はここまでです。
超音波を使って物体までの距離を測定できることが分かりました。
超音波受信器には、周波数が低いノイズと非常に高いノイズが乗っていますが、いずれも受信回路(アンプ)で簡単に取り除けますので安心して下さい。
続編では、受信回路(アンプ)と表示回路(LCD)を追加して、測定した距離を表示できるようにします。
|