Вчера я опубликовал материал про VL53L0X в котором мы подключали этот датчик к Ардуино. Сегодня мы подключим датчик VL53L0X к Raspberry Pi.
О VL53L0X
В этом материале я покажу пример подключения лазерного дальномера VL53L0X к плате Raspberry Pi. VL53L0X - это лазерный дальномер нового поколения Time-of-Flight (ToF), размещенный в самом маленьком на сегодняшний день форм-факторе, обеспечивающий точное измерение расстояния независимо от отражательной способности цели в отличие от традиционных технологий.
Он может измерять абсолютные расстояния до 2 метров, устанавливая новый эталон в диапазоне уровней производительности, открывая двери для различных новых приложений.
VL53L0X объединяет передовой массив SPAD (однофотонные лавинные диоды) и включает в себя запатентованную технологию ST второго поколения FlightSenseTM. Типичный модуль выглядит так:
Излучатель VCSEL 940 нм VL53L0X (лазер на поверхности с вертикальной полостью) полностью невидим для человеческого глаза, в сочетании с внутренними физическими инфракрасными фильтрами, он обеспечивает более дальние расстояния, более высокую устойчивость к окружающему свету и лучшую устойчивость для оптических перекрестных помех стекла.
Комплектующие
По традиции привожу список комплектующих для работы с нашим примером:
- Raspberry Pi Zero W (беспроводной) (модель 2017 года)
- VL53L0X (ToF) - лазерный дальномерный
- Соединительные перемычки
Схема подключения
Мы выбрали Pi Zero, но любой 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 можно найти в этом материале.