#include <VL53L0X.h>
VL53L0X name;
name.init(); の形で使います。
サンプルプログラムでは、nameをsensorとして、VL53L0X sensor; でインスタンスを生成しています。
I2Cアドレスを変更する関数です。
引数:uint8_t new_addr
7ビットのI2Cアドレス
戻り値:なし
現在のI2Cアドレスを取得する関数です。
引数:なし
戻り値:I2Cアドレス(7ビット)
センサを初期化する関数です。引数:io_2v8がtrueの場合、センサは2V8モードに設定されます。falseの場合、1V8モードに設定されます。
引数:bool io_2v8
2V8モードに設定するかどうか
戻り値:true(初期化が正常に終了)、false(初期化が正常に終了せず)
センサレジスタに8ビットの値を書き込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数1:uint8_t reg
レジスタアドレス
引数2:uint8_t value
書き込む値(8ビット)
戻り値:なし
センサレジスタに16ビットの値を書き込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数1:uint8_t reg
レジスタアドレス
引数2:uint16_t value
書き込む値(16ビット)
戻り値:なし
センサレジスタに32ビットの値を書き込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数1:uint8_t reg
レジスタアドレス
引数2:uint32_t value
書き込む値(32ビット)
戻り値:なし
センサレジスタの8ビットの値を読み込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数:uint8_t reg
レジスタアドレス
戻り値:値(8ビット)
センサレジスタの16ビットの値を読み込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数:uint8_t reg
レジスタアドレス
戻り値:値(16ビット)
センサレジスタの32ビットの値を読み込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数:uint8_t reg
レジスタアドレス
戻り値:値(32ビット)
指定したレジスタを基点に指定したバイト数の範囲のレジスタに、指定した配列から値を書き込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数1:uint8_t reg
基点にするセンサレジスタ
引数2:uint8_t const * src
書き込む配列
引数3:uint8_t count
バイト数
戻り値:なし
指定したレジスタを基点に指定したバイト数の範囲のレジスタの値を、指定した配列に読み込む関数です。レジスタアドレスはVL53L0X.hのregAddr列挙型によって定義されます。
引数1:uint8_t reg
基点にするセンサレジスタ
引数2:uint8_t * dst
読み込む配列
引数3:uint8_t count
バイト数
戻り値:なし
戻り信号のレート制限を1秒当たりのメガカウント(MCPS)で指定した値に設定する関数です。
引数:float limit_Mcps
指定する値(MCPS)
戻り値:true(値が有効)、false(値が無効)
現在の戻り信号のレート制限(MCPS)を取得する関数です。
引数:なし
戻り値:レート制限(MCPS)
測定タイミングバジェット(μs)を指定する関数です。測定タイミングバジェットは1回の距離測定に許容される時間です。最小値は20msです。
引数:uint32_t budget_us
指定する測定タイミングバジェット(μs)
戻り値:true(値が有効)、false(値が無効)
測定タイミングバジェット(μs)を取得する関数です。
引数:なし
戻り値:測定タイミングバジェット(μs)
指定した周期タイプの垂直共振器面発光レーザー(VCSEL)のパルス周期(PCLK)を指定する関数です。周期タイプはVL53L0X.hのvcselPeriodType列挙型によって定義されます。
引数1:vcselPeriodType type
周期タイプ
引数2:uint8_t period_pclks
指定する周期
指定した周期タイプの垂直共振器面発光レーザー(VCSEL)のパルス周期(PCLK)を取得する関数です。周期タイプはVL53L0X.hのvcselPeriodType列挙型によって定義されます。
引数:vcselPeriodType type
周期タイプ
戻り値:パルス周期(PCLK)
連続距離測定を開始する関数です。引数:period_msが0の場合、連続バックツーバックモード(センサができる限り高レートで測定を行う)が使用されます。0以外の場合、連続測定モード(測定間隔を指定した時間(ms)にして測定を行う)が使用されます。
引数:uint32_t period_ms
測定間隔(ms)
戻り値:なし
連続距離測定を停止する関数です。
引数:なし
戻り値:なし
連続距離測定時の測定値(mm)を取得する関数です。
引数:なし
戻り値:測定値(mm)
単発距離測定を実行し、測定値(mm)を取得する関数です。
引数:なし
戻り値:測定値(mm)
タイムアウト期間(ms)を設定する関数です。タイムアウト期間は、センサが準備できていない場合に読み取り操作が中止されるまでの期間です。0を設定すると、タイムアウトを無効にします。
引数:uint16_t timeout
タイムアウト期間(ms)
戻り値:なし
タイムアウト期間(ms)を取得する関数です。
引数:なし
戻り値:タイムアウト期間(ms)
前回のtimeoutOccurred関数が呼び出された後に、タイムアウトが発生したか取得する関数です。
引数:なし
戻り値:true(タイムアウトが発生)、false(タイムアウトが発生していない)
距離センサモジュールの製造元 ST micro が提供しているライブラリもあります。PololuのToF用ライブラリは、よりコンパクトに設計されていて、Flashの使用量が小さいのが大きな特徴です。
一部の機能は制限されますが、ST microのデータシートに記載されている膨大な全ての機能が必要なことはなかなか無いので、Arduinoで開発するならPololuライブラリがおすすめです。