レーザーで距離を測るTOF距離センサー VL53L0X【電子工作始めますか?】


レーザーを発射し反射光が戻ってくるまでの時間で距離を測るTOF(Time Of Flight)距離センサーのVL53L0Xを動かしてみます。

今回もI2Cで動くICです。
レーザーの飛行時間で距離を測定するセンサーです。
使ったブレークアウト基板はこちら


I2CなのでRaspberry Piとつなぐには電線4本で済みます。とても簡単。
配線図はこちら
VL53L0X配線図
ジャンパーワイヤーを使うと楽です。

ArduinoやPythonの例は他のサイト様でいくらでも紹介しているでしょうから、Node-REDで動かす例を紹介します。
VL53L0X用のノードが公開されています。
node-red-contrib-easybotics-vl53l0x
A Node-RED node to talk to the vl53l0x on the I2C bus
このノードは呼び出せば距離を返します。I2Cアドレスを設定するだけです。
出力される数値の単位はミリメートルです。
あとは好きに表示させればいいだけです。
今回はシンプルすぎるのでフローの例を用意していません。

VL53L0Xのレジスターマップは非公開のようです。
複雑過ぎてへたに公開できないそうです。
VL53L0X Register Map? | ST Community
レーザーで距離を測るにはとても光速なアナログ回路が必要です。戻ってくる光はとても微弱です。絶妙なタイミングで動作させないと戻ってきた光かノイズかの区別ができません。光を出す強度、光を出し戻った光を検出する回路、時間を測定する積分回路などレジスターで調整できるのでしょうが、全てを完璧に合わせた動作をさせないと正しい距離が得られないのは容易に想像できます。
基本はメーカー提供のソフトウエア(API)で評価するようです。そのソフトウエアから移植したプログラムの一部の機能をブレークアウト基板のメーカが提供しています。
どうしてもレジスタマップを知りたければAPIを見る事になります。

ビデオ




コメント

最近のコメント

Threaded Recent Comments will be here.