Использование лазерного дальномера VL53L0X с Arduino

Использование лазерного дальномера VL53L0X с Arduino

В этом уроке мы рассмотрим, как использовать лазерный дальномер VL53L0X с Arduino. Это устройство позволяет точно измерять расстояния с помощью лазера, что делает его идеальным для различных приложений, таких как робототехника и автоматизация. К концу этого урока у вас будет функциональная настройка, которая может измерять расстояния и отображать их на последовательном мониторе.

VL53L0X 200cm range sensor-blue

Для нашего проекта мы будем использовать библиотеку VL53L0X Adafruit, которая упрощает процесс сопряжения с датчиком. Эта библиотека предоставляет необходимые функции для инициализации датчика, считывания измерений и обработки любых ошибок, которые могут возникнуть. Вы можете обратиться к видео за наглядной инструкцией по настройке (в видео на 02:15).

Объяснение аппаратного обеспечения

Основными компонентами этого проекта являются лазерный дальномер VL53L0X и плата Arduino. VL53L0X представляет собой времяпролетный датчик, который использует лазер для измерения расстояний до 2 метров с высокой точностью. Он работает по протоколу I2C, что обеспечивает простую связь с Arduino.

Плата Arduino служит микроконтроллером, который обрабатывает данные с VL53L0X. Он отправляет команды датчику и получает данные измерений расстояния, которые затем могут быть отображены или использованы в других приложениях. Правильная проводка имеет решающее значение для обеспечения точных показаний датчика.

Детали технического описания

ИзготовительСТМикроэлектроника
Номер для заказаVL53L0X
Рабочее напряжениеОт 2.6 В до 3.5 В
Диапазонот 30 мм до 2000 мм
Точность±3% (тип.)
ИнтерфейсI2C
Диапазон температурот -40 °C до +85 °C
Потребляемый ток<1 мА (в режиме ожидания), 20 мА (в активном режиме)
ПакетВФЛГА-8

  • Убедитесь, что датчик правильно питается (от 2,6 В до 3,5 В).
  • Поддерживайте правильные настройки адреса I2C, чтобы избежать конфликтов.
  • Содержите датчик в чистоте для точного измерения расстояния.
  • При необходимости используйте соответствующие подтягивающие резисторы на линиях I2C.
  • Избегайте попадания прямых солнечных лучей на датчик для получения надежных показаний.

Инструкции по подключению

Arduino Wiring for VL53L0X
Arduino Wiring for VL53L0X

Чтобы подключить датчик VL53L0X к Arduino, подключите контакт VCC датчика к контакту 5 В на Arduino. Контакт GND должен быть подключен к земле (GND) Arduino. Для связи I2C подключите контакт SDA VL53L0X к контакту A4 на Arduino, а контакт SCL — к контакту A5. Если вы используете другую модель Arduino, обратитесь к конкретным назначениям контактов SDA и SCL для этой платы.

Например, на Arduino Mega вы должны подключить SDA к контакту 20, а SCL к контакту 21. Убедитесь, что все соединения безопасны, чтобы избежать проблем со связью. Если датчик не реагирует, перепроверьте проводку и убедитесь, что Arduino правильно питается.

Примеры кода и пошаговое руководство

Ниже приведен фрагмент из функции setup, которая инициализирует датчик VL53L0X:

void setup() {
  Serial.begin(9600);
  while (! Serial) {
    delay(1);
  }
  Serial.println("Robojax Test");
  if (!lox.begin()) {
    Serial.println(F("Failed to boot VL53L0X"));
    while(1);
  }
}

Этот код инициализирует последовательную связь и пытается запустить датчик VL53L0X. Если датчик не загрузится, он выведет сообщение об ошибке и остановит программу.

Далее приведем фрагмент из функции loop, который считывает данные об измерении расстояния:

void loop() {
  VL53L0X_RangingMeasurementData_t measure;
  lox.rangingTest(&measure, false);
  if (measure.RangeStatus != 4) {
    Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
  } else {
    Serial.println(" out of range ");
  }
  delay(100);
}

Этот блок непрерывно считывает данные о расстоянии, измеренные с датчика, и выводит их на последовательный монитор. Если измерение выходит за пределы допустимого диапазона, это указывает на это.

Демонстрация / Чего ожидать

При запуске программы вы должны увидеть измерения расстояния, отображаемые на последовательном мониторе. Показания должны обновляться каждые 100 миллисекунд. Если датчик направлен на объект, он будет отображать расстояние в миллиметрах. Если объект находится вне зоны действия, это также будет указывать на это. Обязательно протестируйте датчик в указанном диапазоне для получения оптимальных результатов (на видео в 10:00).

Временные метки видео

  • 00:00-Знакомство
  • 02:15- Настройка электропроводки
  • 05:30- Объяснение кода
  • 10:00-Демонстрация

Изображения

VL53L0X 200cm range sensor-blue
VL53L0X 200cm range sensor-blue
Arduino Wiring for VL53L0X
Arduino Wiring for VL53L0X
15-Using a VL53L0X laser distance meter in Arduino
Язык: C++
Скопировано!

Ресурсы и ссылки

Файлы📁

Нет доступных файлов.