2021.7.24 超音波センサを使いこなす1

先日、八潮の秋月電子で超音波センサを買いました。

今回は、超音波センサSRF-02をがんばって使いこなそうと思います。

超音波センサ(SRF02)

超音波センサ

◆主な仕様
・使用マイコン:16F687-I/ML
・測定範囲:16cm~6m.
・電源:5V(消費電流4mA Typ.)
・使用周波数:40KHz.
・アナログゲイン:64段階の自動ゲインコントロール
・接続モード:モード1=I2C、モード2=シリアルバス
・全自動調整機能:電源投入後キャリブレーション不要
・測距タイミング:エコー時間計測、ホストによるタスクコントロール
・測定単位:μS(マイクロ秒)、ミリ、インチ
・サイズ:24mmx20mmx17mm
・入出力端子:5ピン
・重量:4.6グラム

[秋月電子より引用]

さて、まずは超音波センサの仕組みを確認しましょう。

超音波センサーは、今や自動車の駐車センサや障害物検知など、自動運転などにも欠かせない技術となっています。

まず、超音波とはなんでしょうか。

 

超音波とは

超音波は、広義的に言えば、ただの音です。なぜ、超が付くかと言いますと、それは音の周波数が人間が聞き取れないくらい高いからです。

下図が、音波の分類です。

超音波のスペクトラム

音は、音の高さ(周波数)によって分けられ、20kHzより高い音を超音波と定義しています。

人間が聞き取れるのは、成人では17kHz程度まで聞き取れます。そのため、多くの音楽データでは20kHz以上の音はデータとして記録していません。また、マイクやスピーカーの特性も、20kHz以上の音はほとんど出ない設計であり、その分音波の範囲で最大の性能を発揮できるように作られています。

その、聞き取れない超音波域の音も出すことで、豊かな音になるとうたっているのが「ハイレゾ音源」です。ですが、そもそも人間が聞き取れない音を出すことは、本当に意味があるのか、私もわかりません。

さて、余談が過ぎました。

超音波センサは、空気を伝搬させるため、超音波の中でも比較的低い音で使用します。超音波は、周波数が高いほどまっすぐ進み、密度の濃い媒体の中も良く通ります。そのため、おなかの中を通り抜けなければならないエコー検査装置の超音波は3GHzと高い帯域を使います。

それに対し、障害物センサなどの超音波は、媒体が空気と薄いこと、さらになるべく広い範囲を検知する必要があることから、音波ギリギリの40kHzなどが使われます。

さて、超音波の特徴がわかったところで、つぎは、超音波センサが障害物を検知するしくみを確認します。

 

超音波センサの検知

超音波センサは、超音波を放出するスピーカーと、超音波を受信するマイクからなります。

最近の超音波センサは、スピーカーとマイクが一体型になっているパターンがほとんどです。

超音波の送受信1

センサーから放出した超音波は、音速の速さで進みます。

これが、障害物にあたると、超音波はやまびこのように反射して帰ってきます。この帰ってきた反射波をマイクで拾い、検知します。

もし障害物が無ければ、なにも反射せずに検知できません。

超音波の送受信2

 

また超音波センサは、障害物までの距離も算出することが出来ます。

その仕組みは下図のように、超音波の発信から受信までに要した時間と音速との関係を演算することでセンサから対象物までの距離を算出します。

超音波の送受信3

超音波は、音と同様、音速の速さで進みます。音速は340m/sです。

音速をv 距離をrとし、超音波を放出してから反射波を受信するまでの遅延時間をtとすると、

距離 r = (v× t )/2 で導けます。

例えば、遅延時間が10m秒だった場合、往復距離r は、340×0.01= 3.4m

したがって、障害物までの片道距離は、1.7 mとわかります。

 

超音波センサSRF-02

さて、超音波センサを使いましょう。

秋月のページには、メーカーの製品情報が載っていました。

ここに、詳細な説明とプログラム例のwikiが載っています。

ここに乗っていた、サンプルプログラムを使うことにしました。

接続は、下図の通りです。

Arduinoとセンサの接続図

超音波センサとの通信方法は、二種類選ぶことができ、I2CとUARTから選ぶことが出来ます。

I2CとUARTの特徴は、後程まとめさせていただければと思います。

超音波センサにヘッダピンをはんだ付けして、ブレッドボードに差し込みます。あとは、接続図の通りに配線をして完成。

さっそく、パソコンにUSBをつないで、プログラムを書き込みます。Arduinoの使い方なども後程説明させていただければと思います。

Arduinoのスケッチ

これを書き込むと、センサから障害物までの距離をリアルタイムで見ることができます。

さっそく手をかざしてみます。Arduinoのシリアルモニタを確認すると、センサから手までの距離がリアルタイムで表示されていることがわかります。

 

今日はここまでにします。明日は、超音波センサを使った楽器について構想を練ります。

 

2021/7/24 ひいらぎ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA