飛行時間(ToF)マイクロLiDAR距離センサ(VL53L0X)¶
概要¶
VL53L0Xモジュールは、レーザー技術を用いて最大2メートルまでの距離を精度よく測定できる飛行時間(ToF)測距センサです。このモジュールは、統合されたレーザー発生器、検出器、マイクロコントローラを搭載した多機能センサモジュールです。プルアップ抵抗やコンデンサなど、必要なコンポーネントがすべて搭載されています。対応可能な測定距離は約50〜1200mmです。
原理¶
VL53L0Xモジュールは、飛行時間(ToF)原理に基づいて動作します。レーザーパルスを送出し、反射して戻ってくるまでの時間を測定します。この時間は、センサと物体との距離に比例します。モジュールは単一光子雪崩ダイオード(SPAD)アレイを用いて、物体から反射された光を検出します。SPADアレイは、一つの光子さえも検出する能力があります。さらに、このモジュールにはデータ処理を行う統合マイクロコントローラが搭載されています。
使い方¶
使用する電子部品
Arduino Uno R4またはR3ボード * 1
飛行時間マイクロLiDAR距離センサ * 1
ジャンパーワイヤー
回路組み立て
コード¶
注釈
ライブラリのインストールには、Arduinoライブラリマネージャで 「Adafruit_VL53L0X」 を検索してインストールします。
コードの説明¶
必要なライブラリを含むとセンサオブジェクトを初期化。最初に、VL53L0Xセンサ用のライブラリを含み、Adafruit_VL53L0Xクラスのインスタンスを作成します。
注釈
ライブラリのインストールには、Arduinoライブラリマネージャで 「Adafruit_VL53L0X」 を検索してインストールします。
#include <Adafruit_VL53L0X.h> Adafruit_VL53L0X lox = Adafruit_VL53L0X();
setup()
関数での初期化。ここでは、シリアル通信を設定し、距離センサを初期化します。センサの初期化ができない場合、プログラムは停止します。void setup() { Serial.begin(115200); while (!Serial) { delay(1); } Serial.println("Adafruit VL53L0X test"); if (!lox.begin()) { Serial.println(F("Failed to boot VL53L0X")); while (1) ; } Serial.println(F("VL53L0X API Simple Ranging example\n\n")); }
loop()
関数での測定値の取得と表示。Arduinoは、rangingTest()
メソッドを使用して、距離の測定を継続的に行います。測定が有効な場合、その値がシリアルモニタに表示されます。void loop() { VL53L0X_RangingMeasurementData_t measure; Serial.print("Reading a measurement... "); lox.rangingTest(&measure, false); if (measure.RangeStatus != 4) { Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter); } else { Serial.println(" out of range "); } delay(100); }
追加のアイディア¶
センサをディスプレイ(例:OLED)と連携させて、距離測定値を表示する。
物体が特定の範囲内に入ったときに、他のコンポーネント(LEDやブザーなど)を作動させる。