Категории
Самые читаемые
Лучшие книги » Научные и научно-популярные книги » Техническая литература » Создаем робота-андроида своими руками - Джон Ловин

Создаем робота-андроида своими руками - Джон Ловин

Читать онлайн Создаем робота-андроида своими руками - Джон Ловин

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 28 29 30 31 32 33 34 35 36 ... 54
Перейти на страницу:

if b0 = 2 then lt ‘Поворот налево

if b0 = 3 then fw ‘Движение прямо

if b0 = 4 then avoid ‘Режим избегания

goto start

slp:

low 4: low 5 ‘Выключить двигатель

pulsout 3, b4 ‘Запустить сервомотор

pause 18 ‘Задержка включения сервомотора

goto start ‘Чтение данных микроконтроллера 1

rt: ‘Поворот направо

high 4: low 5 ‘Движение вперед

if b4 > 200 then rt1: ‘Поворот направо максимален

b4 = b4 + 1 ‘Нет

rt1: ‘Да

pulsout 3, b4 ‘Поворот сервомотора

pause 18 ‘Задержка ( 55 Гц)

goto start ‘Чтение данных микроконтроллера 1

lt: ‘Поворот налево

high 4: low 5 ‘Движение вперед

if b4 < 100 then lt1: ‘Поворот налево максимален

b4 = b4 – 1 ‘Нет

lt1: ‘Да

pulsout 3, b4 ‘Поворот сервомотора

pause 18 ‘Задержка (55 Гц)

goto start ‘Чтение данных микроконтроллера 1

fw: ‘Прямо

high 4: low 5 ‘Движение прямо

pulsout 3, b4 ‘Поворот сервомотора

pause 18 ‘Задержка (55 Гц)

goto start ‘Чтение данных микроконтроллера 1

avoid:

low 4: high 5 ‘Движение назад

if b4 > 150 then vr ‘Проверка. Перемена направления направо?

if b4 <= 150 then vl ‘Проверка. Перемена направления налево?

vr: ‘Перемена направления вправо

b5 = b4 – 30 ‘Направление поворота

for b6 = 1 to 120 ‘Цикл задержки 2 с

pulsout 3, b5 ‘Поворот сервомотора

pause 18 ‘Задержка (55 Гц)

next b6 ‘Конец цикла

goto start ‘Чтение данных микроконтроллера 1

vl: ‘Перемена направления влево

b5 = b4 + 30 ‘Направление поворота

for b6 = 1 to 120 ‘Цикл задержки 2 с

pulsout 3, b5 ‘Поворот сервомотора

pause 18 ‘Задержка (55 Гц)

next b6 ‘Конец цикла

goto start

Фотография конструкции робота в сборе показана на рис. 8.18

Рис. 8.18. Вид спереди готовой конструкции

Поведение

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

Робот-прототип демонстрирует следующее поведение. При равномерном освещении (нет отдельного яркого источника) робот движется по прямой или описывает круги, в зависимости от наличия ярких источников в предыдущие моменты времени. При слишком большой общей освещенности он откатывается назад. Если имеется источник средней интенсивности, то он «находит» его и движется прямо по направлению к этому источнику.

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

if b0 <= 250 then skip ‘Достаточно темно?

If b1 >= 250 then slp ‘Да

skip: ‘Нет

Максимальное значение показаний датчика может быть равно 255 (полная темнота). Это значение можно увеличить, чтобы поднять средний уровень освещенности для «спячки».

Уровень освещенности, необходимый для включения режима избегания, можно изменить с помощью строк:

if bo > 25 then skip 2 ‘Слишком много света

if b1 < 25 then avoid ‘Да

skip2: ‘Нет

Увеличение значения, которое в данном случае равно 25, снизит уровень освещенности, при котором робот перейдет в режим избегания. В свою очередь уменьшение численного значения повысит интенсивность света для режима избегания. В большинстве случаев вы захотите уменьшить численное значение параметра. Однако я бы не советовал уменьшать его ниже 9, поскольку даже в режиме полного насыщения сопротивление CdS фотоэлементов никогда не падает до нуля. Моя проверка показала, что сопротивление при полном насыщении не падает ниже 5 единиц.

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

greater:

b2 = b0 – b1

if b2 > 10 then rt

goto straight

lesser:

b2 = b1 – b0

if b2 > 10 then lt

goto straight

В дополнение к этому возможно создание преимущественного направления поворота робота (право– или леворукости) через изменение параметров процедур greater и lesser, но не обеих одновременно. Это означает, что робот будет поворачиваться в одном направлении более «охотно», чем в другом. Например, если мы заменим строку if b2 > 10 then lt в процедуре lesser на if b2 > 15 then lt, то наш робот более охотно будет поворачиваться направо.

Конструкция робота предоставляет много возможностей для экспериментаторов в области робототехники как с точки зрения самой конструкции, так и ее программного обеспечения.

Список компонентов для робота-черепахи Вальтера

• (1) 300x300 мм лист металла толщиной 0,4–0,6 мм

• (1) 3х 12х 300 мм алюминиевая полоса

• (1) сервомотор с крутящим моментом 1,3 кгс

• (1) двигатель с редуктором 1:100

• винты и гайки 3 мм

• винты и гайки 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). Когда оба двигателя включены, робот движется вперед по прямой. Если один из двигателей выключен, то другой двигатель поворачивает конструкцию направо или налево.

1 ... 28 29 30 31 32 33 34 35 36 ... 54
Перейти на страницу:
На этой странице вы можете бесплатно скачать Создаем робота-андроида своими руками - Джон Ловин торрент бесплатно.
Комментарии