Перейти к содержанию
Материалы раздела

VL53L1X

Модуль для работы с лазерным датчиком расстояния VL53L1X (Time-of-Flight).

vl53l1x.init(i2c, scl, sda [, range [, freq]])

Инициализация датчика VL53L1X.

Аргументы:

  • i2c: номер I2C порта (0 или 1)
  • scl: номер GPIO пина SCL
  • sda: номер GPIO пина SDA
  • range (опционально): режим измерения дальности. По умолчанию vl53l1x.LONG
    • vl53l1x.SHORT - до 136 см в темноте
    • vl53l1x.MEDIUM - до 290 см в темноте
    • vl53l1x.LONG - до 360 см в темноте
  • freq (опционально): частота I2C шины в Гц. По умолчанию 400000

Возвращает: код ошибки (0 - успех)

-- Инициализация датчика на I2C0, SCL=GPIO22, SDA=GPIO21
res = vl53l1x.init(0, 22, 21)
if res == 0 then
    print("VL53L1X initialized")
else
    print("VL53L1X init error: " .. res)
end
-- Инициализация с коротким режимом измерения
res = vl53l1x.init(0, 22, 21, vl53l1x.SHORT)

vl53l1x.get([qty])

Получить расстояние до объекта.

Аргументы:

  • qty (опционально): количество измерений для усреднения. По умолчанию 1

Возвращает: расстояние в сантиметрах (число с плавающей точкой) или -1 при ошибке.

-- Получить одно измерение
dist = vl53l1x.get()
print("Distance: " .. dist .. " cm")
-- Получить усредненное значение за 5 измерений
dist = vl53l1x.get(5)
print("Average distance: " .. dist .. " cm")

Константы

КонстантаОписание
vl53l1x.SHORTКороткий режим: до 136 см в темноте
vl53l1x.MEDIUMСредний режим: до 290 см в темноте
vl53l1x.LONGДальний режим: до 360 см в темноте

Пример использования

-- Инициализация датчика
res = vl53l1x.init(0, 22, 21, vl53l1x.LONG)
if res ~= 0 then
    print("Init error")
    return
end

-- Цикл измерений
while true do
    dist = vl53l1x.get()
    if dist >= 0 then
        print(string.format("Distance: %.1f cm", dist))
    else
        print("Measurement error")
    end
    tmr.delay(1000)
end