概要
レーザーを利用した距離センサーの紹介です。超音波式に比べると精度が高いのが特徴です。
商品
- 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(); }
公式スケッチ例はライブラリじゃなくて、ベタ書きの関数を組み込んでいましたので、プレーンなライブラリを使うように変更してあります。
この例ですとミリ単位で距離が取得できます。超音波に比べてかなり数値も安定しています。
まとめ
さすがにちょっとお高いセンサーなので精度が高いです。使い方もシンプルですね。
コメント