この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちはさかじです。Developers.IO 2018も無事終了し、秋深まった札幌に戻って来ました。 横田deGoシーズン2で使用したセンサ(VL53L0X)の使用方法をまとめました。
横田deGoとは?
- シーズン1
社内の精鋭たちを集めて3週間でAmazon Goっぽい仕組みを作った -
シーズン2
Developers.IO 2018 で「Amazonの文化をハックせよ。100万円未満で無人レジの仕組みを作ってみた 〜横田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(屋内)まで測定できるので色々な活用方法があると思います。