SpresenseでLチカから始める (19) Wireライブラリ 距離VL53L0X
最近の距離を測るセンサは、LEDやレーザーによる赤外線を被写体に当て、反射光が戻っている時間を測定して距離を求めるTOF(time-of-flight)方式が増えています。STMicroelectronicsのVL53L0Xは、最大約2mまでを計測できます。
現在はいろいろなところからボードが販売されていますが、Pololuの製品をスイッチサイエンスから入手しました。ボード上にはレギュレータとI/Oに電圧レベル変換が入っているので、3.3もしくは5Vのどちらでも利用できます。Arduino UNOの記事、ラズパイの記事もあります。
●VL53L0Xのおもな特徴
- 直接ビーム内をルーペで見ても問題の起こらないclass1のレーザー(940nm)
- 動作電圧 2.6~3.5 V
- 電流 19mA、スタンバイ時5uA
- インターフェース I2C(0~400kHz)
- スレーブ・アドレス 0x52
- 測定距離 白色室内;200cm、室外;80cm、灰色室内;80cm、室外50cm
- 確度 白色室内120cm時;4%、室外60cm時;7%、灰色室内70cm時;7%、室外40cm時12%。いずれも10cm以上
●接続
3.3Vもしくは5Vの電源はVinにつなぎます。負論理のシャットダウン信号のXSHUTは基板内でプルアップされているので、何もつなぎません。GPIO1は新しい測定ができることを知らせる割り込み端子です。プルアップされているので、何もつながないままにします。このデバイスを複数個利用するときに使う事例がアプリケーション・ノートに書かれています。
●スケッチ
このデバイスは、非公開を含み設定すべきレジスタがとてもたくさんあります。STMicroelectronicsはドキュメントとライブラリを公開していますが、Arduino用のライブラリを利用します。
Arduino IDEは1.8.7を使っています。メイン・メニューのツールからライブラリ管理を選択します。
検索の欄に「VL53L0X」を入れ、Pololuのライブラリを選択してインストールします。画面はインストール済みの状態です。
サンプル・スケッチ例からSingleを選択します。
そのまま実行します。巻き尺で点灯していないLCDディスプレイから40cmの位置に、センサを手で保持したときの結果です。