[ラズパイ] VL53L1Xを使って距離を測定する

投稿者: | 2022-09-11

レーザー測距センサモジュール(ToF)の VL53L1X を使用して距離を測定してみます。

ラズパイへの接続は以下のとおりです。

ラズパイのI2C通信を有効にします。

VL53L1XのI2Cアドレスを確認します。

i2cdetect -y 1

VL53L1XのI2Cアドレスが「0x29」であることが確認できました。

Pythonで処理するため、VL53L1Xのライブラリをインストールします。

pip3 install vl53l1x

1秒ごとに距離を測定するサンプルです。

import VL53L1X
import time

# アドレス設定
I2C_BUS = 1
I2C_ADDRESS = 0x29

# 測定モード
# 1:Short, 2:Medium, 3:Long
RANGE_MODE = 1

def main():
    # 初期設定
    tof = VL53L1X.VL53L1X(i2c_bus=I2C_BUS, i2c_address=I2C_ADDRESS)
    tof.open()

    try:
        while True:
            # 測定開始
            tof.start_ranging(RANGE_MODE)
            # 測定結果を取得
            distance = tof.get_distance()
            #測定終了
            tof.stop_ranging()

            # 測定結果を表示
            print("{0}mm".format(distance))
            # 1秒停止
            time.sleep(1)

    except KeyboardInterrupt:
        print("\nCtrl+C")
    finally:
        print("Exit")

if __name__ == "__main__":
    main()

VL53L1Xの計測範囲は約10cmから約400cm、1mm単位で測定結果を取得することができます。

測定モードが短距離用(1:Short)、中距離用(2:Medium)、長距離用(3:Long)の3種類あり、測定する環境に合わせて変更すると精度が上がるかもしれません。

※測定距離とモードによる精度については確認していません。


参考サイト

ToFセンサーとラズパイ(raspberry pi)で測距。Pythonサンプルコードも紹介。

VL53L1X使用 レーザー測距センサモジュール(ToF)_ センサ一般 秋月電子通商-電子部品・ネット通販