超音波センサーURM37 V3.2

カテゴリー:

今回使用した超音波センサーURM37 V3.2についてメモしておきます。
URM37は、1,300円程度の手ごろな価格で入手できます。使用方法は、メーカーのサイトで詳しく説明されていますが、今回の使用例について説明してみます。
センサーの感度としては、分解能1cmで認識距離は4cm-5m
モードとしては、PWM passive control mode で使用しました。
PWM passive control modeとは、トリガーピンにトリガー信号(立ち上がり信号)を入れることによって出力ピンに検知された障害物の距離に応じてLOW出力が出るモードです。基本的には1cmあたり50uSecの信号出力なので出力信号の長さから距離が判ります。Arduinoのスケッチ例も出ており簡単に搭載できました。
下記がメーカーサイトに出ているPWM passive control mode のArduinoのスケッチですが、MODEの設定は、1回だけすればよいので、一度だけ、URM37とArduinoをシリアルポートを接続して下記のスケッチにてMODEを設定した後は、シリアルポートの接続も外しMODE設定もしていません。

シリアルポートの接続は

300px-URM37_ConnectionDiagram

マグボットに組み込み時は、URM37のMODE設定は済んでいるのでURM37とArduinoの接続は、URM37のVCC(+5V),
GND,TRIG,PWMの接続になります。
VCCはArduinoのVIN、GNDは頭部のブレッドボードのGND、TRIGはArduino_P10,PWMはP9に接続してみました。

とりあえず参考になるかわかりませんが、私の書いたセンサー部分のプログラムを載せておきます。
動作としては、タイマー割り込みを使用して毎100ms呼ばれるようになっています。
ノイズ等の影響も考え一定時間状態が続くと反応するようにしています。
センサーが反応すると近づいた距離に応じて”@a3″,”@a2″,”@a1″ センサーから離れると”@b3″,”@b2″,”@b1″をシリアルポートに送信してRaspberryPiに送っています。なお、マグボットが話し中はセンサーが反応しないようにしています。