roboforum.ru

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

Простой датчик белой линии и края стола для сумоботов и др.

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

Простой датчик белой линии и края стола для сумоботов и др.

Сообщение MEXAHuK » 02 окт 2010, 00:12

Для отладочного шасси Злобный Гном была собрана, протестирована и установлена система :) обнаружения белой линии и края стола.
Идея проста и не нова - в зависимости от отражающей способности поверхности меняется ток через фототранзистор.
Но, если использовать два компаратора для одного датчика, можно определить три ситуации - заезд на белую линию, нормальный режим (поле, стол), и край стола.
Напряжение на измерительном/ограничительном резисторе сравнивается двумя компараторами с разными уровнями напряжений. Уровни задаются при помощи настроечных резисторов. Первый уровень - для детектирования белой линии, второй уровень - для детектирования края стола/ринга и т.д. Результат сравнения - логическая единица, если все в порядке, логический ноль - при наезде на линию или при подъезде к краю.
Настроечные резисторы и оптопара запитаны от источника опорного напряжения на 3.3 в, чтобы уменьшить зависимость от напряжения батареи питающих элементов.
Оптопара на отражение - ITR8307, компаратор - счетвереный LM339, по два компаратора на датчик.
Токоограничительный резистор для настроечного светодиода надо рассчитывать, исходя из того, что выходной втекающий ток компаратора 16 мА.
В общем никаких рокет-сайенсов, все просто и надежно, как тесак боевого Злобного Гнома :)
Может, кому пригодится. Замечания и поправки принимаются :)

Схема:
robo_sensor1.jpg


Дачик:
robo_sensor2.jpg


Злобный Гном:
robo_sensor3.jpg
Последний раз редактировалось MEXAHuK 03 окт 2010, 00:16, всего редактировалось 2 раз(а).
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Re: Простой датчик белой линии/края для сумобота и т.п.

Сообщение Radist » 02 окт 2010, 19:06

Слов нет, вещица знатная, ручной работы, цены немалой :)

Датчик как вещь в себе, законченная единица. НО:

- для сумо было бы неплохо иметь 4 таких датчика (по углам), настройки - море.
У меня раньше примерно такие же датчики стояли, только один датчик - один порог - один компаратор. А сейчас я хочу немного переделать это место. А все из-за лени: подстроечники крутить. Там еще лампочки нужны, которые срабатывание показывают. Идея такая: со всех отражательных оптронов подать сигналы на входы ацп (если они есть конечно, но у меня есть, точнее у меги8). И две кнопочки к контролеру. Затем калибруем так:
- ставим бота передом на линию, задом на поле и жмем кнопку 1, затем разворачиваем на 180 градусов и жмем кнопку 2. Для каждого датчика бот получил уровень черного и белого. Границей будет код посередине между ними (а можно сделать и две границы с зоной неопределенности). В вашем случае можно усложнить калибровку и получать еще и уровень "над пропастью". По даташиту одно ацп преобразование происходит за 70 мкс, 4 - за 300 мкс. Вроде бы быстро и бот все успеет сделать, не улетит через линию. Хотя я не знаю его скорость.

Все это я также написал по принципу "может кому пригодится". Экономия и места на плате, и деталек, и своего труда по изготовлению платы.

Добавлено спустя 14 минут:
Посмотрел на схему повнимательней, кое-что мне в ней не понравилось. Но может я не прав.
Выходы компараторов - открытые коллекторы, а у вас там светодиод на землю. Когда транзистор открыт - на выходе 0,3 В, светодиод не светит. Когда транзистор закрыт - светодиод светит, на выходе напряжение падения на светодиоде (около 1 В). Но для контроллера то это напряжение низкое (мне так кажется). Или я не прав?
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Простой датчик белой линии и края стола для сумоботов и

Сообщение MEXAHuK » 03 окт 2010, 00:11

Да, совершенно правы, сейчас сам посмотрел и удивился :) У меня стоят светодиоды на 2 вольта, напряжение питания контроллера 4.6 в, лог. уровень 1 по даташиту 0.6*4.6=2.76 в. Таким образом, все работало только потому, что контроллер все-таки понимал такую ненадежную единицу. Исправил схему, спасибо !

По поводу АЦП - да, согласен, если есть свободные ноги, лучше будет использовать программное определение состояния датчиков. Улететь за 300 мкс далеко не должен :)
Я думаю так сделать для задних датчиков линии/края. Шасси отладочное, на нем потихоньку проверяю все свои аппаратно-программные задумки.
И еще, мне кажется, если запитать датчики от источника опорного напряжения, то можно откалибровать один раз, при наладке, и ввести эти значения в виде констант в программу.

ЗЫ давайте на ты, а то прямо как-то неловко :)
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Re: Простой датчик белой линии и края стола для сумоботов и

Сообщение Radist » 03 окт 2010, 09:27

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

ЗЫ. Можно и на "ты", только у меня уже пальцы сами пишут "вы", да и забыть легко с кем на "ты", а с кем не "вы" и кого-нибудь обидеть невзначай :)
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR


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

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

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