Электронная библиотека » Джон Ловин » » онлайн чтение - страница 12


  • Текст добавлен: 14 ноября 2013, 04:35


Автор книги: Джон Ловин


Жанр: Зарубежная образовательная литература, Наука и Образование


сообщить о неприемлемом содержимом

Текущая страница: 12 (всего у книги 22 страниц)

Шрифт:
- 100% +
Четыре режима работы

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

• Поиск. Окружающее пространство слабо освещено или находится в темноте. Реакция робота: двигатель рулевого механизма – полные обороты, ходовой двигатель – половинные обороты.

• Движение. Найден источник света. Реакция робота: двигатель рулевого механизма отключен, ходовой двигатель – полные обороты.

• Ослепление. Яркий свет. Реакция робота: двигатель рулевого механизма – половинные обороты, ходовой двигатель – реверсивный режим.

• Касание. Столкновение с препятствием. Реакция робота: двигатель рулевого механизма – полные обороты, ходовой двигатель – реверсирование.

Наблюдаемое поведение

В 1950 году Вальтер написал две статьи для Scientific American («Имитация жизни», май 1950 г. и «Машина, которая учится», август 1951 г.), а затем и книгу под названием «Живой мозг» (Norton, New York, 1963). Взаимодействие между нейронной системой и окружающей средой породило неожиданные и сложные типы поведения.

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

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

Строим черепаху Вальтера

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

• Кернер. Используется для нанесения углублений на лист металла для облегчения сверления. Если не наметить центр отверстия с помощью кернера, то сверло легко может «увести». Для нанесения отметки поставьте острие кернера в точку предполагаемого отверстия. Ударьте молотком для нанесения углубления.

• Ручные ножницы по металлу. Используются для резки листового металла. Я бы рекомендовал ножницы размером 75 см. Процесс резки аналогичен использованию обычных ножниц. Примечание: резка металла значительно труднее резки бумаги.

• Тиски. Используются для фиксации металлических деталей для сверления и сгибания.

• Дрель

• Молоток

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

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

Ходовой и поворотный двигатели

Ходовой двигатель представляет собой двигатель с редуктором 100:1 (см. рис. 8.1). Мне нравится этот двигатель, поскольку он имеет скобу для крепления. Для поворотного двигателя я использовал стандартный сервомотор с усилием на валу 1,3 кгс. Для шасси потребуются три куска листового металла.

Рис. 8.1. Двигатель постоянного тока 1,5–3 В с редуктором 100:1


Ходовой двигатель и переднее колесо закреплены на П-образном швеллере (см. рис. 8.2). П-образный швеллер изготовлен из стальной полосы размерами 25 мм на 125 мм и толщиной 0,4 мм. В центре полосы необходимо просверлить три отверстия для крепления фланца сервомотора. Диаметр центрального отверстия (3 мм) больше диаметра крайних отверстий (1,5 мм). Отсоедините фланец от сервомотора путем выворачивания центрального винта и вытягивания фланца вверх. Положите фланец на скобу швеллера и разметьте положения центрального и боковых отверстий. Просверлите три отверстия. Присоедините фланец к сервомотору и заверните центральный винт. Для крайних отверстий используйте винты с гайками диаметром 3 мм. Просверлите три отверстия 3,1 мм для бокового крепления Г-образной скобы ходового двигателя. Просверлите два соосных отверстия диаметром 3 мм для крепления переднего колеса.

Рис. 8.2. П-образная скоба крепления ведущего колеса


Зажмите полосу в тиски и согните ее концы под углом 90°, чтобы получилась П-образная скоба.

Используйте Г-образную скобу для крепления ходового двигателя к П-образному швеллеру (см. рис. 8.3). Размеры Г-образной скобы 38х 76 мм. Наметьте отверстия на пластине согласно положению соответствующих отверстий на корпусе редуктора. Убедитесь, что три отверстия на Г-образной скобе соответствуют отверстиям на П-образной скобе швеллера.

Рис. 8.3. Г-образная скоба крепления редуктора к П-скобе


На рис. 8.4 изображен чертеж основания с изображением позиции сервомотора с крутящим моментом 1,3 кгс. Размеры основания 76х140 мм. На основании будут смонтированы источник питания и электрическая схема. Для вырезания отверстия под сервомотор воспользуйтесь чертежом.

Рис. 8.4. Чертеж основания конструкции с вырезом под сервомотор с крутящим моментом 1,3 кгс и отверстиями под скобу крепления задней оси


Сперва просверлите четыре отверстия диаметром 3 мм по краям прямоугольника. Затем высверливайте отверстия по сторонам прямоугольника. Такой способ существенно легче, чем выпиливание или «выкусывание» металла по периметру необходимого отверстия. После высверливания отверстия для подравнивания краев можно использовать кусачки. Окончательная обработка краев производится напильником, после чего можно монтировать сервомотор. Просверлите сзади два отверстия для крепления скобы задней оси.

Чертеж скобы крепления задней оси приведен на рис. 8.5. Она изготовлена из алюминиевой полосы размерами 3х12х250 мм. Перед сгибанием просверлите в алюминиевой полосе четыре отверстия диаметром 3 мм. Для задней оси я использовал проволоку от вешалки для одежды.

Рис. 8.5. Скоба крепления задней оси


Потом мы должны закрепить переднее ведущее колесу на оси редуктора ходового двигателя. Я использовал резиновое колесико, садящееся с трением на ось 3 мм, а диаметр вала редуктора 100:1 ходового двигателя составляет 2 мм.

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

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

Ведущее колесо просто надевается на 3-миллиметровую трубку. Трения между колесом и осью достаточно, чтобы вращение колеса и движение робота осуществлялось без проскальзывания. Если вы хотите постоянно закрепить колесо на оси (чего я обычно не делаю), то достаточно развести немного эпоксидного клея и нанести его на ось перед надеванием колеса.

Балансировка

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

Панцирь

В оригинальной конструкции робота черепахи был использован прозрачный пластиковый панцирь. Панцирь был соединен с выключателем, который при срабатывании переключал схему робота в режим «убегания». Я испробовал несколько типов конструкций, но остался неудовлетворен ими. В конце концов, мне ничего не оставалось, как создать свою конструкцию панциря.

Вместо того чтобы делать цельный панцирь, я изготовил бампер, опоясывающий робота. Бампер изготовлен из алюминиевой полосы размерами 3х12х810 мм (см. рис. 8.6). Центр полосы и каждый изгиб отмечены с помощью карандаша. Полосу необходимо зажать в тиски и изогнуть в требуемых местах на нужный угол. Два конца полосы сходятся в задней части бампера. Эти концы скрепляются вместе с помощью отрезка полосы размерами 3х12х25 мм. В каждом из концов полосы сверлится отверстие диаметром 3-миллиметров. Соответствующие отверстия сверлятся на концах бампера. Полоса скрепляется с бампером с помощью двух 3-миллиметровых винтов с гайками (см. рис. 8.7).

Рис. 8.6. Размеры бампера, согнутого из алюминиевой полосы 3х12х815 мм


Рис. 8.7 Детальный вид части алюминиевой полосы в месте соединения концов бампера


Для крепления бампера к роботу используется верхняя скоба, повторяющая размеры и форму передней части бампера (см. рис. 8.8). Верхняя скоба изготовлена из алюминиевой полосы размерами 3х12х370 мм. Аналогично бамперу центр полосы и места необходимых изгибов отмечены карандашом. Полоса изгибается в тисках таким же образом, как и бампер.

Рис. 8.8. Боковой вид верхней скобы, изготовленной из алюминиевой полосы 3х12х370 мм


Поиск центра тяжести бампера

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

Крепление бампера к основанию конструкции робота

Бампер прикрепляется к «телу» робота с помощью верхней скобы. Просверлите три отверстия диаметром 3 мм в верхней части скобы. Одно отверстие сверлится по центру; два других на расстоянии 28 мм от центра (см. рис. 8.9). Три соответствующих отверстия нужно просверлить в основании робота за сервомотором. Положение отверстий должно быть выбрано таким образом, чтобы зазор между бампером и задними колесами лежал в переделах 3–6 мм. Положение соответствующего центрального отверстия на основании должно быть передвинуто вперед примерно на 6 мм.

Рис. 8.9. Боковой вид расположения отверстий в горизонтальной части верхней скобы


Скоба крепится к основанию при помощи двух 3-миллиметровых винтов длиной 25 мм, четырех гаек 3 мм, и двух пружин длиной 25 мм, внутренним диаметром 3 мм и усилием натяжения порядка 900 г (см. рис. 8.10). Жесткость крепления бампера может быть отрегулирована затягиванием или отпусканием крепежных гаек. После установки бампера, при касании или столкновении робота с препятствием бампер будет отклоняться назад и замыкать контакты выключателя.

Рис. 8.10. Боковой вид крепления верхней скобы к основанию робота при


Выключатель бампера

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

Другая половина выключателя состоит из пластмассового винта 3 мм длиной 25 мм и трех гаек, одна из которых латунная и к которой припаивается второй контактный провод выключателя (см. рис. 8.11). На рис. 8.12 изображен чертеж выключателя в сборе. Регулировка выключателя заключается в том, чтобы расположить нижнюю контактную латунную гайку непосредственно под верхней алюминиевой скобой, но без взаимного касания. Когда верхняя скоба наклоняется вперед, то она касается латунной гайки, замыкая, таким образом, электрический контакт.

Рис. 8.11. Боковой вид датчика «касания» (половина датчика на основании робота), пластиковый винт с верхней латунной гайкой


Рис. 8.12. Детальная фотография крепления датчика «касания» и пружинной подвески верхней скобы


Фоторезистор

В моем прототипе устройства использованы CdS фоторезисторы с темновым сопротивлением порядка 100 кОм и сопротивлением на свету порядка 10 кОм. Наилучшим местом для закрепления фоторезисторов является верхняя часть 100:1 редуктора ходового двигателя (см. рис. 8.13). Для крепления фоторезисторов я использовал небольшую пластиковую пластинку, закрепленную под углом 45° вверх и светонепроницаемый козырек, помещенный между фоторезисторами (см. рис. 8.14). Закрепление фоторезисторов на площадке переднего колеса автоматически обеспечивает совпадение направления приема светового излучения с направлением движения. Такой тип повторяет конструкцию оригинальной черепахи робота.

Рис. 8.13. Детальная фотография конструкции узла переднего ведущего колеса, содержащая противовес, ведущее колесо, двигатель с редуктором и датчики освещенности


Рис. 8.14. Изометрический вид блока датчиков


Использование двух CdS фоторезисторов сильно облегчает вычисления, необходимые для решения задачи следования за источником света. Для этого требуется алгоритм, аналогичный алгоритму действия устройства системы слежения за направлением источника света, описанный в гл. 6. Работа блока фоторезисторов проиллюстрирована на рис. 8.15. Когда оба датчика освещены одинаково, то их сопротивления приблизительно равны. Если разность показаний каждого их датчиков не превышает ±10 единиц, программа PIC полагает их равными и не отдает команду на устройство поворота. Когда один из датчиков попадает в тень источника света, то разность сопротивлений превышает ±10 единиц. Соответственно PIC микроконтроллер включает устройство поворота для обеспечения равной освещенности датчиков. При этом переднее колесо поворачивается, и робот движется прямо к источнику света. Если освещенность превышает пороговую, то робот переходит в режим «избегания».

Рис. 8.15. Функциональное реагирование блока датчиков


Принципиальная схема

Принципиальная схема робота изображена на рис. 8.16. «Интеллект» робота обеспечивается работой двух микроконтроллеров PIC16F84. Сигнал для управления рулевым механизмом сервомотора снимается с шины RB3 PIC микроконтроллера 2. Ходовой двигатель с редуктором 100:1 соединен с мостовой схемой, состоящей из компонентов Q1-Q4, D1-D4 и R1-R4. Мостовая схема управляется с шин входа/выхода RB1 и RB2. Показатели световых CdS датчиков считываются шинами RB6 и RB7 микроконтроллера 1. Показания датчика касания считываются шиной RB5, что сигнализирует о наличии препятствия. Монтаж устройства я осуществил на двух небольших макетных платах без применения пайки. Макетные платы закреплены на основании робота на крышке батарейного отсека.

Рис. 8.16. Принципиальная электрическая схема робота-черепахи


Для точного моделирования функций исходной конструкции (точного повторения поведения оригинального робота-черепахи конструкции Вальтера) необходимо два микроконтроллера. Распределение вычислительных функций между двумя процессорами обеспечивает более четкую и слаженную работу робота.

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

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

Микроконтроллер 1. Микроконтроллер 1 считывает информацию со световых CdS датчиков и с датчика столкновений. Его связь с микроконтроллером 2 осуществляется с помощью трех шин ввода/вывода.

• Шина ввода/вывода 1 отображает состояние CdS датчика 1. Если сила света, попадающего на CdS 1 больше, чем на CdS 2, то на шине появляется сигнал низкого уровня. Если сила света на обоих датчиках равна, то на выходе присутствует сигнал высокого уровня.

• Шина ввода/вывода 2 отображает состояние CdS датчика 2. Если сила света, попадающего на CdS 2, больше, чем на CdS 1, то на шине появляется сигнал низкого уровня. Если сила света на обоих датчиках равна, то на выходе присутствует сигнал высокого уровня.

• Шина ввода/вывода 3 отображает либо состояния датчика столкновений, либо слишком большую засветку CdS датчиков. В обоих случаях на выходе появляется сигнал высокого уровня.

Микроконтроллер 2. Микроконтроллер 2 проверяет состояние трех шин ввода/вывода и на основании полученной информации управляет движением и поворотом согласно таблице:

Соответственно шины 1 и 2 отражают состояние датчиков CdS, а шина 3 – состояние датчика столкновений.

Добавление состояния «спячки»

Я добавил состояние «спячки», соответствующее общему низкому уровню освещенности. Если оба CdS датчика освещены примерно одинаково, то робот движется вперед. Если датчики освещены в разной степени, то робот поворачивается соответственно направо или налево. Если поступает слишком много света или срабатывает датчик столкновений, то робот переходит в режим избегания.

Питание

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

Программа

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

Рис. 8.17. Блок-схема программы


Программа написана для компилятора PICBASIC и введена непосредственно в PIC16F84. Без особых изменений программа может быть написана на версии PICBASIC Pro. Программа может быть подстроена под имеющиеся экземпляры CdS датчиков, используемых двигателей и т. п.

Программа 1

‘Микроконтроллер 1

start:

High 4: low 4 ‘Мигание светодиода

b7 = 0

button 5,0,255,0,b7,1,avoid ‘Проверка препятствия

pot 7, 255, b0 ‘Считывание датчика CdS 1

pot 6, 255, b1 ‘Считывание датчика CdS 2

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

If b1 >= 250 then slp ‘Да

skip: ‘Нет

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

if b1 < 25 then avoid ‘Да

skip2: ‘Нет

if bo = b1 then straight ‘Освещенность одинакова, вперед

if bo > b1 then greater ‘Проверить освещенность

if bo < b1 then lesser ‘Проверить освещенность

straight:

high 0: high 1: low 2 ‘Сообщение микроконтроллеру 2

goto start ‘Движение прямо

greater:

b2 = b0 – b1 ‘Проверка разности освещенности

if b2 > 10 then rt ‘Если больше 10, поворот направо

goto straight ‘Если нет, движение прямо

lesser:

b2 = b1 – b0 ‘Проверка разности освещенности

if b2 > 10 then lt ‘Если больше 10, поворот налево

goto straight ‘Если нет, движение прямо

rt: ‘Поворот направо, посылка

high 0: low 1: low 2 ‘Сообщение микроконтроллеру 2

goto start

lt: ‘Поворот налево, посылка

low 0: high 1: low 2 ‘Сообщение микроконтроллеру 2

goto start

slp: ‘Режим спячки, посылка

low 0: low 1: low 2 ‘Сообщение микроконтроллеру 2

goto start

avoid: ‘Режим избегания, посылка

low 0: low 1: high 2 ‘Сообщение микроконтроллеру 2

goto start


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации