Датчик приближения и освещённости VL6180 (Troyka-модуль)

Используйте датчик приближения (Troyka-модуль) для определения точного расстояния до объектов — вне зависимости от их физических свойств и условий внешнего освещения.

Видеообзор

Подключение и настройка

Датчик приближения общается с управляющей платой по протоколу I²C/TWI. Для удобства работы с модулем используйте Troyka Shield. Или вовсе избавьтесь от проводов с Troyka Slot Shield.

Пример работы

В качестве примера выведем в Serial порт расстояние до препятствия и освещённость. Для работы ниже приведённого скетча скачайте и установите библиотеку для Arduino.

proximity.ino
// библиотека для работы I²C
#include <Wire.h>
// библиотеку для модуля VL6180X
#include <SparkFun_VL6180X.h>
// адрес датчика приближения по умолчанию
#define VL6180X_ADDRESS 0x29
// создаём объект для работы с модулем
VL6180x sensor(VL6180X_ADDRESS);
 
void setup()
{
  // открываем монитор Serial-порта
  Serial.begin(9600);
  // инициализация I2C
  Wire.begin();
  // небольшая задержка
  delay(100);
 
  // проверяем инициализацию модуля
  while (sensor.VL6180xInit()) {
    Serial.println("Failed to initalize");
    delay(1000);
  }
  // загружаем настройки модуля по умолочнию
  sensor.VL6180xDefautSettings();
  // ждём 1 секунду
  delay(1000);
}
 
void loop()
{
  // получаем и выводим значения расстояния до объекта
  // и уровень внешнего освещения
  Serial.print("Light = ");
  Serial.print(sensor.getAmbientLight(GAIN_1));
  Serial.print(" Lx\t\t");
  Serial.print("Distance = ");
  Serial.print(sensor.getDistance() );
  Serial.println(" mm");
  delay(100);
}

Элементы платы

Датчик приближения VL6180X

Датчик VL6180X представляет из себя датчик приближения и освещения, реализованный в миниатюрном корпусе LGA12 размерами 4,8×2,8×1,0 мм.

Сенсор VL6180X включает в себя лазерный излучатель (IR Emitter), SPAD-приёмник (Range sensor) и датчик освещенности (Ambient Light Sensor), ОЗУ и ПЗУ, микроконтроллер.

Принцип работы

Лазерный диод создает мощные наносекундные импульсы в ближнем инфракрасном диапазоне, которые отражаются от препятствия и возвращаются на SPAD-приёмник. Зная время, между отправкой и получением отражённого сигнала, получаем расстояние до объекта. В модуль также входит датчик освещенности, данные которого используются для корректировки результатов измерений. Все операции производит внутренний процессор, а обработанные данные измерений доступны по I²C-интерфейсу.

VL6180X способен определять расстояние до объектов в диапазоне 0–100 мм с миллиметровой точностью вне зависимости от характеристик объекта, а также измерять освещенность в широком динамическом диапазоне.

Troyka контакты

Контакты питания:

  • земля (G) — соедините с землёй микроконтроллера;
  • питание (V) — соедините с питанием микроконтроллера;
  • прерывание (Q) — пин прерывания. Датчик приближения способен генерировать прерывания при возникновения событий во время исполнения программы. Подключите к одному из пинов микроконтроллера, поддерживающих прерывания. Если вы не используете прерывания в вашей программе, подключать не обязательно.

Контакты шины I²C:

  • сигнальный (D) — подключите к SDA пину микроконтроллера;
  • сигнальный (С) — подключите к SCL пину микроконтроллера;
  • не используется.

Обвязка для согласования уровней напряжения

Необходима для сопряжения устройств с разными питающими напряжениями. В нашем случае это управляющее устройство Arduino с 5 вольтовой логикой и датчик приближения VL6180X с 3,3 вольтовой логикой.

Принципиальная и монтажная схемы

Характеристики

  • Напряжение питания: 3,3–5 В
  • Потребляемый ток: до 300 мкА
  • Выходной интерфейс: I²C (адрес: 0x29)
  • Три модуля в одном корпусе:
    • IR Emitter — излучатель;
    • Range Sensor — датчик приближения
    • Ambient Light Sensor — сенсор освещенности
  • Диапазон измеряемых расстояний: 0–100 мм
  • Диапазон измерения освещённости: 0,08–100000 лк
  • Температурный диапазон: −40…+85 °C
  • Габариты: 25,4×25,4 мм

Ресурсы