概要
レーザーを利用した距離センサーの紹介です。超音波式に比べると精度が高いのが特徴です。
商品
- Time-of-Flight Ranging Unit (VL53L0X)(本家ストア)
- M5Stack用ToF測距センサユニット(スイッチサイエンス)

ソケットが赤なのでI2C接続のユニットです。

上にあるのがToFのセンサですね。

0から2メートルまで測定できると書いてあります。ただし、センサーがちょっと凹んだ場所になるので壁にベタ付けしても0にはなりません。VL53LOXというセンサーを利用していますね。
秋月さんでも千円超えているので、結構高いセンサーです。そして秋月さんは3センチから2メートルという表記なので、こっちが正しそうです。。。
スケッチ例
#include <Wire.h>
#include <VL53L0X.h> // by Pololu http://librarymanager/All#vl53l0x-arduino https://github.com/pololu/vl53l0x-arduino
VL53L0X sensor;
void setup()
{
Serial.begin(115200);
Wire.begin(32, 33); // M5StickC
sensor.setAddress(0x29);
sensor.setTimeout(500);
if (!sensor.init()) {
Serial.println("Failed to detect and initialize sensor!");
while (1) {}
}
sensor.startContinuous();
}
void loop()
{
Serial.print(sensor.readRangeContinuousMillimeters());
if (sensor.timeoutOccurred()) {
Serial.print(" TIMEOUT");
}
Serial.println();
}
公式スケッチ例はライブラリじゃなくて、ベタ書きの関数を組み込んでいましたので、プレーンなライブラリを使うように変更してあります。
この例ですとミリ単位で距離が取得できます。超音波に比べてかなり数値も安定しています。
まとめ
さすがにちょっとお高いセンサーなので精度が高いです。使い方もシンプルですね。



コメント