Идея создать "глазастого" робота не нова.
В интернете можно найти много статей про самодвижущиеся машинки-роботы, которые реагируют на свет или на рисунок нанесенный на пол.
Одна из наиболее подробных инструкций по созданию такого робота здесь: http://myrobot.ru/stepbystep/el_simple_robot.php. Это очень хорошая статья про робота на одной микросхеме L293D (драйвер двигателя). В этой статье описывается робот, двигающийся по полосе.
Мы попробуем в какой-то мере повторить такого робота, но на новом уровне - с применением платы Марсоход. Почему нам нужна эта плата? Почему не сделать на одной микросхеме, как написано в той статье? Плата Марсоход позволит нам в будущем дать роботу больше ума. У нашей платы больше возможностей для развития.
Что нам понадобится?
- платформа-машинка с двумя коллекторными двигателями с редукторами;
- батарейки или аккумуляторы;
- плата Марсоход;
- "глаза" - светочувствительные датчики.
В качестве светочувствительного датчика можно использовать фототранзисторы типа PTR1, а можно взять "чувствительный модуль" со старого ненужного принтера. В принтерах бывает даже несколько таких датчиков. Они используются при подаче бумаги или как определитель крайнего положения печатающей головки. Вот такие датчики:
У этих датчиков от принтеров есть полезное нам свойство. Они имеют в сборе на маленькой платке светоизлучатель и светоприемник (правда в невидимом инфракрасном диапазоне). Излучаемый свет, если есть светлое препятствие (например белая бумага), возвращается назад и фотоприемник видит его.
Схема подключения датчиков вот такая:
На выходы DP и DN в проекте для платы Марсоход подаем сигнал логической единицы - это будет питание на излучающий светодиод. Коллекторы фототранзисторов подключаем ко входам key[2] и key[3]. Внутри микросхемы в свойствах этих входов мы включили "pull-up" резистор (подтягивающие к логической единицы резисторы).
Если датчик поднести к листу белой бумаги, то отраженный свет откроет фототранзистор и на входе key появится ноль вместо единицы.
Крепим эти датчики к нашей машинке вот так:
Еще одно фото:
В плату Марсоход нужно "залить" новый проект, который будет управлять моторами в зависимости от срабатывания фото датчиков. На самом деле проект этот минимальный. Его смысл очень прост. Пока оба датчика видят отраженный свет - оба двигателя включены и машинка едет прямо. Если один из датчиков не видит отраженного света, то значит дорожка уходит в сторону. Один двигатель выключается, а второй продолжает работать и машинка развернувшись возвращается на правильный путь.
Взять проект для платы Марсоход можно здесь:
Если Вы откроете проект в среде Altera QuartusII, то увидите следующую логическую схему:
Возможно Вы будете удивлены: "Зачем в таком проекте еще и счетчик и компаратор?". Это такая регулировка мощности/скорости двигателей. На двигатели мы подаем не постоянное напряжение, а импульсы. Чем шире подаваемые импульсы и короче паузы между ними, тем быстрее едет машинка.
Вообще, разные регулировки нужны и их довольно много. Нужно правильно выставить фото датчики, подобрать растояние от них до пола и расстояние между ними. Нужно выбрать оптимальную скорость машинки - определяется компаратором в схеме - когда значение счетчика меньше некоторого порога - импульс на двигатели подается, если больше порога, то пауза. Даже освещение в комнате может влиять . Тем не менее, все реализуемо. Нужно только чуть чуть терпения.
На большом листе белой бумаги рисуем черную "дорожку". И пробуем запустить робота.
Уррррра!!! Получилось!!!
Подробнее...