РадиоЛоцман - Все об электронике

Калибровка инфракрасных аналоговых дальномеров компании Sharp

Sharp GP2Y0A41SK0F GP2Y0A21YK0F GP2Y0A02YK0F

M.П. Басков, О.Д. Левашов
Москва – Брешия (Италия)

Калибровка инфракрасных аналоговых дальномеров компании Sharp

Вступление

В любительском роботостроении широко используются инфракрасные дальномеры компании Sharp, например модели GP2Y0A41SK0F (4 – 30 см), GP2Y0A21YK0F (10 – 80 см), GP2Y0A02YK0F (20 – 150 см).

В работе [1] дано превосходное описание этих дальномеров, а также способ нормализации выходной характеристики при помощи вычислительной функции,

Для улучшения точности измерения во всем заявленном производителем диапазоне нами предлагается использовать табличный метод нормализации выходного сигнала дальномера.

В статье приведена методика калибровки ИК-дальномера SHARP GP2Y0A02YK0F с диапазоном измерения расстояния 20-150 см и результаты тестов. Эту методику калибровки можно применить для всех дальномеров, перечисленных выше.

В приложении приведен листинг программы калибровки на языке JavaScript для микроконтроллеров на платформе Espruino, в частности, Iskra JS [2].

Термины и сокращения

При дальнейшем изложении мы будем употреблять термин «дальномер» вместо выражения «инфракрасный аналоговый дальномер компании Sharp».

Исследования и эксперименты

Пользователи отмечают значительный разброс результатов соседних измерений этих дальномеров. С целью исследования причин этого явления мы провели большой объем испытаний трех дальномеров GP2Y0A02YK0F в широком диапазоне количества измерений в серии в диапазоне от 10 до 100 измерений подряд и времени между измерениями в диапазоне от 0 (измерения делаются в цикле непосредственно друг за другом) до 40 миллисекунд. Кроме этого, мы сделали несколько максимально длинных выборок для понимания распределения результатов в генеральной совокупности. Максимальная длина выборки (2000 измерений) ограничена объемом памяти микроконтроллера Iskra JS. Максимальная выборка показала, что распределение результатов измерения является близким к нормальному. Проверка нормальности проводилось по критерию согласия Пирсона. Типовое распределение в большой выборке представлено на Рисунке 1.

Вид распределения результатов измерений в большой выборке. Первые два столбца - выходное напряжение дальномера в милливольтах, третий столбец - количество измерений попавших в интервал.
Рисунок 1. Вид распределения результатов измерений в большой выборке. Первые два
столбца – выходное напряжение дальномера в милливольтах, третий
столбец – количество измерений попавших в интервал.

Однако при меньшем числе последовательных измерений картина существенно меняется. На Рисунке 2 представлены две последовательные выборки по 59 измерений в каждой.

Соседние выборки. Первые два столбца - выходное напряжение дальномера в милливольтах, третий столбец - количество измерений, попавших в интервал.
Рисунок 2. Соседние выборки. Первые два столбца – выходное напряжение дальномера в
милливольтах, третий столбец – количество измерений, попавших в интервал.

В ходе испытаний мы определили, что среднее значение выборки незначительно варьирует при изменении длины выборки от 20 до 100 измерений. При меньшем значении измерений средняя величина может зависеть от экстремальных значений. Интервал между соседними измерениями не оказывает заметного влияния на среднее значение выборки.

Также нами исследована зависимость погрешности измерения от угла между оптической осью дальномера и плоскостью препятствия. На Рисунке 3 представлен коллаж из скриншота показаний дальномера и расстояний, измеренных механической рулеткой.

Зависимость показаний от угла между оптической осью дальномера и плоскостью препятствия.
Рисунок 3. Зависимость показаний от угла между оптической осью дальномера
и плоскостью препятствия.

Из Рисунка 3 следует, что дальномеры позволяют достаточно точно определить расстояние до препятствия, если угол между оптической осью дальномера и плоскостью препятствия составляет 30 градусов и менее. Увеличение погрешности при дальнейшем увеличении угла, на наш взгляд, объясняется тем, что световое пятно, формируемое излучателем дальномера на препятствии, вырождается из окружности в эллипс, и приемник реагирует на его ближний край.

Обобщая результаты наших исследований, можно сделать следующие выводы:

  1. Измерение расстояния нужно производить сериями по 20 – 50 измерений в каждой.
     
  2. Временной интервал между отдельными измерениями в серии не влияет на их точность и повторяемость.
     
  3. Точность измерений остается неизменной, если угол между оптической осью дальномера и плоскостью препятствия составляет 30 градусов и менее.
     
  4. Если дальномер установлен на вращающейся платформе, то после каждой смены положения необходима пауза перед измерением для успокоения механических колебаний сервопривода длительностью не менее 250 миллисекунд.
     
  5. Наилучшая достоверность и повторяемость результатов измерения достигается для первых 80 процентов шкалы, где типичная точность измерений не хуже 2%. В диапазоне от 80% до 100% шкалы точность снижается, однако и в этом случае типовое значение погрешностей измерения не хуже 3%.

Калибровка дальномера

Суть калибровки заключается в следующем. В процессе калибровки препятствие смещается на фиксированное расстояние от дальномера в диапазоне 20 – 150 см. На каждой итерации делается серия измерений, и усредненный результат записывается в таблицу. В дальнейшем таблица в виде массива используется для нормализации результатов измерений расстояния.

Поскольку таблица содержит набор фиксированных значений, для получения промежуточных результатов используется интерполяция.

Если дальномер установлен на вращающемся основании, это основание надо зафиксировать так, чтобы оптическая ось дальномера являлась продолжением продольной оси платформы робота. Сам робот должен быть зафиксирован во избежание случайного смещения.

Калибровку лучше производить на стенде, где препятствие пошагово удаляется от робота с установленным дальномером. Угол между продольной осью платформы робота и плоскостью препятствия должен составлять 90 градусов. Размер препятствия определяется «углом зрения» используемых дальномеров. Точного значения в даташитах не приводится. Измеренный нами угол в горизонтальной плоскости составляет около 16 градусов, из чего следует, что размер препятствия для точной калибровки на дистанции 150 см должен быть не менее 50 × 50 см. Стенд должен иметь шкалу с шагом в 10 см. Если дальномер расположен достаточно высоко над шкалой, то на нижнюю часть робота надо нанести метку, совпадающую с вертикальной осью линзы приемника дальномера. Несоблюдение перечисленных выше требований не позволит откалибровать дальномер с высокой точностью.

Цвет поверхности препятствия не имеет особого значения. Нами использовался коричневый упаковочный картон. Установка в качестве препятствия белого картона не оказала влияния на результаты измерений, или они были так малы, что маскировались случайными отклонениями результатов измерений.

Для исключения помех вход по питанию дальномера следует шунтировать конденсатором 1000 – 3300 микрофарад, припаянным в непосредственной близости от разъема дальномера. Провод, ведущий с выхода дальномера к соответствующему входу микроконтроллера, желательно экранировать. Эти меры обязательны, если впоследствии вы будете выполнять измерения при работающих коллекторных двигателях, например во время движения. Питать дальномер нужно от стабилизированного источника питания +5 В.

Программа калибровки написана на базовом JavaScript и может быть легко портирована на другие языки программирования микроконтроллеров, дополнена и улучшена знатоками. В нашем случае программа исполняется на микроконтроллере Iskra JS в среде программирования и отладки Espruino IDE (Native) для Windows или Espruino Web IDE.

В приложении представлен листинг программы калибровки – “calibr.js”. Перед запуском программы нужно внести изменение в константы: выбрать количество измерений в серии, число ступеней преобразования АЦП, а также начальную и конечную дистанцию.

Для начала калибровки, поместите препятствие на отметку 20 см и вызовите измерение расстояния командой start(20) в консоли. Затем переместите препятствие на отметку 30 см, введите команду start(30) и так далее.

Если вы случайно ошибетесь и, переместив препятствие, введете команду start c предыдущим значением, то ничего страшного, – не нужно начинать процесс калибровки заново. Просто переместите препятствие на предыдущую отметку и повторите измерение, затем продолжайте калибровку.

На последнем шаге установите препятствие на отметке 150 см и введите команду start(150), после чего программа сообщит о завершении цикла калибровки и выведет на экран таблицу коррекции в форме массива, например такого, как показан на Рисунке 4. Этот массив нужно скопировать в буфер обмена и сохранить в текстовой форме для дальнейшей вставки в программу измерения расстояния.

Результат программы калибровки:
Рисунок 4. Результат программы калибровки:
1 столбец – расстояние до препятствия в сантиметрах,
2 столбец – максимальное значение выходного напряжения дальномера
в мВ для данного интервала,
3 столбец – минимальное значение выходного напряжения дальномера
в мВ для данного интервала,
4 столбец – коэффициент коррекции К для начала интервала,
​5 столбец – коэффициент коррекции К для конца интервала.

Программа измерения расстояния с использованием калибровочной таблицы называется “locator.js”. Программа имеет блок констант, где вы можете ввести количество измерений в серии, которое должно быть равно количеству измерений при калибровке.

В специально помеченный блок нужно вставить массив, полученный в результате работы программы калибровки. Функция измерения расстояния до препятствия вызывается командой locator() из консоли.

Заключение

В статье рассмотрены результаты тестирования инфракрасных аналоговых дальномеров фирмы SHARP и даны практические рекомендации по их калибровке.

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

Источники

  1. ИК-дальномеры SHARP

Материалы по теме

  1. Datasheet Iskra JS
  2. Datasheet Sharp GP2Y0A41SK0F
  3. Datasheet Sharp GP2Y0A21YK0F
  4. Datasheet Sharp GP2Y0A02YK0F

Загрузки

  1. Программы на языке JаvaScript для микроконтроллера Iskra JS

JLCPCP: 2USD 2Layer 5PCBs, 5USD 4Layer 5PCBs

GP2Y0A41SK0F Купить ЦенаКупить GP2Y0A41SK0F на РадиоЛоцман.Цены — от 14,14 до 734
26 предложений от 13 поставщиков
Датчик: оптоэлектронный; Дальность:40÷300мм; аналоговый; 22мА
Триема
Россия
GP2Y0A41SK0F
Sharp
14 ₽
AliExpress
Весь мир
GP2Y0A02YK0F GP2Y0A41SK0F GP2Y0A21YK0F Инфракрасный датчик приближения ик аналоговый датчик расстояния инфракрасный датчик расстояния
207 ₽
Элитан
Россия
GP2Y0A41SK0F
Sharp
293 ₽
Варта
Россия
GP2Y0A41SK0F
Sharp
по запросу
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя