昨日いじり始めたシャープの、赤外線イメージセンサを応用した光学式(三角測量方式)測距センサGP2Y0E03の続きです。昨日は、なんとか計測数値が出てきたものの、LCDパネルを取り外していたせいでプルアップ抵抗が無かった失敗の件で終わっていました。本日は、ちゃんとLCDに小数点以下まで距離を表示させた上で、さらに、アナログ出力の方にも調べを進めたいと思います。しかし、まず最初に、昨日の最大の問題点に対処しなければなりません。なにせセンサを紐で適当な台に縛り付けてあったので「センサがブラブラ」していたからです。「測量」するのに原点がブラブラでは何だか分かりません。まずは、この対処から始めます。
※「IoT何をいまさら」投稿順Indexはこちら
そこで準備したのは材料費200円ほどの冶具であります(ぶっちゃけ某100円ショップで買ってきたものに穴をあけてネジ止めしただけ)。しかし、その効果は絶大であります。
しっかり固定することができました。あまりきつく締め込むとセンサを押しつぶしてしまいそうなほどです。これで原点位置の固定は完了。
昨日のソフトウエアからの修正点は、
- LCDに距離を xx.x [cm] という具合に小数点1桁まで表示するようにした。
- 測距センサは昨日、最大スケール128cm設定にしていたが、デフォルトの64cm設定に戻した。
こんな程度です。コードに幾らか手をいれてMbed(勿論、Web環境を使わせていただいています。CLIよりもコンパクトなコードが出力されるので)でビルドすれば(まあ、表示の位置がづれていて1度コンパイルしなおしましたが)、即動作です。LCDに表示されているところの写真を以下にお見せしましょう。
ちょっと見ずらいですが、センサの下にグラフ用紙がひいてあります。一応、センサ直下を目分量で0cm位置に設定し、15cm位置に壁のように紙を立ててあるのです。測距結果は、若干短めの14.5cm。センサ位置も目分量だし、紙もたわみなどがあるので、ほとんど正確な値といっても良いのではないかと思います。「GP2Y0E02A,GP2Y0E02B,GP2Y0E03アプリケーションノート」という資料に掲載されているスペック上は
- 測距範囲4cm-50cm
- 距離50cmのとき、距離値45-55cm typ.=50cm
- 距離10cmのとき、距離値9-11cm typ.=10cm
- 距離4cmのとき、距離地3-5cm typ.=4cm
ということなので、スペックどおり。実験場所の制約からあまりレンジの広い測定ができなかったのですが、測定結果をグラフにしてみるとこんな感じです。
オレンジ色がアナログ出力の電圧値なのですが、近いと電圧が高く、遠いと電圧が低くなります。このあたりの距離では、距離に対して1次式で記述可能だと思います。特に微弱な信号が出力されるわけではなく、そのままADCで拾えるような振幅のアナログ出力なので、アナログで取り扱うのも難しくはなさそうです。
ただし、先ほどのアプリケーションノートにも規定されているのですが、出力値には「クセ」があり、計測不能な範囲になるとデジタルは計測最大値(この場合フルスケールの63cm)、アナログの場合は最低電圧を出力してきます。
上のデータロガーのグラフは、100mS毎にアナログ出力をサンプリングして得たもので、その時の電圧値が右に表示されています。グラフの左側から説明すると、まずゆっくりと「測定対象」としての手をセンサに近づけていきました。あるところ、大体2.4cmくらいまで近づけると「測定不能」となりました。中央近くの山のピークから出力がパルス状に0V近くまで落ち込んでいるところです。そこから手とセンサの距離を離していくと、電圧が一端ピークに戻った後、そこから徐々に電圧が落ちていき、大体60cmくらいでまた下限に到達します。その後は作業のために手をばたばた動かして、「衝立」を立てた様子がグラフに出ています。つまり、
距離が近すぎても出力はフルスケールとなる
のでした。またスペックの50cmを越えても60cm近くまでそれなりに距離を出力してはいましたが、距離が遠くなると数値が安定しない感じがします。やはりスペックを守って4~50cm範囲で使うべきなのでしょう。
また、先ほどのアプリケーションノートを読むと、うまく計測できなくなる事例がいろいろ挙げてあります。
- 鏡
- 周辺からの反射
- 反射率の大きな差のある境界
- 反射物の大きさや傾き
- センサの保護カバー
- 他のデバイスとの干渉
さらに仕様の応答時間40mSという数字を考慮にいれた上で、やりたいことが「測距できる制約範囲」に収まるのであれば、非常に手軽に(工場でキャリブレーション済)使えるセンサであると思います。しかし、遠距離、近距離、高速、赤外線に向かないターゲットの材料など不得意な領域がかなりあることを頭に入れておくべきでしょう。