roboforum.ru

Технический форум по робототехнике.

ИК-локатор

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

Re: ИК-локатор

Сообщение Radist » 04 окт 2010, 13:15

Может быть вы и правы. Но одновибратор начинает свою работу по фронту/спаду, то есть на любой провал сигнала выдаст импульс. У меня же не так: я свечу 1 мс, и лишь затем проверяю, есть ли что на тсопе. Если повезло и я отловил ноль - считаю что отражение было (хотя это мог быть кусок фарша). Если не повезло и именно в момент опроса высокий уровень - считаю что отражения нет. То есть среди фарша можно принять как одно, так и другое решение. Через 8 мс паузы я снова посылаю модулированный импульс. И снова фифти-фифти. То то бот сойдет с ума - то есть цель, то нету. Надо же убедиться, есть она или показалось. Если есть подряд 5 раз - значит есть, остальное - от лукавого. Вот как то так у меня. Единственная претензия к одновибратору - он реагирует на дельта-импульсы. Ведь их в основном то и используют чтобы сгенерить импульс по фронту другого импульса (диф цепочка, нижний выброс задавить диодом, одновибратор - получите импульс синфазный с запускающим).
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: ИК-локатор

Сообщение Michael_K » 04 окт 2010, 13:30

Radist, по-моему, вы думаете не в том направлении.
Если вы получаете один бит, то всегда будут ситуации, когда этот бит неустойчивый.
Я бы вам посоветовал модулировать сигнал подсветки (скважностью или, например, током через светодиод) и измерять длительности импульсов на выходе tsop-a.

Тогда вы будете получать не один бит, а некую величину (не расстояние, конечно, а скорее интенсивность отраженного излучения - но сейчас не об этом).

То есть даже если показания будут колебаться, то они будут колебаться не так: "то ли есть, то ли нету", а так: "то ли семь, то ли восемь". Сделайте свой датчик информативнее!!!
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: ИК-локатор

Сообщение Radist » 04 окт 2010, 14:28

Я думал об этом, да и не только я, многие на форуме двигались в этом направлении. Мечта (несбывшаяся) определять расстояние ик-локатором. Это все условности, которые зависят от поверхности отражения. Проще всего изменять частоту: на этой частоте я вижу, а вот на этой уже нет, значит препятствие от меня..... хрен знает на каком расстоянии :D , потому что я не знаю его отражающей способности. Да и все эти определения дальности - это же все время. Если посмотреть соревнования сумоботов - они так быстро гоняют. Медленных и неповоротливых только так вышвыривают. Хотя если датчик использовать не для сумо, а в качестве ик-бампера - можно поиграться. Жалко только что дальше критериев "далеко"/"средне"/"близко" никуда не уйти.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: ИК-локатор

Сообщение Michael_K » 04 окт 2010, 14:50

Да, можно и частоту двигать (хотя лично мне не очень это нравится)
Понятно, что в чистом виде расстояние на таком железе не получить.
Зато можно получить не битовый сигнал а "аналоговый" (если так можно выразится).
Поднять достоверность информации таким образом.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: ИК-локатор

Сообщение MEXAHuK » 06 окт 2010, 11:35

Поделюсь и я своими наработками.
Перепробовав множество конструкций ик-локаторов и алгоритмов обработки, наилучшие результаты я получил, использовав следующий алгоритм:
50 раз в секунду (это продиктовано тем, что в этом же прерывании я управляю сервами)
формируются пачки по 25-50 импульсов с частотой несущей TSOP, отдельно для правого локатора, отдельно для левого. Между пачками для правого и левого локаторов пауза в 450 мкс, чтобы "соседний" TSOP "успокоился".
После каждого импульса (не пачки!) проверяется состояние соответствующего TSOP'а и, при необходимости, инкременируется соответствующий счетчик.
Получившиеся значения фильтруются путем усреднения последних 5 значений.
Результат фильтрации сравнивается с заданным пороговым значением. Меняя порог - меняем чувствительность.
Конструкция радара - управляемый при помощи полевика с логическим уровнем ИК светодиод 875 nm, подключен через токоограничительный резистор 3 кОм, оптически изолирован - помещен в корпус из под электролита (спасибо Radist'у за идею :)).
TSOP 940 nm 38 кГц, подключен согласно даташита.
Срабатывания четкие, надежные, в отличие от алгоритма, когда проверяется состояние TSOP после пачки импульсов.
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Пред.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21