超音波センサー(URM37)を使って距離測定【Arduino超入門】

超音波センサー(URM37)を使って距離測定【Arduino超入門】

今回はロボット掃除機を始め、ドローンなどの障害物検出などに用いられている部品である超音波センサーモジュールを使った距離測定をやってみたいと思います。

超音波センサーって?

超音波とは人の耳には聞こえない高い周波数の音のことで、主として20kHz以上をいいます。

超音波センサー動作原理

今回のセンサーでは超音波を送信側から出し、受信側に反射してくるまでの時間を測定し、その時間から距離を導きだします。

音の時間から距離を導き出す公式は小学校でも習いましたよね?
331.5 + 0.6 * 室温 (m/秒)
つまり室温が25℃環境下では331.5 + 0.6 * 25℃ になるので、
1秒間あたり346.5m/秒となります。

つまり仮に上の写真において、送信側から受信側に0.001秒(1ms)後に音が反射してきた場合、公式から導き出される距離は34.65cmとなりますが、距離は往復分(2L)になるため1/2にすることで17.325cmが対象物との距離ということになります。

今回の実験では超音波センサーモジュール(URM37)を使用しました。

動作プログラム(スケッチ)

今回はメーカー公式サイトに記載のサンプルプログラムから流用しました。
ページ中段のThe sketch for PWM passive control modeというスケッチです。
これをそのまま書き込んで、ピン案内に従い配線を進めます。

接続方法

配線

ArduinoURM37
5V1:+5V
GND2:GND
D34:PWM
D56:COMP/TRIG

配線写真

配線方法


完成

スケッチの書込み、配線が完了したら、PCに接続しシリアルモニタを開いてみましょう。

出力結果

この画像のように対象物との距離が正しく測定できていれば成功です。

まとめ

今回は超音波センサーモジュール(URM37)を使用しサンプルプログラムを動作させてみましたが、この製品以外にも国内で手に入る超音波センサーモジュールであれば、いずれもサンプルプログラムを用いれば簡単に距離測定の実験が可能です。これらを複数組み合わせて自立走行ロボットや稼働物の検知などに使ってみてください。