今回はラズパイで測距センサを利用してみたいと思います!!
別な理由で購入していたセンサでしたが、試しにラズパイで使えるかな?と思い試しに使って見た次第ですw
■使用環境
用いたデバイスは下記です。
・ラズパイ4
・測距センサ
測距センサですが、こちらを利用。
ToFレンジファインダセンサブレークアウトボード、電圧レギュレータ付 - VL53L0X 価格:1,323円 |
VL53L0Xを用いた構成は下記となります。
今回はpythonで実装していきたいと思います。
■ラズパイ設定
VL53L0XはI2Cで通信するため、ラズパイにてI2Cを有効にする必要があります。
まず、ラズパイにてこちらを実行します。
sudo raspi-config
下記画面が表示されるため、
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です。
■測距センサ利用
実は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です!!
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()
基本的にやりたいことに合わせてこちらのコードを改変していけばよさげですね。