Создаем робота-андроида своими руками
Шрифт:
• винты и гайки 2 мм
• (1) 3х 12х 810 мм алюминиевая полоса
• (1) 3х 12х 370 мм алюминиевая полоса
• (1) 3х 12х 50 мм алюминиевая полоса
• (1) стандартный сервомотор с крутящим моментом 1,3 кгс
• (1) двигатель постоянного тока с редуктором 100:1
• (1) ведущее колесо 51 мм под ось 3 мм
• (1) трубка (сталь, латунь) внешний диаметр 3 мм, внутренний диаметр 2 мм
• (2) фоторезистор CdS, темновое R – 100 кОм, световое R – 10 кОм
• (4 Q1-Q4) транзистор NPN 2N2222
• (4 D1-D4) диод 1N914
• (1 D5) светодиод красный
• (4 R1-R4) резистор 1 кОм, 0,25 Вт
• (6 R5-R7, R9-R11) резистор 10 кОм, 0,25 Вт
• (1 R8) резистор 470 Ом, 0,25 Вт
• (4) конденсатор 22 пФ
• (2 C1, C2) конденсатор 0,1 мкФ
• (2 X1, X2) кварцевый резонатор 4 МГц
• (1 Q5) регулятор напряжения 7805
• (2 IC1, IC2) микроконтроллер PIC16F84-04
• Комплектующие: винты 3 мм, пластиковые винты 3 мм длиной 25 мм, гайки латунные 3 мм, пружины длиной 25 мм (усилие 800 грамм)
Поставщики
• Алюминиевые полосы, винты, трубки, пружины можно приобрести в соответствующих магазинах.
• Сервомоторы можно приобрести в специализированных магазинах или заказать у дистрибьюторов.
• Микроконтроллер PIC и переднее ведущее колесо можно заказать в компании Images Company.
Images Company
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Jameco
1355 Shoreway Rd.
Belmont, CA 94002
(650) 592-8097
JDR
1850 South 10 St.
San Jose, CA 95112
(800) 538-5005
Строим робота-охотника за светом
Посмотрим, сможем ли мы сконструировать робота-охотника за светом, обладающего в некотором смысле «интеллектуальным» поведением. В главе 6 мы уже рассматривали систему слежения за источником света на фоторезисторах. Система слежения фиксировала источник света и поворачивалась в его направлении. Когда мы поместили следящую систему на копию робота-черепахи Вальтера, она направляла движение робота на источник света. Такой тип «ориентировочного» поведения мы будем называть первым уровнем системы «стимул-реакция».
Программа иллюстрирует, как алгоритмически управляемые микроконтроллеры могут имитировать функции нейронов. Для строгости примера приведем нейронную схему, которая исполняет те же функции без участия алгоритмически заданного «интеллекта».
На рис. 8.19 показано использование двойного симметричного операционного усилителя с однополярным питанием. Два ОУ включены в схемы компараторов. Работу компаратора мы подробно рассматривали в гл. 5. Если у вас возникли какие либо вопросы по поводу рис. 8.19, перечитайте гл. 5. Два фоторезистора CdS включены последовательно и образуют делитель напряжения. Выход этого фоторезистивного делителя подключен к инвертированному входу одного ОУ и неинвертированному входу другого.
Рис. 8.19. Нейронный компаратор на двух ОУ
Потребуются еще два делителя напряжения. Конструктивно они являются зеркально симметричными. Один делитель составляют резистор 3,9 кОм, подключенный к ИП, и резистор 4,7 кОм, соединенный с землей. Во втором делителе используются резисторы тех же номиналов, но в обратном включении.
Когда оба фоторезистора освещены одинаково, то ни один из светодиодов не горит. Если прикрыть один из фоторезисторов, то соответствующий светодиод загорится.
Каждый из ОУ функционирует как одиночный электронный нейрон. Когда значение электрического стимула превышает или падает ниже заданного порога (зависит от того, какой из ОУ мы рассматриваем), который определяется соответствующим резистивным делителем 3,9 кОм и 4,7 кОм, то «нейрон» активируется. Активация нейрона (т. е. сигнал на выходе ОУ) может быть использована для включения двигателя постоянного тока через NPN транзистор (см. рис. 8.20). В свою очередь двигатели могут обеспечивать перемещение и направление движения робота охотника.
Рис. 8.20. Управление двигателями постоянного тока с помощью нейронного компаратора
Для изготовления простого робота-охотника было использовано шасси, имеющее два двигателя постоянного тока с редукторами (см. рис. 8.21). Когда оба двигателя включены, робот движется вперед по прямой. Если один из двигателей выключен, то другой двигатель поворачивает конструкцию направо или налево.
Рис. 8.21. Общая схема робота – светоохотника
Для нашего робота-охотника при одинаковом освещении фоторезисторов нам необходимо подавать питание на оба двигателя. Для этого между выходом каждого из ОУ и базой NPN транзистора необходимо включить инвертирующий буферный каскад (см. рис. 8.22).
Рис. 8.22. Управление двигателями постоянного тока с помощью нейронных компараторов с инверторами
Поведение
Когда на один из фоторезисторов падает меньше света, чем на другой, один из двигателей соответственно выключается, а другой двигатель поворачивает устройство в направлении источника света. Когда световые потоки сравниваются, включаются оба двигателя и робот движется прямо по направлению на источник света.
Если мы поменяем местами выходы ОУ, управляющие двигателями, то поведение изменится на противоположное. Вместо того чтобы двигаться по направлению к источнику света, робот будет избегать света и искать «убежище».
Дополнительный тип поведения (питание)
Мы можем усложнить поведение робота-охотника, добавив еще один уровень «стимул-реакция» (см. рис. 8.23). Для этой цели подойдет еще одна управляемая светом схема компаратора, которая будет обеспечивать тип поведения «питание». Напомню, что принцип работы компараторов был изложен в гл. 5. Если у вас появились вопросы по рис. 8.23, то прочитайте еще раз эту главу. Второй слой надстроен сверху над первым. Когда интенсивность светового потока достигает критической величины, опорный детектор снимает напряжение с цепей первого слоя и системы питания двигателей. Если мы разместим на конструкции солнечную батарею и диод, то напряжение, генерируемое батареей, будет немного подзаряжать батарею NiCd аккумуляторов. Эту функцию мы назовем «питание».
Рис. 8.23. Схема компаратора для поведения типа «питание»
Еще один тип поведения (отдых)
Понятно, что у нас нет желания, чтобы робот-охотник перемещался в темноте, теряя при этом драгоценную энергию. Поэтому мы добавим еще один слой поведения. Третьим слоем будет еще один пороговый детектор (см. рис. 8.24). Этот детектор отключает напряжение от цепей первого слоя, системы питания двигателя и цепей второго слоя при уровне освещенности, близком к темноте. При повышении среднего уровня освещенности система восстанавливает питание первого слоя, подает напряжение на двигатели и цепи второго слоя.