Инфракрасные приемники серий TSOP (17xx, 21xx) давно и достаточно успешно используются в любительской робототехнике. Применяются они как по своему прямому назначению (для приема команд по ИК-каналу) так и в качестве недорогих бесконтактных датчиков препятствия. Их преимущество по сравнению с обычными инфракрасными фототранзисторами и фотодиодами - лучшая помехозащищенность, так как TSOPы реагируют только на сигнал с определенной частотой и скважностью. Частота принимаемого сигнала обозначена в маркировке ИК-приемников - последние две цифры.

Несомненнымипреимуществами так же являются простота подключения и доступность в приобретении.

Представленный модуль ИК-датчика прост в повторении и по сути сочетает в себе два узла - TSOP2136 с обвязкой и электронный ключ для управления инфракрасными светодиодами с возможностью настройки яркости излучения.

Модуль можно использовать:

  • В качестве приемника команд по ИК-каналу с помощью протокола RC5.
  • В качестве передатчика команд по ИК-каналу.
  • В качестве приемо-передатчика для обмена информацией по ИК-каналу (как для связи с ПК так и с другими устройствами)
  • В качестве бюджетного бесконтактного сенсора препятствий.

Обвязка TSOPа стандартная с добавлением согласующего резистора на выход сигнала. Инфракрасные светодиоды подключены через полевой транзистор BS170. Регулировка яркости свечения инфракрасных светодиодов регулируется с помощьюпостроечного резистора.

Рассмотрим работу модуля в качестве датчика препятствий. Как было сказано выше - ик-приемники серии TSOP реагируют только на определенный сигнал, в нашем случае это сигнал с частотой 36kHz и скважностью 50%. Генерация сигнала осуществляется программно микроконтроллером. Излучаемый сигнал, отражаясь от поверхности препятствия, улавливается приемником и обрабатывается МК. По умолчанию - в отсутствие принимаемого сигнала на выходе TSOPа присутствует высокий логический уровень, в противном случае - низкий уровень.

Таким образом в МК обработка сигнала:

Нет препятствия - 1 на входе порта МК.

Препятствие - 0 на входе порта МК.

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

Для примера мы использовали контроллер MRC28 с универсальным модулем. Тестовая прошивка создана с помощью BASCOM-AVR. В качестве препятствия рука =).

"Пример работы инфракрасного датчика препятствия на основе TSOP2136

$regfile = "m8def.dat" "используем Mega8
$crystal = 16000000 "частота кварцевого резонатора 16mHz

"Генерация частоты 36kHz
"Настраиваем Timer1

Config Timer1 = Counter , Edge = Rising , Prescale = 8 , Compare A = Toggle

" Расчитываем Compare1a
" тактовая частота (kHz) / частота TSOPa (kHz) / 2 = Compare
" 16000 / 36 / 2 = 222

Compare1a = 222

"PortB.1 - выход сигнала
"PinC.0 - считываем состояние TSOPa
"Portd.0 - сигнальный светодиод

Config Pinb . 1 = Output
Config Portd . 0 = Output
Config Pinc . 0 = Input

Start Timer1
Do
If Pinc . 0 = 0 Then
Portd . 0 = 1
Else
Portd . 0 = 0
End If
Loop

End

Метки к статье:

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

Тактильные сенсоры

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

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

Оптические датчики

При построении робота просто не обойтись без оптических датчиков. С помощью них аппарат будет «видеть» все вокруг. Эти сенсоры работают с помощью фоторезистора. Датчик отражения (излучатель и приемник) позволяет определять белые или черные участки на поверхности, что позволяет, к примеру, колесному роботу двигаться по нарисованной линии или определить близость препятствия. Источником света часто служит инфракрасный светодиод с линзой, а детектором — фотодиод или фототранзистор.

Отдельного внимания заслуживают видеокамеры. По сути, это глаза робота. Этот тип датчиков на сегодняшний широко используется благодаря росту технологий в сфере обработки изображений. Как понимаете, кроме роботов, применений видеокамерам достаточно: системы авторизации, распознавания образов, обнаружения движения в случае охранной деятельности и т.п.

Звуковые датчики

Эти датчики служат для безопасного передвижения роботов в пространстве за счет измерения расстояния до препятствия от нескольких сантиметров до нескольких метров. К ним относятся микрофон (позволяет фиксировать звук, голос и шум), дальномеры, которые представляют собой датчики, измеряющие расстояние до ближайших объектов и другие ультразвуковые сенсоры. УЗ особенно широко используются практически во всех отраслях робототехники.

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

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

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

Датчики положения

Этот вид датчиков используется в основном в беспилотных транспортных средствах, промышленных роботах, а также устройствах, требующих самобалансировки. К датчикам положения относятся GPS (система глобального позиционирования), ориентиры (исполняют роль маяка), гироскопы (определение угла вращения) и акселерометры. GPS - это спутниковая система навигации, обеспечивающая измерение расстояния, времени и определяющая местоположение робота в пространстве. GPS позволяет беспилотным наземным, воздушным и водным транспортным средствам находить свой маршрут и без труда двигаться от одной точки к другой.

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

Акселерометр - это датчик, позволяющий роботу измерять ускорение тела под действием внешних сил. Этот прибор похож на массивное тело, способное передвигаться вдоль некоторой оси и соединено с корпусом прибора пружинами. Если такой прибор толкнуть вправо, то груз сместится по направляющей влево от центра оси.

Датчики наклона

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

Инфракрасные датчики

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

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

Датчики температуры

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

Мы рассмотрели все самые основные сенсоры, которые используются в робототехнике и позволяют роботу быть более ловким, маневренным и производительным.

Инфракрасный датчик входит домашнюю версию набора Lego mindstorms EV3. Это единственный датчик, который может применяться как самостоятельно, так и в паре с инфракрасным маяком, тоже являющимся частью домашнего набора. Следующие два урока мы посвятим изучению этих двух устройств, а также их взаимодействию между собой.

8.1. Изучаем инфракрасный датчик и инфракрасный маяк

(Рис. 1) в своей работе использует световые волны, невидимые человеку - инфракрасные волны* . Такие же волны используют, например, дистанционные пульты управления различной современной бытовой техникой (телевизорами, видео и музыкальными устройствами). Инфракрасный датчик в режиме "Приближение" самостоятельно посылает инфракрасные волны и, поймав отраженный сигнал, определяет наличие препятствия перед собой. Еще два режима работы инфракрасный датчик реализует в паре с инфракрасным маяком (Рис. 2) . В режиме "Удаленный" инфракрасный датчик умеет определять нажатия кнопок инфракрасного маяка, что позволяет организовать дистанционное управление роботом. В режиме "Маяк" инфракрасный маяк посылает постоянные сигналы, по которым инфракрасный датчик может определять примерное направление и удаленность маяка, что позволяет запрограммировать робота таким образом, чтобы он всегда следовал в сторону инфракрасного маяка. Перед использованием инфракрасного маяка в него необходимо установить две батарейки AAA.

Рис. 1

Рис. 2

8.2. Инфракрасный датчик. Режим "Приближение"

Этот режим работы инфракрасного датчика похож на режим определения расстояния ультразвуковым датчиком. Разница кроется в природе световых волн: если звуковые волны отражаются от большинства материалов практически без затухания, то на отражение световых волн влияют не только материалы, но и цвет поверхности. Темные цвета в отличие от светлых сильнее поглощают световой поток, что влияет на работу инфракрасного датчика. Диапазон работы инфракрасного датчика также отличается от ультразвукового - датчик показывает значения в пределах от 0 (предмет находится очень близко) до 100 (предмет находится далеко или не обнаружен). Еще раз подчеркнем: инфракрасный датчик нельзя использовать для определения точного расстояния до объекта, так как на его показания в режиме "Приближение" оказывает влияние цвет поверхности исследуемого предмета. В свою очередь это свойство можно использовать для различия светлых и темных объектов, находящихся на равном расстоянии до робота. С задачей же определения препятствия перед собой инфракрасный датчик справляется вполне успешно.

Решим практическую задачу, похожую на Задачу №14 Урока №7 , но, чтобы не повторяться, усложним условие дополнительными требованиями.

Задача №17: написать программу прямолинейно движущегося робота, останавливающегося перед стеной или препятствием, отъезжающего немного назад, поворачивающего на 90 градусов и продолжающего движение до следующего препятствия.

У робота, собранного по инструкции small-robot-31313 , впереди по ходу движения установлен инфракрасный датчик. Соединим его кабелем с портом "3" модуля EV3 и приступим к созданию программы.

Рассмотрим программный блок "Ожидание" Оранжевой палитры, переключив его в Режим: - "Сравнение" - "Приближение" (Рис. 3) . В этом режиме программный блок "Ожидание" имеет два входных параметра: "Тип сравнения" и "Пороговое значение" . Настраивать эти параметры мы уже умеем.

Рис. 3

Решение:

  1. Начать прямолинейное движение вперед
  2. Ждать, пока пороговое значение инфракрасного датчика станет меньше 20
  3. Прекратить движение вперед
  4. Отъехать назад на 1 оборот двигателей
  5. Повернуть вправо на 90 градусов (воспользовавшись знаниями Урока №3, рассчитайте необходимый угол поворота моторов)
  6. Продолжить выполнение пунктов 1 - 5 в бесконечном цикле.

Попробуйте решить Задачу № 17 самостоятельно, не подглядывая в решение.

Рис. 4

А теперь для закрепления материала попробуйте адаптировать решение Задачи №15 Урока №7 к использованию инфракрасного датчика! Получилось? Поделитесь впечатлениями в комментарии к уроку...

8.3. Дистанционное управление роботом с помощью инфракрасного маяка

Инфракрасный маяк, входящий в домашнюю версию конструктора Lego mindstorms EV3, в паре с инфракрасным датчиком позволяет реализовать дистанционное управление роботом. Познакомимся с маяком поближе:

  1. Пользуясь инфракрасным маяком, направляйте передатчик сигнала (Рис. 5 поз. 1) в сторону робота. Между маяком и роботом должны отсутствовать любые препятствия! Благодаря широкому углу обзора инфракрасный датчик уверено принимает сигналы, даже если маяк располагается позади робота!
  2. На корпусе маяка расположены 5 серых кнопок (Рис. 5 поз. 2) , нажатия которых распознает инфракрасный датчик, и передает коды нажатий в программу, управляющую роботом.
  3. С помощью специального красного переключателя (Рис. 5 поз. 3) можно выбрать один из четырех каналов для связи маяка и датчика. Сделано это для того, чтобы в непосредственной близости можно было управлять несколькими роботами.

Рис. 5

Задача №18: написать программу дистанционного управления роботом с помощью инфракрасного маяка.

Мы уже знаем, что для реализации возможности выбора выполняющихся блоков необходимо воспользоваться программным блоком "Переключатель" Оранжевой палитры. Установим режим работы блока "Переключатель" в - "Измерение" - "Удалённый" (Рис. 6) .

Рис. 6

Для активации связи между инфракрасным датчиком и маяком необходимо установить правильное значение параметра "Канал" (Рис. 7 поз. 1) в соответствии с выбранным каналом на маяке! Каждому программному контейнеру блока "Переключатель" необходимо сопоставить один из возможных вариантов нажатия серых клавиш (Рис. 7 поз. 2) . Заметьте: некоторые варианты включают одновременное нажатие двух клавиш (нажатые клавиши помечены красным цветом). Всего в программном блоке "Переключатель" в этом режиме можно обрабатывать до 12 различающихся условий (одно из условий должно быть выбрано условием по умолчанию). Добавляются программные контейнеры в блок "Переключатель" нажатием на "+" (Рис. 7 поз.3) .

Рис. 7

Предлагаем реализовать следующий алгоритм управления роботом:

  • Нажатие верхней левой кнопки включает вращение левого мотора, робот поворачивает вправо (Рис. 7 поз. 2 значение: 1)
  • Нажатие верхней правой кнопки включает вращение правого мотора, робот поворачивает влево (Рис. 7 поз. 2 значение: 3)
  • Одновременное нажатие верхних левой и правой кнопок включает одновременное вращение вперед левого и правого мотора, робот двигается вперед прямолинейно (Рис. 7 поз. 2 значение: 5)
  • Одновременное нажатие нижних левой и правой кнопок включает одновременное вращение назад левого и правого мотора, робот двигается назад прямолинейно (Рис. 7 поз. 2 значение: 8)
  • Если не нажата ни одна кнопка маяка - робот останавливается (Рис. 7 поз. 2 значение: 0) .

При разработке алгоритма дистанционного управления вы должны знать следующее: когда нажата одна из комбинаций серых кнопок - инфракрасный маяк непрерывно посылает соответствующий сигнал, если кнопки отпущены, то отправка сигнала прекращается. Исключение составляет отдельная горизонтальная серая кнопка (Рис. 7 поз 2 значение: 9) . Эта кнопка имеет два состояния: "ВКЛ" - "ВЫКЛ" . Во включенном состоянии маяк продолжает посылать сигнал, даже если вы отпустите кнопку (о чём сигнализирует загорающийся зеленый светодиод), чтобы выключить отправку сигнала в этом режиме - нажмите горизонтальную серую кнопку еще раз.

Приступим к реализации программы:

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

  1. Вариантом по умолчанию назначим вариант, когда не нажата ни одна кнопка (Рис. 7 поз. 2 значение: 0) . Установим в контейнер программный блок , выключающий моторы "B" и "C" .
  2. В контейнер варианта нажатия верхней левой кнопки (Рис. 7 поз. 2 значение: 1) установим программный блок "Большой мотор" , включающий мотор "B" .
  3. В контейнер варианта нажатия верхней правой кнопки (Рис. 7 поз. 2 значение: 3) установим программный блок "Большой мотор" , включающий мотор "C" .
  4. В контейнер варианта одновременного нажатия верхних левой и правой кнопок (Рис. 7 поз. 2 значение: 5) установим программный блок "Независимое управление моторами" "B" и "C" вперед.
  5. В контейнер варианта одновременного нажатия нижних левой и правой кнопок (Рис. 7 поз. 2 значение: 8) установим программный блок "Независимое управление моторами" , включающий вращение моторов "B" и "C" назад.
  6. Поместим наш настроенный программный блок "Переключатель" внутрь программного блока "Цикл" .

По предложенной схеме попробуйте создать программу самостоятельно, не подглядывая в решение!

Рис. 8

Загрузите получившуюся программу в робота и запустите её на выполнение. Попробуйте управлять роботом с помощью инфракрасного маяка. Всё ли у вас получилось? Понятен ли вам принцип реализации дистанционного управления? Попробуйте реализовать дополнительные варианты управления. Напишите свои впечатления в комментарии к этому уроку.

* Хотите увидеть невидимые волны? Включите режим фотосъемки в мобильном телефоне и поднесите излучающий элемент дистанционного пульта от телевизора к объективу мобильного телефона. Нажимайте кнопки пульта дистанционного управления и на экране телефона наблюдайте свечение инфракрасных волн.

ИК-датчик препятствий для роботов-машин YL-63 (FC-51)
Smart Car Obstacle Avoidance Sensor Module Infrared Tube Module Reflective Photoelectric Sensor

Бесконтактный датчик YL-63 обнаруживает объекты в диапазоне расстояний почти от нуля и до установленного предела не вступая с ними в непосредственный контакт. Разные производители присваивают одному и тому же устройству разные наименования. Одни именуют представленный датчик наименованием YL-63 другие FC-51. Датчик предназначен для применения, когда не требуется информация о расстоянии до объекта, а только о его наличии или отсутствии. Предельная дистанция регистрации зависит от настройки. Датчик YL-63 имеет дискретный выход. Это оптический датчик регистрирующий увеличение интенсивности отраженного инфракрасного (ИК) излучения в контролируемом пространстве. Изменение отраженного излучения происходит из-за движущихся частей механизмов или перемещения окружающих предметов. YL-63 может размещаться на движущемся объекте для определения положения в окружающем пространстве. Применяется для обнаружения препятствия при движении колесных и гусеничных автоматов. Датчик может стать частью наглядного пособия для обучающихся в области систем управления и автоматики.
Устройство содержит источник ИК излучения и фотоприемник. Излучение отражается от препятствия и регистрируется фотоприемником. Он передает сигнал на компаратор LM393, который настроен на срабатывание при определенном уровне освещенности фотоприемника. Компаратор формирует сигнал на выходе датчика YL-63 низкого или высокого логического уровня.

Оптический датчик YL-63 относится к классу диффузионных. Название группы датчиков возникло из-за лежащего в основе работы датчика отражения излучения по множествам направлений - диффузии излучения отражающей поверхностью.
Работа устройства заключается в определении освещенности фотоприемника. Поскольку YL-63 фиксирует отраженное излучение, то возникает погрешность измерения расстояния, вызванная различной отражающей способностью поверхностей объектов изготовленных из разнообразных материалов.

Коэффициенты расстояния для отражения от различных материалов.

Белая матовая бумага 1
Хлопчатобумажная ткань 0,6
Серый поливинилхлорид 0,57
Дерево
слабо окрашенное 0,73
необработанное 0,4
Пластик
белый 0,7
черный 0.22
Черная резина 0,2-0,15
Матовый алюминий 1,2
Нержавеющая полированная сталь 2,3

Различное отражение и поглощение излучения различных материалов используются для работы воспринимающего узла тахометра. Предположим у нас есть . Требуется узнать количество оборотов в минуту вала двигателя. Нас выручит YL-63. Достаточно приклеить на маховик фрагмент белой бумаги, направить луч датчика на маховик и получим воспринимающий узел тахометра.
Для снижения последствий различных помех обрабатывающим микроконтроллером накапливаются данные полученные от датчика за короткий промежуток времени и производится усреднение. Датчик YL-63 может работать в приборах не имеющих МК.

Параметры

Напряжение питания 3,3-5 В
Дистанция обнаружения до отражающей белой матовой плоскости 0,02-0,3 м
Угол обнаружения 35°
Размеры 43 х 16 х 7 мм

Контакты

Датчик препятствия YL-63 он же FC-51 имеет вилку разъема из трех контактов:
VCC - питание,
GND - общий провод,
OUT - выход.

Индикаторы

На плате модуля расположено два индикатора. Свечение зеленого сообщает о включении питания. Красный светодиод светится если в зоне обнаружения находится объект.

Установка расстояния срабатывания

Настройку устройства облегчает работа индикатора обнаружения. Это позволяет настроить YL-63 он же FC-51 на срабатывание в реальных условиях. Установка чувствительности датчика выполняется с помощью переменного резистора, установленного на плате. Препятствие устанавливается на требуемом удалении от фотоприборов датчика. Поворотом подвижного контакта переменного резистора на плате модуля YL-63 выполняется установка расстояния срабатывания, добиваются включения красного светодиода. Затем проверяют дистанцию срабатывания перемещением отражающего объекта. Настройку повторяют не менее трех раз.

Программа для Ардуино обработки сигнала Y L-63

Сигнал датчика подается на контакт 12 Ардуино.

Void setup() {
Serial.begin (9600);
pinMode (12, INPUT);
}
void loop() {
Serial.print("Signaal: ");
Serial.println (digitalRead(12));
delay (500);
}

В этой статье мы рассмотрим несколько схем роботов, в которых реализованы следующие варианты поведения:
1. Объезжает препятствие при контакте с ним "усиками".
2. Избегает препятствия без контакта (ИК бампер).
3. Упирается "усиками" в препятствие, отъезжает назад, делает поворот, затем продолжает движение.
4. Избегает препятствие с разворотом (ИК бампер).
5. Следует за объектом, сохраняя дистанцию (ИК бампер).

Перед тем как приступить к рассмотрению схем давайте кратко разберем особенности микросхемы L293.

Рис.1. Расположение выводов микросхемы L293D

Внутри нее имеется два драйвера для управления электромоторами.
Моторы подключаются к выходам OUTPUT. Мы имеем возможность подключить два двигателя постоянного тока.
8-й и 16-й выводы микросхемы подключаются к плюсу питания. Поддерживается раздельное питание, т.е. 16-й вывод (Vss) предназначен для питания самой микросхемы (5 вольт), а контакт Vs (8-й вывод) можно подключить к источнику питания для двигателей. Максимальное напряжение силовой части составляет 36 вольт.
Я их разделять не буду и во всех схемах подключу к общему источнику питания.
Минус питания или земля (GND) подключается к выводам № 4, 5, 12, 13. Эти контакты, кроме того, обеспечивают теплоотвод микросхемы, поэтому при пайке на плату для этих выводов желательно выделить увеличенную металлизированную область.
Еще микросхема имеет входы ENABLE1 и ENABLE2.
Для включения драйверов, необходимо наличие логической единицы на этих выводах, проще говоря 1-й и 9-й выводы подключаем к плюсу питания.
Также имеются входы INPUT для управления двигателями.

Рис.2. Таблица соответствия логических уровней на входах и выходах.

Выше представлена таблица, по которой можно понять, что если на вход INPUT1 подать логической единицу, т.е. соединить с плюсом источника питания, а вход INPUT2 - с минусом, то мотор М1 начнет вращаться в определенную сторону. А если поменять местами логические уровни на этих входах, то мотор М1 будет вращаться в другую сторону.
Аналогично происходит и со второй частью, к которой подключается мотор М2.

Именно эта особенность и использована в представленных схемах роботов.

Схема №1. Робот объезжает препятствие при контакте с ним "усиками".

Рис.3. Схема №1. С механическими датчиками препятствий.

После подачи питания моторы будут вращаться в определенную сторону, двигая робота вперед. Это происходит за счет того, что на INPUT1 через резистор R2 поступает сигнал высокого уровня, так же как и на входе INPUT4. Транзистор VT1 надежно закрыт, база стянута на минус питания, на коллектор ток не втекает.
Объяснять я буду по левой части, т.к. обе части симметричны.
На входе INPUT2 через резистор R3 устанавливается логический 0. Судя по таблице (рис.2) мотор вращается в определенную сторону. В правой части схемы происходит тоже самое и робот едет вперед.
В схеме имеются ключи (SB1, SB2), в качестве которых применены SPDT переключатели. На них с помощью термоклея прикрепляются скрепки и получаются датчики препятствий.

Рис.4. Из скрепок сделаны датчики "усики".

Когда такой датчик упирается в препятствие, ключ замыкается и вход INPUT2 оказывается подключенным к плюсу питания, т.е. подается логическая "1". В этот же момент времени открывается и транзистор, вследствие чего логическая единица на входе INPUT1 сменяется логическим нулем. Мотор при нажатой кнопке вращается в другую сторону. Рывками происходят микропереключения и мотор разворачивает робота от препятствия, до того момента, пока датчик перестанет соприкасаться с препятствием.

Как вы уже догадались, переключатели или сами моторы нужно расположить крест-накрест.

Схема №2. Робот избегает препятствия без контакта (ИК бампер)

Еще более интересное поведение можно реализовать, если в качестве датчиков использовать TSOP-приемники для приема инфракрасных сигналов. Это будет некое подобие ИК-бампера.
Итак, теперь схема выглядит таким образом.

Рис.5. Схема №2. С инфракрасными датчиками препятствий.

"Модуль приема ИК" работает так: при поступлении инфракрасного сигнала на TSOP-приемник на его выходе появляется отрицательное напряжение, которое отпирает PNP транзистор, и ток с плюса питания поступает на входную цепь микросхемы. Если в прошлый раз были использованы механические переключатели, с так называемыми усиками из скрепок, то новая схема позволит роботу не врезаться в препятствие, а реагировать на него с некоторой дистанции. Это выглядит так:

Приемная часть выполнена таким образом: два абсолютно одинаковых модуля (левый и правый) скрепленные между собой (рис.8).

В качестве приемников использованы TSOP1136 с рабочей частотой 36 кГц. Расположение выводов представлено на рисунке ниже.

Рис.6. TSOP1136.

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


Рис.7. Схема излучателя на NE555.

На шасси робота закреплен фрагмент макетной платы, на которую можно установить желаемое количество ик-диодов.
На диоды желательно надеть термоусадочные трубочки или что нибудь подобное, чтобы они светили вперед, а не в разные стороны.

Рис.8. ИК бампер.

После подачи питания робот может попятиться назад, это из-за слишком большой чувствительности TSOP-приемников. Они воспринимают отраженный сигнал даже от пола, стен и других поверхностей. Поэтому в схеме излучателя ИК-сигнала (рис.7) использован подстроечный резистор, с помощью него уменьшаем яркость инфракрасных диодов и добиваемся желаемой чувствительности.

Схема №3. Такой робот отъезжает назад от препятствия, делая поворот.

Давайте рассмотрим еще одну интересную схему.

Рис.9. Схема №3.

Когда такой робот упирается в препятствие одним из своих усиков, то он отъезжает назад, делая небольшой поворот, затем после небольшой паузы робот продолжает движение. Поведение показано на анимации ниже:

Эта схема тоже полностью совместима с инфракрасным бампером, от предыдущей схемы.

В схеме появились электролитические конденсаторы между эмиттером и базовыми резисторами транзисторов VT1 и VT2. Появились диоды VD1, VD2 и светодиоды HL1, HL2.
Давайте по порядку разберем, зачем нужны эти дополнительные компоненты.
Итак, когда замыкается переключатель SB1, т.е. первый датчик, ток от плюса питания через диод VD1 и токоограничивающий резистор R1 поступает на базу транзистора. Он открывается, меняя логический уровень на входе INPUT1, на входе INPUT2 уровень тоже меняется.
В этот момент ток также поступает на конденсатор C1 и он заряжается. Мотор М1 резко меняет направление вращения и робот отъезжает назад от препятствия. На видео можно заметить, что второй мотор тоже меняет направление движения, но на более короткий промежуток времени. Это происходит из-за того, что при замыкании датчика SB1, ток от плюса питания поступает также и на правую часть схемы, через светодиод HL2. Светодиоды не только подают кратковременный сигнал о столкновении с препятствием, но и являются гасителем напряжения, поступающего на противоположную половину схемы. Проще говоря, при замыкании ключа SB1, конденсатор C2 заряжается меньше, чем C1. А при замыкании ключа (датчика) SB2 происходит тоже самое, но наоборот - С2 заряжается больше (т.е. напряжение на его обкладках больше). Это позволяет не только отъехать от препятствия, но и немного отвернуться от него. Угол этого отворачивания зависит от емкости конденсаторов C1 и С2. Конденсаторы емкостью 22 мкФ, на мой взгляд, являются оптимальными. При емкости 47 мкФ угол поворота будет больше.
Также на видео можно заметить, что после того, как робот отъезжает назад от препятствия, то присутствует небольшая пауза перед тем как он поедет вперед. Это происходит из-за разрядки конденсаторов, т.е. в некоторый момент времени логические сигналы на входах INPUT уравновешиваются и драйвер на секунду перестает понимать в какую сторону вращать мотор. Но когда C1 и С2 разрядятся, на входах INPUT установятся первоначальные логические уровни.
Диоды VD1 и VD2 препятствуют разрядке конденсаторов через светодиоды HL1, HL2. Без светодиодов схема не работает.

Схема №4. Предыдущая схема с ИК бампером.

Эта схема отличается от предыдущей тем, что вместо механических датчиков здесь использованы инфракрасные (ИК бампер).

Рис.10. Схема №4.

Коллекторы PNP транзисторов VT1 и VT2 при обнаружении препятствия, подадут сигнал на входную цепь микросхемы. Далее всё происходит также, как было описано ранее, только такой робот при обнаружении препятствия перед собой отъезжает назад, делает поворот, затем продолжает движение.
Поведение показано на анимации ниже:

У робота будет более резкое поведение, если уменьшить емкость конденсаторов C1 и C2 например до 1 мкФ (минимальная емкость 0,22 мкФ).

Как сделать так, чтобы робот следовал за объектом?

Во всех схемах, представленных выше, датчики-сенсоры или сами моторы должны быть расположены крест-накрест. А при прямом подключении (когда левый датчик "командует" левым двигателем, правый - правым) робот будет не избегать препятствие, а наоборот следовать за ним. Благодаря прямому подключению можно добиться очень интересного поведения робота - он будет активно преследовать объект, сохраняя определенную дистанцию. Расстояние до объекта зависит от яркости ИК диодов на бампере (настроить).

Еще немного фотографий:

В шасси использованы металлические детали от конструктора. Макетная плата откидывается для удобства замены батареек.

Питание робота осуществляется от 4-х батареек АА.

Варианты изготовления корпуса и шасси для робота ограничиваются только вашей фантазией, тем более в продаже имеется много готовых решений. В моем случае схема будет перенесена на плату, т.к. куча проводов это не эстетично. Также будут установлены аккумуляторы со схемой подзарядки. А какие еще доработки можно произвести или добавить новые функции - это всё вы можете предложить в комментариях.

К этой статье имеется видео, в котором подробно описана работа схем и продемонстрированы разные варианты поведения робота.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Элементы схемы №1 и №2 (кроме ИК бампера)
VT1, VT2 Биполярный транзистор

2N3904

2 В блокнот
R1, R2, R4, R6 Резистор

10 кОм

4 В блокнот
R3, R5 Резистор

4.7 кОм

2 В блокнот
C1 100 мкФ 1 В блокнот
Элементы "модуля приема ИК" на схеме №2, №4
VT1, VT2 Биполярный транзистор

2N3906

2 КТ361, КТ816 В блокнот
R1, R2 Резистор

100 Ом

2 В блокнот
C1, C2 Электролитический конденсатор 10-47 мкФ 2 В блокнот
Элементы "модуля излучения ИК сигнала" рис.7
R1 Резистор

1 кОм

1 В блокнот
R2 Резистор

1.5 кОм

1 В блокнот
R3 Переменный резистор 20 кОм 1 для настройки яркости FD1, FD2 В блокнот
C1 Конденсатор керамический 0.01 мкФ 1 В блокнот
C2 Конденсатор керамический 0.1 мкФ 1 В блокнот
FD1, FD2 ИК диод 2 Любой