EPS-WROOM32で測距センサVL53L0Xを使ってみた

こんにちはさかじです。Developers.IO 2018も無事終了し、秋深まった札幌に戻って来ました。 横田deGoシーズン2で使用したセンサ(VL53L0X)の使用方法をまとめました。
2018.10.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちはさかじです。Developers.IO 2018も無事終了し、秋深まった札幌に戻って来ました。 横田deGoシーズン2で使用したセンサ(VL53L0X)の使用方法をまとめました。

横田deGoとは?

VL53L0Xとは?

STマイクロ社距離センサVL53LXを使用した小型レーザ測距モジュールです。今回は秋月電子通商で購入したVL53L0X使用レーザー測距センサモジュール(ToF)を使用しました。

CPUモジュール

今回は秋月電子通商のESP-WROOM-32開発ボードとArduino IDEを使用しました。セットアップ方法は以下のブログを参照してください。
ESP-WROOM-32の開発環境のセットアップ

準備

Arduino IDEでVL53L0Xのライブラリをインポート

  • ”ツール" - "ライブラリを管理"を選択  

  • ライブラリマネージャで"VL53L0X"を入力して"VL53L0X by Pololu"の最新バージョンをインストールします。  

EPS-WROOM-32開発ボードとVL53L0Xを接続

VL53L0X ライブラリ github のREADME.mdにある通り接続します。

  Arduino(ESP-WROOM-32)   VL53L0X基板
  ---------------------   ----------
                    3V3 - VIN
                    GND - GND
              IO21(SDA) - SDA
              IO22(SCL) - SCL
IO21,IO22は3.3KΩでプルアップする

動作確認

下記のコードを入力しESP-WROOM-32開発ボードへ書き込むと1秒毎に現在の距離を出力します。

#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;
void setup()
{
  Serial.begin(115200);
  Wire.begin();

  sensor.init();
  sensor.setTimeout(1000);
  sensor.startContinuous(10);
}

void loop()
{
  Serial.print(sensor.readRangeSingleMillimeters());
  if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }

  Serial.println();
  delay(1000);
}

最後に

横田deGoでは棚ひとつに対して4個のセンサを使用して、手が「入った」「出た」の状態を監視していました。
簡単に距離が測ることができ、最大200cm(屋内)まで測定できるので色々な活用方法があると思います。

参考

VL53L0X ライブラリ github