Elsaの技術日記(徒然なるままに)

主に自分で作ったアプリとかの報告・日記を記載

MENU

ラズパイで測距センサ(VL53L0X)の利用

今回はラズパイで測距センサを利用してみたいと思います!!
別な理由で購入していたセンサでしたが、試しにラズパイで使えるかな?と思い試しに使って見た次第ですw


■使用環境

用いたデバイスは下記です。
・ラズパイ4
・測距センサ


測距センサですが、こちらを利用。

ToFレンジファインダセンサブレークアウトボード、電圧レギュレータ付 - VL53L0X

価格:1,323円
(2020/9/6 16:37時点)
感想(0件)


VL53L0Xを用いた構成は下記となります。
f:id:Elsammit:20200906172530p:plain

今回はpythonで実装していきたいと思います。


■ラズパイ設定

VL53L0XはI2Cで通信するため、ラズパイにてI2Cを有効にする必要があります。
まず、ラズパイにてこちらを実行します。

sudo raspi-config


下記画面が表示されるため、
f:id:Elsammit:20200906165235p:plain

5 Interfacing Options Configure connections to peripherals ⇒ P5 I2C Enable/Disable automatic loading of I2C kernel module
の順番で選択し、"はい"(有効)を選択する。

さらにこちらをインストールしておきます。

sudo apt-get install python-dev and python3-dev
sudo apt-get -y install python-smbus i2c-tools

最後に下記を実行してVL53L0Xとラズパイのい疎通確認を行います。
下記を実行!!

sudo i2cdetect -y 1

下記のようにチャネル番号(今回は0x29)が表示されていればOKです。
f:id:Elsammit:20200906165752p:plain


■測距センサ利用

実はVL53L0X、サンプルソースが公開されておりますw。
こちらを実行しサンプルソースをダウンロード。

git clone https://github.com/johnbryanmoore/VL53L0X_rasp_python.git

VL53L0X_rasp_pythonというフォルダが生成されているかと思いますので、

cd VL53L0X_rasp_python/
make

を実行。

python配下にサンプルソース(VL53L0X_example.py)が格納されているため、

cd python
sudo python3 VL53L0X_example.py

を実行。

こちらのようにログが流れればOKです!!
f:id:Elsammit:20200906171204g:plain


VL53L0X_example.pyのソースコードですが、こちらのようになっており、0.5秒ごとに距離測定結果をログに出力します。
rangeが1~101なので100回分測定したら自動的に終了になります。

for count in range(1,101):
    distance = tof.get_distance()
    if (distance > 0):
        print ("%d mm, %d cm, %d" % (distance, (distance/10), count))

    time.sleep(timing/1000000.00)
    time.sleep(0.5)

tof.stop_ranging()

基本的にやりたいことに合わせてこちらのコードを改変していけばよさげですね。




■最後に

測距センサを用いたおもちゃでも作ってみようかな?
クラウドにセンサ値とかを上げたら面白いこと出来るかな??
ちょっと考えてみたいと思いますw。