Пример подключения датчика VL53L0X к Raspberry Pi

Пример подключения датчика VL53L0X к Raspberry Pi

Ранее был опубликован материал про VL53L0X, где мы подключали этот датчик к Ардуино. Теперь настала очередь подсоединить VL53L0X к Raspberry Pi.

О VL53L0X

В данной статье будет продемонстрировано подключение лазерного дальномера VL53L0X к плате Raspberry Pi. VL53L0X представляет собой лазерный дальномер нового поколения, работающий по принципу Time-of-Flight (ToF) и выполненный в самом компактном на сегодня корпусе. Датчик обеспечивает точное определение расстояния вне зависимости от отражающей способности объекта, чем выгодно отличается от традиционных технологий.

Он способен определять абсолютное расстояние до 2 метров, задавая новый стандарт в данном классе производительности и открывая возможности для множества новых применений.

VL53L0X содержит передовую матрицу SPAD (однофотонных лавинных диодов) и использует запатентованную технологию ST второго поколения FlightSenseTM. Типичный модуль имеет следующий вид:

Датчик VL53L0X от Adafruit (слева) и Pololu (справа)

Датчик VL53L0X от Adafruit (слева) и Pololu (справа)

VCSEL-излучатель на длине волны 940 нм (лазер с вертикальным резонатором) в модуле VL53L0X абсолютно невидим человеческому глазу. Благодаря встроенным инфракрасным фильтрам обеспечивается увеличенная дальность действия, повышенная устойчивость к внешнему освещению и улучшенная защита от оптических перекрёстных помех через стекло.

Комплектующие

Как обычно, приводим перечень компонентов, необходимых для работы с нашим примером:

  • Raspberry Pi Zero W (беспроводной) (модель 2017 года)

  • VL53L0X (ToF) - лазерный дальномерный

  • Соединительные перемычки

Схема подключения

В нашем примере выбрана модель Pi Zero, но подойдёт любой Raspberry Pi. Выполните подключение в соответствии со схемой ниже.

Схема подключения VL53L0X к Raspberry Pi

Код примера

Библиотека и исходный код для примера размещены в репозитории на GitHub — https://github.com/johnbryanmoore/VL53L0X_rasp_python.

sudo apt-get install build-essential python-dev

Далее выполните следующие команды, чтобы клонировать репозиторий и собрать проект:

cd your_git_directory
git clone https://github.com/johnbryanmoore/VL53L0X_rasp_python.git
cd VL53L0X_rasp_python
make

Замените your_git_directory на нужную вам директорию. После этого используйте код примера из файла VL53L0X_example.py:

#!/usr/bin/python

import time
import VL53L0X

# Создаем VL53L0X объект
tof = VL53L0X.VL53L0X()

# Запуск start_ranging
tof.start_ranging(VL53L0X.VL53L0X_BETTER_ACCURACY_MODE)

timing = tof.get_timing()
if (timing < 20000):
    timing = 20000
print ("Тайминг %d ms" % (timing/1000))

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

    time.sleep(timing/1000000.00)

tof.stop_ranging()

Запустить скрипт можно следующей командой в терминале:

sudo python VL53L0X_example.py

В окне терминала должен появиться примерно такой вывод:

Результат работы VL53L0X в терминале Raspberry Pi

На этом всё. Подробнее о датчике VL53l0X можно прочитать в этом материале.