距離センサモジュールを使ってみた

最終更新日:2017/7/24

距離計測の為のセンサとして、超音波だったり赤外線だったり、レーザーだったりと方法論が幾つかあります。ターゲットの物体の特性や測定距離、或いは応答性を考慮して選択する必要があります。

Arduinoで予めライブラリが提供されているモジュールとして以下のものが見つかりました。

方式 モジュール名 オリジンメーカー コメント
超音波 HC-SR04 Sain Smart? 40KHzのパルスをターゲットに当てて、エコーが返るまでの時間を測定し、その時間の半分が距離として、時間幅のパルスを結果として出力する。
距離変換は音速:331.5+0.6t[m/s]から求めるが温度センサが一緒に装備されていない。
繰り返し計測する場合10S/sが精々だった
赤外線 GP2Y0A シャープ ターゲットの距離に応じて幾つかのタイプが用意されている。
電圧出力で、電圧と距離の関係が緩やかな曲線領域を使うとのことで、工夫が必要です。
テーブルから補間近似するのがいいのかな
アナログ出力なので繰り返し計測間隔は自由だが応答が実際にどんなものなのか調査が必要
レーザー RB-Pli-03 PulsedLight レーザは長距離計測に向いていますね。
ドローン等に搭載しているようです。
計測原理は超音波と変わりません。
価格が2万円近いので簡単には使えません。
超音波 SEEED-101990004 Electronic Brick HC-SR04と原理は同じみたいですが、信号端子が1本です。DIOを出力で使った後入力として使用する必要があります。
超音波 LV-EZ1 Maxbotix/sparkfun 通信インターフェースとしてアナログ電圧出力、パルス幅出力、シリアル出力が用意されています。
指向性パターンとして5つのタイプが用意されています。
超音波 URM37 DFROBOT 温度センサが装備されたHC-SR04という感じです。
レーザー RB-Pli-06 PulsedLight 長距離用(〜40m)
レーザー VL53L0X STマイクロエレクトニクス 中距離用(〜2m)
Time of Flightという手法で計測するそうです。
たぶん超音波と同じです。
レーザー VL6180X STマイクロエレクトニクス 近距離用(〜0.15m)


LINX+ArduinoNanoで実際の使ってみました。
LINXのExampleは信号線が1本のタイプでしたが、2本のタイプに作り直して使ってみました。

数cm〜1mくらいまではちゃんと計測できることを確認しました。
ターゲットが反射物で無いと計測できません。Looprateは100msecです。このセンサモジュールの性能なのか、LINX関数内の固定値なのか把握できていません。
このレートで処理できるのであればホビーロボットで使用できますね。


戯言(nonsense)に戻る


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。