ArduinoでVL53L0Xレーザー距離計を使用する

ArduinoでVL53L0Xレーザー距離計を使用する

このチュートリアルでは、Arduino でVL53L0Xレーザー距離計を使用する方法について説明します。このデバイスを使用すると、レーザーを使用して距離を正確に測定できるため、ロボット工学やオートメーションなどのさまざまな用途に最適です。このチュートリアルを終えるまでに、距離を測定してシリアルモニターに表示できる機能セットアップが完成します。

VL53L0X 200cm range sensor-blue

このプロジェクトでは、センサーとのインターフェースプロセスを簡素化するAdafruit VL53L0Xライブラリを使用します。このライブラリは、センサーの初期化、測定値の読み取り、発生する可能性のあるエラーの処理に必要な機能を提供します。セットアップのビジュアルガイドについては、ビデオを参照してください(ビデオの02:15)。

ハードウェアの説明

このプロジェクトの主なコンポーネントには、VL53L0Xレーザー距離計とArduinoボードが含まれます。VL53L0Xは、レーザーを使用して最大2メートルの距離を高精度で測定する飛行時間型センサーです。I2Cプロトコルを介して動作するため、Arduinoとの通信が容易です。

Arduinoボードは、VL53L0Xからのデータを処理するマイクロコントローラーとして機能します。センサーにコマンドを送信し、距離測定値を受信し、他のアプリケーションで表示または利用できます。センサーからの正確な読み取りを保証するには、適切な配線が非常に重要です。

データシートの詳細

生産者STMicroelectronics
部品番号VL53L0X
動作電圧2.6V〜3.5V
範囲30 mmから2000 mm
精度±3%(標準)
インターフェイスI2C型
温度範囲-40°C〜+85°C
消費電流<1mA(スタンバイ)、20mA(アクティブ)
パッケージVFLGA-8

  • センサーに正しく電力が供給されていることを確認します(2.6 V〜3.5 V)。
  • 競合を避けるために、正しい I2C アドレス設定を維持してください。
  • 正確な距離測定のために、センサーを清潔に保ちます。
  • 必要に応じて、I2Cラインに適切なプルアップ抵抗を使用します。
  • 信頼性の高い測定値を得るために、センサーへの直射日光を避けてください。

配線手順

Arduino Wiring for VL53L0X
Arduino Wiring for VL53L0X

VL53L0XセンサーをArduinoに配線するには、センサーのVCCピンをArduinoの5Vピンに接続します。GNDピンはArduinoのグランド(GND)に接続する必要があります。I2C通信の場合は、VL53L0XのSDA端子をArduinoのA4端子に接続し、SCL端子をA5端子に接続します。別のArduinoモデルを使用している場合は、そのボードの特定のSDAおよびSCLピンの割り当てを参照してください。

たとえば、Arduino Megaでは、SDAをピン20に接続し、SCLをピン21に接続します。通信の問題を回避するために、すべての接続が安全であることを確認してください。センサーが応答しない場合は、配線を再確認し、Arduinoに適切に電源が供給されていることを確認してください。

コード例とチュートリアル

以下は、VL53L0Xセンサーを初期化するセットアップ関数のスニペットです。

void setup() {
  Serial.begin(9600);
  while (! Serial) {
    delay(1);
  }
  Serial.println("Robojax Test");
  if (!lox.begin()) {
    Serial.println(F("Failed to boot VL53L0X"));
    while(1);
  }
}

このコードはシリアル通信を初期化し、VL53L0Xセンサーの起動を試みます。センサーが起動に失敗すると、エラーメッセージが出力され、プログラムが停止します。

次に、距離測定値を読み取るループ関数のスニペットを次に示します。

void loop() {
  VL53L0X_RangingMeasurementData_t measure;
  lox.rangingTest(&measure, false);
  if (measure.RangeStatus != 4) {
    Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
  } else {
    Serial.println(" out of range ");
  }
  delay(100);
}

このブロックは、センサーからの距離測定値を継続的に読み取り、シリアルモニターに出力します。測定値が範囲外の場合は、それに応じてこれを示します。

デモンストレーション / みどころ

プログラムを実行すると、シリアルモニターに距離測定値が表示されます。測定値は 100 ミリ秒ごとに更新されます。センサーが物体を指している場合、距離はミリメートル単位で表示されます。オブジェクトが範囲外にある場合は、それも示します。最適な結果を得るには、指定された範囲内でセンサーをテストしてください(10:00のビデオで)。

ビデオのタイムスタンプ

  • 00:00-紹介
  • 02:15- 配線設定
  • 05:30- コードの説明
  • 10:00-デモ

画像

VL53L0X 200cm range sensor-blue
VL53L0X 200cm range sensor-blue
Arduino Wiring for VL53L0X
Arduino Wiring for VL53L0X
15-Using a VL53L0X laser distance meter in Arduino
言語: C++
コピーしました!

リソースと参考文献

ファイル📁

ファイルは利用できません。