Датчик приближения и освещённости 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 мм