本センサはST’s VL53L0Xレザー距離測定システムを搭載されるキャリア/ブレイクアウト基板で、最大測定距離は 2 m に達します。VL53L0Xは赤外線パルスの飛行時間測定原理を使って、測定のターゲットの表面や色の影響せず、測距機能を実現しますて、測定値はデジタル I²Cインターフェースで読み込めます。本基板にの2.8Vリニアレギュレータとレベルシフタが入力電圧2.6V-5.5Vで作動するのは可能になります。0.1のピン間隔もブレッドボードや0.1のパーフボードに使用しやすくなります。

 

紹介

VL53L0X飛行時間型「ToF」距離測定センサーはVL53L0Xに基づいて、より高速、高精度、高測定距離のセンサーです。

VL53L0Xは新世代の飛行時間距離測定モジュールです。従来の伝統技術と違い、現在市場で最も小さいToF測距センサで、ターゲットの反射率を問わず、精確で距離を測定でき、最大測定値が2mに達するため、新たな測距性能の基準を設定して、また新たなアプリケーションの可能性を拓きます。 VL53L0XはSPAD(Single Photon Avalanche Diode単一光子アバランシェ・ダイオード)検出器のアレイを集積し、ST’s二世代のFlightSenseTM特許技術を採用しています。

VL53L0Xの940 nm VCSEL (VerticalCavity Surface-Emitting Laser垂直共振器面発光レーザー)はアイセーフ・クラス1のため人眼にとって完全に不可視の光線で、内部の光学干渉フィルと
合わせて、より遠い距離、よりよい環境光イミュニティや光学クロストークが実現できます。

ハードウェアの概要

まず、処理している VL53L1X センサ の特徴を見ましょう。それでボードの特性が
把握できます。

特性 範囲
動作電圧 2.6V-3.5V
消費電力 20 mW @10Hz
測定範囲 ~40mm to 4,000mm
解像度 +/-1mm
光源 Class 1 940nm VCSEL
I2C アドレス 0x29
視野角度 15° – 27°
読み取り率 50Hz

仕様

Pinの説明

PIN 説明
VDD 安定化2.8Vの電源を出力し、おおよそ150mAで外部コンポーネントに給電できます(もし内部のレギュレータをバイパスしたい場合、本ピンを2.8V入力端子として使って、VINを断路にしてください)。
VIN 2.6V-5.5Vの主電源連続です。SCLSDAのレベルシフタはI2Cラインをこのレベルに引き上げます。
GND 電源の接地(0V)連続に充てます。I2C制御装置も必ず本ボードと同じ接地端子を共用してください。
SDA レベルシフトI2Cデータライン、HiVIN  LOW-0V。
SCL レベルシフトI2Cクロックライン、HiVIN  LOW-0V。
XSHUT アクティブローシャットの入力端子。ボードではVDD と繋がって、デフォルトでセンサーを作動させます。端子をLOWにさせたらセンサーがハードウェアスタンバイモードになります。端子はレベルシフタ機能がありません。
GPIO1 コーディングで出力を中断することが可能で、このピンはレベルシフトをしません。

回路図

上記の回路図で基板に採用したコンポがVL53L0がさらに使いやすくなるのが分かりました。基板が2.6 V ー5.5 Vで供給できレベルシフタもVINと同じロジックでI²Cと通信できます。回路図はダウンロードできます downloadable PDF (110k pdf)。

用途

VL53L0X入門

入門課程では、私たちは一緒にVL53L0Xセンサとarduinoの連続方法を勉強しましょう。VL53L0XはI2Cセンサのため、多数のマイクロコントローラと同じ二つのデータ/クロックラインを使えて、アドレス衝突がなければ、他のセンサとピンもシェアできます。VL53L0Xは飛行時間(ToF)距離センサのため、他のセンサと違って、小さい不可視レザー光源とマッチングセンサを内蔵しています。では、早速始めましょう。

 

Step1: ハードウェアの準備

Step2: 連続

下記のように

Adafruit_VL53L0Xダウンロード

センサーデータを読み取るならAdafruit_VL53L0XLibraryをインストール必要があります。最も簡単な方法はArduino IDEでManageLibraries…を開きます。

 

adafruit_products_managelib.png

 Adafruit VL53L0X を検索して Install/インストールをクリックします。

adafruit_products_vl53.png



デモ

下記のように File->Examples->Adafruit_VL53L0X->vl53l0x を開いてからセンサーと連続しているArduinoにアップロードします。 

adafruit_products_demo.png

そう !それから115200の速度でターミナルを開いて、テストを始めましょう。 

 

adafruit_products_ranging.png


手を上下に動いてセンサーのデータを読み取ります。何も検知されない場合に、読み取り値オーバーと表示することを注意してください。

使用する前にセンサーから保護カバーを取り外すのは忘れないでください。

複数のセンサーと連続

I2Cで個々のデバイスは1つのアドレスがあるしかありません。各I2Cデバイスは唯一のアドレスがあることを確報してください。VL53L0Xのデフォルトアドレスは  0x29 ですが、ソフトウェアではこれを変更することもできます。

新しいアドレスを設置する方法が二つあります。1つは初期化中にlox.begin()をlox.begin(0x30)に変更させていきます。それにいつでもlox.begin(0x30)を設定するのもよろしいです。

アドレスの再設定は簡単ですが、各センサーをシャットダウン状態にしなければなりません。各センサーのシャットダウンは XSHUT
ピンとマイクロコントローラーピンを連続することで実現できたから、 上記のような擬似コードが実行できます。

  1. 全てのXSHUTピンをdelay(10)に設定し、ピンをlowになります、またXSHUTピンをhighに設定してから、全てのセンサーをリセットできます。
  2. センサー#1のXSHUTピンを「high」のままで、#1を立ち上げます。
  3. 他のセンサーのXSHUTピンを「low」にして、他のセンサーをシャットダウンします。
  4.  lox.begin(new_i2c_address)では0x29以外の数字(<0x7F、0x30ー0x3Fがいい)を入力してください。
  5. #1を立ち上げ状態で、#2のXSHUTピンを「high」にして、リセット状態から離れます。
  6. lox.begin(new_i2c_address)では0x29と#1以外の数字を入力してセンサー#1を初期化します
  7. 上記の操作を繰り返して、各センサーを唯一のアドレスを設定します。

注意アドレスは常設ではなく、電源を入れるたびに上記の操作を繰り返す必要があります。