Найти в Дзене
Tcukavin13

Подключение лазерного дальномера VL53L1X

VL53L1X – это времяпролётный (ToF) лазерный дальномер, способный измерять расстояния до четырёх метров с частотой измерений 50Гц. Его особенностью является наличие приёмной матрицы SPAD , благодаря которой возможно запрограммировать размер области интереса на приемном массиве, что позволяет уменьшить поле зрения датчика.

Датчик установлен на отладочной плате GY-53-L1X. По умолчанию дальномер подключен к микроконтроллеру, установленному на обратной стороне платы. Микроконтроллер анализирует расстояние, полученное от дальномера, и меняет скважность импульсов на PWM выходе, а также отправляет полученные данные в последовательный порт.

Для того чтобы напрямую взаимодействовать с датчиком по I 2 C , необходимо вывод PS замкнуть на землю, что приведёт к отключению микроконтроллера, установленного на плате, и он больше никак не будет влиять на измерения.

Компания STM выпустила две версии API для работы с данным датчиком: STSW-IMG007 – VL53L1X Full API и STSW-IMG009 – VL53L1X ULD API. Первый пакет предоставляет полный пакет функций для работы с дальномером и, соответственно, занимает больше памяти. Второй пакет – ультралёгкий, работать с ним легко и удобно, содержит в себе всего лишь четыре файла.

Кроме самой библиотеки в проект необходимо добавить фалы vl53l1_platform.c и vl53l1_platform.h в которых необходимо переопределить (реализовать) функции для работы с I2C .

Так как дальномер мы будем подключать к микроконтроллерам компании STM, то код реализации файлов vl53l1_platform возьмём из примеров на сайте. Скачаем и распакуем файл STSW-IMG010 – пример кода для подсчёта людей. Из этого проекта и возьмём саму библиотеку и готовые файлы vl53l1_platform.

Библиотека лежит по пути:

C:\...\en.STSW-IMG010\Drivers\BSP\Components\vl53l1x_uld.

Файлы библиотеки.
Файлы библиотеки.

Файлы сопряжения с контроллером: C:\...\en.STSW-IMG010\Inc и C:\...\en.STSW-IMG010\ Src соответственно.

Создаём проект в STM32CubeMX и включаем I 2 C . Также настраиваем одну ножку на выход для управления XSHUT микросхемы. Добавляем, указанные выше, файлы библиотеки в проект. В файле vl53l1_platform.c заменяем include "stm32xxx_hal.h" на include "stm32f4xx_hal.h" , так как используем контроллер серии F4. Собираем проект.

Библиотека включает в себя обязательные и опциональные функции. К обязательным функциям относятся функции инициализации и получения данных измерения, к дополнительным, например, функции калибровки.

Минимум функций для измерения расстояния:

Объявление переменных:

-5

Сброс, инициализация, запуск измерений:

-6

Получение данных и сброс флага прерывания в датчике:

-7

Документация на датчик.

Минимальный проект измерения расстояния.

Портированный проект подсчёта людей.

Проект подсчёта людей на STM32F746-DISCO с выводом информации на дисплей.