M5Stackのコンテストに今年も挑戦しようと今日からいろいろ試し始めた(あと3日しかないのに)。距離を測るセンサーの一種、ToFセンサーを使う。
調べる最中にGeminiにいろいろ出してもらったのでメモしておく。以下、Geminiが書いてくれたもの。
概要
Arduinoの Adafruit_VL53L0X ライブラリで利用できる主なプリセット設定パラメータ(動作プロファイル)は、configSensor() 関数や begin() 引数で指定する VL53L0X_Sense_config_t 列挙型に定義されています。 [1, 2]
センサー設定パラメータ(プロファイル)一覧
VL53L0X_SENSE_DEFAULT(値:0)- 標準的なバランス型設定。 [1, 3]
VL53L0X_SENSE_LONG_RANGE(値:1)- 長距離測定モード。最大2mまでの測定に対応しやすくします。 [1, 3, 4, 5, 6]
VL53L0X_SENSE_HIGH_SPEED(値:2)- 高速測定モード。測定時間を短縮してサンプルレートを上げます。 [1, 3, 6]
VL53L0X_SENSE_HIGH_ACCURACY(値:3)- 高精度測定モード。精度を重視するため測定時間が長くなります。 [1, 3, 7]
パラメータの適用方法
コード内で以下のように呼び出して切り替えます。 [2, 7]
lox.configSensor(Adafruit_VL53L0X::VL53L0X_SENSE_HIGH_ACCURACY);
また、初期化時(begin)に直接渡すことも可能です。 [8, 9]
lox.begin(0x29, false, &Wire, Adafruit_VL53L0X::VL53L0X_SENSE_LONG_RANGE);
もし特定のパラメータ(計測タイミング予算やI2Cアドレスの変更など)について詳しく知りたい場合は、お気軽にお知らせください。
[1] https://adafruit.github.io
[2] https://forums.adafruit.com
[5] https://www.wasilzafar.com
[7] https://gitlab.kh-berlin.de
Adafruit_VL53L0Xライブラリが用意している主要なプロファイル(初期設定)の仕様一覧です。用途に合わせて大雑把な目安としてご確認ください。
動作プロファイル仕様一覧表
| プロファイル名 | 最大測定距離の目安 | 1回の測定時間 (タイミング予算) | 主な特徴・用途 |
|---|---|---|---|
VL53L0X_SENSE_DEFAULT | 約 1.2 m | 30 ms | 標準設定。速度と精度のバランス型。 |
VL53L0X_SENSE_HIGH_SPEED | 約 1.2 m | 20 ms | 最速モード。動く物体の検知やラジコン等に。 |
VL53L0X_SENSE_HIGH_ACCURACY | 約 1.2 m | 200 ms | 高精度モード。静止した対象をじっくり測る用途に。 |
VL53L0X_SENSE_LONG_RANGE | 約 2.0 m | 33 ms | 長距離モード。遠くを測る(今回は不要)。 |
※測定距離は、周囲の明るさ(太陽光の下など)や対象物の反射率によって短くなることがあります。
補足:さらに細かく調整したい場合
もし上記のプリセットで満足できない場合は、関数を使って手動で数値をピンポイント変更できます。
- 測定時間(タイミング予算)をミリ秒単位で直接指定する
// 例:1回の測定に100msかける(デフォルトは30ms) lox.setMeasurementTimingBudgetMicroSeconds(100000); - 一回だけ測るか、裏でずっと測り続けるか選ぶ
lox.startMeasurement(); // 連続測定を開始(バックグラウンドで常に更新) lox.stopMeasurement(); // 連続測定を停止
次は実際の測定コードの書き方に進みますか?それとも測定エラー(20kHzなどの異常値)の対策について確認しますか?

コメント