Обнаружение объектов

8-11-2013, 18:08
Просмотров: 2147
Способность обнаружить объект, не вступая с ним в физический контакт, зачастую является ключевым элементом поведения робота.
Для обнаружения источника света на расстоянии используется фотоэлемент, наподобие фоторезистора, а ультразвуковый датчик может обнаруживать относительно большие твердые объекты на расстоянии вплоть до нескольких метров.
Обнаружение объектов

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

Если объект присутствует, то сигнал от компаратора падает, когда светодиод включен, и единичный, когда светодиод выключен.
Если никакого объекта нет, то выход компаратора остается постоянно в единичном состоянии. Это также происходит, если объект слишком далеко Для того, чтобы отразить достаточно света к фоторезистору. Источник яркого света дает на выходе компаратора постоянное состояние логического нуля, которое сохраняется и при выключенном светодиоде. Эти три случая реализует подпрограмма.
Показанная блок-схема определяет простую подпрограмму, результат работы которой записывается в регистр, который выполняет роль флага.
Если объект обнаружен, то в этом регистре должно оказаться значение Olh.
Компаратор программируется таким образом, чтобы выдавать высокий уровень (1), когда фоторезистор принимает свет.
Светодиод включается и после короткой задержки, дающей фоторезистору время на реакцию, опрашивается выход компаратора.
Если на выходе компаратора - логическая единица, то это означает, что фоторезистор получает свет, отраженный от объекта или излучаемый другим источником.
Следуя по ветви "Да", мы анализируем эти две возможности, выключая светодиод и повторно проверяя выход компаратора.
Теперь мы ожидаем на выходе компаратора сигнал логического нуля. Если это так, то переменная object устанавливается в Olh, указывая, что объект обнаружен.
Программа далее, вероятно, должна реализовать подъем объекта, если переменная object равна Olh, или выполнить что-либо другое.
Если любая из проверок дает результат "Нет", то подпрограмма переходит в конец, где переменная object сбрасывается в 00h.
Обратите внимание на то, что мы должны обнулить эту переменную явно (она может быть в состоянии Olh в результате предыдущей проверки).

Источник: delete-it.ru
Автор: ziko
Опубликовано пользователем: 81 (смотреть все)
Комментарии: