ИК-дальномеры SHARP — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м (Подключение Дальномеров)
(Нормализация нелинейности выхода)
 
(не показаны 24 промежуточные версии 5 участников)
Строка 1: Строка 1:
[[Category:Справочник решений|{{PAGENAME}}]]
+
[[Категория:Справочник решений|{{PAGENAME}}]][[Категория:Датчики]]
 
Статья посвещена ИК дальномерам Sharp. Рассмотрены принципы их работы, особенности использования, плюсы и минусы.
 
Статья посвещена ИК дальномерам Sharp. Рассмотрены принципы их работы, особенности использования, плюсы и минусы.
  
Строка 7: Строка 7:
  
 
== Внешний вид ==
 
== Внешний вид ==
[[Изображение:IR_Family.jpg]]
+
[[Файл:IR_Family.jpg]]
  
 
== Принципы работы ИК дальномеров ==
 
== Принципы работы ИК дальномеров ==
  
[[Изображение:IR_triangle.jpg|frame|Иллюстрация, поясняющая метод определения расстояния дальномерами Sharp]]
+
[[Файл:IR_triangle.jpg|frame|Иллюстрация, поясняющая метод определения расстояния дальномерами Sharp]]
Представленная линейка GP2DXX дальномеров Sharp, была разработана не только для обнаружения обьектов на дальних расстояниях, но и для предоставления данных о расстоянии, в случае с моделями GP2D12, GP2D120 и GP2DY0A ('0A'). Эти модели работают намного лучше, так как используются новый метод измерения.
+
Представленная линейка GP2DXX дальномеров Sharp, была разработана не только для обнаружения обьектов на дальних расстояниях, но и для предоставления данных о расстоянии, в случае с моделями [[GP2D12]], GP2D120 и [[GP2D12|GP2DY0A ('0A')]]. Эти модели работают намного лучше, так как используются новый метод измерения.
  
  
Строка 18: Строка 18:
  
 
Основная идея в следующем.
 
Основная идея в следующем.
Импульсы ИК излучения испускаются излучателем. Это излучение распространяется и отражается от обьектов находящихся в поле зрения сенсора. Отраженное излучение возвращается на приемник. Испускаемый и отраженный лучи образуют треугольник "излучатель - обьект отражения - приемник".
+
Импульсы ИК излучения испускаются излучателем. Это излучение распространяется и отражается от обьектов находящихся в поле зрения сенсора. Отраженное излучение возвращается на приемник. Испускаемый и отраженный лучи образуют треугольник «излучатель — обьект отражения — приемник».
  
 
Угол отражения напрямую зависит от расстояния до обьекта. Полученные отраженные импульсы собираются высококачественной линзой и передаются на линейную CCD матрицу. По засветке определенного участка CCD матрицы определяется угол отражения и высчитывается растояние до обьекта.
 
Угол отражения напрямую зависит от расстояния до обьекта. Полученные отраженные импульсы собираются высококачественной линзой и передаются на линейную CCD матрицу. По засветке определенного участка CCD матрицы определяется угол отражения и высчитывается растояние до обьекта.
Строка 27: Строка 27:
  
 
Серия дальномеров GP2XX включает несколько типов. Они различаются минимальными и максимальными значениями дальности измерения,
 
Серия дальномеров GP2XX включает несколько типов. Они различаются минимальными и максимальными значениями дальности измерения,
а также форматом возвращаемого сигнала (есть модели, имеющие аналоговый выход - они возвращают растояние до объекта; также есть модели, имеющие цифровой выход и возвращающие лишь булевое значение - есть объект в поле зрения датчика или нет).
+
а также форматом возвращаемого сигнала (есть модели, имеющие аналоговый выход — они возвращают растояние до объекта; также есть модели, имеющие цифровой выход и возвращающие лишь булевое значение — есть объект в поле зрения датчика или нет).
  
 
[http://www.roboforum.ru/mediawiki/images/0/02/Sharp_compare.pdf Сравнительные характеристики сведены в файл.]
 
[http://www.roboforum.ru/mediawiki/images/0/02/Sharp_compare.pdf Сравнительные характеристики сведены в файл.]
  
[[Изображение:Scale.jpg]]
+
[[Файл:Scale.jpg]]
  
[[Изображение:GP2Y0D340K.jpg]]
+
[[Файл:GP2Y0D340K.jpg]]
  
[[Изображение:GP2D05.jpg]]
+
[[Файл:GP2D05.jpg]]
  
[[Изображение:GP2D15.jpg]]
+
[[Файл:GP2D15.jpg]]
  
[[Изображение:GP0D02.jpg]]
+
[[Файл:GP0D02.jpg]]
  
[[Изображение:Scale.jpg]]
+
[[Файл:Scale.jpg]]
  
[[Изображение:GP2D12.jpg]]
+
[[Файл:GP2D12.jpg]]
  
[[Изображение:GP2D120.jpg]]
+
[[Файл:GP2D120.jpg]]
  
[[Изображение:GP0A02.jpg]]
+
[[Файл:GP0A02.jpg]]
  
[[Изображение:GP0A21.jpg]]
+
[[Файл:GP0A21.jpg]]
  
[[Изображение:GP0A700.jpg]]
+
[[Файл:GP0A700.jpg]]
  
[[Изображение:GP2D02.jpg]]
+
[[Файл:GP2D02.jpg]]
  
[[Изображение:Scale.jpg]]
+
[[Файл:Scale.jpg]]
  
  
[[Изображение:Legend.jpg]]
+
[[Файл:Legend.jpg]]
  
  
Модели с красной меткой на диапазоне - цифровые (определяют только есть ли препятствие в интервале расстояний до метки или нет), остальные модели - аналоговые (определяют расстояние в указанном диапазоне).
+
Модели с красной меткой на диапазоне — цифровые (определяют только есть ли препятствие в интервале расстояний до метки или нет), остальные модели — аналоговые (определяют расстояние в указанном диапазоне).
  
 
Ни одному из датчиков не требуется внешний синхросигнал. Вместо этого они излучают постоянно, потребляя примерно 25mA.
 
Ни одному из датчиков не требуется внешний синхросигнал. Вместо этого они излучают постоянно, потребляя примерно 25mA.
Строка 68: Строка 68:
 
0A700 поставляется в специальном корпусе, который намного больше, чем другие дальномеры. Это видно на картинке ниже. Увеличение размера связано с увеличением линзы, что позволило увеличить максимальный диапазон до 5.5 метров.
 
0A700 поставляется в специальном корпусе, который намного больше, чем другие дальномеры. Это видно на картинке ниже. Увеличение размера связано с увеличением линзы, что позволило увеличить максимальный диапазон до 5.5 метров.
  
[[Изображение:0A700_comparison.jpg|Дальномер GP0A700]]
+
[[Файл:0A700_comparison.jpg|Дальномер GP0A700]]
  
Выбор дальномера зависит от ваших необходимостей, возможностей "Мозга" робота (наличия АЦП), и т.д. и т.п. Надеемся, что приведенная в этом разделе информация поможет вам сделать правильный выбор.
+
Выбор дальномера зависит от ваших необходимостей, возможностей «Мозга» робота (наличия АЦП), и т. д. и т. п. Надеемся, что приведенная в этом разделе информация поможет вам сделать правильный выбор.
  
 
== Нелинейный выход ==
 
== Нелинейный выход ==
  
 
Выходная характеристика детекторов нелинейно (см. рисунок) зависит от измеренного расстояния.
 
Выходная характеристика детекторов нелинейно (см. рисунок) зависит от измеренного расстояния.
[[Изображение:non-linear.jpg|frame|center|Выходная характеристика дальномеров Sharp]]
+
[[Файл:non-linear.jpg|frame|center|Выходная характеристика дальномеров Sharp]]
  
График изображает типичную (например, для GP2Y0A21YK и GP2D12) выходную характеристику дальномеров Sharp.  
+
График изображает типичную (например, для [[GP2D12|GP2Y0A21YK и GP2D12]]) выходную характеристику дальномеров Sharp.
  
 
Следует обратить внимание на две вещи:
 
Следует обратить внимание на две вещи:
* Выходная характеристика дальномера (дистанция 10см - 80см) нелинейна и близка к логарифмической. Эта кривая незначительно отличается от дальномера к дальномеру, поэтому можно "нормализовать" характеристику с помощью таблицы или функции. В этом случае, вы можете калибровать каждый дальномер, получая в результате линейную характеристику, независящую от дальномера к дальномеру.  
+
* Выходная характеристика дальномера (дистанция 10 см — 80см) нелинейна и близка к логарифмической. Эта кривая незначительно отличается от дальномера к дальномеру, поэтому можно «нормализовать» характеристику с помощью таблицы или функции. В этом случае, вы можете калибровать каждый дальномер, получая в результате линейную характеристику, независящую от дальномера к дальномеру.
  
* В случае если дистанция меньше минимально измеряемой (на графике это 10 см) характеристика падает очень быстро и возникает впечатление что измерено далекое растояние. Это может ввести в заблуждение и даже повредить вашего робота, если он двигается с высокой скоростью. Простейший способ этого избежать - устанавливать дальномер на робота с учетом длины робота.
+
* В случае если дистанция меньше минимально измеряемой (на графике это 10 см) характеристика падает очень быстро и возникает впечатление что измерено далекое растояние. Это может ввести в заблуждение и даже повредить вашего робота, если он двигается с высокой скоростью. Простейший способ этого избежать — устанавливать дальномер на робота с учетом длины робота.
  
[[Изображение:cross.jpg|frame|center|Пример перекрестной установки дальномера для компенсации минимального ограничения измерения.]]
+
[[Файл:cross.jpg|frame|center|Пример перекрестной установки дальномера для компенсации минимального ограничения измерения.]]
  
 
== Нормализация нелинейности выхода ==
 
== Нормализация нелинейности выхода ==
  
Как говорилось ранее (раздел "[[#Нелинейный_выход|Нелинейный выход]]"), выходная характеристика дальномеров нелинейно зависит от измеренного расстояния. Нужно найти функцию для преобразования напряжения на аналоговом выходе дальномера (Вольты) в расстояние (т.е. сантиметры или дюймы).
+
Как говорилось ранее (раздел «[[#Нелинейный_выход|Нелинейный выход]]»), выходная характеристика дальномеров нелинейно зависит от измеренного расстояния. Нужно найти функцию для преобразования напряжения на аналоговом выходе дальномера (Вольты) в расстояние (то есть сантиметры или дюймы).
  
[[Изображение:irlinear-fig1.jpg]]
+
[[Файл:irlinear-fig1.jpg]]
  
 
Можно пойти двумя путями: создать таблицу значений или написать функцию преобразования.
 
Можно пойти двумя путями: создать таблицу значений или написать функцию преобразования.
Строка 96: Строка 96:
 
Рассмотрим второй путь, так как он дает более приближенные к действительности значения. При решении данной задачи мы сталкиваемся с проблемой, что необходимо проводить операции с плавающей запятой. Поэтому для упрощения расчетов применим линейное преобразование выходной характеристики.
 
Рассмотрим второй путь, так как он дает более приближенные к действительности значения. При решении данной задачи мы сталкиваемся с проблемой, что необходимо проводить операции с плавающей запятой. Поэтому для упрощения расчетов применим линейное преобразование выходной характеристики.
  
На основании страницы 10 Sharp Device Specification для GP2D120 график характеристики следует преобразовать по формуле  
+
На основании страницы 10 Sharp Device Specification для GP2D120 график характеристики следует преобразовать по формуле
  
''V = 1 / ( R + k )''
+
<math>V = \frac{1}{R + k}</math>
  
где V - напряжение, результат АЦП преобразования;
+
где V — напряжение, результат АЦП преобразования;
:R - расстояние;
+
: R — расстояние;
:k = 0,42 константа для GP2D120.
+
: k = 0,42 константа для GP2D120.
  
Уравнение как результат дает прямую линию. Операция деления выпрямляет характеристику. Константа в функции зависит от модели дальномера. k = 0,42 - это константа для GP2D120, но это же значение может быть применено и для других моделей.  
+
Уравнение как результат дает прямую линию. Операция деления выпрямляет характеристику. Константа в функции зависит от модели дальномера. k = 0,42 — это константа для GP2D120, но это же значение может быть применено и для других моделей.
Поэтому первым шагом для хорошей функции преобразования необходимо экспериментальным путем определить константу k. На рисунке ниже представлен график для GP2D12 с k = 4.0.  
+
Поэтому первым шагом для хорошей функции преобразования необходимо экспериментальным путем определить константу k. На рисунке ниже представлен график для GP2D12 с k = 4.0.
  
[[Изображение:irlinear-fig2.jpg]]
+
[[Файл:irlinear-fig2.jpg]]
  
Следующим шагом сведем полученную приближенно линейную характеристику с формулой линейного уравнения.  
+
Следующим шагом сведем полученную приближенно линейную характеристику с формулой линейного уравнения.
  
''y = m * x + b''
+
<math>y = m \cdot x + b</math>
  
 
В этом случае ''y'' соответствует линейному расстоянию, заменяем в функции ''y'' и ''x''
 
В этом случае ''y'' соответствует линейному расстоянию, заменяем в функции ''y'' и ''x''
  
''1 / (R + k) = m * V + b''
+
<math>\frac{1}{R + k} = m \cdot V + b</math>
  
 
Преобразовываем для получения функции расстояния от напряжения
 
Преобразовываем для получения функции расстояния от напряжения
  
''R = (1 / (m * V + b)) - k''
+
<math>R = \frac{1}{m \cdot V + b} - k</math>
  
 
Результат содержит операции с плавающей запятой, от которой нам надо избавится:
 
Результат содержит операции с плавающей запятой, от которой нам надо избавится:
  
''R = (m' / (V + b')) - k''
+
<math>R = \frac{m'}{V + b'} - k</math>
  
где m' = 1/m и b' = b/m. После чего мы можем применять формулу в целочисленных расчетах.  
+
где <math>m' = \frac{1}{m}</math> и <math>b' = \frac{b}{m}</math>. После чего мы можем применять формулу в целочисленных расчетах.
  
  
Пример применения для 10 bit АЦП (0..1023) и GP2D12 :
+
Пример применения для 10 bit АЦП (0..1023) и [[GP2D12]]:
  
''R = (m' / (V + b')) – k''
+
<math>R = \frac{m'}{V + b'} - k</math>
  
''R = (6787 / (V - 3)) - 4''
+
<math>R = \frac{6787}{V - 3} - 4</math>
  
Где m'=6787, b'=3 и k=4. Необходимо проверить значение V для предотвращения деления на 0, V должен быть больше b'. Для данной формулы V должен быть больше 3.
+
Где <math>m'=6787</math>, <math>b'=-3</math> и <math>k=4</math>. Необходимо проверить значение V для предотвращения деления на 0, V должен быть больше b'. Для данной формулы V должен быть больше 3.
  
С 10-bit целым, напряжение для GP2D12 изменяется от 80 при отсутствии препятствий до 0 если объект прямо перед GP2D12.  
+
С 10-bit целым, напряжение для [[GP2D12]] изменяется от 80 при отсутствии препятствий до 0 если объект прямо перед [[GP2D12]].
  
  
Этот подход работает и для других дальномеров. После подбора константы для GP2D120 формула будет выглядеть так:
+
Этот подход работает и для других дальномеров. После подбора константы для GP2D120 формула будет выглядеть так:
  
''R = (2914 / (V + 5)) - 1''
+
<math>R = \frac{2914}{V + 5} - 1</math><br>
 +
(для опорного напряжения 5 вольт)<br><br>
 +
<math>R = \frac{5222}{V - 13}</math><br>
 +
(для опорного напряжения 2.56 вольт)<br>
  
  
Строка 148: Строка 151:
 
== Диаграмма направленности ==
 
== Диаграмма направленности ==
  
Диаграмма направленности для этих всех моделей дальномеров Sharp довольно схожа. В основном, диапазон измерений колеблется от 10см до 80см, а "угол зрения" таков, что его можно представить примерно в виде конуса с диаметром в средней его части около 16 см. В связи с тем, что диаграмма направленности достаточно узкая, рекомендуется установка дальномера на вращающуюся платформу с [[Сервоприводы_вращения|сервомашинками]] для сканирования окрестностей. Это позволяет расширить угол обзора и исследовать пространство более детально. Дальномер будет вращаться на манер радара, сообщая о наличии объектов в определенном секторе на определенном удалении от платфоромы.
+
Диаграмма направленности для этих всех моделей дальномеров Sharp довольно схожа. В основном, диапазон измерений колеблется от 10 см до 80 см, а «угол зрения» таков, что его можно представить примерно в виде конуса с диаметром в средней его части около 16 см(по другим документам 6см для [[GP2D12]] и 12см для [[GP2D12|GP2Y0A21]]). В связи с тем, что диаграмма направленности достаточно узкая, рекомендуется установка дальномера на вращающуюся платформу с [[Сервоприводы_вращения|сервомашинками]] для сканирования окрестностей. Это позволяет расширить угол обзора и исследовать пространство более детально. Дальномер будет вращаться на манер радара, сообщая о наличии объектов в определенном секторе на определенном удалении от платфоромы.
  
При использовании дальномеров в роли бампера необходим наиболее широкий луч излучения для охвата наибольшей зоны перед роботом. Типовое решение - это применение 2х дальномеров, установленных перекрестно (см. рисунок ниже). Наиболее часто применяется для этой цели GP2D15.
+
При использовании дальномеров в роли бампера необходим наиболее широкий луч излучения для охвата наибольшей зоны перед роботом. Типовое решение — это применение 2х дальномеров, установленных перекрестно (см. рисунок ниже). Наиболее часто применяется для этой цели GP2D15.
  
[[Изображение:bumper.jpg]]
+
[[Файл:bumper.jpg]]
  
 
В зависимости от типа используемого дальномера, выход с них можно объединять для экономии портов ввода-вывода на микропроцессоре.
 
В зависимости от типа используемого дальномера, выход с них можно объединять для экономии портов ввода-вывода на микропроцессоре.
Строка 158: Строка 161:
 
== Подключение Дальномеров ==
 
== Подключение Дальномеров ==
  
'''GP2D12, GP2D120, GP2Y0A02, GP2D15, GP2Y0D02, GP2Y0A21''' оснащены одинаковым разъемом для подключения. Он называется Japan Solderless Terminal (JST). Разъем имеет 3 контакта: ground, vcc и output.
+
'''[[GP2D12]], GP2D120, GP2Y0A02, GP2D15, GP2Y0D02, [[GP2D12|GP2Y0A21]]''' оснащены одинаковым разъемом для подключения. Он называется Japan Solderless Terminal (JST). Разъем имеет 3 контакта: ground, vcc и output.
  
 
Так как дальномер излучает непрерывно, нет необходимости в синхронизации для инициации чтения, что упрощает взаимодействие, но увеличивает энергопотребление (примерно 25 mA). К тому же возникает вероятность интерференции излучения с другими ИК датчиками.
 
Так как дальномер излучает непрерывно, нет необходимости в синхронизации для инициации чтения, что упрощает взаимодействие, но увеличивает энергопотребление (примерно 25 mA). К тому же возникает вероятность интерференции излучения с другими ИК датчиками.
Строка 168: Строка 171:
 
'''GP2D02, GP2D05''' (модели снятые с производства) используют JST с 4мя контактами: ground, vcc, clock и output.
 
'''GP2D02, GP2D05''' (модели снятые с производства) используют JST с 4мя контактами: ground, vcc, clock и output.
  
== ИК Дальномеры аналоги ==
+
== ИК Дальномеры подробнее ==
У фирмы '''HVW Technologies''' существует продукт I2C-It IR Rangefinder.
 
  
[[Изображение:GP2D12_I2C.jpg]]
+
[[GP2D12|ИК Дальномеры Sharp GP2D12 и GP2Y0A21]]
  
'''I2C-It''' представляет из себя доработку Sharp GP2D12 для работы по шине I2C.
+
Хакинг датчика GP2D15: добавляем аналоговый выход.
GP2D12 отличный и проверенный дальномер, но если вы используете их несколько то возникают следующие проблемы:
 
  
* каждому дальномеру необходима своя линия подключения.
+
[[Файл:GP2D15 analog.jpg]]
  
* использование загружает процессор.
+
Аналоговый сигнал можно взять из этой точки (см. фото).
  
 
+
1.Класс AVR для работы с датчиками расстояния. Поддерживаются 4 типа датчиков. Применен медианный фильтр+фильтр Гаусса. На выходе получаем расстояние до препятствия в мм. Код и статья доступна здесь  http://robot-develop.org/archives/1043
'''I2C-It''' обладает следующими характеристиками:
+
== ИК Дальномеры аналоги ==
 
+
* [[ I2C-It | I2C-It IR Rangefinder фирмы '''HVW Technologies''']] .
* GP2D12 дпльномер на диапазон 10~80cm / 4” - 32”
+
* [http://www.hvwtech.com/products_view.asp?ProductID=91 Digital Infra-Red Rangefinding System — (DIRRS+) фирмы '''HVW Technologies''']
 
 
* Подключение до 8 дальномеров на одну шину.
 
 
 
* Выдает данные в сантиметрах, дюймах, или аналоговое значение(0-255).
 
 
 
* Пользователь сам определяет адресс устройства(перемычками по таблице на задней стороне дальномера).
 
 
 
* Используется простой 4-проводной I2C интерфейс.
 
 
 
* Подключается как slave-mode I2C устройство!
 
 
 
 
 
[[Изображение:GP2D12_I2C_Rear.jpg]]
 
 
 
I2C-It имеет разьем под распайку:
 
 
 
Pin1 - Ground (signal ground)(квадратная площадка)
 
 
 
Pin2 - SCL (I2C clock line)
 
 
 
Pin3 - SDA (I2C data line)
 
 
 
Pin4 - Vcc (+4.5 to +5.5V)
 
 
 
 
 
I2C-It настроен так что получает расстояние один раз и возвращает его - он не тратит время на множественные измерения и вычисление среднего. Идея такова "Ты видишь то, что ты видишь!". Дальномер спроектирован, так что может давать конкретные значения расстояния так быстро как вам нужно.
 
----
 

Текущая версия на 20:46, 6 октября 2011

Статья посвещена ИК дальномерам Sharp. Рассмотрены принципы их работы, особенности использования, плюсы и минусы.

Является вольным переводом статей:

Внешний вид

IR Family.jpg

Принципы работы ИК дальномеров

Иллюстрация, поясняющая метод определения расстояния дальномерами Sharp

Представленная линейка GP2DXX дальномеров Sharp, была разработана не только для обнаружения обьектов на дальних расстояниях, но и для предоставления данных о расстоянии, в случае с моделями GP2D12, GP2D120 и GP2DY0A ('0A'). Эти модели работают намного лучше, так как используются новый метод измерения.


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

Основная идея в следующем. Импульсы ИК излучения испускаются излучателем. Это излучение распространяется и отражается от обьектов находящихся в поле зрения сенсора. Отраженное излучение возвращается на приемник. Испускаемый и отраженный лучи образуют треугольник «излучатель — обьект отражения — приемник».

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

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

Какой дальномер выбрать?

Серия дальномеров GP2XX включает несколько типов. Они различаются минимальными и максимальными значениями дальности измерения, а также форматом возвращаемого сигнала (есть модели, имеющие аналоговый выход — они возвращают растояние до объекта; также есть модели, имеющие цифровой выход и возвращающие лишь булевое значение — есть объект в поле зрения датчика или нет).

Сравнительные характеристики сведены в файл.

Scale.jpg

GP2Y0D340K.jpg

GP2D05.jpg

GP2D15.jpg

GP0D02.jpg

Scale.jpg

GP2D12.jpg

GP2D120.jpg

GP0A02.jpg

GP0A21.jpg

GP0A700.jpg

GP2D02.jpg

Scale.jpg


Legend.jpg


Модели с красной меткой на диапазоне — цифровые (определяют только есть ли препятствие в интервале расстояний до метки или нет), остальные модели — аналоговые (определяют расстояние в указанном диапазоне).

Ни одному из датчиков не требуется внешний синхросигнал. Вместо этого они излучают постоянно, потребляя примерно 25mA.


0A700 поставляется в специальном корпусе, который намного больше, чем другие дальномеры. Это видно на картинке ниже. Увеличение размера связано с увеличением линзы, что позволило увеличить максимальный диапазон до 5.5 метров.

Дальномер GP0A700

Выбор дальномера зависит от ваших необходимостей, возможностей «Мозга» робота (наличия АЦП), и т. д. и т. п. Надеемся, что приведенная в этом разделе информация поможет вам сделать правильный выбор.

Нелинейный выход

Выходная характеристика детекторов нелинейно (см. рисунок) зависит от измеренного расстояния.

Выходная характеристика дальномеров Sharp

График изображает типичную (например, для GP2Y0A21YK и GP2D12) выходную характеристику дальномеров Sharp.

Следует обратить внимание на две вещи:

  • Выходная характеристика дальномера (дистанция 10 см — 80см) нелинейна и близка к логарифмической. Эта кривая незначительно отличается от дальномера к дальномеру, поэтому можно «нормализовать» характеристику с помощью таблицы или функции. В этом случае, вы можете калибровать каждый дальномер, получая в результате линейную характеристику, независящую от дальномера к дальномеру.
  • В случае если дистанция меньше минимально измеряемой (на графике это 10 см) характеристика падает очень быстро и возникает впечатление что измерено далекое растояние. Это может ввести в заблуждение и даже повредить вашего робота, если он двигается с высокой скоростью. Простейший способ этого избежать — устанавливать дальномер на робота с учетом длины робота.
Пример перекрестной установки дальномера для компенсации минимального ограничения измерения.

Нормализация нелинейности выхода

Как говорилось ранее (раздел «Нелинейный выход»), выходная характеристика дальномеров нелинейно зависит от измеренного расстояния. Нужно найти функцию для преобразования напряжения на аналоговом выходе дальномера (Вольты) в расстояние (то есть сантиметры или дюймы).

Irlinear-fig1.jpg

Можно пойти двумя путями: создать таблицу значений или написать функцию преобразования.

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

На основании страницы 10 Sharp Device Specification для GP2D120 график характеристики следует преобразовать по формуле

<math>V = \frac{1}{R + k}</math>

где V — напряжение, результат АЦП преобразования;

R — расстояние;
k = 0,42 константа для GP2D120.

Уравнение как результат дает прямую линию. Операция деления выпрямляет характеристику. Константа в функции зависит от модели дальномера. k = 0,42 — это константа для GP2D120, но это же значение может быть применено и для других моделей. Поэтому первым шагом для хорошей функции преобразования необходимо экспериментальным путем определить константу k. На рисунке ниже представлен график для GP2D12 с k = 4.0.

Irlinear-fig2.jpg

Следующим шагом сведем полученную приближенно линейную характеристику с формулой линейного уравнения.

<math>y = m \cdot x + b</math>

В этом случае y соответствует линейному расстоянию, заменяем в функции y и x

<math>\frac{1}{R + k} = m \cdot V + b</math>

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

<math>R = \frac{1}{m \cdot V + b} - k</math>

Результат содержит операции с плавающей запятой, от которой нам надо избавится:

<math>R = \frac{m'}{V + b'} - k</math>

где <math>m' = \frac{1}{m}</math> и <math>b' = \frac{b}{m}</math>. После чего мы можем применять формулу в целочисленных расчетах.


Пример применения для 10 bit АЦП (0..1023) и GP2D12:

<math>R = \frac{m'}{V + b'} - k</math>

<math>R = \frac{6787}{V - 3} - 4</math>

Где <math>m'=6787</math>, <math>b'=-3</math> и <math>k=4</math>. Необходимо проверить значение V для предотвращения деления на 0, V должен быть больше b'. Для данной формулы V должен быть больше 3.

С 10-bit целым, напряжение для GP2D12 изменяется от 80 при отсутствии препятствий до 0 если объект прямо перед GP2D12.


Этот подход работает и для других дальномеров. После подбора константы для GP2D120 формула будет выглядеть так:

<math>R = \frac{2914}{V + 5} - 1</math>
(для опорного напряжения 5 вольт)

<math>R = \frac{5222}{V - 13}</math>
(для опорного напряжения 2.56 вольт)


Так как это целочисленная математика то результат получаем в сантиметрах, что более дружелюбно, чем результат АЦП преобразования.

Диаграмма направленности

Диаграмма направленности для этих всех моделей дальномеров Sharp довольно схожа. В основном, диапазон измерений колеблется от 10 см до 80 см, а «угол зрения» таков, что его можно представить примерно в виде конуса с диаметром в средней его части около 16 см(по другим документам 6см для GP2D12 и 12см для GP2Y0A21). В связи с тем, что диаграмма направленности достаточно узкая, рекомендуется установка дальномера на вращающуюся платформу с сервомашинками для сканирования окрестностей. Это позволяет расширить угол обзора и исследовать пространство более детально. Дальномер будет вращаться на манер радара, сообщая о наличии объектов в определенном секторе на определенном удалении от платфоромы.

При использовании дальномеров в роли бампера необходим наиболее широкий луч излучения для охвата наибольшей зоны перед роботом. Типовое решение — это применение 2х дальномеров, установленных перекрестно (см. рисунок ниже). Наиболее часто применяется для этой цели GP2D15.

Bumper.jpg

В зависимости от типа используемого дальномера, выход с них можно объединять для экономии портов ввода-вывода на микропроцессоре.

Подключение Дальномеров

GP2D12, GP2D120, GP2Y0A02, GP2D15, GP2Y0D02, GP2Y0A21 оснащены одинаковым разъемом для подключения. Он называется Japan Solderless Terminal (JST). Разъем имеет 3 контакта: ground, vcc и output.

Так как дальномер излучает непрерывно, нет необходимости в синхронизации для инициации чтения, что упрощает взаимодействие, но увеличивает энергопотребление (примерно 25 mA). К тому же возникает вероятность интерференции излучения с другими ИК датчиками.

GP2Y0A700 поставляется в специальном корпусе и оснащен 5 контактным JST разъемом. Распиновка следующая: ground, vcc, output, ground, vcc. Это сделано для подачи дополнительного питания 400 mA пикового (30-50 mA постоянного). Как и другие дальномеры GP2Y0A700 излучает постоянно.

GP2Y0D340K поставляется в специальном корпусе и оснащен 5 контактами (без разьема, впаивается) Vcc, LED_FB, Vo, ground, REG и два боковых контакта Shield. Пиковый ток 35 mA постоянный 28 mA.

GP2D02, GP2D05 (модели снятые с производства) используют JST с 4мя контактами: ground, vcc, clock и output.

ИК Дальномеры подробнее

ИК Дальномеры Sharp GP2D12 и GP2Y0A21

Хакинг датчика GP2D15: добавляем аналоговый выход.

GP2D15 analog.jpg

Аналоговый сигнал можно взять из этой точки (см. фото).

1.Класс AVR для работы с датчиками расстояния. Поддерживаются 4 типа датчиков. Применен медианный фильтр+фильтр Гаусса. На выходе получаем расстояние до препятствия в мм. Код и статья доступна здесь http://robot-develop.org/archives/1043

ИК Дальномеры аналоги