цифровая электроника
вычислительная техника
встраиваемые системы

 

Дальномер на основе Arduino и ToF-датчика расстояния VL6180

Автор: Mike(admin) от 15-07-2019, 13:15

ToF (Time-of-Flight) или времяпролетная технология – это широко используемый метод измерения расстояния до удаленных объектов с помощью различных датчиков измерения расстояния, таких как ультразвуковой датчик. Измерение времени, измеряемого частицей, волной или объектом для прохождения расстояния через среду, называется временем пролета (ToF). Это измерение может затем использоваться для расчета скорости или длины пути. Его также можно использовать для изучения частиц или свойств среды, таких как состав или скорость потока. Движущийся объект может быть обнаружен прямо или косвенно.


Дальномер на основе Arduino и ToF-датчика расстояния VL6180

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


ToF

Принцип ToF используется для измерения расстояния между датчиком и объектом. Время, затрачиваемое сигналом на обратную связь с датчиком после отражения от объекта, измеряется и используется для расчета расстояния. Различные типы сигналов (носителей), таких как звук, свет, могут быть использованы по принципу ToF. Когда ToF используется для определения дальности, он очень эффективен при излучении света, а не звука. По сравнению с ультразвуком он обеспечивает более быстрое считывание, более высокую точность и больший диапазон, сохраняя при этом свой небольшой вес устройства, небольшой размер и характеристики низкого энергопотребления.


Здесь, в этом проекте, мы будем использовать датчик дальномера VL6180X ToF с Arduino для расчета расстояния между датчиком и объектом. Этот датчик также сообщает значение интенсивности света в люксах.


VL6180 отличается от других датчиков расстояния тем, что использует точные часы, чтобы измерить время, необходимое свету для отражения от любой поверхности. Это дает VL6180 преимущество по сравнению с другими датчиками, поскольку он более точен и невосприимчив к шуму. VL6180 – это набор 3-в-1, который включает в себя ИК-излучатель, датчик внешней освещенности и датчик дальности. Он связывается с управляющим устройством через интерфейс I2C. Он имеет встроенный стабилизатор 2,8 В. Таким образом, даже если мы подключим напряжение выше 2,8 В, оно будет автоматически понижаться, не повреждая плату. Им измеряется диапазон до 25 см. В нем предусмотрены два программируемых вывода GPIO.


VL6180

Здесь также используется ЖК-дисплей Nokia 5110 для отображения уровня освещенности и расстояния. ЖК-дисплей Nokia 5110 работает от напряжения 3,3 В, поэтому его нельзя напрямую подключить к цифровым контактам Arduino. Поэтому добавьте последовательно резисторы 10 кОм, чтобы защитить линии 3,3 В от цифровых выводов 5 В.


Nokia 5110

Датчик VL6180 может быть напрямую подключен к Arduino. Связь между VL6180 и Arduino осуществляется с помощью интерфейса I2C. На самом деле протокол связи I2C сочетает в себе лучшие функции SPI и UART. Здесь мы можем подключить несколько ведомых устройств к одному ведущему устройству, и у нас может быть несколько ведущих устройств, управляющих одним или несколькими подчиненными устройствами. Как и связь UART, I2C использует два провода для связи SDA (последовательные данные) и SCL (последовательная синхронизация). Принципиальная схема подключения датчика дальномера VL6180 ToF к Arduino приведена ниже.


Дальномер на основе Arduino и ToF-датчика расстояния VL6180

Дальномер на основе Arduino и ToF-датчика расстояния VL6180

Дальномер на основе Arduino и ToF-датчика расстояния VL6180

Три библиотеки будут использоваться для сопряжения датчика VL6180 с Arduino. Adafruit_PCD8544 – это библиотека для монохромных ЖК-дисплеев Nokia 5110. Эти дисплеи используют SPI для связи. Четыре или пять контактов необходимы для сопряжения этого ЖК-дисплея. Ссылка для скачивания этой библиотеки: https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip.


Библиотека Adafruit_GFX для Arduino – это основная графическая библиотека для ЖК-дисплеев, предоставляющая общий синтаксис и набор графических примитивов (точек, линий, окружностей и т. д.). Он должен быть связан с аппаратно-зависимой библиотекой для каждого устройства отображения, которое мы используем (для обработки функций более низкого уровня). Ссылка для скачивания этой библиотеки: https://github.com/adafruit/Adafruit-GFX-Library.


SparkFun_VL6180 – это библиотека Arduino с основными функциями датчика VL6180. VL6180 состоит из ИК-излучателя, датчика дальности и датчика внешней освещенности, которые обмениваются данными через интерфейс I2C. Эта библиотека позволяет считывать расстояние и световые сигналы от датчика и выводить данные через последовательное соединение. Ссылка для скачивания этой библиотеки: http://downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip.


Код программы приведен далее:



#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <Wire.h>
#include <SparkFun_VL6180X.h>
#define VL6180X_ADDRESS 0x29
VL6180x sensor(VL6180X_ADDRESS);
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);
float b;
void setup()
{
  Serial.begin(115200); 
  Wire.begin(); 
  delay(100); 
  if (sensor.VL6180xInit() != 0) {
    Serial.println("FAILED TO INITALIZE"); 
  };
  sensor.VL6180xDefautSettings(); 
  delay(1000); 
 display.begin();
  display.setContrast(50);
 display.display(); 
 display.clearDisplay();
}
void loop()
{
  display.clearDisplay();
  Serial.print("Ambient Light Level (Lux) = ");
  Serial.println(sensor.getAmbientLight(GAIN_1));
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0,0 );
  display.println("Light Level");
  display.setCursor(0,12);
  display.println(sensor.getAmbientLight(GAIN_1));
Serial.print("Distance measured (mm) = ");
  Serial.println(sensor.getDistance());
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0, 24);
  display.println("Distance(mm)=");
  display.setCursor(0, 36);
  b = sensor.getDistance();
  display.println(b);
  display.display();
  delay(500);
}

После загрузки программы, откройте последовательный монитор, и он должен показать вывод, как показано ниже.


Дальномер на основе Arduino и ToF-датчика расстояния VL6180

Измерители дальности ToF VL6180 используются в смартфонах, портативных устройствах с сенсорным экраном, планшетах, ноутбуках, игровых устройствах и бытовых приборах и промышленных устройствах.




© digitrode.ru


Теги: Arduino, ToF



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий