注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Facebook上で、仲間と一緒にRaspberry Pi、Arduino、ESP32をさらに深く探求しましょう。

なぜ参加するのか?

  • 専門的なサポート:購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決。

  • 学びと共有:スキルを向上させるためのヒントやチュートリアルを交換。

  • 限定プレビュー:新製品発表や予告編に早期アクセス。

  • 特別割引:最新製品の特別割引を楽しむ。

  • フェスティブプロモーションとプレゼント:プレゼントやホリデープロモーションに参加。

👉 私たちと一緒に探索と創造を始める準備はできましたか?[ここ]をクリックして、今すぐ参加しましょう!

レッスン21: タイムオブフライトマイクロLIDAR距離センサー (VL53L0X)

このレッスンでは、Adafruit VL53L0Xタイムオブフライト距離センサーをESP32開発ボードで使用する方法を学びます。センサーの初期化、距離測定の読み取り、シリアルモニタにミリメートル単位で表示する方法を説明します。

必要な部品

このプロジェクトには以下の部品が必要です。

すべての部品が揃ったキットを購入すると便利です。リンクはこちら:

Name

ITEMS IN THIS KIT

LINK

Universal Maker Sensor Kit

94

Universal Maker Sensor Kit

以下のリンクから個別に購入することもできます。

Component Introduction

Purchase Link

ESP32 & Development Board

購入

Time of Flight マイクロLIDAR距離センサー (VL53L0X)

購入

ブレッドボード

購入

配線

../_images/Lesson_21_VL53L0X_esp32_bb.png

コード

注釈

ライブラリをインストールするには、Arduino Library Managerを使用して **"Adafruit_VL53L0X"**を検索し、インストールしてください。

コード解析

  1. 必要なライブラリのインクルードとセンサーオブジェクトの初期化。まず、VL53L0Xセンサー用のライブラリをインクルードし、Adafruit_VL53L0Xクラスのインスタンスを作成します。

    注釈

    ライブラリをインストールするには、Arduino Library Managerを使用して **"Adafruit_VL53L0X"**を検索し、インストールしてください。

    #include <Adafruit_VL53L0X.h>
    Adafruit_VL53L0X lox = Adafruit_VL53L0X();
    
  2. 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"));
    }
    
  3. loop() 関数での測定値の取得と表示。ESP32開発ボードは、 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);
    }