ラズベリーパイで距離を測る!
ラズベリーパイ4とVL53L0X距離センサーモジュールを利用し距離を測定します。
利用したハードウェア
ラズベリーパイ4を利用しましたが、マシンパワーを必要としないためPi2や3でも差はほとんどありません。
- 940nm 赤外線レーザーを用いたセンサー
- 光が反射して戻ってくるまでの時間で距離を計算する
- 最大2 mまでの計測が可能
今回利用したモジュールは、データシート上3.3vまでとなっていましたが裏面をよく見てみるとDCDCレギューレーターっぽいものがくっついているので大丈夫な気がします・・しかし壊れると嫌なので試していません。
測定方法
ラズベリーパイから距離を測定するにはおもに2つ方法があります。
今回利用するVL53L0Xモジュールは光学式センサーになります。
配線
それでは配線していきます。ゲタを利用していますが、ラズベリーパイから直接繋いでも問題ありません。
以下の通りケーブルを接続します。
このような感じで接続しています。
i2cを有効化する
ラズベリーパイの設定変更でおなじみの、raspi-configコマンドを実行します。
sudo raspi-config
起動すると以下のような画面が表示されます。
↑ ↓キーで5 Interfacing Optionsを選択し、TABで下の<select>へ移動し、Enterを押します。
次の画面ではI2Cを有効化するため、↑ ↓キーキーでP5 I2Cを選択し、前のステップと同様にTABキーで下の<select>へ移動し、Enterを押します
以下の画面が表示されるので、→ ←キーで<Yes>を選択しEnterを押します。
"The ARM I2C interface is enabled"の表示が出れば、I2Cを有効にする設定が完了です。
<Ok>でEnterを押すと、最初の画面に戻りますので、<Finish>へTABキーを使って移動し、Enterを押します。
I2Cの設定はおこなったものの、その設定の反映には再起動が必要になりますので、<Yes>を選択し再起動します。
ソフトウェアを用意する
今回はなんとなくC++でやってみることにしました。他にもPythonのライブラリもあるようです。
まずはソースコードをダウンロードします
git clone https://github.com/kotamorishi/vl53l0x-linux
もし、”git : command not found” のように表示される場合は、gitのインストールが必要になりますので、以下のコマンドでインストールを行ってから、再度実行してみてください。
sudo apt-get install git
以下の通り順番にコマンドを実行し、ビルドします。
cd vl53l0x-linux
cd build
cmake ..
make
実行してみる
cd examples
./single
手をかざすとmm単位で距離が測定されていますね!!!
この記事は Raspberry Pi4 Model B メモリ2GB/Raspbian Buster with desktop Release date:2019-07-10 Kernel version:4.19 と CJVL53L0XV2 で動作確認を行いました。ハードウェアやソフトウェアのバージョンにより結果が異なる場合があります。References
- Library for interfacing with VL53L0X time-of-flight distance sensor under Linux https://github.com/mjbogusz/vl53l0x-linux
- vl53l0x data sheet https://www.st.com/resource/en/datasheet/vl53l0x.pdf