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の位置に、センサを手で保持したときの結果です。

前へ

SpresenseでLチカから始める (18) Wireライブラリ 温度S-5851A

次へ

SpresenseでLチカから始める (20) Wireライブラリ 距離RFD77402