Используйте датчик приближения (Troyka-модуль) для определения точного расстояния до объектов — вне зависимости от их физических свойств и условий внешнего освещения.
Датчик приближения общается с управляющей платой по протоколу I²C/TWI. Для удобства работы с модулем используйте Troyka Shield. Или вовсе избавьтесь от проводов с Troyka Slot Shield.
В качестве примера выведем в Serial порт расстояние до препятствия и освещённость. Для работы ниже приведённого скетча скачайте и установите библиотеку для Arduino.
// библиотека для работы 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 представляет из себя датчик приближения и освещения, реализованный в миниатюрном корпусе LGA12 размерами 4,8×2,8×1,0 мм.
Сенсор VL6180X включает в себя лазерный излучатель (IR Emitter), SPAD-приёмник (Range sensor) и датчик освещенности (Ambient Light Sensor), ОЗУ и ПЗУ, микроконтроллер.
Лазерный диод создает мощные наносекундные импульсы в ближнем инфракрасном диапазоне, которые отражаются от препятствия и возвращаются на SPAD-приёмник. Зная время, между отправкой и получением отражённого сигнала, получаем расстояние до объекта. В модуль также входит датчик освещенности, данные которого используются для корректировки результатов измерений. Все операции производит внутренний процессор, а обработанные данные измерений доступны по I²C-интерфейсу.
VL6180X способен определять расстояние до объектов в диапазоне 0–100 мм с миллиметровой точностью вне зависимости от характеристик объекта, а также измерять освещенность в широком динамическом диапазоне.
SDA
пину микроконтроллера;SCL
пину микроконтроллера;
Необходима для сопряжения устройств с разными питающими напряжениями.
В нашем случае это управляющее устройство Arduino с 5 вольтовой логикой и датчик приближения VL6180X
с 3,3 вольтовой логикой.