Header banner
Revain logoHome Page
Brian Vasquez photo
1 Уровень
874 Отзыва
47 Карма

Отзыв о 📏 Сенсор определения расстояния "Adafruit VL6180X Time of Flight" (PID 3316) - высокоточное обнаружение объектов от Brian Vasquez

Revainrating 4 out of 5

Хорошая реализация удобного датчика расстояния

Датчик расстояния основан на VL6180X. На базе VL6180X будет построена серия датчиков, отличающихся только дополнительным оборудованием. Это в основном хорошо разработанная и простая в использовании версия. Adafruit добавляет несколько приятных штрихов, облегчающих использование. Это включает в себя регулятор напряжения 2,8 В - VL6180X имеет максимальный диапазон рабочего напряжения от 2,6 В до 3,0 В, а это означает, что вам понадобится отдельный регулятор напряжения почти для всех микроконтроллеров для его работы. Если он у вас есть на плате, вам не нужно беспокоиться о том, что устройство сгорит, подключив его к неправильному напряжению. Adafruit также добавляет преобразователи напряжения ко всем контактам ввода-вывода устройства, поэтому вам не нужно беспокоиться о том, какое напряжение вы подаете на эти контакты. Единственная плохая часть конструкции Adafruit заключается в том, что они добавляют подтягивающие резисторы. к линиям SDA и SCL шины I2C. VL6180X разработан таким образом, что вы можете запускать несколько устройств на одной и той же шине I2C — адрес I2C для каждого VL6180X можно изменить, записав новый адрес в регистр устройства. К сожалению, все, что вы можете сделать, это установить набор подтягивающих резисторов на шину I2C, прежде чем вы столкнетесь с проблемами, потребляющими достаточный ток для надежной работы шины. Если вы хотите использовать более одного из них на одной шине, вы должны удалить подтягивающие резисторы SDA и SCL со всех плат, кроме одной. Описания заслуживают два вывода — SHDN и GPIO. Вывод SHDN (на самом деле GPIO0) используется для сброса или выключения устройства — устройство не загрузится, пока этот вывод не станет высоким. Adafruit добавляет подтяжку, поэтому вы можете игнорировать этот вывод, если хотите. Основное преимущество заключается в том, что если вам нужно обновить адрес I2C при использовании нескольких плат, вы можете включить их по отдельности для обновления адреса I2C перед загрузкой следующего устройства. Контакт GPIO (фактически GPIO1) является выходом прерывания. Вы должны изменить библиотеку, если хотите использовать прерывания, или можете оставить ее неподключенной. Функция этих двух контактов настраивается путем записи в соответствующие регистры. В Adafruit есть библиотека для управления этими устройствами. Он достаточно хорош для тестирования устройств, но имеет много ограничений и плохо написан. VL6180X имеет множество регистров, которые можно использовать для настройки его работы, но библиотека не предоставляет доступ к этим регистрам. Функция readLux переопределяет время интегрирования, когда вы его устанавливаете. Код инициализации не определяет полностью согласованное состояние (в спецификации сказано, что ECE должен быть отключен, если SYSRANGE_EARLY_CONVERGENCE_ESTIMATE не установлен, но библиотека не делает ни того, ни другого). Несмотря на проблемы, библиотеки достаточно для тестирования и работы устройства. Если вам нужен больший контроль над операциями, вы потратите больше времени на чтение спецификаций, чтобы изучить регистры, чем на смену программного обеспечения, так что в этом нет ничего страшного. Возьмите диапазон от 5 мм до 200 мм с несколькими зернами. Соль. Мое устройство имело минимальное показание диапазона около 15 мм и максимальное расстояние около 188 мм (выше 188 мм оно возвращает необработанную ошибку переполнения диапазона). В нижней части шкалы (фактическое расстояние менее 20 мм) есть проблемы с линейностью, но в остальном диапазоне линейность кажется приемлемой. Шум считывания составляет порядка 2 мм (одна сигма), хотя я не измерял его напрямую. Кажется, между последовательными значениями есть некоторая корреляция — шум не уменьшался так быстро, как ожидалось, когда несколько значений усреднялись. FOV для ИК-лазера, используемого для датчика расстояния, составляет 25 градусов (+/- 12,5). Это означает, что размер пятна (площадь, на которой датчик измеряет расстояние) примерно в 0,4 раза больше расстояния от датчика. На расстоянии 50 мм он возвращает показания из точки в пределах 20 мм от точки на объекте. Хорошо для детектора приближения, но не так хорошо, когда пытаешься найти край объекта. В целом, VL6180X — это простой в использовании датчик расстояния. Версия Adafruit добавляет некоторые функции (питание 2,8 В, смещение уровня на контактах ввода-вывода), которые приятны и могут сделать ее лучшим выбором, чем другие доступные версии этого датчика.

Плюсы
  • Бесплатно для образовательных целей
Минусы
  • Пустой