Обзор
VL53L1X — это современный лазерный датчик измерения расстояния (Time-of-Flight) от STMicroelectronics. В отличие от обычных ИК-датчиков, он измеряет время полета фотонов, что позволяет получать точные данные о расстоянии независимо от цвета или отражающей способности объекта. Датчик способен измерять дистанцию до 4 метров с миллиметровой точностью.
VL53L1X — это самый быстрый миниатюрный ToF-датчик на рынке с диапазоном до 4 метров и частотой измерений до 50 Гц. Он идеально подходит для обнаружения препятствий в робототехнике, управления жестами и систем мониторинга присутствия.
О лазерном датчике VL53L1X
VL53L1X является представителем третьего поколения датчиков FlightSense™ от компании STMicroelectronics. В отличие от предыдущей модели VL53L0X, этот датчик имеет значительно увеличенную дальность (до 4 метров) и возможность настройки поля зрения (FoV).
⚡ Ключевые особенности
- Технология ToF (Time-of-Flight) — точное измерение расстояния не зависит от цвета и материала объекта.
- Регулируемый диапазон — три режима (Short, Medium, Long) для оптимизации точности и скорости.
- Настройка FoV — программное сужение поля зрения для исключения отражений от боковых препятствий.
- Миниатюрный размер — компактный модуль, легко встраиваемый в любые устройства.
🔗 Посмотрите похожий датчик TOF400C для сравнения характеристик.
Приобретите VL53L1X
Характеристики VL53L1X
Основные технические параметры лазерного дальномера.
Распиновка VL53L1X
Распиновка модуля обычно включает 6 выводов. Основные из них — это питание и I2C, а также дополнительные выводы для управления сбросом и прерываниями.
- XSHUT — активный низкий уровень (выключен).
- GPIO1 — прерывание при готовности данных.
- SDA/SCL — нужны подтягивающие резисторы.
| № | Название | Тип | Описание |
|---|---|---|---|
| 1 | VIN | Питание | Питание модуля (2.6В–3.5В). |
| 2 | GND | Земля | Общий провод. |
| 3 | SCL | I2C Clock | Тактовая линия I2C. |
| 4 | SDA | I2C Data | Линия данных I2C. |
| 5 | GPIO1 | Interrupt | Выход прерывания (программируемый). |
| 6 | XSHUT | Control | Выключение датчика (активный 0). |
Подключение VL53L1X к ESP32
Подключите датчик по шине I2C. ESP32 обычно использует контакты GPIO21 (SDA) и GPIO22 (SCL). Убедитесь, что питание подается от 3.3В, так как датчик чувствителен к перенапряжению.
| Вывод VL53L1X | Куда | Вывод ESP32 | Описание |
|---|---|---|---|
| VIN Обяз. | → | 3V3 | Питание строго 3.3В. |
| GND Обяз. | → | GND | Общий минус. |
| SDA Обяз. | → | GPIO21 | Данные I2C. |
| SCL Обяз. | → | GPIO22 | Такты I2C. |
Отладка VL53L1X
Типичные проблемы и способы их решения.
Датчик не виден по I2C
Ошибка инициализации
Показания скачут или всегда 4000 мм
Проблемы с точностью
Программирование VL53L1X
Готовые скетчи и модули для популярных платформ.
Arduino IDE
С использованием библиотеки SparkFun VL53L1X
C++
Arduino IDE
С использованием библиотеки SparkFun VL53L1X
#include <Wire.h>
#include "SparkFun_VL53L1X.h" // Установите библиотеку SparkFun VL53L1X
SFEVL53L1X distanceSensor;
void setup() {
Wire.begin();
Serial.begin(115200);
if (distanceSensor.begin() != 0) { // Инициализация
Serial.println("Ошибка датчика. Проверьте подключение!");
while (1);
}
Serial.println("Датчик VL53L1X готов.");
}
void loop() {
distanceSensor.startRanging(); // Начать измерение
while (!distanceSensor.checkForDataReady()) {
delay(1);
}
int distance = distanceSensor.getDistance(); // Расстояние в мм
distanceSensor.clearInterrupt();
distanceSensor.stopRanging();
Serial.print("Расстояние: ");
Serial.print(distance);
Serial.println(" мм");
delay(100);
}
Этот базовый пример показывает, как получить данные в миллиметрах. Библиотека SparkFun предоставляет простой интерфейс для управления датчиком.
ESPHome
Конфигурация для Home Assistant
YAML
ESPHome
Конфигурация для Home Assistant
i2c:
sda: 21
scl: 22
sensor:
- platform: vl53l1x
name: "Расстояние ToF"
update_interval: 1s
ESP-IDF
Официальный SDK от Espressif
C++
ESP-IDF
Официальный SDK от Espressif
Пример для ESP-IDF требует использования специализированных библиотек или ручной реализации I2C команд согласно datasheet. Рекомендуется использовать компонент vl53l1x из ESP-IDF Component Registry.
PlatformIO
Профессиональная среда разработки
C++
PlatformIO
Профессиональная среда разработки
Добавьте зависимость в platformio.ini:
lib_deps =
sparkfun/SparkFun VL53L1X 4m Laser Distance Sensor@^1.2.12
И используйте код из примера для Arduino.
MicroPython
Python для микроконтроллеров
Python
MicroPython
Python для микроконтроллеров
from machine import I2C, Pin
import vl53l1x # Требуется библиотека vl53l1x.py
i2c = I2C(0, sda=Pin(21), scl=Pin(22))
sensor = vl53l1x.VL53L1X(i2c)
while True:
print("Расстояние: {} мм".format(sensor.read()))
Готовы к созданию крутых проектов?
Теперь у вас есть всё необходимое для работы с VL53L1X. Создавайте точных роботов, бесконтактные кнопки или системы контроля уровня с легкостью!