Джон Ловин Создаем робота-андроида своими руками
Введение
Создание электронных устройств является интересным и увлекательным занятием, а конструирование роботов может принести наибольшее удовлетворение. В этом случае вам придется создавать не только электронные схемы и узлы, но воспользоваться некоторыми другими технологиями. Создание робота включает решение следующих технологических проблем:
• система питания устройства
• моторы и сервомеханизмы для обеспечения движения и перемещения устройства
• системы чувствительных датчиков (сенсоров)
• элементы искусственного интеллекта
По каждой из этих проблем существует многочисленная специальная литература, и очевидно, что объем одной книги не позволит охватить все многообразие применяемых технологий. Тем не менее мы коснемся большинства из них, что позволит вам получить начальные представления о задаче и может послужить основой для дальнейшего самостоятельного экспериментирования.
Робототехника является развивающейся дисциплиной. Многие подходы известны уже сегодня, но вряд ли кто-нибудь сможет сказать, какие методы и технологии конструирования будут использоваться через сто лет. Как и биологические системы, робототехника развивается в соответствии с Дарвиновской моделью «естественного отбора».
Занявшись созданием роботов, вы не останетесь в одиночестве. Я был очень удивлен, когда узнал, что многие энтузиасты, государственные организации, частные фирмы, спортивные и технические клубы занимаются вопросами любительского конструирования роботов. Наиболее «продвинутой» программой по робототехнике из тех, которые я когда-либо видел, обладает американское космическое агентство НАСА. Большинство разработок можно найти в открытом доступе. Если у вас есть Интернет – воспользуйтесь любой поисковой системой (Yahoo, Exite и т. д.) по ключевому слову robotics. Вы найдете массу информации, посвященной робототехнике, на сайтах различных компаний, университетов, клубов, форумов и просто энтузиастов.
Благодарности
Я хотел бы выразить благодарность некоторым коллегам, оказавшим неоценимую помощь при создании этой книги: Мэтту Вагнеру, моему агенту в Waterside Productions, Скотту Грилло, помогавшему выдержать график работы, и Стефану Смиту за большую помощь в редактировании текста.
Глава 1 Начало
Некоторые историки считают, что началом робототехники можно считать времена античной Греции. Примерно в 270 году до н. э. греческий инженер Ктесибус создавал музыкальные органы и клепсидры (водяные часы), в которых имелись движущиеся фигуры.
Другие историки полагают, что робототехника началась с появлением механических кукол. Примерно в 1770 году Пьер Жаке-Дрю – швейцарский часовой мастер и изобретатель наручных часов изготовил три замечательные куклы. Одна из созданных им кукол «умела» писать, другая – играть на органе, а третья – рисовать картины. Эти удивительные механические куклы, предназначенные для развлечения королевской семьи, проявляли свое «искусство» при помощи рычажков, шестеренок и пружин.
Позднее, в 1898 году, Никола Тесла построил дистанционно управляемую «ныряющую» лодку. Для 1898 года это было немалым достижением, и лодка демонстрировалась в Мэдисон Сквер Гарден. Тесла планировал создать лодку, способную к автономному плаванию, но за недостатком финансирования исследования пришлось прекратить.
Слово «робот» впервые появилось в 1921 году в пьесе «Р.У.Р.» (Россумские Универсальные Роботы), написанной знаменитым чешским драматургом Карелом Чапеком. Робот по-чешски означает «рабочий». В пьесе описывались механические слуги – «роботы». Когда этих роботов наделили человеческими эмоциями, они восстали против своих хозяев и уничтожили их.
Исторически можно найти немало примеров роботов – предметов неживой природы, копирующих человеческую внешность и некоторые человеческие «функции». Таких «человекоподобных» роботов принято называть андроидами.
С легкой руки Карела Чапека роботы стали главными героями многих научно-фантастических книг и фильмов. Развитие темы «роботов» привело к появлению их многочисленных разновидностей. Наряду со старомодными «железными» людьми, появились киборги – существа частично «человеческого», а частично – «машинного» происхождения, и андроиды — роботы, имеющие человеческий облик.
Многие впервые увидели «настоящего» робота на всемирной ярмарке 1939 года. Фирма Westinghouse Electric создала робота Electro – движущегося человека. У робота Electro имелись моторчики и система приводов, позволявшие ему «двигать» ногами, руками и ртом. Робот не «умел» делать никакой полезной работы – его просто демонстрировали на сцене в компании «механической» собаки Спарко.
Зачем создавать роботов?
Применение роботов оказалось совершенно необходимым для многих производств, прежде всего потому, что стоимость «труда» робота оказалось значительно ниже стоимости такой же операции, производимой работником – человеком. Более того, робота достаточно запрограммировать один раз, и он будет совершать требуемое действие с точностью, превосходящей точность работы любого квалифицированного рабочего. С другой стороны, человек способен выполнять различные задания и с этой точки зрения является значительно более гибким. Роботы, как правило, предназначены для выполнения какой-то одной операции. Например, робота, предназначенного для сварки, вряд ли удастся «научить» считать детали в бункере.
Существующие наиболее совершенные промышленные роботы очень скоро превратятся в «динозавров». Сегодняшняя «младенческая» стадия эволюции роботов заканчивается, появляются новые, гораздо более универсальные роботы, вбирающие в себя все новые качества человеческого интеллекта.
Персональный компьютер уже произвел переворот в обществе, но «персональный» робот еще не появился. Причина очевидна – создание такого робота намного сложнее. Помимо развитого интеллекта он должен хорошо «уметь» ориентироваться и перемещаться в пространстве и осуществлять необходимые манипуляции для достижения поставленной цели.
Применение роботов
Понятно, что гораздо проще создать «домашнего» робота, выполняющего какую-то одну работу. Например, уже сегодня существуют небольшие мобильные роботы, которые могут «самостоятельно» постричь траву на газоне. Эти роботы работают от солнечных батарей и не требуют программирования. По периметру газона закапывается провод; робот чувствует этот провод и остается внутри периметра, не выходя за его пределы.
Создание полезного персонального робота очень сложно. Вообще говоря, эта проблема выходит за рамки данной книги, да, пожалуй, и любой современной книги по робототехнике. Резонно спросить – а какова вообще тогда цель этой книги? Я надеюсь, что, прочитав эту книгу и построив несколько моделей роботов, вы приобретете необходимый опыт и сможете внести свой вклад в развитие робототехники.
Способность к созданию нового не есть необходимая принадлежность исключительно университетского диплома. Роботы создаются отнюдь не только учеными в стенах университетов и промышленных компаний. Экспериментируя и «играя» с роботами, вы можете научиться многим полезным вещам: работе искусственного интеллекта, принципам нейросетей, грамотной постановке целей, задачам «навигации», работе сенсоров и исполнительных механизмов и т. д. Первоначальное знакомство с основами робототехники может перерасти в ее серьезное изучение. И с этой точки зрения «любительская» робототехника вносит свой вклад, подчас предлагая изящные и оригинальные решения, превосходящие «профессиональные».
Как говорится в поговорке: «Семь раз отмерь – один раз отрежь». Прежде чем начать строить робота, задайте себе вопрос: «Для какой цели он предназначен? Что он будет делать и каким образом?» Моей мечтой является создание маленького робота, который бы автоматически обслуживал кошачий туалет.
Эта книга содержит необходимую информацию об электрических схемах, «чувствительных» элементах, системах, обеспечивающих движение, нейронных сетях и микроконтроллерах, которые могут потребоваться при создании робота. Но перед тем как мы приступим, рассмотрим некоторые известные и возможные будущие области применения роботов. В настоящее время наиболее совершенные роботы создаются инженерами НАСА и военными специалистами. Нетрудно догадаться, что НАСА использует роботов для исследования космического пространства и организации дистанционной передачи информации. С другой стороны, военные пытаются использовать роботов в военных целях.
Исследования
НАСА регулярно посылает беспилотные автоматические станции в тех случаях, когда отправка космонавтов-исследователей не представляется возможной. Главная причина такого решения проста – экономика. Гораздо дешевле послать в космос «невозвращаемого» робота, чем человека. Космонавту требуются специальные условия: воздух для дыхания, еда, тепло и достаточное жизненное пространство. И, говоря откровенно, понятным желанием космонавта является выжить в космической экспедиции и вернуться на Землю, так сказать, «при жизни».
Космическая станция совершает полет по солнечной системе и с помощью своих «электронных» глаз передает на Землю впечатляющие картины планет и их спутников. Автоматическая станция Viking искала на Марсе признаки жизни и передавала на землю фотографии марсианского ландшафта. НАСА разрабатывает вездеходы для исследования планет, космические зонды, специальные вездеходы на «паучьих» лапах и подводные вездеходы. В настоящее время у НАСА имеются лучшие в мире программы по дистанционному управлению роботами, создаваемые Агентством космического управления и технологий (OSAT).
НАСА утверждает, что в 2004 году более 50 процентов действий вне космического корабля будет осуществляться через системы дистанционного управления. Более подробные объяснения принципов дистанционного управления и наблюдения можно найти в главе 9.
Роботизованные космические станции, запущенные с Земли, дали возможность наблюдать потрясающие воображение виды соседних планет солнечной системы. В наш век сокращающихся бюджетов роботы-исследователи наилучшим образом смогут использовать средства налогоплательщиков. Понятно, что автоматические роботизованные станции обходятся значительно дешевле обитаемых. Вот один пример. Марсианский следопыт (Pathfinder) как раз представляет новое поколение недорогих космических исследовательских устройств.
Марсианский следопыт (Sojourner)
Марсианский «следопыт» состоит из спускаемого аппарата и марсохода. Он был запущен с Земли в декабре 1996 года с помощью ракеты-носителя McDonnel Douglas Delta II и начал свое путешествие к Марсу. Устройство достигло поверхности Марса 4 июля 1997 года.
«Следопыт» не вышел на круговую орбиту Марса, вместо этого он влетел в марсианскую атмосферу на скорости 27 тыс. км/ч, или 7,6 км/с. Для предотвращения сгорания аппарата в атмосфере были предусмотрены: жаропрочная внешняя оболочка, парашюты, тормозные ракеты и воздушные подушки. Хотя приземление было смягчено подушками, ускорение при ударе достигло 40 g.
«Следопыт» приземлился в районе Ares Vallis. Место посадки находится в устье древнего русла марсианского «канала» – месте, где в зоне доступности марсохода может оказаться много различных горных пород. Предположительно эти породы были смыты с марсианских гор в те времена, когда на Марсе существовали водяные потоки. После посадки спускаемый аппарат раскрылся (см. рис. 1.1) и «выпустил» автоматический марсоход.
Рис. 1.1. Марсианский следопыт. Фото НАСА
Сам вездеход, или марсоход, доставленный «Следопытом» был назван «Попутчик» (Sojourner). «Попутчик» представляет собой новый класс небольших роботизованных исследовательских комплексов, иногда называемых «микровездеходами». При весе всего в 10,5 кг он имеет размеры: 280 мм в высоту, 630 мм в длину и 480 мм в ширину. Марсоход снабжен уникальной шестиколесной системой передвижения (Rocher-Bogie – горная повозка), разработанной Jet Propulsion Laboratories (JPL) в конце 80-х годов. Основным источником энергии для марсохода служит панель солнечной батареи, содержащая более 200 элементов с отдаваемой мощностью батареи примерно 16 ватт. «Попутчик» начал исследование поверхности Марса в июле 1997 года. Перед этим этот робот был известен под именем Rocky IV. Совершенствование этого робота «микровездехода» прошло несколько стадий, отраженных в прототипах от Rocky I до Rocky IV.
И спускаемый аппарат, и сам марсоход снабжены системой стереовидеонаблюдения. Для определения состава горных пород марсоход имеет рентгеновский спектрометр для анализа альфа – частиц. Спускаемый аппарат имел оборудование для проведения атмосферных и метеорологических наблюдений, а также играл роль ретранслятора для передачи данных и картинок с марсохода на Землю.
Цель экспедиции. Марсоход «Попутчик» сам по себе являлся целью эксперимента. Данные, полученные от марсохода, подтвердили, что использование подобных «микровездеходов» экономически оправдано и полезно. В дополнение к заданиям, описанным выше, экспедиция преследовала следующие цели:
• Фотографирование ближних и дальних окрестностей поверхности Марса
• Анализ перемещения грунта
• Определение навигационного счисления местоположения на Марсе
• Измерение топкости марсианского грунта
• Запись данных о перемещениях устройства
• Определение тепловых режимов марсохода
• Контроль работы оптической системы устройства
• Определение качества УКВ связи
• Анализ смыва грунта
• Анализ сцепления грунта
• Оценка работы рентгеновского спектрометра альфа – частиц
• Оценка работы устройства разворачивания спектрометра
• Фотографирование спускаемого аппарата
• Оценка имеющихся повреждений
Контроль действий «Попутчика» осуществлялся дистанционно по командам с Земли. Оператор задавал перемещения марсоходу на основе визуальных данных, получаемых с самого марсохода и со спускаемого аппарата. В силу того что время задержки реакций марсохода по отношению к подаваемым с Земли командам составляло от 6 до 41 минуты в зависимости от взаимных положений Марса и Земли, для предотвращения фатальных действий, таких как падение с обрыва, аппарат имел бортовой интеллект.
Рис. 1.2. Марсоход «Попутчик». Фото НАСА
НАСА продолжает исследования в области создания роботизованных «микровездеходов». Для дальнейших исследований Марса планируется создание «интеллектуальных» вездеходов, способных к ориентированию, преодолению препятствий и принятию иных решений. Такие роботизованные системы максимально используют деньги налогоплательщиков.
Последний «микровездеход», предназначенный для очередной марсианской экспедиции, будет снова искать там признаки жизни. 7 августа 1996 года НАСА выпустило заявление, что оно надеется найти ископаемые микроскопические следы жизни на Марсе. Эта информация подогрела интерес к поискам жизни на Марсе.
Использование роботов в промышленности
Роботы незаменимы во многих отраслях производства. К примеру, роботы-сварщики повсеместно используются в производстве автомобилей. Другие роботы, снабженные краскораспылителями, занимаются покраской деталей. В радиоэлектронной промышленности роботы используются для пайки микроскопических проводников к полупроводниковым чипам (точечная сварка). Другие роботы, которых называют «взять и разместить», занимаются размещением интегральных микросхем на печатных платах. Этот процесс называется «набивкой» печатной платы.
Эти специализированные роботы совершают одну и ту же высокоточную работу изо дня в день. Для человека такая работа является скучной и утомительной – от однообразия наступает утомление, которое порождает ошибки. Производственные ошибки снижают продуктивность труда, что в свою очередь приводит к увеличению стоимости производства. Для конечного потребителя рост стоимости производства отражается в более высоких розничных ценах. Вместе с тем понятно, что в условиях конкуренции наиболее успешной окажется компания, имеющая лучшее соотношение цена-качество.
Роботы идеально подходят для монотонной, однообразной работы. Скорость их работы выше, они обходятся дешевле работников – людей и не подвержены усталости. Это является одной из причин низкой цены производимой продукции. Роботы позволяют повысить качество продукции и расширить границы прибыльности (конкурентоспособности) предприятия.
Проектирование и моделирование
Роботы оказались способны к выполнению не только циклических операций. Компании – производители широко используют системы компьютерного проектирования (computer aided design CAD), управляемого компьютерного производства (computer aided manufacturing CAM) и цифрового компьютерного контроля (computer numerical control CNC) для создания различных проектов, производства компонентов и контроля сборочного процесса. Эти технологии позволяют инженеру спроектировать устройство или деталь с помощью CAD и быстро получить опытный образец с помощью оборудования, управляемого компьютером. Компьютер оказывает поддержку на всех этапах – от проектирования до производства.
Опасные производства
В некоторых опасных производствах, связанных с риском для здоровья или жизни, люди могут быть успешно заменены роботами (см. рис. 1.3). К примеру, возьмем задачу обезвреживания бомб. Многие команды саперов широко используют роботов. Как правило, такие роботы имеют вид небольших бронированных танков и управляются дистанционно операторами, использующими видеокамеры, расположенные в передней части робота (система дистанционного видеоконтроля). Руки-манипуляторы робота способны захватить подозрительный предмет и поместить во взрывобезопасный контейнер для последующего подрыва или обезвреживания.
Рис. 1.3. Робот-спасатель. Фото НАСА
Подобные роботы позволяют очистить местность от токсичных отходов. Они в состоянии функционировать в условиях сильного химического или радиационного заражения среды. Роботы способны «работать» в условиях, где незащищенного человека ожидает быстрая смерть. Атомная промышленность первой начала разрабатывать и использовать роботизованные автоматические манипуляторы для работы с радиоактивными материалами. Эти манипуляторы позволили специалистам производить операции в радиоактивной зоне, находясь при этом в чистых и безопасных помещениях.
Эксплуатация и ремонт
Роботы-эксплуатационники были специально созданы для перемещений внутри трубопроводов, коллекторов и воздуховодных каналов с целью контроля их состояния и возможного ремонта. Оператор наблюдает за ходом процесса с помощью видеокамеры, закрепленной на роботе. При обнаружении повреждения оператор может эффективно и оперативно использовать робота для мелкого ремонта.
Роботы-пожарные
Во многих домах имеются огнетушители, а как насчет робота-пожарного? Такой робот может обнаружить возгорание в любой части помещения, самостоятельно переместиться туда и загасить огонь.
Идея робота-пожарного оказалась настолько популярной, что уже несколько лет проводятся соревнования между конструкторами подобных устройств. Эти соревнования спонсируются Trinity колледжем, обществом робототехники Коннектикута и некоторыми корпорациями. Как правило, робот-пожарный активируется по сигналу тревоги, поступившему по системе обнаружения огня. Во время соревнований роботу необходимо проложить путь в специальном «виртуальном» помещении, добраться до места возгорания и потушить огонь.
Роботы в медицине
Роботов, используемых в медицине, можно отнести к трем категориям. Роботы первой категории используются в диагностике. Весной 1992 года компания Neuromedical Systems Inc. of Suffern, NY, выпустила на рынок изделие под названием Papnet. Система Papnet представляет собой устройство, использующее принцип нейронных сетей, которое помогает специалистам цитологам диагностировать рак шейки матки более точно и, что важнее, с меньшими затратами.
До появления Papnet анализы шеечных мазков производились вручную. Лаборант рассматривал каждую пробу под микроскопом, стараясь обнаружить отдельные раковые клетки в большой массе здоровых клеток. Понятно, что наличие дефектных клеток служит индикатором рака или предракового состояния, однако во многих случаях лаборант не замечал эти клетки из-за утомления или недостаточного внимания.
В течение двадцати лет ученые пытались автоматизировать процесс обнаружения раковых клеток, используя стандартные алгоритмы выбора решающего правила. Данный подход не оправдал себя, поскольку классические алгоритмы не работали в силу большого количества и сложности параметров, которые позволяют отличить пораженные клетки от здоровых.
Papnet использует усовершенствованную систему распознавания образов, построенную на принципе нейронных сетей, и отбирает 128 наиболее «подозрительных» клеток исследуемого мазка для дальнейшей оценки специалистом-цитологом.
Использование Papnet показало очень хорошие результаты, позволяя определить дефектные клетки в 97 % случаев. Поскольку для каждой пробы лаборанту теперь приходится проверять всего 128 клеток, а не 200 или даже 500 тысяч, то влияние фактора утомления неизмеримо снизилось. Более того, время, необходимое для тестирования пробы, сократилось от пяти до десяти раз. Соответственно, процент ошибок для нового метода не превышает 3 % по сравнению с 30–50 % при ручной проверке.
Роботы второй категории представляют собой дистанционно управляемые устройства, используемые в хирургии. Такие устройства позволяют хирургу проводить операции, находясь вне непосредственного контакта с пациентом. Подобные роботы имеют уникальную систему тактильной обратной связи, позволяя хирургу непосредственно «чувствовать» органы и ткани, которые оперируются инструментами робота. Такие роботы обеспечивают хирургу возможность проводить операции практически в любой точке земного шара, не выходя, так сказать, из собственного кабинета.
К третьей категории относятся роботы, использующие принципы виртуальной реальности и изменения кратности манипулирования. При использовании такого робота движения хирурга преобразуются в движения хирургического инструмента определенным образом. Допустим, хирург переместил руку на 10 см. Компьютерная система, управляющая роботом, может преобразовать это перемещение в движение скальпеля на 1 см или даже на 1 мм. Таким образом, хирург может производить микроскопические операции, которые ранее были невозможны.
Нанотехнологии
Нанотехнологии представляют собой исследования и создание объектов имеющих молекулярные или даже атомарные размеры. В настоящее время оказалось возможным создание электронных или механических компонентов на основе отдельных атомов. Подобные крошечные компоненты могут быть использованы для создания устройств размером с бактерию. Фирме IBM уже удалось создать транзисторы, проводники, рычажные механизмы и передачи на атомарном уровне.
Каким же образом можно манипулировать отдельными атомами? Для этой цели Гердом Биннигом и Хайнрихом Ререром был сконструирован специальный сканирующий туннельный микроскоп (STM), который позволил осуществить исключительно точное позиционирование области, имеющей атомарные размеры. В 1990 году инженерам IBM с помощью подобного микроскопа удалось написать название компании «IBM» на никелевой подложке с помощью всего 35 атомов ксенона. Фотография этой пластинки со словом «IBM», написанным атомами, стала мировой сенсацией и обошла страницы многих журналов и газет. Этим было положено начало эры нанотехнологий, и ее постоянное совершенствование находит все новые применения в производстве, исследованиях и медицине.
Медицинские нанороботы
Нанотехнологии могут оказать неоценимую помощь в создании нанороботов, т. е. роботов, имеющих микроскопические размеры. Представим себе робота, имеющего столь малые размеры, что он может быть непосредственно помещен в кровоток пациента. Перемещаясь по кровотоку, робот может достигнуть области сердца и начать удалять там холестериновые бляшки, восстанавливая полноценную циркуляцию крови. Другие роботы смогут отыскивать раковые опухоли и удалять в них все пораженные клетки. Некоторые пациенты, которые сейчас считаются неоперабельными, смогут быть излечены с применением нанотехнологий.
Другая надежда, возлагаемая на нанороботов, – борьба с процессами старения в организме. Интересные возможности откроются с появлением нанороботов, имеющих размеры вирусов, способных внедряться непосредственно в клетки и переводящих внутриклеточные «часы» на начало «отсчета».
Развитие нанотехнологий оказало существенное влияние на всю технологию производства роботов: как микроскопических, так и обычных, макроскопических, спектр возможностей которых неизмеримо расширился, начиная от задач уборки помещений и кончая автоматизированным производством продукции. С нанотехнологиями связаны большие надежды на производство новых высококачественных материалов и изделий с относительно низкими затратами.
Военные роботы
Если государство оказывается вовлеченным в военный конфликт, то для достижения скорейшей победы при минимальных потерях использование роботов имеет исключительно важное значение, особенно в современных условиях. Например, использование беспилотной авиации позволяет вести наблюдение за расположением и перемещением сил противника.
Израильские военные нашли для беспилотной авиации остроумное применение. Беспилотный самолет был сконструирован так, чтобы представлять собой удобную цель для радаров. После запуска на вражескую территорию он, естественно, обнаруживался радарами, а израильтяне в свою очередь засекали местоположения этих радаров. После их уничтожения реактивные истребители могли беспрепятственно пролететь через эту территорию.
«Умные» бомбы и крылатые ракеты представляют собой другой пример «интеллектуализованных» вооружений. Мне очень нравятся три закона робототехники, придуманные Айзеком Азимовым, которые гласят, что робот никогда не может намеренно причинить вред человеку, но реальность с ее военными роботами именно такова.
Война роботов
В нашей мирной жизни устраиваются специальные соревнования – «войны роботов». Участники подобных соревнований создают специальных радиоуправляемых роботов разных весовых категорий и устраивают поединки один на один для определения лучшего «бойца».
Арена для подобных соревнований представляет собой ровную асфальтовую площадку размерами примерно 9 на 17 м, для безопасности болельщиков огороженную стенами высотой примерно 2,5 м. Более подробную информацию можно найти на сайте .
Сражения роботов оказались настолько популярными, что породили массу разновидностей подобных соревнований. Некоторые ссылки можно найти здесь:
Battlebots
Robotica
MicroBot Wars
Гражданские применения беспилотных летательных аппаратов
Беспилотные автоматизированные летательные аппараты, как самолеты, так и дирижабли, разработанные для военного применения, могут использоваться в гражданской жизни для мониторинга уличного движения или обстановки в особо криминальных районах города. Подобные устройства могут иметь очень небольшие размеры, поскольку они не имеют пилотского места. По-видимому, использование беспилотных дирижаблей более оправдано, поскольку они являются более безопасными в эксплуатации. Понятно, что беспилотный самолет может находиться в воздухе только в движении, и ошибки в его пилотировании могут иметь катастрофические последствия, особенно в условиях плотной городской застройки. Дирижабль, в свою очередь, может перемещаться очень медленно или даже «зависать» в воздухе, обеспечивая лучшие условия для наблюдения за уличным движением, жилыми кварталами, индустриальными объектами и обстановкой в районах повышенной криминальности.
Домашние роботы
В домашнем хозяйстве роботы могут найти множество различных применений. С помощью роботов можно мыть окна и полы, делать мелкий домашний ремонт, чистить обивку мебели, стирать, готовить и выносить кошачьи экскременты. Здесь возникает интересный дискуссионный вопрос: можем ли мы считать уже присутствующие в домашнем хозяйстве посудомоечные машины, микроволновые печи, стиральные и сушильные машины роботами или они все же являются еще автоматическими машинами? Я думаю, что когда эти машины «научатся» автоматически «обеспечивать» себя работой, самостоятельно доставая продукты из холодильника для их приготовления или собирая по дому грязное белье для стирки, то они пройдут машинную стадию и превратятся в настоящих роботов.
Как попасть в «десятку»?!
Как принято говорить, особенно в сфере компьютерного матобеспечения, чтобы программный продукт «пошел» и приобрел популярность, необходимо найти его «убойное применение». В свое время таким компьютерным продуктом явилось создание текстовых редакторов и режима разделения страниц. Создание какого робота окажется «золотым», т. е. тем попаданием в «яблочко», которое побудит каждого к покупке такого робота, я не знаю. Но я знаю, что сфера использования роботов постоянно расширяется, и многие «экзотические» применения роботов в скором будущем станут вполне привычными с развитием их массового производства, отражающего развитие возможностей, надежд и запросов общества.
Другие применения
Невозможно уследить за всеми научными и технологическими разработками в области робототехники – все происходит чрезвычайно быстро. Для поиска необходимой информации лучше всего воспользоваться сетью Интернет.
Глава 2 Искусственная жизнь и искусственный интеллект
Развитие роботехники подходит к важнейшему этапу: возможности создания искусственной жизни и искусственного интеллекта.
Искусственный интеллект
Мечтой человечества является создание машины, снабженной искусственным интеллектом (ИИ), способной соперничать или даже превосходить интеллект человека. Как мне представляется, внедрение и развитие искусственного интеллекта (ИИ) в компьютерных системах наилучшим образом возможно через создание нейронных сетей. Это не совпадает с мнением других компьютерных специалистов, считающих экспертные системы и специальные системы правил под «задачу» (программы) потенциально более жизнеспособными.
Неоспоримым является тот факт, что «задачные» операционные системы (DOS, Windows, Linux и т. д.) и соответствующее им матобеспечение способны решать практически все известные на сегодня задачи. Не отрицая этого факта, замечу, что для реализации мечты о создании ИИ работа с нейронными сетями является наиболее многообещающей.
Еще совсем недавно было предсказано, что использование мощных параллельных процессоров в комбинации с нейронными сетями при использовании принципа нечеткой логики позволит смоделировать человеческий мозг в течение десяти ближайших лет. Прогноз оказался слишком оптимистичным, тем не менее определенных успехов в этом направлении удалось достичь. На рынке появилось уже второе поколение чипов, построенных по принципу нейронных сетей. Совсем недавно две компании (Intel Corp., Santa Clara, CA и Nestor Inc., Providence, RI) объединенными усилиями создали нейрочип Ni1000. Модель Ni1000, выпущенная в 1993 году, содержит 1024 искусственных нейрона. Эта интегральная схема содержит три миллиона транзисторов и способна производить 20 миллиардов двоичных операций в секунду.
Эволюция «сознания» в искусственном интеллекте
Наличие сознания является проявлением внутренних процессов, протекающих в мозгу. Зарождение сознания у человека Homo sapiens явилось результатом эволюционного развития нейронных структур мозга как биологической системы. Миллиард лет назад наиболее развитой формой жизни на Земле были черви. Давайте на минуту представим себе этого доисторического червя и зададимся вопросом: мог ли зачаток (в смысле нейронной структуры) интеллекта породить некоторое рудиментарное «сознание»? Если это так, то такой «интеллект» и «сознание» оказываются похожими на работу искусственных нейронных сетей, используемых в современных суперкомпьютерах (см. рис. 2.1).
Рис. 2.1. График, показывающий возможности суперкомпьютера
Червь, несомненно, является живым существом, но может ли он осознавать «себя»? Или его нервная система представляет собой организованный ансамбль нейронов, воспроизводящих все ту же «начальную» запись, которая уже была заложена в нейронной структуре предков, осуществляя, таким образом, не более чем функциональный биологический автоматизм?
Является ли сознание жизнью?
Такой вопрос включает в себя несколько: «Является ли интеллект сознанием?» и «Является ли сознание жизнью?» Представляется корректным говорить о том, что интеллект должен достичь определенной степени развития, «критической» массы и только в этом случае можно говорить о появлении сознания. В любом случае искусственные нейронные сети способны и в итоге достигнут уровня «сознания». Произойдет ли это через 10 лет, или через 1000 лет – это не имеет никакого значения; 1000 лет есть только миг в эволюционной истории. (Я все же надеюсь, что это произойдет через десяток лет, и мне удастся при жизни увидеть полноценный ИИ.) Интересно, когда искусственные нейронные сети обретут «сознание» и «самосознание», можно ли будет считать их живыми существами?
Искусственная жизнь
В создании искусственной жизни (ИЖ) можно выделить три основные направления исследований: создание «нейронных» роботов с автономным питанием, создание нанороботов (в том числе и с возможностью «размножения»), создание компьютерных программ (матобеспечение). Наиболее совершенным типом искусственной жизни на Земле на сегодняшний день являются компьютерные программы. Роботы, способные к самовоспроизводству, еще не изобретены, а ждать появления нанороботов придется еще достаточно долго. По этой причине остановимся сейчас только на компьютерных программах ИЖ.
В подобных программах «жизнь» существует исключительно в виде цепочек электрических импульсов, которые генерируются программой в памяти компьютера. Специалисты-компьютерщики создали массу различных программ ИЖ, моделирующих различные биологические процессы (выживание, рождение, смерть, развитие, движение, кормление, спаривание и т. д.). Некоторые из них называются «клеточная автоматизация» (кластеризация), другие имеют название «генетических» алгоритмов.
Программа клеточной автоматизации (КА) была использована для точного моделирования биологических систем и исследования характера распространения заразных заболеваний, таких как СПИД в человеческой популяции. Подобные программы также применялись для исследования эволюционных процессов, поведения колоний муравьев и пчел и множества других стохастических систем. Для генерации случайных процессов в программы были введены специальные стохастические алгоритмы. Одним из интересных применений было использование КА программ для оптимизации размеров нейронных сетей, использованных в головном компьютере. Есть надежда, что подобные программы помогут создать и «связать» большие нейронные сети для использования в суперкомпьютерах.
Генетические алгоритмы (ГА) функционируют в духе Дарвиновской теории выживания сильнейшего. Две конкурирующие ГА программы могут «встретиться» в памяти компьютера и перемешать свои двоичные коды для произведения «потомства». Если «потомок» окажется так же или более жизнеспособным по сравнению с «родителями», то, вероятнее всего, он выживет. Являются ли эти программы живыми – это, очевидно, зависит от определения жизни. Что если появятся программы, способные к саморазвитию и повышению собственного «программного» уровня? Что произойдет, когда подобные программы будут встроены в передвижных роботов? Как насчет роботов, научившихся производству себе подобных?
Нанороботы – мы живые существа?
Наноробот представляет собой робота, имеющего размеры микроба. Фирме IBM удалось достичь определенных успехов в создании электронных и механических устройств (транзисторы и проводники), имеющих молекулярные или даже атомарные размеры. Подобные достижения вселяют уверенность в возможности создания предметов сколь угодно малых размеров, поэтому роботы размером с бактерию теоретически возможны.
Некоторые ученые предсказывают, что следующим эволюционным шагом будет возникновение жизни на основе кремния, которая заменит на планете углеродные формы жизни. То, что мы сейчас называем электронными устройствами и роботами, станут формами саморазвивающейся и саморазмножающейся силиконовой жизни.
Немного истории
Прогресс компьютерных технологий за последние пять с половиной десятилетий можно назвать ошеломляющим. Созданный в 1946 году компьютер ENIAC представлял собой целую гору электронного оборудования. При размерах 30 м в длину, 2,4 м в высоту и 0,9 м в ширину его вес доходил до 30 т. ENIAC содержал 18 тыс. электронных ламп, 70 тыс. резисторов, 10 тыс. конденсаторов, 6 тыс. переключателей и 1,5 тыс. электромагнитных реле. Производительность машины составляла 5 тыс. сложений, 357 умножений или 38 делений в секунду. Сегодня подобный компьютер образца 1946 года можно уместить на крошечной кремниевой пластинке площадью менее 5 кв. мм.
Физик Роберт Ястроу утверждал в журнале «The enchanted Loom» (New York, Simon&Shuster, 1981), что «компьютеры первого поколения были в миллиард раз «глупее» и неэффективнее человеческого разума. На сегодняшний день этот разрыв сократился более чем в тысячу раз».
Наука неослабевающими темпами стремится к созданию ИИ, и как я уже говорил, возможно, искусственный интеллект будет создан еще при нашей жизни. От точки создания ИИ всего несколько шагов до создания машинного «суперинтеллекта». Многие ученые скажут вам, что это только мечта, пытаясь удержать сладкую иллюзию о безусловном и окончательном превосходстве человеческого интеллекта. Не утешаясь подобными иллюзиями, я могу сказать, что прогресс создания ИИ непреклонно и с неослабевающим темпом становится реальностью.
Совершеннее, чем мы
Хотим ли мы как представители разумной расы создать интеллект, превосходящий наш собственный? Если думать над этой проблемой, то в долговременной перспективе он может потребоваться нам хотя бы для целей выживания. Подумайте о перспективах той страны, которая первой создаст ИИ с IQ порядка 300. Подобной машине ИИ можно поручать проблемы оздоровления национальной экономики, очистки окружающей среды, прекращения загрязнений, развития военных стратегий на случай конфликтов, осуществления медицинских и научных исследований и, конечно, создания более совершенных устройств ИИ. Возможно, что следующая теория развития Вселенной будет предложена не человеком (как в свое время это сделал Альберт Эйнштейн), а машинным ИИ.
Запертая клетка
Почему так важно создать суперинтеллект? Найдет ли человечество, в конце концов, решение этой волнующей проблемы? Возможно. Необходимость создания мощного ИИ можно проиллюстрировать одной историей, которую я услышал или прочитал. Боюсь только, что я не вспомню фамилии автора, за что приношу ему свои извинения. Если я немного исказил историю своим пересказом, то прошу прощения и за это.
В клетке находятся десять шимпанзе. Дверь клетки заперта. Чтобы догадаться, как отпереть замок и открыть дверцу клетки, требуется коэффициент интеллекта IQ порядка 90. Каждый шимпанзе, сидящий в клетке, был подвергнут тестированию и показал IQ порядка 60. Могут ли десять шимпанзе, объединив усилия, найти способ открыть дверцу клетки? Ответ однозначен – НЕТ. Интеллект не накапливается. Если бы 10 шимпанзе, действуя совместно, обладали бы суммарным интеллектом IQ равным 600, то этого было бы более чем достаточно, чтобы отпереть дверцу. Реально шимпанзе не могут этого сделать.
В реальной жизни мы сталкиваемся с проблемами, такими как загрязнение окружающей среды, экономика, заболевания, подобные раку и СПИДу, поиски долголетия, и разнообразными направлениями научного поиска, которые метафорически могут быть представлены как «сидение» в запертой клетке. С этой точки зрения создание сверхмощного ИИ представляется очевидным. Такой ИИ, возможно, найдет нужные ключи для «отпирания» подобных проблем, которые до настоящего времени остаются в принципе нерешенными. Я не думаю, что подобные возможности ИИ остаются вне сферы внимания различных государств. Возможно, что следующий «Манхэттенский проект», предпринятый в нашей стране, (я надеюсь) будет посвящен созданию суперИИ.
Мы как раса вряд ли будем довольны появлением машинного интеллекта, по сравнению с которым мы будем ощущать себя в роли шимпанзе. Научные фантасты уже в течение долгого времени описывают безумия суперкомпьютеров, имеющих ИИ. Таков компьютер HAL в романе А. Кларка «Космическая одиссея, 2001», таков центральный компьютер в «Терминаторе» и «Терминаторе II». Для всех будущих создателей ИИ, которые прочитали эту книжку, у меня есть предостережение «Не забывайте про выключатель!»
Биотехнологии
Успехи биотехнологий в скором будущем позволят нам изменять нашу генетическую основу. На основе этого станет возможным «модифицировать» наш мозг для увеличения его интеллектуальных способностей. Однако вполне возможно, что подобные генные модификации приведут к непредсказуемым последствиям для последующих поколений, которые могут быть катастрофическими. Создание суперинтеллекта на основе машины представляется более безопасным, по крайней мере, до поры до времени.
Нейронные сети – ожидания против реальности
Возможности нейронных сетей с самого момента появления были, пожалуй, излишне разрекламированы. Поэтому достаточно легко не принимать во внимание мои соображения насчет ИИ, ИЖ и нейронных сетей, собственно, как делают это многие в течение ряда лет. Хотя, правда и то, что появление «человекоподобного» интеллекта было предсказано.
Если развитие будет идти теми же темпами, что и в последние 50 лет, то, как я надеюсь, через полвека появятся системы ИИ, сравнимые с возможностями человеческого мозга.
Что такое нейронные сети?
Я описывал нейронные сети без точного определения. Сейчас я дам это определение. Нейронными сетями называются искусственные компьютерные системы (на базе аппаратного и программного обеспечения), которые функционируют и «обучаются» на основе моделей, созданных по аналогии с биологическими системами человеческого мозга. Такие сети могут быть созданы на базе аппаратно/программного обеспечения или быть чисто аппаратными. Моделирование по образцу биологических мозговых структур привело к успешному решению некоторых частных проблем, необходимых для создания ИИ, таких как машинное зрение, распознавание речи и вокализация. Нейронные сети могут быть «обучены» для осуществления распознавания образов. Они могут быть научены чтению или проверке качества продукции через визуальный контроль изделий. Одним таким примером является система Papnet, описанная в главе 1. Другие сети могут быть обучены распознаванию звуковых команд (распознавание речи) и речевому синтезу. Сети, использующие статистические методы, могут предсказывать поведение и вероятности событий в сложных нелинейных системах, основываясь на данных прошлого опыта. Такие системы способны давать динамику нефтяных цен, обеспечивать контроль электронных устройств самолета и предсказывать погоду. Нейронные системы могут также успешно применяться в анализе состояния рынка, оценивать кандидатов на ипотечные кредиты и страхование жизни, показывая лучшие результаты, чем традиционно используемые экспертные системы на основе стандартных решающих правил.
Что такое искусственный интеллект?
Законный вопрос, не правда ли? Безусловно, развитие нейронных сетей приведет сперва к появлению «интеллекта», а потом уже – «сознания». В попытке создания сетей, которые интеллектуальны или демонстрируют интеллект, каким критерием нужно руководствоваться, чтобы понять, что цель уже достигнута?
Британский математик Алан Тьюринг предложил интересную процедуру, которая, в общем, считается достоверной для определения того, имеет ли машина интеллект. Человек и машина вступают в беседу, посылая сообщения по телетайпу. Если машина может поддерживать общение таким образом, что человек не в состоянии определить – кто находится на другом конце линии телетайпа: человек или машина, то машина определяется как «мыслящая». Эта процедура называется тестом Тьюринга и является одним из критериев определения ИИ.
Хотя тест Тьюринга является общепринятым, он не является окончательной процедурой определения ИИ. Существует ряд совершенно «тупых» языковых программ, которые практически способны пройти эту процедуру. Наиболее известной из них является программа ELIZA, разработанная Джозефом Вейценбаумом в Массачусетском технологическом институте. ELIZA имитирует работу психолога, и вы можете с ней побеседовать. Например, если вы послали ELIZA сообщение, что вы потеряли своего отца, она может ответить: «Почему вы потеряли своего отца» или «Расскажите мне больше о своем отце». Эти ответы могут вас заставить вас поверить в то, что ELIZA понимает вашу речь. Это не так, конечно. Ответы есть хитро сконструированные утверждения на основе ваших сообщений.
Таким образом, если мы хотим, то можем отбросить критерий Тьюринга и взять что-то еще. Возможно, лучшим указанием на существование интеллекта будет наличие сознания или самосознания. Машина, осознающая себя, будет точно знать, что она разумна. Другим возможным критерием, более прямым и простым, может служить способность обучения на основе опыта. Этот критерий использован в данной книге.
Конечно, мы можем отбросить все логические основания и утверждать, что интеллект свойственен системам, имеющим развитое чувство юмора. Насколько мне известно, человекообразные являются единственными существами, способными смеяться. Возможно, наличие чувства юмора и эмоций будет лучшим критерием и поставит точку в его поисках.
Использование нейронных сетей в роботах
Итак, каким образом нейронные сети сегодня используются в робототехнике? Да, мы еще далеки от создания достаточно «разумного» ИИ, не говоря уже о том, чтобы снабдить им одного из наших роботов. Тем не менее, во многих случаях использование технологии нейросетей позволяет создавать системы контроля функций роботов, превосходящих возможности стандартных ЦПУ и программного обеспечения. Использование нейросетей в наших роботах позволит им совершать маленькие «чудеса» без использования стандартных компьютеров, процессоров и программ. В главе 6 мы построим систему с нечеткой логикой, состоящую из двух нейронов, способную отслеживать направление источника света. Подвижный робот, снабженный такой системой, оказывается в состоянии следовать за источником света в любом направлении. Также в главе 6 мы обсудим технологию BEAM и идеи Марка Тилдена, создавшего транзисторные схемы (нейронные сети), которые обеспечивают движение и иные функции роботам, имеющим «ноги». Большой прогресс достигнут в применении другого нейронного процесса, названного предикативной архитектурой, использующего метод предикативной (условной) реакции на стимул.
Микросети
Небольшие программы нейронных сетей могут быть осуществлены через микроконтроллеры. Более полную информацию о микроконтроллерах» можно найти в главе 6.
Нейронная поведенчески-ориентированная архитектура
Принцип построения поведенчески-ориентированной архитектуры устройства, разработанный Вальтером Греем, показывает, что относительно простые стимульно-реактивные нейронные системы, вмонтированные в робота, демонстрируют высокоорганизованную, сложную систему поведения. Устройства предикативной архитектуры, как частного случая поведенчески-ориентированной архитектуры, разрабатывались доктором Родни Бруксом (MIT) и будут также более подробно рассмотрены в главах 6 и 8.
Глава 3 Системы питания
Для обеспечения функционирования роботам необходимо питание – большинство роботов используют для этого электричество. Для обеспечения мобильных роботов автономным питанием служат два источника: электрические батареи и фотоэлектрические элементы. В ближайшем будущем для питания роботов появится третий источник – топливные элементы.
Фотоэлектрические элементы
Фотоэлектрические элементы, известные обычно как солнечные элементы, вырабатывают электрическую энергию под действием солнечного света. Стандартные солнечные элементы являются крайне маломощными: при разности потенциалов порядка 0,7 В они дают ток в несколько миллиампер. Для получения приемлемого уровня мощности элементы соединяют вместе в солнечные панели (батареи). В робототехнике для обеспечения непосредственного питания роботов используют последовательное и параллельное соединение солнечных элементов.
Чтобы обеспечить функционирование робота от солнечных батарей, его размеры должны быть минимальны при сохранении необходимого спектра функций. Соответственно, должны использоваться легкие и высокопрочные материалы и электронные схемы, потребляющие незначительную энергию.
Чем меньше вес конструкции и потребление электрической энергии, тем более перспективным представляется использование солнечных батарей. Однако небольшой вес и экономичное энергопотребление являются важными при изготовлении любого робота. Такие легкие, маломощные роботы способны проработать дольше при заданной емкости источника питания, чем их более тяжелые и энергетически «прожорливые» собратья.
Солнечные элементы могут служить для робота источником вторичного электропитания, подзаряжая его аккумуляторы. Такой комбинированный источник питания снижает требования к мощности солнечных элементов по сравнению с непосредственным питанием робота от солнечных батарей. Однако в этом случае робот будет активно функционировать только часть времени, а в остальное подзаряжать свои аккумуляторы.
Также мы можем использовать солнечные элементы комбинированно: как источники непосредственного и вторичного питания. Мы попробуем изготовить устройство, которое обычно называют солнечным двигателем. Функциональная схема очень проста. Основными компонентами ее являются: солнечная батарея, накопительный конденсатор и триггерная схема. Солнечная батарея под действием света начинает заряжать накопительный конденсатор большой емкости. Система «батарея/конденсатор» обеспечивают электроэнергией остальную часть схемы. По мере заряда конденсатора напряжение на нем возрастает и в какой-то момент начинает превышать заданный порог срабатывания триггерной схемы. Как только триггер сработал – конденсатор начинает разряжаться через основную нагрузку. Затем цикл повторяется. Устройства типа солнечного двигателя могут быть использованы в различных робототехнических конструкциях.
Строим солнечный двигатель
Солнечный двигатель часто используется в качестве бортового источника тока, применяемого в BEAM-роботах, которых часто называют «живущими» роботами (см. обсуждение BEAM-роботов в главе 8). Свое распространение солнечные двигатели получили благодаря работам Марка Тилдена, который сконструировал первый подобный двигатель. Другим изобретателем был Дэйв Хранкив из Канады, который построил свою версию солнечного двигателя для питания «танцующего» робота. Мне так понравились эти разработки, что я решил сделать свой вариант солнечного двигателя. В процессе работы мне удалось придумать новый вариант схемы, который увеличил его эффективность по сравнению с оригинальным вариантом.
На рис. 3.1 изображена электрическая схема солнечного двигателя. Рассмотрим ее работу. Солнечная батарея заряжает конденсатор емкостью 4700 мкФ. По мере заряда конденсатора, напряжение на нем возрастает. Однопереходный транзистор входит в режим колебаний и посылает импульс, отпирающий тиристор. Когда тиристор открыт, вся запасенная в конденсаторе энергия разряжается через двигатель с высоким КПД. Во время разряда конденсатора двигатель вращается. Потом происходит остановка и цикл повторяется.
Рис. 3.1. Схема солнечного двигателя
Схема солнечного двигателя проста и некритична к используемым деталям. Она может быть собрана на макетной плате, выводы элементов при этом соединены проводниками. Для желающих собрать двигатель на печатной плате – чертеж платы представлен на рис. 3.2. Печатная плата входит в набор для создания солнечного двигателя. На рис. 3.3 показана схема расположения деталей на печатной плате. На рис. 3.4 помещена фотография двигателя в сборе.
Рис. 3.2. Чертеж печатной платы
Рис. 3.3. Размещение деталей на печатной плате
Рис. 3.4. Солнечный двигатель в сборе
Список деталей солнечного двигателя
• транзистор 2N2646 (1)
• тиристор 2N5060 (1)
• конденсатор электролитический 22 мкФ (1)
• конденсатор электролитический 4700 мкФ (1)
• двигатель постоянного тока
• элемент солнечной батареи (2)
• печатная плата
• резистор 200 кОм 0,25 Вт
• резистор 15 кОм 0,25 Вт
• резистор 2,2 кОм 0,25 Вт
Двигатель с высоким КПД
Далеко не все электродвигатели имеют высокий КПД. Например, небольшие моторчики постоянного тока из радионаборов, как правило, имеют низкий КПД. Для определения этого существует простая процедура. Повращайте пальцами ось двигателя. Если ротор вращается плавно и продолжает вращение, когда вы отпустите ось, то, возможно, это двигатель с высоким КПД. Если ось ротора поворачивается рывками, и вы чувствуете сопротивление, то, скорее всего, КПД такого двигателя невелик.
Особенности конструкции солнечного двигателя
Солнечные элементы, использованные в устройстве, имеют высокий КПД и высокое выходное напряжение. Для солнечных элементов типично выходное напряжение в пределах 0,5–0,7 В при различных токах, которые зависят от размеров элемента. Солнечный элемент, использованный в данной схеме, дает паспортное напряжение порядка 2,5 В, но без нагрузки он заряжает конденсатор до уровня 4,3 В.
Я уверен, что некоторые из тех, кто захочет построить подобную схему, уже думают о возможности более быстрого заряда емкости через увеличение количества солнечных элементов. Данной вещи делать не следует. Дополнительные элементы действительно увеличат ток заряда и, соответственно, сократят его время, но только в первом цикле. Для того чтобы тиристор закрылся и начался новый цикл, необходимо, чтобы ток, протекающий через тиристор, прекратился (или стал очень малым). А в случае, если солнечная батарея будет отдавать достаточно большой ток, то тиристор «залипнет» в открытом состоянии. Соответственно, вся энергия батареи будет через открытый тиристор рассеиваться на подключенной нагрузке. Конденсатор не будет заряжаться, и схема выйдет из циклического режима.
Для правильной работы детали схемы специальным образом подобраны. Единственный компонент, допускающий вариации в значительных пределах, это накопительный конденсатор. Меньшие значения емкости приведут к более быстрому циклу «заряд-разряд». Большие значения емкости или использование нескольких конденсаторов приведут к запасанию большего количества энергии и, соответственно, совершению большей работы, однако следует помнить, что при использовании подобных емкостей цикл «заряд-разряд» может сильно удлиниться.
Применение
Схема солнечного двигателя может находить массу новых и неожиданных применений, например, как бортовой источник энергии солнечного гоночного автомобильчика, источник питания реле, бакена, собранного на светодиодах, моторчика для передвижения робота или, как показано на рис. 3.5, устройства поворота американского флага.
Рис. 3.5. Поворот флажка с помощью солнечного двигателя
Привлекательность солнечного двигателя в том, что он может работать «вечно», пока не выйдет из строя какая-то из его частей, что может произойти через годы.
Батареи
Батареи вне всяких сомнений являются наиболее часто используемыми источниками питания роботов. Батареи настолько привычны, что все находят это само собой разумеющимся. Понимание устройства батарей поможет вам выбрать оптимальный тип батареи для вашей конструкции. Вся эта глава посвящена описанию различных типов батарей.
Емкость батарей
Емкость любой батареи, независимо от ее типа, измеряется в ампер-часах, что означает произведение силы тока в амперах или миллиамперах и времени, выраженном в часах, в течение которого батарея способна отдавать данный ток. Данное понятие имеет очень простой физический смысл. Допустим, емкость батареи составляет 2 Ач. Это означает, что батарея способна поддерживать ток в 2 А в течение 1 часа. Если мы уменьшим силу тока до 1 А, то батарея «проживет» 2 часа. Если уменьшить ток до 500 мА, то время увеличится до 4 часов соответственно. Таким образом, время «жизни» батареи оказалось обратно пропорционально силе протекающего тока.
Не составляет труда написать арифметическое выражение, определяющее период жизни батареи в зависимости от определенной силы тока. Для примера предположим, что робот потребляет 0,35 А (350 мА). Если использовалась батарея, о которой мы уже говорили (2 Ач), то просто поделим ее емкость на силу тока (0,35 А) и получим время «жизни» конструкции 5,7 часов. На самом деле не все так просто. Батареи максимально полно отдают мощность в прерывистом режиме, что позволяет им химически восстанавливаться в паузах. Постоянная нагрузка эффективно использует батарею только в случае, когда она невелика. В робототехнике, особенно при использовании мощных моторов или иных подобных компонентов, характер нагрузки далек от оптимального. В этом случае приходится применять батареи большей емкости.
Напряжение батареи
В течение срока эксплуатации напряжение батареи изменяется. Если вы измерите напряжение свежего щелочного элемента типа D (элемент 373), то оно окажется порядка 1,65 В. По мере разряда элемента напряжение падает. Элемент считается «севшим», когда напряжение на нем снизится до 1 В. Типичные кривые разряда для угольно-цинковых, щелочных и никель-кадмиевых элементов батарей показаны на рис. 3.6.
Рис. 3.6. Кривые разряда стандартных гальванических элементов
Заметим, что напряжение нового никель-кадмиевого элемента батареи составляет около 1,35 В. Хотя начальное напряжение ниже, кривая разряда такого элемента по сравнению с угольно-цинковыми и щелочными элементами является более пологой, удерживаясь на уровне порядка 1,2 В.
Гальванические элементы
Гальванические элементы являются батареями одноразового использования. Здесь мы рассмотрим класс батарей, имеющих напряжение на элементе порядка 1,5 В. Батареи сконструированы таким образом, что после отработки своей емкости они должны быть утилизированы. При конструировании роботов частая замена «севших» батарей может быть достаточно дорогим удовольствием. Однако преимущество таких батарей в том, что, как правило, они имеют большую удельную электрическую емкость, чем аккумуляторы. При «одноразовом» использовании устройства (например, «бойцы» в войне роботов) применение гальванических батарей может оказаться предпочтительным, т. к. они отдают большую мощность.
Классификация гальванических батарей
Как вы уже догадались, существует несколько типов гальванических батарей. Различие между батареями заключается в типе химических веществ, используемых для производства электричества. Выбор типа батареи основывается на критериях отношения отдаваемой мощности к цене батареи, времени «жизни» батареи, температурному интервалу использования, кривой разряда и максимально отдаваемому току.
Угольно-цинковые элементы. Угольно-цинковые элементы находятся на «нижнем» конце батарейного ряда. С момента их изобретения Жоржем Лекланше в 1868 г. они не претерпели существенных изменений. Угольно-цинковый элемент имеет низкую удельную емкость (порядка 0,05-0,1 Вт-ч на куб. см), не выдерживает больший токов, имеет покатую кривую разряда и «боится» низких температур. Такие элементы достаточно дешевы, но являются морально устаревшими.
Щелочно-марганцевые элементы. Такие элементы в обиходе называются щелочными батарейками. Их удельная емкость выше (0,1–0,15 Вт-ч/куб. см), они имеют улучшенные температурные характеристики, более пологую кривую разряда и умеренную цену.
Литиевые элементы. Литиевые элементы являются на сегодняшний день самыми лучшими. Их удельная емкость составляет 0,5 Вт-ч/куб. см, они имеют отличные температурные характеристики как для высоких, так и для низких температур, очень долго сохраняют заряд (порядка 15 лет) а также имеют малый вес. Недостатком является достаточно высокая цена такого элемента.
Аккумуляторные батареи
Аккумуляторные батареи обладают свойством перезарядки. Наиболее широко используются кислотные и никель-кадмиевые (NiCd) аккумуляторы. Мы начнем рассмотрение с последних.
Одним из недостатков NiCd батарей является достаточно низкое напряжение – 1,2 В на элемент (банку), что ниже обычного напряжения гальванических элементов – 1,5 В. Эффект становится еще более заметным, когда несколько элементов соединены последовательно. Для примера 6-ти элементная NiCd батарея на «9В» на самом деле может выдать не более 7,2 В.
Автомобильные кислотные аккумуляторы малопригодны для использования в робототехнике. Причина в том, что в таких аккумуляторах разряд до «нуля» технологически недопустим. Такие аккумуляторы могут отдавать большой ток в течение короткого времени (запуск автомобиля стартером) и после этого должны быть немедленно подзаряжены.
Остаточная электрическая энергия, содержащаяся в аккумуляторе после его полного разряда, называется глубоким разрядом. Существуют кислотные аккумуляторы, выдерживающие глубокий разряд, они используются, например, в комбинированных системах питания на основе солнечных батарей, но цена таких аккумуляторов высока. При конструировании роботов рекомендуется использовать аккумуляторы, выдерживающие циклы глубокого разряда.
Хотя аккумуляторы более дороги, но при длительной эксплуатации их использование приносит существенную экономию. Обычно аккумуляторы допускают от 200 до 1000 циклов «заряд-разряд». Во многих случаях небольшое зарядное устройство может быть встроено в робота, что делает ненужным вынимать аккумуляторы из устройства для зарядки.
Классификация аккумуляторных батарей
NiCd аккумуляторы. Наиболее часто используются герметичные кислотные и NiCd аккумуляторы, причем последние более популярны. Производители утверждают, что NiCd аккумуляторы выдерживают от 200 до 1000 циклов «заряд-разряд», однако эти батареи быстро выходят из строя, если не соблюдается режим зарядки. Время «жизни» этих батарей лежит в пределах 2–4 лет. Полностью заряженные NiCd аккумуляторы сохраняют заряд 30–60 дней.
NiCd аккумуляторы требуют зарядный ток порядка 10 % от их электрической емкости. Это означает, что для зарядки NiCd батареи емкостью 1 Ач необходим ток 100 мА (1А / 10 = 100 мА). Величина зарядного тока обозначается для этого случая «С/10».
NiCd батареи конструктивно требуют постоянного тока зарядки на уровне С/10. В силу неэффективности этого процесса потребное время зарядки для этих батарей составляет 14 часов. Хотя производители утверждают, что не следует опасаться перезаряда батареи при уровне тока С/10, многие инженеры рекомендуют после 14 «штатных» часов зарядки при уровне С/10 переходить к более легкому режиму. Легкий режим определяется из соотношения 1/30 от емкости батареи. Легкий режим для зарядки батареи емкостью 1 Ач составит 33 мА (1А/30 = 33,3 мА).
Эффект памяти. Недостатком NiCd батарей является наличие эффекта памяти. Если несколько раз начать перезаряжать батарею до момента ее полного разряда, то этот уровень будет «запомнен». После этого возникнут проблемы с разрядкой батареи ниже этого уровня, что может привести к резкому уменьшению ее емкости. Для устранения этой проблемы к батарее необходимо подключить на несколько часов специальную нагрузку. После того, как батарея будет полностью разряжена, она заряжается обычным способом и восстанавливает свои характеристики.
Кислотные аккумуляторы. Аккумуляторы с электролитом в виде геля (гелевые элементы) аналогичны автомобильным аккумуляторам. Они представляют собой герметичные, необслуживаемые кислотные аккумуляторы. Заметим, что таких аккумуляторов популярных размеров D, C, AA, AAA и 9 В «Крона» в продаже не бывает. Они обычно имеют увеличенные размеры и могут применяться в больших роботах.
Гелевые элементы имеют широкий диапазон выходных напряжений от 2 до 24 В и большой диапазон токов. Они могут заряжаться постоянным напряжением при условии ограничения тока или постоянным током аналогично NiCd аккумуляторам. Типичное значение зарядного напряжения для каждого гелевого элемента лежит в пределах 2,3–2,6 В. Первоначально через батарею протекает значительный ток, который уменьшается в процессе зарядки. Для поддержания батареи в полностью заряженном виде после окончания процесса основной зарядки через нее пропускают небольшой «поддерживающий» ток (примерно С/500).
Гелевые батареи отличаются у различных производителей, поэтому для грамотной зарядки необходимо ознакомиться с соответствующей инструкцией. Простое зарядное устройство общего назначения можно изготовить на базе регулятора напряжения LM317. К элементу прикладывается фиксированное напряжение (2,3 В) при значении постоянного тока С/10. После полной зарядки батареи источник постоянного тока отключается, и подключается регулируемый источник напряжения.
Многие гелевые аккумуляторы плохо «переносят» глубокий разряд. Чтобы не допустить этого, необходимо контролировать напряжение аккумулятора под нагрузкой. Когда напряжение падает ниже рекомендованного изготовителем – батарея нуждается в зарядке.
Обобщение
Большинство изготовителей роботов использует в качестве гальванических элементы щелочного типа и NiCd в качестве рабочих аккумуляторов.
Изготовление зарядного устройства (ЗУ) для NiCd аккумуляторов
Зарядные устройства для NiCd аккумуляторов достаточно дешевы. Обычно изготовление внешнего зарядного устройства под популярные размеры аккумуляторов, таких как ААА, АА, C и D, не отнимет много сил и времени. Умение сконструировать подобное устройство окажется полезным и тем, кто захочет встроить ЗУ в робота. В отличие от большинства дешевых ЗУ, которые продолжают заряжать аккумулятор током порядка C/10 даже после его полной зарядки, наше устройство уменьшает зарядный ток до порядка С/30 после того, как батареи оказались полностью заряженными. Такая процедура рекомендована для NiCd аккумуляторов и поможет обеспечить их длительную работоспособность.
Следующая информация позволит вам самостоятельно изготовить ЗУ для стандартного NiCd аккумулятора.
Зарядное устройство представляет собой отдельный блок, схема его подключения приведена на рис. 3.7 в иллюстративных целях. Такую схему легко разместить в корпусе робота, при этом потребуется разъем для соединения с ЗУ. Кроме того, необходим двухполюсный двухпозиционный переключатель, помещенный между разъемом и остальной схемой. Этот переключатель соединяет источник питания (аккумулятор) либо с остальной схемой робота, либо с ЗУ. Обесточивание робота необходимо потому, что в противном случае ток заряда аккумулятора уменьшится (см. рис. 3.7).
Рис. 3.7. Двухпозиционный переключатель, управляющий зарядом АКБ
Питание зарядного устройства можно осуществлять, используя либо обычный трансформатор, либо портативный блок питания, совмещенный со штекерной вилкой (типа используемых для питания плееров). Я предпочитаю последний, поскольку он дает на выходе постоянный ток. Если вы используете трансформатор, то вам дополнительно потребуются сетевой предохранитель, диодный мост, сглаживающий конденсатор и соединительные провода.
В любом случае вы должны подобрать характеристики трансформатора или выпрямителя под тип заряжаемой батареи. Подбор выпрямителя по выходному напряжению и току снизит рассеиваемую мощность на регуляторе LM317; например, не стоит использовать трансформатор на 12 В для зарядки 6-вольтовых батарей.
На рис. 3.8 показана схема блока питания ЗУ. Выходное напряжение может равняться 6, 12, 18, 24 или 36 В в зависимости от типа используемого трансформатора, диодного моста и конденсатора.
Рис. 3.8. Сетевой трансформатор и выпрямительный блок
Схема зарядного устройства приведена на рис. 3.9. Она включает в себя регулятор напряжения LM317 и ограничивающий ток резистор. Величина сопротивления ограничительного резистора зависит от силы тока, необходимого для зарядки аккумуляторной батареи.
Рис. 3.9. Схема зарядного устройства
Ограничительный резистор
Большинство производителей NiCd аккумуляторов рекомендуют заряжать их током, равным 1/10 от их емкости, что обозначается C/10. Таким образом, батарея размера АА емкостью 0,85 Ач необходимо заряжать током C/10 или 85 мА в течение 14 часов. После полной зарядки батареи производители рекомендуют снизить ток до уровня порядка C/30 (1/30 емкости батареи) для поддержания батареи в полностью заряженном состоянии без риска перезаряда или иных повреждений.
В нашем случае рассчитаем характеристики ЗУ для зарядки аккумулятора, состоящего из 4 последовательно соединенных элементов С-типа. Емкость каждого элемента составляет 2000 мАч. Таким образом, ток C/10 составит 200 мА. Стандартное напряжение каждого элемента составляет приблизительно 1,3 В, следовательно, напряжение батареи 4 х 1,3 = 5,2 В. Следовательно, можно использовать 6-вольтовый трансформатор, поддерживающий ток не менее 200 мА.
Для расчета сопротивления ограничивающего ток резистора используется формула:
R=1,25/Icc
Где Icc необходимый ток. Подставляя в формулу 200 мА (0,2 А) получаем:
1,25/0,2=6,25 Ом
Таким образом, сопротивление ограничительного резистора должно быть порядка 6,25 Ом. На схеме (рис. 3.9) этот резистор обозначен R2. Заметим, что на схеме резистор R2 имеет номинал 5 Ом. Это ближайший стандартный номинал резистора по отношению к рассчитанному.
C/30 резистор
Чтобы уменьшить силу тока до значения C/30, мы последовательно включаем еще один резистор, номинал которого составляет 2R или около 12,5 Ом. На схеме этот резистор обозначен как R3. Также подбирается резистор ближайшего стандартного номинала. В нашем случае его значение равно 10 Ом.
Принцип работы ЗУ
В ЗУ в качестве источника постоянного тока используется регулятор напряжения LM317. Ограничительный резистор для значения тока C/10 обозначен на схеме R2 (см. рис. 3.9). Значение R2 равно 5 Ом в сравнении с расчетным значением 6,25 Ом. Использование стандартного резистора близкого номинала не нарушит правильную работу ЗУ. Резистор для значения тока C/30 обозначен как R3. Стандартный номинал этого резистора также близок к расчетному и не нарушает нормальной работы ЗУ. Позже вы увидите, что ЗУ способно осуществлять и «быструю» зарядку аккумуляторов, поскольку имеет устройство контроля выходного потенциала.
V1 представляет собой переменный резистор номиналом 5 кОм. Он предназначен для отпирания тиристора после полной зарядки NiCd батареи. Тиристор в свою очередь переключает двухпозиционное реле, имеющее две группы контактов.
При подаче напряжения на схему ток протекает через регулятор LM317, заряжая батарею током порядка C/10. Резистор R3 при этом закорочен одной из групп контактов реле. Ток также протекает через резистор R1, ограничивающий ток светодиодов D1 и D2. После включения питания загорается красный светодиод D1, который сигнализирует о том, что происходит зарядка.
В процессе зарядки напряжение на потенциометре V1 возрастает. После 14 часов напряжение оказывается достаточным для отпирания тиристора. Через открытый тиристор напряжение поступает на обмотку двухпозиционного реле. Реле включается, красный светодиод гаснет и зажигается зеленый светодиод. Зеленый светодиод показывает, что батарея полностью заряжена. Другая группа контактов реле размыкает закороченный резистор R3. Включение резистора R3 уменьшает зарядный ток до порядка C/30. Диод D3 блокирует протекание тока из аккумулятора в схему ЗУ.
Определение напряжения срабатывания V1
Для нормальной работы схемы необходимо, чтобы тиристор отпирался только после полной зарядки NiCd батареи. Наиболее просто это сделать следующим образом: вставить полностью разряженную батарею в ЗУ, заряжать ее в течение 14 часов, а потом подрегулировать V1. После завершения процесса зарядки медленно поворачивать движок потенциометра V1 до срабатывания реле. При этом должен зажечься светодиод зеленого цвета.
Особенности конструкции
При самостоятельном конструировании ЗУ обратите внимание на следующее. Наиболее критичным является подбор ограничительных резисторов для значений тока C/10 и C/30. Для расчета их номиналов воспользуйтесь приведенными формулами. Рассеиваемая мощность этих резисторов порядка 2 Вт.
Если зарядный ток достаточно велик (более 250 мА), то для отвода тепла снабдите схему LM317 радиатором. Если ЗУ включить до соединения с батареей, то моментально сработает реле, включится зеленый светодиод и зарядный ток окажется равным C/30.
Если ЗУ будет использоваться при более высоких значениях напряжений – пропорционально увеличьте сопротивление R1, ограничивающее ток, протекающий через светодиоды. Например, для напряжения 12 В сопротивление R1 будет равно 680 Ом, для напряжения 24 В – 1,2 кОм соответственно.
При больших значениях напряжения может потребоваться резистор, ограничивающий ток обмотки реле. Полезно измерить реальные значения тока C/10 и C/30, протекающего через заряжаемую батарею, что позволит судить о правильности работы устройства.
Последовательное и параллельное соединение
Способ соединения элементов в батарею определяет необходимые характеристики трансформатора по напряжению и току. Если батарея состоит из 8 элементов типа С, соединенных параллельно, то необходимо умножить необходимый для каждого элемента ток на 8. Если емкость отдельного элемента составляет 1200 мАч, то зарядный ток C/10 будет равен 120 мА. Для 8 параллельных элементов ток составит около 1 А (8х 120 мА=960 мА=0,96 А). Необходимое напряжение составит 1,5 В. Соответственно, необходим трансформатор, выдающий напряжение 1,5 В при токе 1 А. Если эти элементы соединены последовательно, то необходимое напряжение составит 12 В при токе 120 мА.
Быстрое ЗУ
Многие современные NiCd аккумуляторные батареи можно заряжать быстрее при условии, что после их полной зарядки ЗУ переключится в режим C/30. Типичным является удвоение зарядного тока при сокращении времени зарядки в два раза. Таким образом, можно заряжать батарею током C/5 в течение 7 часов.
Хотя я не пробовал использовать данную схему ЗУ для быстрой зарядки, но не вижу оснований, почему она не должна работать. Если вы хотите это сделать, необходимо сперва подстроить потенциометр под значение тока C/10, а потом уменьшить номинал резистора R2 в два раза.
Список деталей
• U1 регулятор напряжения LM317
• L1 двухпозиционное реле с двумя группами контактов
• D1 красный светодиод
• D2 зеленый светодиод
• D2 диод 1N4004
• Q1 тиристор
• V1 подстроечный резистор 5 кОм
• R1 резистор 330 Ом 0,25 Вт
• R2 резистор 5 Ом 2 Вт
• R3 резистор 10 Ом 2 Вт
• R4 резистор 220 Ом 0,25 Вт
• Понижающий трансформатор
ЗУ с питанием от солнечных батарей
Изготовив ЗУ для аккумуляторных батарей, вы можете превратить его в устройство, питающееся от солнечных батарей. Для этого достаточно заменить трансформатор и выпрямительное устройство комбинацией фотоэлектрических элементов, имеющих аналогичные характеристики по току и напряжению. При создании системы с питанием от солнечных батарей необходимо учитывать:
– средний уровень освещенности панели солнечных батарей;
– отношение времени освещения солнечных батарей, необходимого для процесса зарядки ко времени рабочего цикла.
Топливные элементы-батареи с топливным баком
Топливные элементы, как и гальванические батареи, являются электрохимическими устройствами, преобразующими энергию химических реакций в электричество. В гальванических батареях химические реагенты помещены внутрь их. Когда химические реакции прекращаются из-за истощения батареи, она подлежит замене (или в некоторых случаях перезарядке). Топливные элементы используют химические реагенты (топливо), хранящиеся вне элемента. До тех пор пока в топливный элемент поступает топливо, он будет (теоретически бесконечно) вырабатывать электрическую энергию.
Когда запас топливного элемента истощается, он легко может быть наполнен свежим топливом аналогично современным автомобилям. Робот, питающийся от топливных элементов, может быть быстро приведен в рабочее состояние в сравнении с другими роботами, требующими времени на зарядку аккумуляторов.
На рис. 3.10 приведена схема топливного элемента на основе едкого кали (KOH). Такой тип элементов используется в американских космических аппаратах. Первая вещь, которую вы можете заметить, – анод помечен знаком (-), а катод, соответственно (+). Когда я впервые стал просматривать схемы топливных элементов, я подумал, что это ошибка, но после того как я увидел несколько дюжин подобных схем, я заключил, что это на самом деле не ошибка. Для большей уверенности я посмотрел определение катода в Оксфордском толковом словаре. Там сказано: «Катод. 1. Отрицательный электрод в электролизном сосуде. 2. Положительный вывод элемента батареи». Я привел это только для того, чтобы вы не были смущены этими обозначениями на других схемах топливных элементов, поскольку, насколько мне известно, такие обозначения являются общепринятыми.
Рис. 3.10. КОН топливный элемент
Топливные элементы находят себе многочисленные применения. Практически любые устройства, использующие гальванические элементы и аккумуляторы, могут быть успешно переведены на питание от топливных элементов. В разработке находятся воздушно/алюминиевые топливные элементы, пригодные к использованию в сотовых телефонах, и элементы для «laptop» компьютеров. Топливные элементы работают более продолжительное время и имеют улучшенные характеристики.
Если не сейчас, то когда?
Если топливные элементы имеют столь замечательные характеристики, то где же они? Почему мы не видим их в наших портативных компьютерах, видеокамерах и сотовых телефонах? Безусловно, технология производства топливных элементов сильно улучшилась за последнее десятилетие, но по уровню затрат (читайте – стоимости) она не может сравниться с технологиями производства других источников тока. Одна из наиболее развитых технологий использует электроды на основе протонно-обменных мембран (ПОМ) – материала, названного Nation, разработанного концерном Дюпон. Сам материал ПОМ стоит примерно $1000 за кв.м. Удешевление производства подобных мембран и создание других ПОМ – материалов представляет собой первоочередную задачу создания конкурентоспособных топливных элементов.
Платина является дорогим металлом. Электроды топливного элемента обычно покрыты или анодированы платиной. Платиновое покрытие является катализатором, облегчающим протекание химических реакций внутри топливного элемента.
Развитие технологий производства топливных элементов наблюдается и в автомобильной индустрии. Все ведущие автостроительные компании заняты продолжающимися исследованиями по разработке и внедрению технологии топливных элементов. Список компаний, занимающихся подобными исследованиями, напоминает рейтинги «кто есть кто» в научных исследованиях.
Появление на рынке автомобилей, работающих на топливных элементах, ожидается к 2003 году. Канадская компания Ballard Power Systems, основной игрок на рынке производства ПОМ технологий, запускает в производство серию автобусов, работающих на топливных элементах. В производстве топливных элементов Ballard объединил свои усилия с такими известными компаниями как DaimlerChrysler и Ford Motor. Ballard недавно ввел в строй предприятие, рассчитанное на выпуск 160.000 коммерческих топливных элементов ежегодно.
Honda планирует перейти к выпуску автомобилей, работающих на топливных элементах уже 2007 году. Она будет использовать существующие модели автомобилей с электрическими двигателями, разработанными для питания от аккумуляторов, и будет заменять их топливными элементами.
Продолжение исследований в области технологий топливных элементов встречается с энтузиазмом и находит широкую поддержку. Перед тем как покинуть президентское кресло, президент Клинтон вместе с конгрессом ассигновал $ 100.000.000 для продолжения исследований в области создания технологий топливных элементов на 2001 фискальный год.
Когда топливные элементы станут неотъемлемой частью нашего обихода, как видеокамеры, сотовые телефоны и портативные компьютеры, мы сможем использовать их для питания наших роботов.
Глава 4 Системы движения и привода
В этой главе будут рассмотрены некоторые компоненты систем движения и привода, которые могут быть использованы в конструкциях роботов. Некоторые схемы подобных компонентов будут рассмотрены в этой главе, другие варианты конструкций схем движения и привода будут обсуждаться в следующих главах. Мы остановимся на следующих конструкциях: воздушные мышцы, нитиноловая проволока, шаговые двигатели, двигатели постоянного тока с редукторами, сервомоторы и соленоиды.
Воздушные мышцы
Воздушная мышца представляет собой простое устройство, предложенное в 1950-х годах Дж. Л. МакКиббеном. Подобно биологическому прототипу воздушная мышца сокращается при активировании. Интересен тот факт, что воздушная мышца представляет собой достаточно точную копию биологической мышцы-прототипа, что позволяет исследователям, прикрепляя подобные мышцы к точкам скелета, соответствующим положению «живой» мускулатуры, моделировать биомеханические и иннервационные процессы низкого уровня, характерные для биологической мышцы. В опубликованной литературе подобные конструкции также называются воздушными мышцами МакКиббена, искусственными пневматическими мышцами МакКиббена и «Резиномышцами». Я буду использовать название «воздушная мышца».
Применение
Воздушные мышцы находят применение в робототехнике, биомеханике, создании искусственных протезов конечностей и промышленности. Основной причиной, по которой экспериментаторы и любители охотно используют воздушные мышцы, является простота их конструкции и легкость использования в сравнении с обычными пневматическими цилиндрами. Воздушные мышцы имеют малый вес, «гибкую» конструкцию и высокое отношение развиваемой ими силы по отношению к собственному весу (400:1); они выдерживают продольное скручивание, не требуют параллельности закрепления концов и могут быть изогнуты внешним ограничителем без нарушения работы.
Принцип работы воздушной мышцы
Воздушная мышца состоит из двух основных частей: внутренней растягивающейся мягкой резиновой трубки и внешней сетчатой ячеистой оплетки (рукава), изготовленного из капрона (см. рис. 4.1). Резиновая трубка называется «внутренним пузырем» и заключена внутрь рукава оплетки.
Рис. 4.1. Устройство и работа воздушной мышцы
Прочие компоненты включают воздушный патрубок на одном конце резиновой трубки и две петли на каждом из концов воздушной мышцы, позволяющие прикрепить мышцу к остальной части конструкции.
При подаче давления во внутренний пузырь он расширяется и давит изнутри на стенки рукава оплетки, что вызывает увеличение его диаметра. Физические характеристики рукава таковы, что его продольное сокращение пропорционально увеличению его диаметра, что обусловливает появление силы сокращения в воздушной мышце.
Необходимо отметить, что для правильной работы мышцы в состоянии «покоя» она должна быть растянута или нагружена. В противном случае эффект сжатия не будет выражен. Как правило, подобные конструкции воздушной мышцы способны сжиматься до 25 % от их первоначальной длины.
Нитиноловая проволока
Нитинол представляет собой сплав, относящийся к классу материалов, обладающих «памятью» формы. Нитинол обычно выпускается в виде проволоки. При нагревании материал способен сокращаться до 10 % от первоначальной длины. Подобное сокращение способно производить линейное движение. Кроме свойства сокращения, этот сплав обладает свойством «памяти».
Эффект памяти является уникальным свойством этого сплава. При нагревании до температуры критического перехода сплав автоматически приобретает первоначально заданную форму. Процесс задания первоначальной формы, которую «помнит» материал, называется процедурой термального отжига. Сплав принудительно заключается в требуемую форму и подвергается процессу отжига при температуре выше критической. Такой процесс приводит к изменению кристаллической решетки сплава. После этого при любом повышении уровня температуры выше критической материал «вспомнит» приданную ему первоначально форму. Изделие из такого материала можно подвергать изгибу или скручиванию, но оно обязательно примет исходную форму при критическом нагревании.
Эти уникальные свойства определяются структурой кристаллической решетки сплава. Возвратная сила может достигать 1500 грамм на кв. см. Вряд ли кто-то будет использовать материал столь большого поперечного сечения. Даже достаточно тонкая проволока способна производить очень большую силу. К примеру, проволока диаметром 6 мм создает возвратную силу в 350 грамм.
Объем нитиноловой проволоки при сокращении до уровня 10 % остается постоянным. По мере сокращения ее диаметр пропорционально возрастает, обеспечивая постоянство объема.
Наиболее простым способом нагревания нитиноловой проволоки является пропускание через нее электрического постоянного тока (см. рис. 4.2) Однако длительное пропускание постоянного тока может привести к разрушению проволоки в силу ее неравномерного омического нагрева. Повреждений проволоки при нагревании и поддержании в нагретом состоянии можно избежать, использую широтно-импульсный источник постоянного тока.
Рис. 4.2. Бабочка с нитиноловой проволокой
Некоторые конструкторы роботов используют нитиноловую проволоку в приводе безмоторного шестиногого движущегося робота. Робот действительно способен передвигаться, но делает это крайне медленно, поскольку для цикла нагревания и охлаждения нитиноловой проволоки требуется значительное время. Конструкция такого шестиногого «ползающего» робота очень легка (он весит несколько унций), однако он имеет достаточную мощность, чтобы нести «на себе» собственный источник питания.
Для шестиногих «ползающих» роботов использование нитинола в качестве привода вряд ли оправдано, однако он находит много других интересных применений в конструкциях роботов. Для того чтобы подробнее ознакомиться с замечательными свойствами этого материала, посмотрим, как используется способность нитинола к сокращению в некоторых коммерческих игрушках. На рис. 4.3 изображена механическая бабочка, крылья которой приводятся в движение нитиноловой проволокой. В качестве интересной иллюстрации принципов робототехники, такая бабочка может быть присоединена к источнику питания на основе солнечной батареи.
Рис. 4.3. Бабочка с нитиноловой проволокой
На рис. 4.4 изображено демонстрационное устройство – движущийся шарик. Нитиноловый привод совершает в день около 20.000 циклов и способен работать многие годы.
Рис. 4.4. Модель шара-ракеты
Петли из нитиноловой проволоки могут быть использованы для создания вращения. На рис. 4.5 изображен такой простой «тепловой» движитель. Каждое колесико имеет паз, в котором находится нитиноловая проволока. Для лучшей теплопроводности меньшее колесо изготовлено из латуни. Когда меньшее колесо помещено в воду – оно начинает вращаться. Подобный тепловой движитель может работать и от солнца. Если сфокусировать на маленьком колесе лучи солнца с помощью 3 – дюймовой лупы, то устройство начнет работать.
Рис. 4.5. Тепловой двигатель
Нитинол также может быть использован в механических выключателях кнопочного типа, например в качестве привода небольших воздушных клапанов или в других механизмах, требующих линейных перемещений.
Соленоиды
Соленоид представляет собой электромеханическое устройство (рис. 4.6). Стандартный соленоид имеет обмотку с проводом и внутренний подвижный металлический сердечник. При подаче напряжение магнитное поле обмотки втягивает или выталкивает сердечник. Сердечник может быть механически соединен с частями робота, требующими перемещения.
Рис. 4.6. Соленоид
Кольцевые соленоиды
Кольцевой соленоид отличается от обычного тем (см. рис. 4.7), что вместо линейного он производит вращательное движение. Кольцевой соленоид может быть использован в конструкции робота-рыбы (см. гл. 13).
Рис. 4.7. Кольцевой соленоид
Шаговые двигатели
Шаговые двигатели могут использоваться для передвижения, перемещения, управления рулевым механизмом и позиционирования. Такие устройства находят применение в качестве интегрированных компонентов многих коммерческих и промышленных систем, управляемых компьютерами. В домашних персональных компьютерах шаговые двигатели можно обнаружить в приводах дисководов и в принтерах.
Уникальность шаговых двигателей в том, что ими можно управлять с помощью цифровых устройств. Такие двигатели могут осуществлять повороты на точно заданный угол. Это свойство делает шаговые двигатели идеальными для задач линейного и кругового позиционирования. Широкое использование шаговых двигателей в промышленности обуславливает широкий ассортимент моделей по форме, размерам и иным свойствам (см. рис. 4.8А).
Рис. 4.8А. Шаговый двигатель
При подаче напряжения на стандартный электрический двигатель его ротор начинает непрерывно вращаться. Скорость и фаза вращения ротора являются функцией напряжения, нагрузки на двигатель и времени. Определение точной фазы (положения) ротора в этом случае невозможно.
В отличие от этого, питание шагового двигателя осуществляется серией электрических импульсов, подаваемых на обмотки двигателя. Каждый импульс, поданный на обмотки, поворачивает ротор на строго определенный угол. Такой поворот называется шагом, отсюда двигатель получил название шагового.
Не существует единой величины шага для шаговых двигателей; выпускаются устройства с различными углами поворота на один шаг (импульс). Номинальная величина такого шага зависит от характера применения двигателя. Величины углов поворота обязательно указаны в спецификации устройства. Можно найти шаговые двигатели с углами поворота от долей градуса (например, 0,72°) до десятков градусов (например, 22,5°)
Схема управления шагового двигателя
На рис. 4.8В показана схема управления шагового двигателя. Используется однополярный двигатель с шестью выводами. ИС U1 представляет собой управляемый напряжением таймер серии 555, который в режиме генерации выдает прямоугольные тактовые импульсы на вывод 3. ИС U2 типа UCN5804 является контроллером шагового двигателя. Тактовые импульсы, поступающие на вывод 11 ИС UCN5804, поворачивают ротор шагового двигателя, причем каждому импульсу соответствует один шаг поворота. Повышение частоты тактовых импульсов приводит к увеличению скорости вращения шагового двигателя.
Рис. 4.8В. Шаговый двигатель – схема управления
В данной несложной схеме тактовые импульсы производятся таймером серии 555. Такие импульсы можно генерировать с помощью микроконтроллера (см. гл. 6) или светочувствительного нейрона (см. гл. 5). Переключатель SW1 изменяет диапазон тактовых импульсов медленно/быстро. Переключателем SW2 можно изменить направление вращения ротора двигателя.
Шаговые двигатели можно использовать для создания робота-платформы (см. гл. 10).
Сервомоторы
Сервомоторы представляют собой двигатели постоянного тока, снабженные редукторами и системой обратной связи контроля положения. В любительских целях подобные моторы используются для контроля положения органов управления в радиоуправляемых моделях. Вал такого мотора может поворачиваться или удерживаться на углах не менее 90° от среднего положения.
В силу широкого использования таких устройств в самодельных конструкциях, их выпускаемый ассортимент достаточно разнообразен (см. рис. 4.9). Существуют большие сервомоторы, используемые в промышленности, но они достаточно дороги для любительского применения. В этой книге мы будем использовать небольшие и недорогие моторчики для любительских целей.
Рис. 4.9. Сервомотор
Сервомотор имеет три вывода. По двум из них подается питающее напряжение от 4 до 6 В. На третий вывод подается сигнал позиционирования. Сигнал позиционирования представляет собой цепочку прямоугольных импульсов длительностью от 1 до 2 мс. Соответственно, импульс, соответствующий среднему положению будет равен 1,5 мс. Импульсы подаются с частотой порядка 50 в секунду (50 Гц), т. е. время между импульсами составляет порядка 20 мс. Такой «средний» импульс вызовет поворот вала мотора в среднее положение ±45 град.
Поворот вала сервомотора ограничен 90 градусами (±45 град. от среднего положения). Импульс длиной 1 мс вызовет поворот вала мотора влево до упора (см. рис. 4.10), в то время как импульс в 2 мс вызовет аналогичный поворот вправо. Варьируя длину импульсов в пределах 1–2 мс, можно добиться поворота вала двигателя на любой угол внутри указанного интервала.
Рис. 4.10. Управляющие импульсы для сервомотора
Может показаться, что генерация подобных импульсов представляет собой достаточно сложную задачу. На самом деле это не так. Для управления сервомотором PIC – микроконтроллер 16F84 использует лишь несколько простых команд. Такой PIC может управлять одновременно восемью сервомоторами. Другим удобным методом управления сервомоторами является использование R/C систем. Альтернативой этому может служить создание собственной схемы управления.
Изготовление такой схемы не столь сложно, как может показаться вначале. На рис. 4.11 показано использование сдвоенного таймера типа 556 для управления сервомотором. Схема 556 имеет два независимых таймера. Для лучшего понимания работы схемы посмотрите на схему, изображенную на рис. 4.12, где использованы два отдельных таймера серии 555. Первый таймер находится в режиме генерации и выдает отрицательные прямоугольные импульсы длительностью 1 мс с частотой 55 Гц. Этот таймер соединен со вторым таймером серии 555, включенным по схеме одновибратора.
Рис. 4.11.Управление сервомотором с помощью ИС 556
Рис. 4.12. Управление сервомотором с помощью ИС 555
При появлении отрицательного импульса на выводе 1 одновибратор генерирует положительный импульс на выводе 5. Ширину выходного положительного импульса можно изменять, используя потенциометр 10 кОм. В зависимости от типа используемого сервомотора, возможно, придется подобрать величины сопротивлений R1 и R2 на рис 4.11. Помните, что у сервомотора могут существовать внутренние ограничители угла поворота, и не прикладывайте излишних усилий, если мотор «застрял».
Практическая работа с сервомоторами показала, что поворот вала мотора в крайние допустимые положения требует импульсов длиной менее 1 мс или более 2 мс.
По мере накопления опыта работы с сервомоторами вы можете захотеть использовать их на больших углах поворота (в пределах 180°), что потребует расширения диапазона времен управляющих импульсов.
Однако перед тем как предпринимать подобные шаги, вы должны понять, при подаче управляющего сигнала вне диапазона углов поворота сервомотора, вал мотора, дойдя до крайней позиции, будет с силой упираться во внутренний ограничитель, стремясь, все же повернуться на заданный угол.
Например, у вас имеется сервомотор, которому для поворота в крайнее правой положение требуются импульсы длиной 2,8 мс. Если сервомотор поворачивается нормально, то все в порядке. Допустим, вы заменили его другим мотором, диапазон управления которого ограничен длиной импульса в 2,5 мс. Если вы будете продолжать подавать импульс длиной в 2,8 мс, то сервомотор будет пытаться повернуться на больший угол, чем он физически может. Поскольку ротор упирается в ограничитель, через мотор будет протекать добавочный ток, который может сжечь сам мотор.
Проблема возникает обычно при замене сервомотора. Очень часто замененный мотор имеет несколько другой диапазон импульсов управления. Нужно взять за правило: если диапазон применяемых импульсов выходит из зоны 1–2 мс, необходимо проверить сервомотор в крайних положениях на предмет «залипания».
Сервомоторы используются в шагающем роботе, описанном в гл. 11. Для управления сервомоторами используется PIC микроконтроллер. Применения сервомоторов и PIC микроконтроллеров описаны в гл. 6.
Двигатели постоянного тока
Двигатели постоянного тока для любительского конструирования могут использоваться для движения и перемещения конструкций роботов (см. рис. 4.13). Для большинства таких двигателей характерны высокая частота вращения ротора и небольшой крутящий момент. Конструкции роботов, напротив, требуют большого крутящего момента при невысокой частоте вращения. Для этого могут быть использованы редукторы (см. рис. 4.14). Редуктор характеризуется передаточным числом, т. е. отношением скоростей вращения на входе и выходе. Например: двигатель с частотой вращения 8000 об/мин соединен с редуктором, имеющим передаточное число 1000:1. Какова будет скорость на выходе редуктора? 8000 об/мин: 1000=8 об/мин. Соответственно возрастет крутящий момент. Можно ожидать, что крутящий момент увеличится в той же степени, в которой снизились обороты. Практически, поскольку КПД любого устройства всегда меньше 100 %, крутящий момент будет несколько ниже из-за потерь.
Рис. 4.13. Двигатель постоянного тока
Рис. 4.14. Двигатель постоянного тока с редуктором
Некоторые двигатели постоянного тока конструктивно объединены с редуктором и называются двигателями с редукторной головкой (см. рис. 4.15).
Рис. 4.15. Двигатель постоянного тока с редукторной головкой
Мостовая схема управления двигателем постоянного тока
При конструировании робота желательно наличие простой схемы управления его включением и выключением. Кроме того, необходима схема реверса направления вращения двигателя. Таким требованиям удовлетворяет мостовая схема управления.
Необходимо понимать, что термин «двигатель постоянного тока» относится также к двигателям, снабженным редукторами или имеющим редукторную головку.
Мостовая схема состоит из четырех транзисторов (некоторые используют МОП полевые транзисторы. Я использую биполярные Дарлингтоновские NPN транзисторы). В некоторых схемах используются транзисторы PNP и NPN проводимости. В любом случае транзисторы используются в ключевом режиме (см. рис. 4.16А). Когда ключи SW1 и SW4 закрыты, двигатель вращается в одном направлении. Когда закрыты ключи SW2 и SW3, двигатель вращается в противоположном направлении.
Рис. 4.16. Мостовая схема на переключателях
При правильной коммутации ключей мы можем изменить направление тока, протекающего через двигатель, на противоположное, что вызовет изменение направления вращения вала двигателя. Транзисторная схема моста, управляющего двигателем, показана на рис. 4.17. Подобная схема использована в гл. 5 в схеме сенсора робота-тестера.
Рис. 4.17. Мостовая схема на транзисторах
Широтно-импульсная модуляция (ШИМ)
Мостовая схема обеспечивает включение-выключение двигателя постоянного тока и управляет направлением его вращения. К этим функциям может быть добавлена функция управления частотой вращения двигателя с использованием широтно-импульсной модуляции (ШИМ). Форма ШИМ сигнала приведена на рис. 4.18. Высокий уровень сигнала ШИМ соответствует включению двигателя, низкий уровень его выключает. Поскольку частота импульсов ШИМ очень велика, то напряжение на двигателе может быть определено как среднее значение длины импульса к периоду следования (скважность импульса). Чем больше длина импульса, тем больше среднее напряжение. Среднее напряжение лежит в пределах от нуля до напряжения питания, и, таким образом, ШИМ эффективно управляет скоростью вращения двигателя.
Рис. 4.18. Широтно-импульсная модуляция (ШИМ) для управления мостовой схемой
Двигатель является индуктивной нагрузкой. В моменты включения/выключения возникающее переходное напряжение, генерируемое обмотками двигателя, может повредить полупроводниковые части моста. Для гашения этого напряжения используются защитные диоды, включенные параллельно транзисторам, как показано на рис. 4.19.
Рис. 4.19. Транзисторная мостовая схема с защитными диодами
Защитный диод гасит обратное переходное напряжение на землю, что эффективно защищает переход транзистора, к которому подключен диод. Защитные диоды должны быть рассчитаны на нормальный ток, потребляемый двигателем.
Глава 5 Сенсорика
Сенсорика роботов (система чувствительных датчиков) обычно копирует функции органов чувств человека: зрение, слух, обоняние, осязание и вкус. Чувство равновесия и положения тела в пространстве, как функция внутреннего уха, иногда считаются шестым чувством. Функционирование биологических органов чувств базируется на принципе нейронной активности, в то время как чувствительные органы роботов имеют электрическую природу. Возможны возражения, что на самом деле обе эти группы имеют электрическую природу, основанные на указании, что нейронные и электрические цепи имеют общее электрохимическое происхождение. Тем не менее, нейронная сенсорика функционирует иначе, чем просто электрическая. По этой причине для устранения разночтений мы определим сенсорику робота, как имеющую электрическую природу.
Для полной имитации биологических органов чувств необходимо использование нейронных чувствительных устройств (сенсоров). Примером такого нейронного сенсора является человеческое ухо, работу которого мы рассмотрим. Характеристика человеческого уха нелинейна. Его реакция на звуковой раздражитель носит логарифмический характер. Это означает, что десятикратное повышение уровня звукового сигнала вызывает двукратное повышение субъективного уровня громкости. Для сравнения, обычный приемник звуковых сигналов, например микрофон, имеет линейную выходную характеристику. Отсюда десятикратное повышение уровня выходного сигнала, подаваемого на компьютер, микроконтроллер или иную схему, соответствует десятикратному увеличению звукового сигнала.
Сенсорные датчики могут обнаружить какие-то внешние сигналы и определить их величину, что выражается в появлении на выходе пропорционального электрического сигнала. Информация, содержащаяся в сигнале, должна быть считана и обработана «интеллектом» робота (например, ЦПУ) или нейронной сетью. Мы можем характеризовать искусственные сенсоры по их отношению к природным органам чувств, но обычно классы сенсорных устройств выделяются по типу воздействия, на которое данный сенсор реагирует: свет, звук, тепло и т. д. Типы сенсоров, встроенных в робота, определяются целями и местом его применения.
Обработка сигналов
При выборе типа сенсорного устройства, используемого в роботе, необходимо решить вопрос чтения и обработки сигнала, поступающего от него. Vjui Многие сенсоры представляют собой датчики резистивного типа, что означает, что их сопротивление меняется в зависимости от количества поступающей энергии. Если такой датчик является частью делителя напряжения, то амплитуда выходного сигнала окажется пропорциональной количеству поступающей энергии.
Если для робота необходимо действительное значение интенсивности поступающей энергии, необходимо использовать аналого-цифровой преобразователь (АЦП). АЦП измеряет входной электрический сигнал и выдает соответствующий ему двоичный код.
Для правильной работы и преобразования данных АЦП необходим микроконтроллер или цифровая схема. Во многих случаях использование АЦП не является необходимым. В некоторых случаях достаточно использовать компаратор.
Как следует из самого названия, компаратор сравнивает два электрических напряжения. Одно из напряжений называется опорным и устанавливается по нашему желанию. Другое напряжение выдается сенсорным датчиком (через делитель напряжения). Выход компаратора имеет два уровня – высокий и низкий. Высокий уровень соответствует +5 В, низкий уровень – 0 В.
Выходной сигнал компаратора зависит от соотношения уровней напряжений на его двух входах. Возможны три состояния: напряжение датчика меньше опорного напряжения, равно ему или превосходит его.
Пример построения компаратора
Лучшим способом познакомиться с работой компаратора является использование его в схеме. Посмотрев на рис. 5.1, вы сразу обнаружите, что компаратор выглядит почти так же, как операционный усилитель. Это действительно так; компараторы представляют собой специализированные операционные усилители (ОУ). Компаратор, использованный в первом примере, представляет собой счетверенный компаратор типа LM339. Эта интегральная схема состоит из четырех компараторов и заключена в корпус с 14 выводами. Аналогично ОУ компараторы имеют инвертированный и неинвертированный входы. В данном случае опорное напряжение подается на инвертированный вход (-).
Рис 5.1. Схема компаратора и счетверенный компаратор на ИС LM 339
Делитель напряжения
Делитель напряжения представляет собой простой, но очень важный элемент схемы. Его использование позволяет состыковать большинство резистивных сенсорных датчиков с входом компаратора. Опорное напряжение получается также с помощью делителя напряжения на двух резисторах 10 кОм (см. рис. 5.2А). Voп. в данном случае будет равно 2,5 В, т. е. половине питающего напряжения 5 В (см. табл. 5.1). Понятно, что величина Voп. может быть любой в пределах от нуля до напряжения питания и зависит от отношения сопротивлений делителя напряжения.
Vоп.=Vпит.хR2/(R1+R2)
где Vпит.=5 В.
Рис. 5.2. Делители напряжения А, В и С
Таблица 5.1. Двухрезисторный делитель напряжения
Для создания переменного делителя напряжения можно использовать переменный резистор, как показано на рис. 5.2В и 5.2С. Я предпочитаю схему 5.2А как самую простую.
Схема для проверки работы устройства приведена на рис. 5.3 Вместо сенсорного датчика мы будем использовать два постоянных резистора в 1 кОм и переменный резистор 5 кОм. Переменным резистором можно регулировать величину напряжения, поступающего на неинвертированный вход. Выход компаратора обычно представляет собой NPN транзистор с открытым коллектором, выходной ток которого более чем достаточен для подключения светодиода, который мы будем использовать в качестве индикатора. Говоря иначе, выход компаратора может быть использован как электронный ключ, замыкаемый на землю. Это окажется полезным позднее при коммутации таймера типа 555.
Рис. 5.3. Схема проверки работы компаратора
После сборки схемы посмотрим, что будет происходить. Когда входное напряжение меньше опорного Vоп., на выходе компаратора будет присутствовать низкий уровень 0 В, через светодиод будет протекать ток, что вызовет его свечение. Если мы с помощью переменного резистора повысим напряжение Vвх. до уровня, превышающего Voп. уровень выхода перебросится в положение «высокий», и светодиод погаснет. Можно проверить работу компаратора вольтметром, измеряя значения напряжений на инвертированном и неинвертированном входах.
Многие, и я в том числе, находят работу подобной схемы несколько неестественной. Более привычным является зажигание светодиода при превышении Vвх. над Voп. Это можно легко сделать, поменяв местами подключения входов компаратора, т. е. присоединив Vвх. к инвертированному входу компаратора, а Voп. к неинвертированному соответственно. Функция выхода изменится при этом на противоположную.
Если по схеме не требуется большого количества компараторов, то в качестве компаратора можно использовать КМОП операционный усилитель, включенный соответствующим образом. Я предпочитаю использовать подобные ОУ, поскольку они обеспечивают достаточный выходной ток для питания светодиодов и других частей схемы (см. рис. 5.4).
Рис. 5.4. Схема проверки работы компаратора на ОУ
Датчики освещенности (фотосенсоры)
Существует большое количество различных типов датчиков освещенности: фоторезисторы, фотоэлектрические устройства, фотодиоды и фототранзисторы. Световые датчики могут использоваться для определения положения и направления движения. Некоторые роботы используют источники ИК излучения и ИК приемники для обхода препятствий и предотвращения ударов о стены. Источник и приемник ИК излучения монтируются в передней части робота и имеют одинаковое направление. При приближении робота к препятствию или стене, ИК излучение отражается от их поверхности и детектируется ИК приемником. ЦПУ робота интерпретирует такое увеличение сигнала как препятствие и обводит робота вокруг него.
Перед датчиком освещенности могут быть установлены фильтры, выделяющие световые волны определенной длины и поглощающие прочие. Примером таких фильтров могут служить фильтры, установленные на роботах-пожарных и детектирующие наличие открытого пламени. Подбором фильтра можно выделить свет, излучаемый пламенем, и ослабить световые лучи, приходящие от других источников.
Другим примером является использование эмульсионных цветовых фильтров для различения цвета. Можно представить себе робота, собирающего или выбирающего только спелые фрукты на основании цвета их кожуры.
Фоторезисторы
Фоторезисторы на основе сульфида кадмия (см. рис. 5.5) являются устройствами, реагирующими на видимый свет. Спектр поглощения такого резистора близок к спектру человеческого глаза (см. рис. 5.6). CdS – фоторезистор представляет собой полупроводник, но без обычного PN перехода. Наибольшее сопротивление такой фоторезистор имеет в полной темноте. По мере увеличения освещенности его сопротивление уменьшается. Измеряя сопротивление резистора, можно оценить среднюю освещенность в видимом спектре.
Рис. 5.5. Фотоэлементы на основе сульфида кадмия (CdS)
Рис. 5.6. Диаграмма, показывающая сравнительную спектральную чувствительность глаза и светочувствительных датчиков
Световой выключатель на основе фоторезистора
На рис. 5.7 приведена основная схема устройства. Поскольку CdS-преобразователь представляет собой резистор, он может быть включен напрямую в делитель напряжения. По мере нарастания освещенности сопротивление фоторезистора падает. Соответственно, повышается напряжение на резисторе R1 и на выводе 2 ИС. Когда напряжение превысит напряжение на выводе 3, включится двигатель M. Порог срабатывания регулируется подстроечным резистором R1 4,7 кОм. Такая схема является основной для управления «солнечным шаром», описанным в гл. 12.
Рис. 5.7. Выключатель света на фоторезисторе
Светочувствительный нейрон
На рис. 5.8 изображена схема светочувствительного нейрона. По мере нарастания освещенности возрастает частота выходных импульсов. Такая схема фотонейрона может генерировать тактовые импульсы для контроллера шагового двигателя типа ИС UCN5804. При увеличении интенсивности освещенности поворот шагового двигателя осуществляется быстрее.
Рис. 5.8. Нейрон на базе фоторезистора
Фотоэлектрические устройства
Фотоэлектрические (солнечные) элементы, фотодиоды и фототранзисторы имеют похожую конструкцию. Все они обладают светочувствительным PN переходом. В солнечных батареях площадь PN перехода велика и используется для вырабатывания электрической энергии пропорционально степени освещенности.
Фотодиоды обычно используются в схемах в обратном включении. Световой поток уменьшает запирающий барьер PN перехода, и через диод начинает течь ток. Время срабатывания фотодиодов намного меньше, чем CdS фоторезисторов, поэтому они могут быть использованы для детектирования модулированных световых сигналов.
Фототранзисторы представляют собой светочувствительные транзисторы. Их преимущество в сравнении со светодиодами в том, что они способны усиливать поступающий световой сигнал.
Датчики ИК излучения
Датчики ИК излучения работают в диапазоне низких частот излучения световых волн (900 нм и ниже). Они заслуживают специального рассмотрения, поскольку широко используются в роботах для ориентирования, обхода препятствий и связи.
Использование ИК датчиков не представляет никаких трудностей. У различных дистрибьюторов можно найти модули, содержащие детектор модуляции (см. рис. 5.9). Их преимущество в том, что они детектируют ИК сигнал, модулированный строго определенной несущей частотой (обычно около 40 кГц).
Рис. 5.9. ИК приемный модуль
Несущая частота 40 кГц может быть промодулирована в свою очередь другим низкочастотным сигналом. Приемный модуль также изготовлен таким образом, что он «принимает» сигналы только на частоте несущей 40 кГц. Такой способ позволяет создать очень надежный канал связи. Сперва приемный модуль обнаруживает несущую 40 кГц и только после этого «отпирает» устройство для приема сигнала модуляции передатчика ИК излучения, отфильтровывая, таким образом, сигналы других источников. После этого осуществляется детектирование модулированного сигнала с несущей 40 кГц.
ИК детектор препятствий
На рис. 5.10 изображен простой детектор препятствий. Как только устройство приближается к препятствию, поток отраженного ИК излучения возрастает. Соответственно, возрастает напряжение на приемнике ИК излучения, что в какой-то момент перебрасывает компаратор и выдает сигнал, информирующий о наличии препятствия по ходу движения.
Рис. 5.10. Изображение ИК детектора препятствий
Передатчик ИК излучения
На рис. 5.11 изображена схема ИК передатчика. Передатчик использует ИС таймер типа 555 в режиме генерации. Переменный резистор R1 регулирует частоту выходных импульсов. Выход таймера соединен с NPN транзистором типа 2N2222, в эмиттерную цепь которого включен ИК светодиод. Обратите внимание, что при работе схемы диод светиться не будет, т. к. ИК излучение невидимо для человеческого глаза. Поскольку мы конструируем простой детектор препятствий, модуляция несущей 40 кГц не требуется.
Рис. 5.11. Схема ИК передатчика
Приемник ИК излучения
На рис 5.12 изображена схема приемника ИК излучения. Приемный модуль представляет собой устройство Everlite IRM-8420, имеющее центральную частоту 37,9 кГц и ширину полосы пропускания 3 кГц (±1,5 кГц). Выход модуля представляет собой выход низкого уровня. Это означает, что при обнаружении сигнала выход «садится» на землю. Такой выход эквивалентен выходу на транзисторе NPN структуры с открытым коллектором (см. вставку на рис. 5.12). Ток выхода достаточен для зажигания светодиода. В тестовой схеме наличие сигнала вызовет зажигание светодиода.
Рис. 5.12. Схема ИК приемника
Настройка ИК передатчика
Расположите передатчик и приемник ИК излучения один возле другого в одном и том же направлении. Для того чтобы ИК светодиод передатчика излучал свет в строго определенном направлении, его необходимо заключить в светонепроницаемую трубку. Если не сделать этого, то настройка может оказаться невозможной. Помните о том, что некоторые пластмассы, непроницаемые для видимого света, могут оказаться прозрачными для лучей ИК диапазона.
Разместите квадратный кусочек белого картона (со стороной порядка 8 см) перед приемником и передатчиком. Регулируйте величину сопротивления R1 до зажигания светодиода. Затем удалите картонку – светодиод должен погаснуть. Если этого не происходит, возможно, боковое ИК излучение улавливается приемником.
После того как устройство заработало, необходимо более тщательно подобрать сопротивление R1 для обнаружения объектов на большем расстоянии. Передвигайте картонку по направлению к устройству до момента зажигания светодиода. Немного подрегулируйте R1 до полного зажигания светодиода. Обратите внимание: для правильной работы робота обнаружение препятствий на слишком большом расстоянии может оказаться нежелательным.
ИК системы связи и ДУ с использованием DTMF
ИК передатчики используются многими авторами для создания систем связи и дистанционного управления (ДУ). Как правило, ИК передатчик модулируется определенными частотами, а ИК приемник использует ИС типа 567, снабженную системой ФАПЧ. Для обеспечения нормальной работы необходимы настройка и согласование каждой пары «приемник-передатчик». Ниже приведены примеры построения подобных систем.
Разработан ряд специализированных широко доступных интегральных схем для применения в сфере телекоммуникаций. Подобные недорогие ИС способны передавать и принимать до 16 различных сигналов без предварительной настройки. Путем соединения подобных ИС со стандартными ИК излучателями и приемниками возможно создание ИК систем связи и дистанционного управления.
Коды DTMF
Сигналы DTMF (dual-tone multifrequency [двухтоновый многочастотный сигнал]) были предложены более 25 лет назад. Это произошло как раз перед тем, как правительство США форсировало расформирование компании Bell Telephone для разделения ее по различным секторам рынка. DTMF обычно известен как способ тонального набора.
Стандартный сигнал DTMF состоит из двух тонов звуковых частот, выбранных из группы восьми различных звуковых сигналов. Эти сигналы восьми различных частот поделены на две группы: группа сигналов низкого тона и группа сигналов высокого тона (см. табл. 5.2). Сигнал DTMF представляет собой комбинацию сигналов звуковых тонов, выбранных из различных групп (см. рис. 5.13-5.15). Простейший подсчет показывает, что возможны 4 х 4 = 16 возможных комбинаций.
Рис. 5.13. Форма колебаний низкого тона
Рис. 5.14. Форма колебаний высокого тона
Рис. 5.15. Алгебраическая сумма колебаний высокого и низкого тонов (DTMF)
Сигналы низкого тона (от R1 до R4) относятся к группе рядов. Сигналы высокого тона (от С1 до С4) образуют группу колонок.
Таблица 5.2
Кодирование сигнала DTMF
Любая комбинация частот может быть получена при использовании матрицы выключателей 4 х 4 или соответствующей клавиатуры (рис. 5.16). Помните, что эта технология была заимствована из телефонной индустрии, поэтому она была рассчитана на эффективное применение в телефонных линиях достаточно посредственного качества.
Рис. 5.16. Матрица клавиатуры 4х4, показывающая отдельные частоты DTMF
Стандартные телефоны с тональным набором используют матрицу клавиатуры размером 3х4. Такая матрица позволяет кодировать сигналы частот всех возможных рядов, но только трех вертикальных колонок (см. рис. 5.17). Клавиатура размером 3х4 более доступна и будет использоваться во всех схемных решениях, описанных ниже.
Рис. 5.17. Распайка телефонной клавиатуры 3х4
Не все клавиатуры от телефонов работают подобным образом, поэтому некоторые из них окажутся непригодными для наших схем. Например, некоторые клавиатуры имеют отличающуюся распайку выводов и требуют соответствующих ИС. По этой причине, если вы используете клавиатуру, то должны убедиться в ее правильном функционировании.
Изготовление кодера DTMF достаточно просто (см. рис. 5.18). Для этого потребуются клавиатура, кварцевый резонатор и ИС типа 5089. Цоколевка ИС 5089 показана на рис. 5.19. При использовании стандартной клавиатуры от телефона размером 3х4 вы потеряете возможность генерации 4-х DTMF кодов, связанных с отсутствующими клавишами, что снижает максимально возможное количество комбинаций до 12.
Рис. 5.18. Кодер DTMF, использующий матрицу клавиатуры 4х4
Рис. 5.19. Цоколевка кодера DTMF ИС 5089
На рис. 5.20 изображена тестовая схема кодера, в которой использованы восемь кнопочных выключателей. Эти выключатели в данном случае заменяют клавиатуру, с их помощью вы сможете проверить работу кодера и работу схемы приемника (декодера). Помните, что необходимо использовать кнопочные выключатели, работающие на замыкание. Для нормальной работы необходимо соединение одного из выводов R1-R4 и C1-C4 c землей, что осуществляется соответствующими кнопками.
Рис. 5.20. Схема кодера, использующего восемь кнопочных переключателей
ИС способна генерировать одиночные тоны, что обычно предпринимается для целей тестирования. Например, чтобы сгенерировать тон частоты 1336 Гц, соответствующий выводу С2, необходимо замкнуть на землю вывод С2 и любые два вывода из группы рядов R1-R4. Такая операция и приведет к генерации чистого тона 1336 Гц. То же самое можно проделать для генерации тона из группы рядов. Для этого необходимо заземлить любые два вывода из группы колонок и необходимый для генерации заданной частоты вывод из группы рядов.
Декодирование сигналов DTMF
Декодирование сигналов DTMF является немного более сложным, чем кодирование. Наиболее простым решением может явиться использование единственной ИС, на этот раз типа G8870 (рис. 5.21).
Рис. 5.21. Цоколевка декодера DTMF ИС G8870
ИС декодера имеет 4-битный выход с фиксацией состояния, обозначенный Q1-Q4. Q4 является старшим битом. Ток выходов Q1-Q4 достаточен для зажигания маломощных светодиодов. На рис. 5.22 показана основная схема приемника. Комбинация зажженных светодиодов, подключенных к выходам Q1-Q4, образует двоичное число. В таблице 5.3 приведены соответствия между кодами DTMF и соответствующими им двоичными числами. Схема построена так, что включенному светодиоду соответствует двоичная единица.
Рис. 5.22. Схема приемника с 4-битным выходом
Микроконтроллеры
Выводы Q1-Q4, соответствующие 4-битному числу, с выхода ИС G8870 могут быть непосредственно подключены к входным линиям микроконтроллера типа PIC 16F84. Такой микроконтроллер легко «читает» двоичные коды. Мы вернемся к использованию PIC микроконтроллеров в гл. 7.
Система связи на ИК лучах, которую мы будем рассматривать в следующих разделах, в комбинации с PIC микроконтроллером, разбираемым в гл.7, позволяет создавать программно управляемую систему коммуникации между роботами, используемыми в играх типа «салки» и в задачах следования за лидером.
Таблица 5.3. Сигналы DTMF
Цифровая индикация
Если чтение двоичного кода представляется слишком утомительным, можно добавить десятичный цифровой индикатор. Выход ИС можно присоединить к двоично-десятичному дешифратору для 7-сегментных индикаторов типа 7448. ИС 7448 в свою очередь соединена с 7-сегментным индикатором типа MAN 74 (с общим катодом). Схема, включающая две ИС, позволяет осуществлять цифровую индикацию (см. рис. 5.23).
Рис. 5.23. Схема приемника с цифровой индикацией
Проверка
Для проверки соедините выход ИС 5089 (вывод 16) с входом ИС G8870 и сгенерируйте сигнал DTMF с помощью кнопочных выключателей или клавиатуры. Декодер должен отобразить этот сигнал с помощью светодиодов или цифрового индикатора.
Использование ИК излучателя
Как только вы убедились в работоспособности устройства, можно добавить в схему приемник и передатчик ИК излучения. Выход ИС 5089 соединяется с базой NPN транзистора, в эмиттер которого включается мощный ИК светодиод (см. рис. 5.24). Можно подключить диод непосредственно к выходу ИС 5089, но излучаемая мощность в этом случае будет мала. NPN транзистор производит добавочный ток для питания светодиода.
Рис. 5.24. Схема ИК передатчика DTMF
На рис. 5.25 показана входная часть схемы ИК приемника. ИК фототранзистор соединен с КПОП операционным усилителем. Такая комбинация элементов позволяет управлять ИС 8870 через ИК канал на расстоянии порядка метра.
Рис. 5.25. Схема входной части ИК приемника DTMF
Система дистанционного управления (ДУ)
Используя ИК соединение, вы можете нажать клавишу с определенным номером на клавиатуре и увидеть соответствующую цифру, отображенную на цифровом индикаторе. Проверьте качество ИК связи по направлению и максимальному расстоянию. Увеличения дальности связи можно добиться, помещая ИК светодиод и фототранзистор в отдельные рефлекторы. Хорошо подходит для этой цели рефлектор от старой лампы-вспышки.
Устройство ДУ можно получить, добавив в схему ИС 4028, которая представляет собой двоично-десятичный дешифратор. Это означает, что при подаче параллельного двоичного кода на вход ИС (этим кодом зажигались светодиоды на рис. 5.22) на одном из выходов появится сигнал, соответствующий десятичной цифре. ИС 4028 имеет 10 выходов, обозначенных цифрами от 0 до 9. В зависимости от 4-битного кода на входе 4028, она выдает сигнал высокого уровня на одном из выходов (см. рис. 5.26).
Рис. 5.26. Схема приемника DTMF с преобразованием шестнадцатеричного кода в десятичный
Удалять из схемы ИС 7448 и цифровой индикатор нет необходимости, поскольку ИС 8870 имеет достаточно мощный выход для подачи сигнала на обе ИС 7448 и 4028. При тестировании выхода ИС 4028 цифровой индикатор может оказаться очень удобным. Чтобы не загромождать чертеж, на рис 5.26 показана связь ИС 8870 только с ИС 4028.
Выходы ИС 4028 могут непосредственно использоваться для управления переключателями или другими частями схемы. Однако это не является удачным решением, поскольку при нажатии следующей клавиши (цифры) выход, соответствующий предыдущей цифре, отключится (сбросится на низкий уровень).
Для решения этой проблемы можно использовать D-триггер типа 4013 (рис. 5.27). Триггеры являются основными элементами компьютерной памяти. В этой схеме в качестве триггера используется двоичный счетчик. После первой логической «1» на выходе ИС 4028 выход триггера перебросится также в логическую «1». Когда на выходе 4028 появится логический «0», что соответствует включению другого канала, ИС 4013 будет удерживать логическую «1» на выходе (фиксация состояния).
Рис. 5.27. Схема триггера ИС 4013
Чтобы опять перебросить выход 4013 в «0», необходимо просто включить соответствующий канал еще раз. Второй импульс, пришедший на вход ИС 4013, переключит ее выход в низкий уровень («0»). Чередование высокого и низкого уровней на выходе ИС 4013 происходит при каждой подаче «1» на ее вход.
Машинное зрение
Моделирование человеческого зрения при помощи машины является сложной задачей. Совершенно недостаточно присоединить видеокамеру к компьютеру и рассчитывать, что такая установка будет «видеть». Нейронные системы и программы ИИ должны считать видеоизображение и подвергнуть его обработке. Сейчас машинное зрение используется в ограниченных и специализированных областях.
В главе 1 я говорил о компьютерной системе Papnet, которая использует специальное нейронное программное обеспечения для анализа изображений эмульсионных мазков, обеспечивая точность, недоступную человеку-оператору. Некоторые исследователи разрабатывают системы управления автотранспортом, на основе визуального контроля очертаний дорожного покрытия.
Прежде чем мы сможем попытаться моделировать человеческое зрение, нам потребуется создать систему стереоскопически размещаемых камер (в дополнение к системе распознавания образов, что само по себе является непростой задачей). Некоторые исследования подобного рода проводятся в Массачусетсом технологическом институте, там создан робот-гуманоид COG. С помощью двух стереоскопических камер можно получить два изображения, которые обрабатываются и затем сравниваются для получения трехмерной картины. Этот процесс аналогичен получению трехмерных изображений у человека. Для определения глубины пространства каждая камера должна быть смонтирована на подвижном карданном подвесе, что позволит камерам сводить оптические оси (конвергировать) и фокусироваться на объекте. Для определения расстояния до объекта используется значение величины конвергенции.
Проблемы машинного зрения представляют благодатную почву для развития. В настоящее время большинство подобных систем требует мощных компьютеров и решает задачи обработки изображений.
Ощущение тела
Ощущение тела включает чувство его положения относительно опорных точек и в пространстве. Простейшее «чувство тела» можно смоделировать в роботе при помощи многочисленных датчиков наклона (см. рис. 5.28). По меньшей мере, робот сможет «понять», имеет ли он наклон вперед или назад, находится на «животе» или на «спине», вверх ногами или на правом боку. На основе полученной информации о положении тела робот может совершить некоторые действия и изменить свое положение.
Рис. 5.28. Датчики наклона
Индикатор направления – магнитной поле
Информацию о направлении можно полунить с помощью электронного компаса, использующего магнитное поле Земли. Это позволит роботу двигаться в заданном направлении или получать информацию о направлении перемещения.
Наиболее простым устройством является цифровой компас модели 1490 (рис. 5.29). Компас представляет собой твердотельный датчик Холла. Устройство снабжено четырьмя выводами, соответствующими положению четырех основных сторон света: север, восток, юг и запад. При использовании небольшого логического устройства можно определить восемь направлений.
Рис. 5.29. Цифровой компас 1490
Компас демпфирован таким образом, что его характеристики близки характеристикам компаса с жидкостным наполнением. Для поворота на угол 90° компасу требуется порядка 2,5 с. Демпфирование предотвращает крутильные колебания устройства и эффект дрожания вблизи указываемого направления. Устройство чувствительно к углу наклона. При угле наклона более 12° погрешности измерения превышают допустимые.
На нижней части устройства расположены двенадцать выводов, объединенных в четыре группы по три вывода. Если смотреть на компас сверху, то его выводы в группе обозначены 1, 2 и 3. Вывод 1 соединен с источником питания (5 В), вывод 2 соединен с землей. Выводы 3 каждой группы являются информационными выходами. Данные выходы аналогичны схеме NPN транзистора, включенного с общим коллектором. В таком включении выход не производит напряжение, но может пропускать значительный ток (до 20 мА), который достаточен для зажигания светодиода.
Тестовая схема изображена на рис. 5.30. Датчик сохраняет работоспособность в диапазоне питающего напряжения от 5 до 18 В. В данном случае используется батарея напряжением 9 В и регулятор напряжения на 5 В, выполненный на ИС 7805.
Рис. 5.30. Тестовая схема цифрового компаса с 4 светодиодами
Возьмите за правило: с целью безопасного сопряжения схем с компьютерными устройствами, не устанавливайте рабочих напряжений выше 5 В. Например, если мы сопрягаем электронный компас с интерфейсом PIC микроконтроллера и будем использовать напряжение питания 9 В, то слишком большое напряжение на выходе компаса может пережечь входные цепи микроконтроллера.
Для указания направления в тестовой схеме использованы светодиоды. По мере поворота устройства, каждое из основных направлений (сторон света) индицируется одним светодиодом. Промежуточные направления вызывают зажигание двух светодиодов.
Проверка и калибровка
При помощи обычного компаса найдите направление на север. Поворачивайте устройство до тех пор, пока не загорится один светодиод. Для удобства я использую момент зажигания светодиода, наиболее удаленного от датчика. Если вы сделаете то же самое, то автоматически получите последовательность, отображенную на рис. 5.31.
Рис. 5.31. Последовательность включения светодиодов
Компьютерный интерфейс
Четыре линии выхода компаса формируют 4-разрядное двоичное число (полубайт), которое можно легко считать с помощью микроконтроллера, компьютера или иной схемы (см. табл. 5.4). До момента рассмотрения схемы работы PIC микроконтроллера 16F84 в гл. 7 мы не будем рассматривать схемы его подключения.
Таблица 5.4. Назначение светодиодов
Электронный аналоговый компас типа 1525
В большинстве случаев информации о направлении, выдаваемой устройством 1490, более чем достаточно для правильной работы робота. Однако в каких-то случаях требуется более точное определение направления, и в этом случае можно воспользоваться аналоговым электронным компасом типа 1525 (см. рис. 5.32).
Рис. 5.32. Электронный аналоговый компас типа 1525
Выходная информация устройства 1525 требует гораздо более сложной обработки, но преимущество такого электронного компаса в том, что он определяет направление с точностью порядка 1°.
Выходной сигнал представляет собой два синусоидальных колебания, сдвинутых по фазе на 90° одно относительно другого (см. положение фаз колебаний на рис. 5.32). Амплитуда каждого колебания зависит от направления устройства. Если амплитуда четверти колебания (фаза 90°) преобразуется 8-битным АЦП, то разрешение устройства будет порядка 1°.
Система глобального позиционирования (GPS)
Использование системы глобального позиционирования (GPS) позволит роботу определить свое местонахождение с большой точностью в любом месте Земли. Использование GPS в большинстве случаев не является действительно необходимым, но снижение стоимости подобных систем делает их возможное применение вполне реальным.
Распознавание речи
Диапазон слышимости человеческого уха лежит в пределах от 10 до 15.000 Гц. Для регистрации звуковых колебаний могут использоваться микрофоны и усилители, причем диапазон «слышимости» микрофона, как правило, превышает возможности уха. Для робототехники использование звука является ценным инструментом.
В обычной жизни слух используется преимущественно для коммуникации (язык). Создание робототехнических систем распознавания речи сейчас очень популярно. По этой причине мы посвятим целую главу (см. гл. 7) созданию схем распознавания речи и их интерфейсов. Но, тем не менее, не пропустите следующую информацию, поскольку использование звуковых систем в роботах может оказаться очень полезным.
Звуковые и ультразвуковые системы
Звук может быть использован в играх, определении расстояний, предотвращении столкновений и объезде препятствий. Для игры в «салки» роботы снабжены двухтональным генератором и приемником. Каждый робот может генерировать и принимать сигналы двух тонов. Допустим, тон А составляет 3000 Гц, а тон В – 6000 Гц. Эти тоны издаются при любом столкновении роботов (используются контактные выключатели).
Робот, который является «салкой» (водящим), издает звук тона В при любом столкновении «бамперов» с другим роботом. Робот, который является «не водящим», в этом случае издает звук тона А. Напомним, что при столкновении «водящий» робот издает звук В. «Не водящий» робот слышит звук В, переключается и становится «водящим». В свою очередь «водящий» робот слышит звук А и становится «не водящим». При столкновении двух «неводящих» роботов каждый издает звук тона А, поэтому их состояние не меняется. Понятно, что мы использовали звуковые сигналы в качестве примера. С тем же успехом можно использовать системы коммуникации на ИК лучах.
Для определения расстояний и обнаружения препятствий часто используется ультразвук. Многие конструкторы остановились на использовании ультразвуковых модулей компании Polaroid (см. рис. 5.33). Подобные модули используются в фотокамерах Polaroid для быстрого определения расстояния до объекта и фокусировки объектива с целью получения четкого изображения. При соединении с интерфейсом микроконтроллера подобные устройства способны измерять расстояния с большой точностью.
Рис. 5.33. Ультразвуковой дальномер типа Polaroid
Такие датчики фирмы Polaroid очень удобны для использования в роботах с целью определения расстояний. Устройство способно измерять расстояния до 10 м. При использовании сервомотора или шагового двигателя устройство можно поворачивать на манер радара для составления навигационной карты или обнаружения свободного прохода.
При каждом включении УЗ преобразователь фирмы Polaroid издает слышимый щелчок. Эти постоянные щелчки, исходящие от датчика, кажутся мне раздражающими. Хотя модуль функционирует в ультразвуковом диапазоне, начальный процесс возбуждения УЗ излучателя сопровождается слышимыми звуками.
Относительно легко создать УЗ систему избегания столкновений, которая, будучи полостью ультразвуковой, работает «тихо». Основная схема повторяет схему избегания столкновений на ИК лучах, с тем отличием, что мы используем звук вместо света. На рис. 5.34 показана функциональная схема устройства. Передатчик посылает сигнал 40 кГц в УЗ преобразователь (излучатель). Другой преобразователь (приемник) расположен рядом с излучателем передатчика. Когда робот приближается к стене или препятствию, сигнал 40 кГц отражается и попадает в приемник, что вызывает повышение амплитуды его выходного напряжения. Когда напряжение превысит пороговое значение, компаратор перебросится в другое состояние, сигнализируя о наличии препятствия.
Рис. 5.34. Схема УЗ детектора препятствий
УЗ приемный блок
УЗ приемный блок (см. рис. 5.35) используется для точной настройки передатчика. Дело в том, что УЗ преобразователи имеют резонансную частоту 40 кГц. Если частота отличается от резонансной (±750 Гц), то эффективность преобразователя резко падает. Точная настройка преобразователя на максимум резонанса не составляет трудности, если вы воспользуетесь процедурой, описанной ниже. Для этого потребуется авометр, измеряющий постоянный ток, со шкалой 2 В.
Рис. 5.35. Схема УЗ приемника
Поскольку преобразователи имеют очень узкую полосу пропускания, (резонанс лежит около частоты 40 кГц), использование петли ФАПЧ (ИС LM567) не является необходимым. Сам преобразователь подавляет сигналы вне его частотного диапазона.
В приемном блоке использован ОУ КМОП-структуры. Цоколевка корпуса усилителя с 8 выводами аналогична универсальной ИС типа 741 (но не является заменой ОУ 741). ОУ включен в схему с инвертированным входом и имеет коэффициент усиления порядка 22.
УЗ передающий блок
УЗ передающий блок выполнен на ИС КМОП-структуры типа 555, включенной в режиме генерации. Для точной подстройки частоты использован подстроечный резистор R2 4,7 кОм (см. рис. 5.36).
Рис. 5.36. Схема УЗ передатчика
Настройка передатчика
Расположите УЗ преобразователи (излучатели) навстречу друг другу на расстоянии 10–15 см (см. рис. 5.37). Присоедините вольтметр, как показано на вставке к рис. 5.35 (компаратор при этом нужно отсоединить). Установите авометр на измерение напряжения постоянного тока. Выходное напряжение будет порядка 2 В, соответственно необходимо установить нужный предел измерения. Включите одновременно оба устройства. Подстраивая передатчик с помощью R2, добейтесь максимума выходного напряжения на вольтметре, которое должно составлять порядка 2 В.
Рис. 5.37. Проверка работы УЗ устройства
Настройка КМОП-компаратора
После настройки передатчика мы должны настроить схему компаратора. Отсоедините вольтметр и присоедините компаратор. Расположите УЗ преобразователи в ряд, в одном и том же направлении на расстоянии примерно 15 мм друг от друга. Расположите предмет с плоской гранью на расстоянии примерно 75 мм перед УЗ преобразователями. Включите приемник и передатчик и подстраивайте резистор R5 приемника до зажигания сверхминиатюрного светодиода.
Для проверки работы схемы уберите предмет, расположенный перед излучателями. В этом случае светодиод должен погаснуть. Отодвиньте предмет на расстояние 12–15 см и еще раз подстройте R5 до зажигания светодиода. Помните, что приемник очень чувствителен к углу отражения. Если предмет имеет острый угол, то ультразвуковой сигнал может отразиться «вбок» от приемника. По мере приближения объекта угол отражения становится менее критичным.
Устройство способно обнаруживать объекты на расстояниях до 20 см. На больших расстояниях угол отражения становится очень критичным. Я использовал перпендикулярное положение излучателей. Для различных расстояний можно немного поворачивать излучатели.
При обнаружении объекта на расстоянии до 15 см устройство стабильно выдает TTL сигнал высокого уровня, зажигающий светодиод. Этот сигнал можно легко использовать для управления нейросетью или микроконтроллером.
Расположение УЗ датчиков
Очевидными способами использования УЗ преобразователей (датчиков) является обнаружение препятствий спереди, сзади и по бокам робота. Другим применением, не столь очевидным, является мониторинг поверхности. Если закрепленный спереди УЗ датчик наклонен немного вниз, то он может предоставлять информацию о состоянии поверхности, по которой движется робот. Если робот достигает обрыва или «ступеньки», то нормально высокий сигнал становится низким, информируя ЦПУ о необходимости остановки движения.
Осязание и чувство давления
Поразительная точность и верность чувства осязания у человека едва ли может быть достигнута в конструкции робота. Однако существует несколько типов простых датчиков, которые можно использовать для обнаружения прикосновения и давления. Датчики прикосновения обычно используются в роботах для обнаружения препятствий на пути следования, что позволяет роботу избегать столкновений.
Более совершенные датчики прикосновения и давления используются в конструкциях рук и кистей. Такие датчики позволяют «руке» робота захватывать и удерживать предметы с достаточным усилием без риска их повреждения. Простой датчик прикосновения и давления можно изготовить из электростатического (проводящего) поролона. Подобный поролон используется при упаковке ИС для защиты их от статического электричества. Такой поролон обладает определенной электрической проводимостью, которая изменяется при сжатии.
Необходимо использовать неплотный (мягкий) тип поролона, поскольку он имеет пористое строение и обладает достаточной гибкостью. При нажатии поролон сжимается, что приводит к изменению сопротивления между наложенными на него электродами.
На рис. 5.38 приведен чертеж простого датчика давления. Проводящие пластины (электроды) могут быть изготовлены из фольгированного материала для печатных плат, алюминиевой фольги или чего-то подобного. Более точные датчики касания и давления будут рассмотрены в этой главе ниже.
Рис. 5.38. Датчик давления на базе проводящего поролона
Пьезоэлектрические материалы
Существует большое количество разнообразных пьезоэлектрических датчиков. Пьезоэлектрические датчики могут регистрировать вибрации, толчки и тепловое излучение. Компания Pennwall производит уникальный продукт, названный пьезоэлектрической пленкой. Она представляет собой пластик, покрытый алюминием таким образом, что он приобретает пьезоэлектрические свойства.
Материал имеет достаточную чувствительность для обнаружения теплового излучения человека, перемещающегося перед поверхностью пленки. Многие коммерческие устройства охранного включения света, продающиеся в магазинах оборудования, используют датчики в виде пьезоэлектрической пленки, помещенные за линзой Френеля, для обнаружения присутствия человека по его тепловому излучению. Такие устройства автоматически включают свет при попадании человека в «поле зрения» прибора.
Выключатели
Выключатели мгновенного действия (кнопочные) по типу образуют груп пы датчиков касания, указателей направления и конечных выключателей Разнообразие типов подобных выключателей обеспечивает свободу их вы бора. Наиболее часто в робототехнике используются выключатели мгновен ного действия рычажного и кнопочного типов (см. рис. 5.39).
Рис. 5.39. Выключатели мгновенного действия (кнопки)
Датчики изгиба
Датчики изгиба представляют собой пассивные элементы резистивного типа, сопротивление которых увеличивается при изгибе или скручивании (см. рис. 5.40 и 5.41). Такие датчики обычно используются в специальных перчатках систем виртуальной реальности для определения положения пальцев в перчатке, и могут быть легко приспособлены для нужд робототехники. Такой датчик изгиба может представлять собой род щупальца и предупреждать робота о наличии препятствия.
Рис. 5.40. Датчик изгиба
Рис. 5.41. График сопротивления датчика изгиба
Подобные устройства напоминают усы у кошки. Кошки используют усы для определения того, является ли проход достаточно широким, чтобы туда можно было пройти. Если усы по обеим сторонам кошачьей мордочки сигнализируют о наличии препятствия, то кошка туда не пойдет. Подобным образом можно использовать датчики давления и в роботах.
Тепловые датчики
Наиболее известными тепловыми датчиками являются термисторы (см. рис. 5.42). Это устройство пассивного типа изменяет сопротивление пропорционально температуре. Существуют термисторы, имеющие положительный и отрицательный температурный коэффициенты (см. рис. 5.43). Температурное излучение также может быть обнаружено с помощью пьезоэлектрических материалов, о чем говорилось выше.
Рис. 5.42. Термистор
Рис. 5.43. Графики температурной зависимости сопротивления термистора с положительным и отрицательным ТК
Датчики давления
Для измерения сил хорошо подходят датчики давления, изображенные на рис. 5.44. «Чувствительный» элемент датчика расположен на специальной подложке размерами 14х14 мм на одном конце устройства. С увеличением приложенной силы сопротивление датчика падает. Датчики выпускаются для различных диапазонов приложенных сил: от 0–4 Н до 0-4000 Н.
Рис. 5.44. Датчик давления Flexiforce
Датчики запаха
Диапазон реакций на запахи человеческого носа в настоящее время недостижим ни одной из известных искусственных сенсорных систем. Известны простые газовые датчики, способные обнаружить присутствие токсичных газов (см. рис. 5.45). Подобные датчики могут быть использованы для создания автоматических (роботизованных) систем вентиляции.
Рис. 5.45. Датчики ядовитых газов
Пример включения простого газового датчика представлен на рис. 5.46. Для создания чувствительности резистивный элемент должен быть подвергнут нагреву. Устройство снабжено встроенным подогревателем, питающимся от отдельного источника. Подогреватель потребляет около 130 мА при стабилизированном напряжении питания 5 В. Показания резистивного элемента могут быть считаны аналогично описанному выше.
Рис. 5.46. Проверка работы датчиков токсичных газов
При использовании простых схем возможности газовых датчиков раскрываются не полностью. Дело в том, что одиночный датчик не выдает достаточно точных показаний. Иными словами, показания датчиков немного изменяются от экземпляра к экземпляру. Это «аналоговое» свойство группы датчиков может быть использовано для создания более чувствительного устройства.
Рассмотрим группу из восьми датчиков, резистивный элемент каждого из которых подключен к АЦП. В данной ситуации использование компаратора неэффективно, поскольку нас как раз интересует небольшая разница в показаниях отдельных датчиков. Для калибровки устройства необходимо выпустить небольшую порцию известного газа (запаха) на все восемь датчиков. Показания каждого из них преобразуются АЦП и записываются в компьютер. Разница показаний датчиков формирует профиль для каждого анализируемого запаха.
Подбор профиля хорошо реализуется в технологии нейронных сетей. Нейронная сеть может быть создана таким образом, что окажется в состоянии определять не только интенсивность, но и распознавать различные запахи.
Датчики влажности
Пассивные датчики влажности с резистивным выходом представляют собой относительно новую разработку и доступны к приобретению.
Проверка датчиков
При разработке и изготовлении систем чувствительных датчиков представляется разумным производить их тестирование перед установкой в систему робота. Одним из способов, который я осуществил, являлось создание небольшого передвижного робота, единственной функцией которого была проверка работоспособности и характеристик датчиков. Таким образом, оказалось возможным оценить время срабатывания датчика и его надежность до установки в более сложную конструкцию робота.
Робот способен тестировать «ударные» выключатели, световые выключатели, датчики изгиба, а также системы датчиков предотвращения столкновений, использующих ультразвук и ИК лучи. Прочие типы датчиков могут потребовать тестовой платформы больших размеров.
Изготовление робота-тестера
Я назвал конструкцию этого небольшого устройства роботом-тестером. В основе ее лежит небольшой электрический автомобиль, который можно приобрести менее чем за $10 (см. рис. 5.47).
Рис. 5.47. Тестер
Принципиальная схема робота-тестера изображена на рис. 5.48. Сенсор подключается к входу запуска таймера ИС типа 555, использованной в режиме одновибратора. На выходе схемы (вывод 3) присутствует напряжение низкого уровня до момента подачи отрицательного запускающего импульса на вывод 2. После этого на выводе 3 генерируется одиночный положительный импульс длительностью порядка 1 с.
Рис. 5.48. Схема работы тестера
Вывод 3 ИС 555 соединен с NPN транзистором типа 2N2222. Выходной сигнал снимается с эмиттера транзистора и поступает на одну из 6 схем «НЕ» инвертора, выполненного на ИС 4049. Выходы буферов схем «НЕ» 4049 поступают на МОП полевые транзисторы, включенные по схеме моста, которые управляют вращением двигателя привода.
При наличии низкого уровня на выходе ИС 555 транзисторы моста включают двигатель для движения «вперед». Тестируемый датчик подключен к входу запуска 2 ИС 555. Датчик включен таким образом, что при замыкании или коммутировании он выдает отрицательный импульс (садится на землю). Этот импульс на выводе 2 запускает одновибратор, который в свою очередь выдает положительный импульс длительностью 1 с на вывод 3. Данным импульсом транзисторы перекоммутируют двигатель на 1 с для движения «назад».
Подобный тестер может быть использован для проверки большинства датчиков и преобразователей.
Усовершенствование робота-тестера
Когда я разрабатывал конструкцию робота-тестера, то предполагал что большинство проверяемых датчиков будет использовано в конструкциях миниатюрных моделей. Однако вышло по-другому. В процессе конструирования различных схем-прототипов, как правило, не хватало времени для изготовления печатной платы, не говоря уже о минимизации размеров устройства.
Если бы я создал другого робота-тестера, я бы, несомненно, использовал большую модель электрического автомобиля в качестве платформы. Наличие достаточного места позволило бы с большим удобством проверять различные типы датчиков и иных схем.
Детали для описанных устройств можно заказать по адресу:
Images Company
P.O.Box 140742
Staten Island, NY 10314
(718)698-8305
Глава 6 Интеллект
«Интеллект», заключенный в роботе, принимает одну из двух форм: программно поддерживаемый интеллект (экспертная система) и интеллект в форме нейронной сети. Возможно одновременное функционирование этих форм интеллекта. Такой синтез со временем будет широко использоваться в роботах для создания систем развитого ИИ.
Экспертные программы ИИ, основанные на системе решающих правил, хорошо известны большинству пользователей ПК. Это программы, написанные на языке высокого или низкого уровня типа С++, Basic или ассемблере. С другой стороны, нейронные системы используют искусственные, электронные нейроны для управления и генерации поведения робота. Подобная архитектура построения нейронных сетей, управляющих поведением роботов, была впервые предложена Вильямом Грей Вальтером в конце 40-х начале 50-х годов. Позднее Родни Брукс из Массачусетского технологического института разработал поведенчески ориентированную структуру сетей роботов под названием предикативной (условной) архитектуры. Мы рассмотрим работу поведенчески ориентированных роботов в гл. 8.
В этой главе мы остановимся на программируемых системах и микроконтроллерах. Помните, что работу нейронных сетей возможно имитировать с помощью специальных программных систем. Заслуживает внимания тот факт, что практически все матобеспечение по нейронным сетям функционирует на обычных программируемых компьютерах, используя специальные программы для имитации работы сетей.
Монокристальный PIC микроконтроллер
B настоящее время снабжение «интеллектом» небольшого робота или роботизованной системы представляет собой достаточно простую задачу. Существует целое семейство однокристальных компьютеров (более известных как микроконтроллеры), способных выполнять разнообразную работу.
Как следует из названия, однокристальный компьютер представляет собой цельное компьютерное устройство, заключенное в корпус ИС. Микроконтроллер, выполненный на миниатюрной подложке из кремния, заключает в себе свойства и возможности обычного персонального компьютера (ПК). Прежде всего, микроконтроллер способен хранить и выполнять программы, что является его наиболее важным свойством. Контроллер содержит центральный процессор (ЦПУ), оперативную память (ОП), постоянное запоминающее устройство (ПЗУ), шины ввода-вывода, последовательный и параллельный порты, таймеры и некоторые другие периферические устройства типа АЦП и ЦАП.
Причины использования микроконтроллера
Способность микроконтроллера к хранению и выполнению уникальной (заданной пользователем) программы обусловливает гибкость его применения. Например, можно запрограммировать микроконтроллер на принятие решений (исполнение функций) на основе определенных заранее состояний шин ввода-вывода и показаний датчиков. Его способность производить математические и логические операции позволяет моделировать сложные логические цепочки и работу цифровых электронных схем. Программы другого рода позволяют имитировать работу нейронных сетей и устройств с нечеткой логикой.
Микроконтроллер способен управлять работой двигателей постоянного тока (используется управление по напряжению или ШИМ), сервомоторов, шаговых двигателей и т. д. Если запрограммировать реакции микроконтроллера на показания чувствительных датчиков и команды ДУ, то робот приобретет способность «интеллектуального» реагирования. В настоящее время все наиболее «умные» электронные устройства на потребительском рынке снабжены микроконтроллерами, которые, очевидно, могут быть использованы и в наших роботах.
Подробности программирования PIC микроконтроллера
Программирование PIC микроконтроллера происходит в три этапа. Однако прежде чем приступить к собственно программированию, вам необходимо приобрести две вещи: программу компилятор PICBASIC и программатор EPIC (плата, куда помещается микроконтроллер). Сам PIC микроконтроллер и его дополнительные части не относятся к этим компонентам. Я рекомендую начать с PIC микроконтроллера типа 16F84, поскольку он представляет собой достаточно универсальное устройство в корпусе с 18 выводами, имеющий 13 шин ввода-вывода и перезаписываемую flash-память. Flash-память позволяет произвести до 1000 циклов перепрограммирования. Это окажется достаточно полезным при тестировании и отладке программ и электрических схем.
Компилятор PICBASIC (рис. 6.1) может быть установлен на стандартный ПК. Программа работает под DOS или в окне «MS-DOS Prompt» при установленных Windows. Для краткости MS-DOS Prompt мы далее будем обозначать просто как окно DOS. Программа DOS может быть запущена на любом ПК, начиная от PC XT с версией DOS 3.3 или выше. Компилятор поддерживает широкий ассортимент PIC микроконтроллеров. Компилятор генерирует шестнадцатеричный машинный код, который может быть использован и с другими программаторами. Цена программного обеспечения компилятора PICBASIC порядка $99,95.
Рис. 6.1. Компилятор PICBASIC
Плата программатора EPIC (см. рис. 6.2) имеет панельку для вставки ИС PIC контроллера и соединение с ПК через порт принтера для осуществления программирования. Плата программатора присоединяется к компьютеру с помощью кабеля DB25, вставленного в порт принтера (параллельный порт). Если в компьютере имеется единственный параллельный порт, в который уже вставлен кабель принтера, то для программирования PIC этот кабель должен быть предварительно отсоединен. В паре с компилятором PICBASIC плата программатора EPIC поддерживает программирование многих типов PIC микроконтроллеров. Цена платы программатора вместе с прилагаемой дискетой составляет $59,00.
Рис. 6.2. Плата программирования EPIC
Микроконтроллер PIC 16F84 изображен на рис. 6.3. Он представляет собой универсальное устройство, снабженное flash-памятью. Flash-память, как было отмечено выше, является памятью с возможностью перезаписи. Память допускает минимум 1000 циклов стирание-запись, поэтому вы можете перепрограммировать и вновь использовать микроконтроллер до 1000 раз. Время сохранения памяти без перезаписи составляет примерно 40 лет. Из 18 выводов ИС 16F84 13 представляют собой шины ввода-вывода. Изменение состояния шин ввода-вывода можно легко осуществить из программы. Другие функции включают управление питанием по перезапуску, режим энергосберегающей моды, таймер включения и защиту кодов. Другие функции архитектуры PIC 16F84 будут приведены по ходу изложения.
Рис. 6.3. Микроконтроллер 16F84
Загрузка программного обеспечения
Прежде всего необходимо загрузить матобеспечение компилятора PICBASIC и программатора EPIC согласно инструкциям, приведенным в их описаниях. Для загрузки я создал директорию на жестком диске под названием APPLICS. Для того чтобы вызывать компилятор и программатор из одной и той же директории, я использовал указатель пути DOS. Все необходимые текстовые файлы я создал и сохранил в той же директории APPLICS. Для полной установки программного обеспечения, включая полный список команд DOS, наряду с руководством по программированию микроконтроллеров PIC прочитайте мою книгу PIC Microcontroller Project Book (McGraw-Hill, New York, 2000).
Шаг 1: Написание программы на языке BASIC
Программы на языке PICBASIC должны быть написаны в текстовом редакторе, способным создавать текстовые файлы формата ASCII или DOS text. Все современные редакторы, которые я использовал, имеют эту функцию. Используйте команду Save as и выберете расширение MS-DOS text, DOS text или ASCII text. Готовый текст компилируется с помощью PICBASIC. Если у вас нет текстового редактора, то воспользуйтесь программой Windows Notepad, которая имеется в версиях Windows 3.x, 95, 98 для того, чтобы написать исходный файл на BASIC. (В Windows смотрите Приложения.) В оболочке DOS вы можете использовать редакторы EDIT.
При сохранении файла необходимо снабдить его расширением. bas. Если вы сохраняете программу под именем Wink, то ее полное имя будет Wink.bas.
Шаг 2: Компилирование программы
Компилятор PICBASIC запускается командной строкой pbc с набором имени необходимого текстового файла. Например, если мы назвали файл wink.bas, то командная строка в DOS command prompt будет:
pbc wink.bas
Компилятор BASIC обрабатывает исходный файл и создает два дополнительных файла:.asm (файл на языке ассемблера) и. hex (файл в шестнадцатеричных машинных кодах).
Файл wink.asm представляет собой трансляцию BASIC файла на язык ассемблера. Файл wink.hex является файлом машинных кодов, записанных в шестнадцатеричном виде. Для программирования PIC загружается файл. hex.
Если при компилировании исходного текста на BASIC компилятор обнаружит ошибки, то он отметит каждую из них в строке, содержащей эту ошибку, и прервет работу. Для успешного завершения компиляции необходимо предварительно исправить все отмеченные ошибки в исходном тексте программы.
Шаг 3: Программирование ИС PIC
Соедините плату программатора с портом принтера компьютера при помощи кабеля DB25. Перейдите в моду DOS. В командной строке наберите:
EPIC
На рис. 6.4 показан вид экрана монитора. Используйте опцию Open File и выберите файл wink.hex из списка в диалоговом окне. После загрузки файла последовательность чисел отобразится в окне слева. Вставьте PIC 16F84 в панельку и нажмите клавишу Program. Микроконтроллер PIC запрограммируется и будет готов к работе.
Рис. 6.4. Окно программирования EPIC
Первая программа на языке BASIC
Теперь мы готовы написать нашу первую программу. Введите программу с помощью текстового редактора в точности, как она представлена ниже:
‘Первая программа на BASIC для попеременного мигания двух светодиодов, подключенных к порту В.
Loop: High 0 ‘Включить светодиод, подключенный к порту RB0
Low 1 ‘Выключить светодиод, подключенный к порту RB1
Pause 500 ‘Задержка 0,5 с.
Low 0 ‘Выключить светодиод, подключенный к порту RB0
High 1 ‘Включить светодиод, подключенный к порту RB1
Pause 500 ‘Задержка 0,5 с.
goto loop ‘Переход по метке Loop попеременное мигание светодиодов
End
Посмотрите на рис. 6.5. Сохраните данный текст как текстовый файл при помощи команды Save в файловом меню. Присвойте файлу имя wink.bas (см. рис. 6.6). Если вы случайно сохранили текст как wink.txt, то не расстраивайтесь. Вы можете легко переименовать файл в wink.bas в файловом меню редактора при помощи команды Save as.
Рис. 6.5. Текстовый файл программы PICBASIC
Рис. 6.6. Сохранение текстового файла
Компиляция
Компилятор PICBASIC должен быть запущен под системой DOS или из окна DOS prompt в системе Windows. Я производил запуск компилятора из директории APPLICS. Убедитесь, что файл wink.bas также находится в директории компилятора PICBASIC. Компилятор PICBASIC совместим со многими типами различных PIC микроконтроллеров. Для компиляции программы под имеющийся микроконтроллер необходимо сообщить программе его тип. Для компиляции программы под PIC 16F84 необходимо добавить -p16f84 к команде pbc.
Таким образом, полная команда будет выглядеть: pbc -p16f84 wink.bas. В DOS prompt наберите команду и нажмите клавишу ввода (см. рис. 6.7).
C:\APPLICS>pbc –p16f84 wink.bas
Рис. 6.7. Введение команды компиляции
Компилятор выдаст заголовок, содержащий название версии и начнет компилировать исходный текст (см. рис. 6.8). Если исходный текст на BASIC не содержит ошибок, то он создаст два дополнительных файла. Если компилятор найдет ошибки, то он выдаст список ошибок с указанием номера соответствующей строки. Сопоставьте номера строк ошибок со строками исходного текста. Компилятор завершит программу только в том случае, если все ошибки будут исправлены.
Рис. 6.8. Программа компилятора
Вы можете посмотреть полученные файлы с помощью команды dir. Наберите dir в командной строке и нажмите клавишу ввода (см. рис. 6.9).
C:\APPLICS> dir
Рис. 6.9. Командная директория
Команда dir отображает все субдиректории и файлы, содержащиеся в данной директории. На рис 6.9 можно заметить появление двух дополнительных файлов. Одним из них является файл wink.asm, являющийся исходным файлом на языке ассемблера, который автоматически запускает макроассемблер для перевода ассемблерного кода в шестнадцатеричный машинный код. Вторым созданным файлом является файл wink.hex, содержащий шестнадцатеричный машинный код.
Программирование ИС PIC
Для программирования ИС PIC необходимо соединить плату программатора EPIC с компьютером (см. рис. 6.10). Плата EPIC соединяется с портом принтера. Если компьютер содержит единственный порт принтера, то отсоедините принтер, если он был подключен, и подключите плату EPIC при помощи кабеля DB25 длиной 2 метра.
Рис. 6.10. Плата программатора EPIC
При подключении платы обратите особое внимание на то, чтобы PIC микроконтроллер не был вставлен в плату. Если у вас имеется внешний сетевой источник питания для платы программатора, вставьте его в соответствующее гнездо. Если у вас нет сетевого источника питания, то воспользуйтесь двумя новыми батареями на 9 В и переключите джампер «Batt on» для подачи напряжения. Подключение платы к компьютеру и подача питающего напряжения должны производиться до запуска программ. В противном случае компьютер «не увидит» устройство, присоединенное к порту принтера, и выдаст сообщение об ошибке «EPIC programmer not connected».
После подачи напряжения и соединения с портом принтера на плате программатора может зажечься и погаснуть светодиод. До окончания отработки программы установки связи в EPIC программатором не вставляйте PIC микроконтроллер в панельку программатора.
Программное обеспечение платы программатора EPIC
Существуют две версии программного обеспечения EPIC: EPIC.exe под систему DOS и EPICWIN.exe под Windows. Матобеспечение под Windows является 32-разрядным и может использоваться под версии Windows 95, 98 и NT, но не подходит для 3.Х.
Использование DOS версии EPIC
При использовании версии Windows 95 или выше вы можете открыть окно MS-DOS prompt или перезагрузить компьютер в DOS моде. Под Windows 3.ХХ необходимо завершить сессию.
Предположим, что мы находимся в DOS моде и только что завершили компилирование wink.bas с помощью компилятора pbc. Скопируйте файл wink.hex в директорию EPIC. В моде DOS prompt наберите «EPIC» и нажмите клавишу ввода для запуска DOS версии программы EPIC (см. рис. 6.11).
Рис. 6.11. Команды EPIC
Отображение программы EPIC на мониторе показано на рис. 6.12. Используйте мышь для нажатия на клавишу Open или нажмите Alt + O на клавиатуре. Выберите файл wink.hex (см. рис. 6.13). Когда hex файл загрузится, вы увидите последовательность чисел в окне слева (см. рис. 6.14). Эта последовательность является машинным кодом программы. На правой стороне экрана высвечиваются параметры конфигурации, которые нам необходимо будет установить перед началом программирования PIC ИС.
Рис. 6.12. Окно программы EPIC
Рис. 6.13. Выбор шестнадцатеричного файла
Рис. 6.14. Шестнадцатеричный файл, загруженный в программу EPIC
Просмотрим в порядке очередности список параметров конфигурации:
• Device: Определение типа устройства. Установим параметр 8Х.
• ROM size (K): Устанавливает емкость памяти ПЗУ. Выберем 1.
• OSC: Установка типа осциллятора. Выберем ХТ для кварцевого резонатора.
• Watchdog timer: Выберем On.
• Code protect: Выберем Off
• Power-up time enable: Выберем High.
После установки параметров вставьте PIC микроконтроллер 16F84 в панельку. Щелкните по Program или нажмите Alt + P на клавиатуре для запуска программирования. Прежде всего программа EPIC определяет, является ли память ИС микроконтроллера «пустой». В этом случае EPIC программа инсталлирует заданную вами программу в микроконтроллер. Если память микроконтроллера не пуста, то выдается опция прервать выполнение программы или записать новую программу поверх существующей. Если в памяти микроконтроллера уже существует какая-то программа – записывайте поверх нее. По мере программирования PIC рабочие строки машинного кода подсвечиваются. После окончания процесса микроконтроллер запрограммирован и полностью готов к работе.
Проверка PIC микроконтроллера
На приведенной схеме видно, что для обеспечения работы микроконтроллера требуется очень небольшое количество дополнительных деталей. Прежде всего необходим резистор смещения, присоединенный к выводу 4 (MCLR), кварцевый резонатор на частоту 4 МГц с двумя конденсаторами по 22 пФ и источник питания 5 В.
На выходе устройства подключены два светодиода, соединенные последовательно с ограничительными резисторами. Они позволят оценить нам правильность работы микроконтроллера. Соедините компоненты без помощи пайки на макетной плате в соответствии со схемой на рис. 6.15. Готовое устройство будет иметь вид, подобный изображенному на рис. 6.16.
Рис. 6.15. Схема
Рис. 6.16. Схема, смонтированная на макетной плате
Хотя спецификация на ИС 16F84 утверждает, что микроконтроллер способен работать в интервале напряжений от 2 до 6 В, я предпочел использование стабилизированного источника питания 5 В. Стабилизатор напряжения включает регулятор напряжения на ИС 7805 и два конденсатора фильтра.
Мигание
Подайте напряжение питания на схему. Светодиоды, подключенные к ИС, начнут попеременно включаться и выключаться, поочередно мигая… Теперь вы знаете, что для программирования микроконтроллера и его запуска требуются совсем небольшие усилия.
По мере накопления опыта использование компилятора и программатора станет вашей «второй натурой». Процедура перестанет быть для вас «пошаговой», и все ваше внимание сосредоточится на создании наиболее эффективных программ на PICBASIC. Так должно быть и так будет.
Проверка неисправностей
В данной простой схеме ошибки практически не встречаются. Если Светодиоды не включаются, то необходимо проверить полярность их включения. Если они включены с обратной полярностью, то они не будут зажигаться.
Компилятор PICBASIC Pro
Существует старшая версия компилятора PICBASIC, которая имеет название PICBASIC Professional компилятор. Версия Pro компилятора гораздо бо-: лее дорогая и стоит порядка $249,95. Версия Pro имеет гораздо больший и развернутый набор команд, чем стандартная версия компилятора. Некоторые из таких команд, которые содержатся в Pro версии, могут управлять прерываниями, обеспечивают прямое управление ЖК-дисплеем, генерируют тоны DTMF и выдают команды Х-10.
Хотя данная версия является в целом более совершенной, она не поддерживает две из моих любимых (и очень полезных) команд: команду Peek (прочитать байт по адресу) и команду Poke (записать байт по адресу). Хотя в описании эти команды отмечены как «полезные», подчеркивается, что для версии PICBASIC Pro они не могут быть использованы. Если отбросить эмоции, такое решение представляется неудачным хотя бы потому, что оно разрушает вертикальную совместимость компиляторов PICBASIC, если в программе используются команды Peek или Poke.
Новые возможности интегрированной среды обработки (IDE)
С недавнего времени компиляторы PICBASIC и PICBASIC Pro комплектуются дополнительной дискетой, содержащей интерфейс интегрированной среды обработки информации (integrated development environment IDE), который имеет название CodeDesigner Lit (см. рис. 6.17). CodeDesigner Lite позволяет составлять и компилировать программы PICBASIC в оболочке Windows. Каждый оператор выделяется цветом, что позволяет с большей наглядностью выделять ошибки и вычитывать коды. Демонстрационная версия позволяет писать программы длиной до 150 строк и одновременно открывать до трех файлов с целью облегчения их перемещения и копирования.
Рис. 6.17. CodeDesigner Line
Наиболее важной чертой интерфейса CodeDesigner IDE является возможность сперва ввести исходный текст программы, потом компилировать программу в машинный код и, наконец (теоретически), запрограммировать микроконтроллер в пределах одного окна Windows. Такая компоновка уменьшает время работы программы. Обычно я пишу программу в DOS моде или использую окно MS-DOS Prompt под Windows. После окончания я выхожу из режима редактора и вручную компилирую программу. Если программа содержит ошибки (что чаще всего и происходит), я опять вхожу в редактор и произвожу отладку программы. Когда программа полностью отлажена, я загружаю ее в микроконтроллер с помощью программатора и программы EPIC. После этого производится тестирование микроконтроллера и остальной схемы. Если все работает правильно, то задача решена; в противном случае я начинаю переписывать программу.
При использовании CodeDesigner легкость написания и отладки программы на PICBASIC, а также загрузки ее в микроконтроллер сильно повышают производительность работы. Мой опыт показывает, что оптимальным является создание и отладка программы под Windows, но программирование лучше осуществляется в DOS моде.
Демонстрационной версии CodeDesigner Lite для большинства случаев оказывается достаточно, но по желанию можно расширить ее до полной версии CodeDesigner. CodeDesigner имеет любительскую версию за $45,00 и стандартную версию за $75,00.
Любительская версия CodeDesigner может работать только с компилятором PICBASIC. Стандартная версия поддерживает оба компилятора: PICBASIC и PICBASIC Pro. Некоторые отличительные характеристики CodeDesigner приведены ниже:
• Автодополнение текста: CodeDesigner делает написание текста программы более простым с помощью всплывающих окон Windows, автоматически заполняемых необходимыми операторами и данными.
• Поддержка работы с несколькими файлами.
• Подсвечивание строк, содержащих ошибки: CodeDesigner во время компиляции текста PICBASIC считывает информацию об ошибках и подсвечивает соответствующие строки программы.
• Синтаксическая поддержка: Опция оперативной синтаксической поддержки отображает синтаксис операторов среди допустимых операторов PICBASIC.
• Описание оператора: Если оператор является допустимым для PICBASIC, дескриптор оператора появляется в поле строки состояния.
• Разъяснения функций операторов: Достаточно поставить курсор на оператор PICBASIC, чтобы получить разъяснения его функции.
• Список меток: Окно списка меток высвечивает текущую метку и позволяет вам выбрать нужную метку из списка для осуществления перехода.
• Выделение цветом в PICBASIC: Возможно выделять различным цветом различные слова, строки, данные, комментарии, определения и т. д. Подобное выделение позволяет более легко читать текст программы PICBASIC.
• Закладки: Для отметки нужных мест в программе CodeDesigner имеет систему закладок.
• Возможность отмены/назначения предыдущего действия: Если вы по ошибке удалили строку, то для ее восстановления необходимо нажать клавишу «отменить».
• Система окон просмотра: Наличие нескольких окон просмотра позволит вам легко редактировать текст программы.
• Печать текста программы.
• Перемещение и вставка текста.
• Возможность вставки, удаления и копирования по строкам и столбцам.
• Поиск и замена в тексте.
• Компиляция и запуск устройства программатора.
Установка программного обеспечения
В процессе установки компонент CodeDesigner создает поддиректорию в директории Program Files и устанавливается туда. Ярлык CodeDesigner помещается в меню программ Windows.
Первая программа на PICBASIC PRO
Данная программа аналогична по функции программе wink.bas для PICBASIC, но текст ее имеет отличия. Запустите программу CodeDesigner (Lte) – см. рис. 6.18 – и введите следующий текст:
‘ Программа мигалка
‘ Попеременное мигание двух светодиодов, подключенных к порту В
Loop:
High PORTB.0 ‘Включить светодиод, подключенный к порту RB0
Low PORTB.1 ‘Выключить светодиод, подключенный к порту RB1
Pause 500 ‘Задержка Ѕ с
Low PORTB.0 ‘Выключить светодиод, подключенный к порту RB0
High PORTB.1 ‘Включить светодиод, подключенный к порту RB1
Pause 500 ‘Задержка Ѕ с
got Loop ‘Переход по метке Loop для непрекращающегося мигания светодиодов
Рис. 6.18. Программа PICBASIC Pro, написанная с помощью CodeDesigner
CodeDesigner по умолчанию создает выходной код под микроконтроллер PIC 16F84. Это тип микроконтроллера, с которого я рекомендовал бы начать. Для изменения типа устройства вызовите меню устройств и выберите в нем подходящий тип микроконтроллера.
Для компиляции программы необходимо выбрать команду компиляции в соответствующем меню или нажать клавишу F5. CodeDesigner автоматически загрузит компилятор PICPASIC Pro для осуществления компиляции. Перед началом компиляции необходимо выбрать соответствующие опции в меню компилятора. CodeDesigner «попросит» выбрать директорию, в которой находится программа PICBASIC Pro и директорию для сохранения исходного и компилированного файлов.
После завершения компиляции мы можем приступить к следующему этапу – загрузке программы в микроконтроллер с помощью программатора EPIC. Необходимо следовать порядку, изложенному ранее в инструкции для компилятора PICBASIC.
CodeDesigner и программатор EPIC
По желанию вы можете запрограммировать ИС также с помощью CodeDesigner. Выберите опцию «загрузить программатор» в меню программатора или нажмите F6. CodeDesigner автоматически запустит EPICWIN.exe под Windows.
Когда программа EPIC под Windows запущена, необходимо установить параметры конфигурации в меню опций:
• Device: Установите тип устройства. Поставьте опцию 16F84 (по умолчанию).
• Memory size (K): Устанавливает емкость ПЗУ. Поставьте 1.
• OSC: Установка типа осциллятора. Установите ХТ – кварцевый резонатор.
• Watchdog timer: Таймер режима ожидания. Установите On.
• Code protect: Защита кода. Установите Off.
• Power-up timer enable: таймер режима включения. Установите High.
После установки параметров конфигурации вставьте микроконтроллер PIC 16F84 в панельку платы программатора EPIC. В случае если CodeDesigner при запуске программы EPIC выдает ошибку «программатор EPIC не найден» (см. рис. 6.19), вы можете либо произвести диагностику программы, либо попробовать запустить EPIC в DOS моде. Инструкции по запуску матобеспечения EPIC под DOS приведены в разделе описания PICBASIC. Схема тестового устройства аналогична схеме для компилятора PICBASIC.
Рис. 6.19. Запуск программы EPIC из CodeDesigner
Мигание
Включите питание схемы. Светодиоды, подключенные к микроконтроллеру, будут попеременно включаться и выключаться.
Движемся дальше – приложения использования микроконтроллера
Сейчас настало время продемонстрировать вам, как используются микроконтроллеры в различных схемах. Вы уже обладаете начальным опытом программирования микроконтроллера 15F84. В этой главе приведены некоторые основные функции использования микроконтроллеров в различных устройствах. Эти функции повсеместно реализуются в микроконтроллерах, используемых в различных схемах и разработках.
Для начала посмотрим, как микроконтроллер может определить замыкание цепи. Для этой цели могут быть использованы любые из 13 шин ввод/вывод, которые работают в логике TTL. Для определения замыкания мы будем использовать эти логические уровни в соединении с выключателями (см. рис. 6.20).
Выключатели низкого уровня
На рис. 6.20 выключатель с меткой А выдает на шину ввода/вывода сигнал высокого логического уровня до момента замыкания. После замыкания шина «садится» на землю, т. е. получает сигнал низкого уровня. Когда микроконтроллер получает сигнал замыкания, он может произвести ряд операций или функций управления. В нашем случае замыкание контакта выключателя вызовет мигание светодиода. Понятно, что светодиод может быть заменен транзистором, преобразователем, электронной схемой или другим микроконтроллером или компьютером.
Рис. 6.20. Переключатели логических уровней
Программа на PICBASIC имеет следующий вид:
‘PICBASIC компилятор
‘REM проверка выключателя низкого уровня
‘ Инициализация переменных
input 4 ‘Назначить шину PB4 для определения состояния выключателя
start:
if pin4 = 0 then blink ‘Если выключатель выдает низкий уровень – све
тодиод мигает
goto start ‘Если нет – проверить состояние выключателя
blink: ‘Процедура мигание
high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода
pause 250 ‘Задержка ј с
low 0 ‘Низкий уровень на шине RB0 для гашения светодиода
pause 250 ‘Задержка ј с
goto start ‘Проверка состояния выключателя
Программу на PICBASIC Pro можно составить следующим образом:
‘REM BASIC Pro компилятор
‘Rem проверка выключателя низкого уровня
input portb.4 ‘Назначить шину PB4 для определения состояния выключателя
start:
if port.b = 0 then blink ‘Если выключатель выдает низкий уровень – све
тодиод мигает
goto start ‘Если нет – проверить состояние выключателя
blink: ‘Процедура мигание
high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода
pause 250 ‘Задержка ј с
low 0 ‘Низкий уровень на шине RB0 для гашения светодиода
pause 250 ‘Задержка ј с
goto start ‘Проверка состояния выключателя
Схема устройства для выключателя низкого уровня приведена на рис. 6.21. Выключатель соединен с шиной ввода/вывода, помеченной RB4. Светодиод соединен с шиной RB0 через ограничительный резистор 470 Ом.
Рис. 6.21. Схема ключа низкого уровня
Выключатели высокого уровня
Программы и схемные решения для данного случая комплементарны предыдущему примеру. Посмотрим снова на рис. 6.20 – вариант В. Если переключатель с меткой В находится в положении «выключено», то шина выхода имеет низкий логический уровень. При замыкании переключателя на шину поступает сигнал высокого логического уровня.
Программа на PICBASIC имеет следующий вид:
‘PICBASIC компилятор
‘REM проверка выключателя высокого уровня
‘ Инициализация переменных
input 4 ‘Назначить шину PB4 для определения состояния выключателя
start:
if pin4 = 1 then blink ‘Если выключатель выдает высокий уровень – све
тодиод мигает
goto start ‘Если нет – проверить состояние выключателя
blink: ‘Процедура мигание
high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода
pause 250 ‘Задержка ј с
low 0 ‘Низкий уровень на шине RB0 для гашения светодиода
pause 250 ‘Задержка ј с
goto start ‘Проверка состояния выключателя
Программу на PICBASIC Pro можно составить следующим образом:
‘REM BASIC Pro компилятор
‘Rem проверка выключателя высокого уровня
input portb.4 ‘Назначить шину PB4 для определения состояния выключателя
start:
if port.b = 0 then blink ‘Если выключатель выдает высокий уровень —
светодиод мигает
goto start ‘Если нет – проверить состояние выключателя
blink: ‘Процедура мигание
high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода
pause 250 ‘Задержка ј с
low 0 ‘Низкий уровень на шине RB0 для гашения светодиода
pause 250 ‘Задержка ј с
goto start ‘Проверка состояния выключателя
Схема устройства для выключателя высокого уровня показана на рис. 6.22. Выключатель соединен с шиной ввода/вывода, обозначенной RB4. Светодиод подключен к шине RB0 через ограничительный резистор 470 Ом.
Рис. 6.22. Схема ключа высокого уровня
Считывание данных компаратора
Микроконтроллер может также считывать данные логических уровней с других микроконтроллеров, схем и ИС. В качестве примера рассмотрим схему на рис. 6.23. В этой схеме микроконтроллер считывает данные выхода компаратора. Выход компаратора LM339 построен по схеме NPN транзистора, поэтому для создания сигнала высокого уровня необходимо использовать резистор смещения. Микроконтроллер считывает данные выхода компаратора аналогично алгоритму выключателя низкого уровня.
Рис. 6.23. Схема чтения компаратора
Считывание данных резистивных датчиков
Микроконтроллер может непосредственно считывать данные резистивных датчиков в диапазоне от 5 до 50 кОм. К микроконтроллеру может быть подсоединен резистивный датчик любого типа: фоторезистор (элемент на основе сульфида кадмия CdS), термистор с положительным или отрицательным ТК, датчик наличия ядовитого газа, датчик изгиба или влажности. Микроконтроллер измеряет сопротивления по времени разряда конденсатора в RC цепочке (см. рис. 6.24).
Рис. 6.24. Схема команды РОТ
Командой для чтения данных резистивного датчика является:
Pot pin, scale, var
Pot представляет собой имя команды, а pin – номер шины, к которой подключен датчик. Переменная scale используется для задания времени RC цепочки. При большом времени RC цепочки значение scale должно быть низким, а для малого времени RC цепочки scale должно быть установлено на максимальное значение, составляющее 225. Если значение scale установлено правильно, то значение переменной var будет близким к нулю при минимальном сопротивлении и достигать 225 – при максимальном.
Значение переменной scale может быть определено экспериментально. Для того чтобы найти подходящее значение scale, необходимо определить максимальное рабочее сопротивление датчика и считать показания var при установке параметра scale равным 225. При этом условии значение переменной var будет представлять собой хорошее приближение значения scale.
Основная схема изображена на рис. 6.25. Для имитации резистивного датчика в схему включен переменный резистор 50 кОм. При изменении сопротивления переменного резистора в зависимости от значения переменной В0 будет загораться один из двух светодиодов. Если значение сопротивления превысит 125 – загорится светодиод 1, в противном случае будет гореть светодиод 2.
Рис. 6.25. Схема команды РОТ
Программа на PICBASIC имеет следующий вид:
‘Компилятор PICBASIC ** считывание данных резистивных датчиков **
‘Тест программа для фотосопротивлений
‘Установка
start:
pot 2,255,b0 ‘Считать показания датчика на шине RB2
if b0 > 125 then l1 ‘Если значение больше 100, включить светодиод 1
if b0 <= 125 then l2 ‘Если значение меньше 100, включить светодиод 2
l1: ‘Процедура включения светодиода 1
high 0 ‘Включить светодиод 1
low 1 ‘Выключить светодиод 2
goto start ‘Повторение
l2: Процедура включения светодиода 2
high 1 ‘Включить светодиод 2
low 0 ‘Выключить светодиод 1
goto start ‘Повторение
Программу для компилятора PICBASIC Pro можно составить следующим образом:
‘Компилятор PICBASIC Pro ** считывание данных резистивных датчиков **
‘Тест программа для фотосопротивлений
‘Установка
output portb.0 ‘Установка шины RB0 как выходной
output portb.1 ‘Установка шины RB1 как выходной
b0 var byte
start:
portb.2,255,b0 ‘Считать показания датчика на шине RB2
if b0 > 125 then l1 ‘Если значение больше 100, включить светодиод 1
if b0 <= 125 then l2 ‘Если значение меньше 100, включить светодиод 2
l1: ‘Процедура включения светодиода 1
high 0 ‘Включить светодиод 1
low 1 ‘Выключить светодиод 2
goto start ‘Повторение
l2: Процедура включения светодиода 2
high 1 ‘Включить светодиод 2
low 0 ‘Выключить светодиод 1
goto start ‘Повторение
Можно сделать демонстрацию более интересной, заменив переменное сопротивление фоторезистором на основе CdS. При правильном подборе резистора, темновое сопротивление которого составляет от 50 до 100 кОм и сопротивление светового насыщения порядка 10 кОм или ниже, при закрывании резистора или в темноте будет зажигаться светодиод 1. На ярком свете будет гореть светодиод 2.
Возможен последовательный вывод численного значения переменной pot на ЖК дисплей, соединенный с микроконтроллером через последовательный порт, или в ПК через последовательный порт RS232. Для организации последовательного порта необходима команда:
Serout Pin, Mode, Var
Сейчас мы не будем рассматривать соединение через последовательный порт; важно то, что вы получили об этом представление.
Сервомоторы
Сервомоторы представляют собой двигатели постоянного тока с редуктором, снабженные системой обратной связи, которая позволяет позиционировать положение ротора сервомотора с высокой точностью. Вал большинства сервомоторов для любительского конструирования может быть позиционирован в интервале поворота не менее 90° (±45°). Сервомотор имеет три вывода. Два вывода подключаются к источнику питания, как правило, от 4,5 до 6 В и к земляному проводу. По третьему проводу подается сигнал обратной связи, позиционирующий ротор мотора. Сигнал позиционирования представляет собой цепочку импульсов переменной длительности. Обычно длительность импульсов варьирует в интервале от 1 до 2 мс. Своей длительностью импульсы управляют положением вала сервомотора.
Команда pulsout генерирует на заданной шине импульс заданной длительности с шагом 10 мкс. Таким образом, команда pulseout 1, 150 будет выдавать импульсы длиной 1,5 мс на шине 1. Импульс длиной 1,5 мс повернет вал сервомотора в среднее положение.
Программа качания сервомотора
Демонстрационная программа будет качать вал сервомотора из левого положения в правое и обратно аналогично качанию параболической антенны радара. Схема устройства приведена на рис. 6.26.
Рис. 6.26. Схема включения сервомотора
Ниже приведена программа для компилятора PICBASIC:
‘Программа качания сервомотора
‘Компилятор PICBASIC
‘Программа осуществляет качание из левого положения в правое и обратно
b0 = 100 ‘Инициализация левого положения
sweep: ‘Процедура прямого прохода
pulsout 0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
b0 = b0 + 1 ‘Увеличение длины импульса
if b0 > 200 then sweepback ‘Конец прямого хода?
goto sweep ‘Нет, продолжение прямого прохода
sweepback: ‘Процедура обратного прохода
b0 = b0 – 1 ‘Уменьшение длины импульса
pulsout 0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
if b0 < 100 then sweep ‘Конец обратного хода?
goto sweepback ‘Нет
Программа для компилятора PICBASIC Pro:
‘Программа качания сервомотора
‘Компилятор PICBASIC Pro
‘Программа осуществляет качание из левого положения в правое и обратно
b0 var byte
b0 = 100 ‘Инициализация левого положения
sweep: ‘Процедура прямого прохода
pulsout portb.0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
b0 = b0 + 1 ‘Увеличение длины импульса
if b0 > 200 then sweepback ‘Конец прямого хода?
goto sweep ‘Нет, продолжение прямого прохода
sweepback: ‘Процедура обратного прохода
b0 = b0 – 1 ‘Уменьшение длины импульса
pulsout portb.0,b0 ‘Посылка импульса в сервомотор
pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)
if b0 < 100 then sweep ‘Конец обратного хода?
goto sweepback ‘Нет
Нечеткая логика и нейронные датчики
При интерпретации данных сенсорных датчиков можно воспользоваться некоторыми интересными возможностями. С помощью микроконтроллера мы можем имитировать работу нейронных сетей и/или устройств с нечеткой логикой.
Нечеткая логика
Первые работы по нечеткой логике были опубликованы в 1965 году профессором Калифорнийского университета в Беркли Лотфи Заде. С самого начала принципы нечеткой логики как усиленно рекламировались, так и подвергались критике.
В сущности нечеткая логика пытается имитировать подход человека к определению групп и классов явлений. Определение «нечеткости» можно пояснить некоторыми примерами. Например, на основе какого критерия теплый солнечный день может быть определен, не как «теплый», но как жаркий и кем? Основанием, на котором кто-то определяет теплый день как жаркий, может служить персональное ощущение тепла, которое в свою очередь зависит от его или ее окружения (см. рис. 6.27).
Рис. 6.27. Изменение температуры от теплой до жаркой: плавно или скачком
Не существует универсального термометра, который «утверждает», что 26,9 С° это тепло, а 27 С° уже жарко. Если рассмотреть этот пример шире, то люди, населяющие Аляску, будут иметь иной интервал температур для «теплых дней» в сравнении с жителями Нью-Йорка, и оба эти значения будут отличаться от соответствующих значений для жителей Флориды. При этом еще не нужно забывать о временах года. Теплый зимний день отличается по температуре от летнего. Все сводится к тому, что основой классификации (например, понятия «теплый день») может служить интервал температур, определенных мнением группы людей. Дальнейшая классификация может быть проведена сравнением мнений различных групп людей.
Для любой температуры мы можем найти группу, в температурный интервал которой она попадает. В некоторых случаях температура может попасть в две пересекающиеся группы. Четкая принадлежность к группе может быть определена по отклонению значения от среднего по группе.
Идея групповой или интервальной классификации может быть расширена на многие другие вещи, такие как ориентирование, скорость или рост. Давайте используем понятие роста для еще одного примера. Если мы построим график роста 1000 людей, его форма будет напоминать первую кривую на рис. 6.28. Мы можем использовать этот график для формирования групп людей маленького, среднего и высокого роста. Если мы применим жесткое решающее правило считать всех ниже 170 см людьми низкого роста и всех выше 180 людьми высокого роста, то график примет форму 2 на рис. 6.28. Такое правило считает рост 178 см «средним», хотя в действительности человек такого роста находится ближе к группе «высоких» (от 180 см и выше).
Рис. 6.28. Группировка людей по росту на основании различных правил
Вместо правил жесткой «быстрой» логики, обычно используемой в компьютерах, человек, как правило, использует более «мягкую», неточную логику или нечеткую логику. Для введения нечеткой логики в компьютер мы определим сами группы и степень принадлежности к группе. Таким образом, человек ростом 178 см почти не будет принадлежать группе людей среднего роста (слабое присутствие) и уверенно принадлежать группе высокого роста (сильное присутствие).
Нечеткая логика представляет собой альтернативу оцифрованному графику, представленному под номером 3 на рис. 6.28. График, оцифрованный с высоким разрешением, позволяет измерять рост с такой же точностью. Какова причина применения нечеткой логики вместо использования оцифрованной модели? Дело в том, что методы нечеткой логики требуют более простых форм математического обеспечения и функций научения.
Для моделирования нечеткой логики в PIC микроконтроллере для групп необходимо создать численные интервалы значений. Этим мы займемся в следующем проекте.
Устройство нечеткой логики – система слежения за направлением источника света
Сейчас мы приступим к изготовлению устройства – системы слежения за направлением источника света, использующего принцип нечеткой логики. Система отслеживает направление на источник света, применяя нечеткую логику.
Для конструкции системы слежения нам потребуются два CdS фотоэлемента, которые представляют собой светочувствительные резистивные датчики (см. рис. 6.29). Сопротивление такого элемента изменяется пропорционально интенсивности светового потока, падающего на чувствительную поверхность фотоэлемента. В условиях темноты элемент имеет наибольшее сопротивление.
Рис. 6.29. Электрические характеристики CdS фотоэлемента
В продаже имеется много различных типов CdS фотоэлементов. Выбор подходящего элемента основывается на темновом сопротивлении элемента и сопротивлении светового насыщения. Термин «сопротивление светового насыщения» означает минимальное сопротивление элемента, которое перестает уменьшаться при повышении уровня освещенности, т. е. становится насыщенным. Я использую CdS фотоэлементы, имеющие темновое сопротивление порядка 100 кОм и сопротивление светового насыщения порядка 500 Ом. При средних условиях освещенности сопротивление варьирует в пределах 2,5-10 кОм.
Для проекта потребуется два CdS фотоэлемента. Необходимо проверить каждый элемент по отдельности, поскольку внутри элементов одного типа наблюдается разброс параметров, что потребует изменения коэффициента шкалирования. Для команды pot я использовал емкость 0,022 мкФ и параметр множителя шкалы 225.
Принципиальная схема устройства изображена на рис. 6.30. CdS фотоэлементы подключены к шине порта В (физические номера выводов 8 и 9).
Рис. 6.30. Схема системы слежения за источником света
Фотоэлементы закреплены на небольшой пластине из пластика или дерева (см. рис. 6.31). Для выводов фотоэлементов в пластине просверлены небольшие отверстия. С обратной стороны к выводам подпаяны проводники, соединенные с выводами PIC микроконтроллера.
Рис. 6.31. Конструкция блока датчиков
Для закрепления вала редуктора двигателя просверлено отверстие от 2,4 мм до 3 мм. Вал редуктора пропущен через отверстие в блоке датчиков и закреплен клеем (см. рис. 6.32).
Рис. 6.32. Фотография блока датчиков, закрепленных на редукторе двигателя
Работа системы слежения показана на рис. 6.33. При одинаковом освещении обоих датчиков, их соответствующие сопротивления примерно одинаковы. В пределах ±10 единиц PIC программа считает их одинаковыми и не включает устройство поворота. Иными словами, образуется группа «одинаковости» с размахом 20 единиц. Подобная группа и есть группа нечеткой логики.
Рис. 6.33. Работа блока датчиков в зависимости от направления на источник света
Когда один из датчиков попадает в зону тени, т. е. разность показаний датчиков превышает диапазон 20 единиц, PIC микроконтроллер запускает двигатель, поворачивающий блок сенсоров в сторону источника света (т. е. равной освещенности датчиков).
Управление двигателем постоянного тока
Для поворота блока датчиков в сторону источника света устройство использует двигатель постоянного тока с редуктором (см. рис. 6.34). Коэффициент замедления редуктора 4000:1. Вал редуктора имеет скорость примерно 1 оборот в минуту. При повторении конструкции для поворота блока датчиков рекомендуется использовать двигатель с редуктором, имеющим подобные характеристики.
Рис. 6.34. Фотография конструкции устройства слежения в сборе
Блок датчиков прикреплен (приклеен) к валу редуктора двигателя. Двигатель через редуктор может поворачивать блок по часовой стрелке или против часовой стрелки в зависимости от направления тока, протекающего через двигатель.
Для обеспечения реверсирования направления вращения двигателя необходимо устройство, обеспечивающее протекание тока в обоих направлениях. Для этой цели мы используем мостовую схему. В мостовой схеме используются четыре транзистора (см. рис. 6.35). Рассмотрим каждый транзистор как простой ключ, как показано в верхней части рисунка. Схема названа мостовой, поскольку транзисторы (ключи) включены нее в виде моста.
Рис. 6.35. Работа мостовой схемы и ее устройство
При замыкании ключей SW1 и SW4 двигатель вращается в одном направлении. При замыкании ключей SW2 и SW3 двигатель вращается в противоположном направлении. Если ключи разомкнуты, то происходит остановка двигателя.
Управление мостом осуществляется с помощью PIC микропроцессора. Мостовая схемы включает в себя четыре NPN транзистора типа 120 Darlington, четыре диода типа 1N514 и два резистора 10 кОм 0,25 Вт. Вывод 0 подключен к транзисторам Q1 и Q4. Вывод 1 подключен к транзисторам Q2 и Q3. Сигналами на выводах 0 и 1 открываются соответствующие транзисторы и двигатель вращается по или против часовой стрелки соответственно данным блока датчиков. Обратите внимание на правильность подключения резисторов 10 кОм, в противном случае схема не будет работать.
Транзисторы TIP 120 Darlington изображены на схеме как обычные NPN транзисторы. Во многих схемах моста в «верхней» части используются транзисторы PNP проводимости. Сопротивление PNP транзисторов немного выше. Таким образом, если мы используем только NPN транзисторы, то КПД устройства несколько увеличится.
Диоды
Для предотвращения выбросов напряжения, которые могут привести к сбросу или зависанию PIC микропроцессора, используются защитные диоды, включенные между эмиттером и коллектором каждого транзистора (от Q1 до Q4). Эти диоды гасят всплески напряжения, возникающие при включении и выключении обмоток двигателя.
Программа на PICBASIC имеет следующий вид:
‘Программа нечеткой логики для системы слежения
start:
low 0 ‘Низкий уровень шины 0
low 1 ‘Низкий уровень шины 1
pot 2,255,b0 ‘Чтения показаний фотоэлемента 1
pot 3,255,b1 ‘Чтение показаний фотоэлемента 2
if b0 = b1 then start ‘Если показания равны, то ничего не делать
if b0 > b1 then greater ‘Если больше, то насколько
if b0 < b1 then lesser ‘Если меньше, то насколько
greater: ‘Процедура больше
b2 = b0 – b1 ‘Определение разницы показаний
if b2 > 10 then cw ‘Внутри границ? Если нет, перейти на cw
goto start: ‘Если внутри границ, измерять снова
lesser: ‘Процедура меньше
b2 = b1 – b0 ‘Определение разницы показаний
if b2 > 10 then ccw ‘Внутри границ? Если нет, перейти на ccw
goto start: ‘Если внутри границ, измерять снова
cw: ‘Поворот блока по часовой стрелке
high 0 ‘Включить мост
pause 100 ‘Вращение 0,1 с
goto start ‘Новая проверка
сcw: ‘Поворот блока против часовой стрелки
high 1 ‘Включить мост
pause 100 ‘Вращение 0,1 с
goto start: ‘Новая проверка
Работа устройства
При работе система слежения поворачивается вслед за перемещением источника света. Если оба CdS фотоэлемента освещены примерно одинаково, то поворота не происходит. Для проверки работы устройства закройте пальцем один из CdS датчиков. Это должно вызвать включение двигателя и поворот вала редуктора.
Если вал вращается в направлении, противоположном заданному, то поменяйте либо входные проводники датчиков, либо выходные проводники управления мостовой схемой, но не обе операции одновременно.
Выход, не использующий нечеткую логику
Устройство системы слежения с нечеткой логикой имеет двоичный выход. Двигатель может находиться в трех состояниях: выключено и вращение по и против часовой стрелки. Во многих случаях требуется плавное (градуальное) изменение выходного сигнала. Допустим, вы проектируете устройство управления двигателем лифта. Необходимым условием в данном случае будет постепенное, а не резкое ускорение или остановка лифта (двигатель не должен просто включаться и выключаться).
Возможно ли подобное изменение схемы нашего устройства? Да, конечно. Вместо простого включения двигателя, мы можем запитывать его сигналом ШИМ, который управляет скоростью его вращения.
В идеале скорость вращения двигателя должна быть пропорциональна разнице показаний (сопротивлений) двух CdS датчиков. Большая разница будет приводить к большей скорости вращения. По мере вращения датчика и приближения его к положению равновесия скорость вращения двигателя будет динамически изменяться.
Такая программа управления выходом может быть иллюстрирована графиками, разбиениями на группы и принадлежностью к группе в терминах нечеткой логики. В данном случае использование подобной программы для системы слежения является избыточным.
В целях эксперимента вы можете использовать команды pulsout и pwm для управления скоростью вращения двигателя.
Нейронные датчики (логика)
При помощи простой программы мы можем превратить датчики нечеткой логики (CdS фотоэлементы) в нейронные датчики. Нейронные сети представляют собой обширную область, мы же ограничимся одним небольшим примером. Для тех, кто решил углубленно изучить строение нейронных сетей, я рекомендую собственную книгу Understanding Neural Networks (Prompt, Indianapolis, 1998, ISBN 0-7906-1115-5).
Для создания нейронного датчика мы возьмем численные значения каждого датчика, умножим их на соответствующие весовые коэффициенты и суммируем результирующие величины. Полученный результат затем будет сравниваться со значением трехуровневого порогового значения (см. рис. 6.36).
Рис. 6.36. Схема трехуровневого нейрона
Наша небольшая программа и датчики могут выполнять все функции, присущие нейронной сети. Более того, введение многоуровневых пороговых значений является нашей оригинальной разработкой. Существуют ли многопороговые системы в природе (биологические системы)? Да, несомненно. Зуд или чесотка представляет собой очень незначительную по уровню боль, а жжение может ощущаться как жары, так и от действия холода.
Многоуровневые пороговые значения
Как правило, отдельные нейроны нейронной сети имеют единственный порог (положительный или отрицательный). Если значение превышает пороговое, то нейрон активируется. В нашем случае выходной сигнал сравнивается с несколькими пороговыми значениями и попадает, таким образом, в соответствующую группу.
Вместо того чтобы рассматривать группы выхода как диапазоны численных значений, воспользуемся геометрической интерпретацией. Рассмотрим группы как группы круга, квадрата и треугольника соответственно. При накоплении значения «на нейроне» его выходом будет служить геометрическая форма, а не численное значение. Выходные нейроны (светодиоды) могут быть собраны в матрицы соответствующей формы. При попадании сигнала в определенную группу загорается соответствующая матрица.
В нашем случае каждый из уровней выхода нейрона мы будем относить к трем группам характерного «поведения»: спячке, охоте и кормлению, которые отражают основные типы поведения «выживания» для робота «охотника за светом». Выбор типа «поведения» основывается на текущем уровне освещенности. При низком уровне освещенности робот-охотник прекращает охоту и поиски пищи (света). Включается режим сна или спячки. При средних уровнях освещенности робот «охотится» и выискивает места с наибольшим уровнем света. При высоких уровнях освещенности «охотник» останавливается и «питается», подзаряжая солнечные батареи.
В этой главе мы не будем изготовлять полную модель робота-охотника, лишь ограничимся использованием светодиодов как индикаторов типа соответствующего поведения (см. рис. 6.37). Можно обозначить светодиоды как «спячка», «охота» и «питание». Каждый из светодиодов зажигается в зависимости от интенсивности светового потока, принимаемого CdS фотоэлементами.
Рис. 6.37. Схема основной нейронной цепочки
Программа на PICBASIC имеет следующий вид:
‘Демонстрация работы нейрона
‘Установка параметров
low 0 ‘Светодиод 1 «спячка» выключен
low 1 ‘Светодиод 2 «охота» выключен
low 2 ‘Светодиод 3 «питание» выключен
start:
pot 3,255,b0 ‘Считывание показаний первого датчика
pot 4,255,b1 ‘Считывание показаний второго датчика
w2 = b0 * 3 ‘Умножение на весовой коэффициент
w3 = b1 * 2 ‘Умножение на весовой коэффициент
w4 = w2 + w3 ‘Сложение результатов
‘Установка пороговых значений
if w4 < 40 then feed ‘Много света. Питание
if w4 <= 300 then hunt ‘Света среднее количество. Охота
If w4 > 300 then snooze ‘Света мало. Спячка
‘Действия
feed: ‘Кормление
low 0
low 1
high 2
goto start:
hunt: ‘Охота
low 0
high 1
low 2
goto start:
snooze: ‘Спячка * не использовать ключ sleep *
goto start
Список необходимых частей для программирования микроконтроллера
• компилятор PSIBASIC
• компилятор PSIBASIC Pro (включая CodeDesignerLit)
• программатор EPIC
• компилятор PICBASIC и программатор EPIC
• CodeDesigner любительская версия
• CodeDesigner стандартная версия
• 16F84-4 1 шт.
• кварцевый резонатор 4,0 МГц
• конденсатор 22 пФ 2 шт.
• конденсатор 0,1 мкФ
• конденсатор 100 мФ 12 В
• резистор 4,7 кОм 0,25 Вт
• резистор 470 Ом 0,25 Вт
• стабилизатор напряжения 7805
• светодиод миниатюрный
• плата макетная
• Набор для экспериментов PIC–LED-02 (Включает: PIC16F84 (1), кварц 4,0 МГц (1), конденсатор 22 пФ (2), резистор 10 кОм 0,25 Вт (1), регулятор напряжения 7805 (1), макетная плата (2,1" х 3,6", 270 монтажных отверстий)(1), резистор 470 Ом (8), миниатюрный светодиод (8), кнопка-выключатель (1), руководство по двоичному коду, логике и портам ввода/вывода А и В)
• Сервомотор с усилием 1,3 кгс
Список деталей для системы слежения за направлением источника света и демонстрационного нейрона
• (2) CdS фотоэлемент
• (1) датчик изгиба (номинальное сопротивление 10 кОм)
• (2) конденсатор 0,22 мкФ
• (1) конденсатор 0,01 мкФ
• (4) транзистор NPN TIP 120 Darlington
• (2) резистор 10 кОм
• (б) диод 1N514
• (2) резистор 1 кОм
• двигатель с редуктором 4000:1
Детали можно заказать в:
Images Company
James Electronics
JDR MicroDevices
Radio Shack
Images SI, Inc.
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
(718) 982-6145 (fax)
• (1) Макетная плата – Radio Shack PN# 276-175
• (1) конденсатор 0,1 мкФ – Radio Shack PN# 272-1069
• (8) Светодиод красный – Radio Shack PN# 276-208
• (8) Резистор 470 Ом – Radio Shack PN# 270-1115
• (1) Резистор 4,7 кОм – Radio Shack PN# 271-1124
• (8) Резистор 10 кОм – Radio Shack PN# 271-1126
• (1) Регулятор напряж. 7805 – Radio Shack PN# 276-1770
• (2) Выключатель 4 позиц. – Radio Shack PN# 275-1301
• Зажим батареи 9 В – Radio Shack PN# 270-325
Детали можно заказать в:
Radio Shack
James Electronics
JDR MicroDevices
Глава 7 Передвижной робот с голосовым управлением
Речь является идеальным способом управления и коммуникации в робототехнике. Схема устройства распознавания речи (УРР), которой будет посвящена эта глава, функционирует независимо от основного «интеллекта» роботы (ЦПУ). Этот факт является позитивным, поскольку ресурс ЦПУ робота не используется для решения задачи распознавания речи. Задача ЦПУ сводится к тому, чтобы время от времени опрашивать шины выхода устройства распознавания для обнаружения возможных поступивших речевых команд. Данный процесс может быть оптимизирован путем подключения одной из выходных шин устройства распознавания к шине прерываний ЦПУ. При этом распознаваемое слово вызовет прерывание, оповещая ЦПУ, что команда была произнесена. Преимущество использования прерывания в том, что при этом отпадает необходимость постоянного опроса состояния устройства распознавания, что, таким образом, экономит ресурс ЦПУ.
Другим преимуществом отдельного законченного блока устройства распознавания речи (УРР) является его программируемость. Вы можете запрограммировать и «научить» УРР распознаванию тех конкретных слов, которые вы предполагаете использовать в качестве команд. Легко создать интерфейс, сопрягающий УРР с ЦПУ робота.
Большинство сегодняшних систем распознавания речи, появляющихся на рынке, представляют собой специальное матобеспечение, требующее наличия рабочего компьютера (как правило, системы РС или совместимого) и звуковой карты. Система УРР в своей основе представляет собой программу, хотя для своей работы требует некоторого «железа» (звуковая карта). Такие программы функционируют обычно под платформой DOS или Windows, занимая при этом определенную часть памяти и ресурса ЦПУ, допуская в то же время одновременную работу других программ, таких как Word или Lotus. Одновременная работа программы УРР замедляет работу других программ, использующих данные программы УРР.
Распознавание речи используется не только в робототехнике, но находит множество применений вне ее. Распознавание речи найдет применение как способ управления роботами в виртуальной реальности (ВР), приборах, играх, инструментах и компьютерах. Данная технология обладает в долгосрочной перспективе очень хорошим потенциалом, поэтому компании развивают методы распознавания речи. Возможность управлять и отдавать команды компьютеру (или прибору) непосредственно голосом сделает процесс управления таким устройством гораздо более простым, эффективным и удобным. Такой тип управления голосом в своей основе позволит пользователю осуществлять параллельно и другие операции (т. е. при голосовой работе с компьютером или прибором глаза и руки остаются «свободными» для другой работы).
В этой главе мы рассмотрим три проекта построения устройств распознавания речи. Первый проект представляет собой собственно схему УРР. Второй проект посвящен интерфейсу, связывающему УРР с мобильным шасси, взятым от радиоуправляемой модели автомобиля. Наконец, в третьем проекте рассматривается плата универсального интерфейса для набора УРР.
Проект 1: Программируемая схема распознавания речи
Первым проектом является создание программируемой схемы распозна-, -т вания речи. Термин «программируемый» используется в том смысле, что вы T"7V можете запрограммировать устройство для распознавания 40 отдельных слов по вашему выбору. «Сердцем» устройства является единственная ИС типа HM2007 – ИС распознавания речи. ИС обеспечивает распознавание слов длиной 0,96 с или 1,92 с.
При длине слова 0,96 с и статической оперативной памяти (RAM) размером 8Кх8 возможно распознавание до 40 отдельных слов. Возможно включение опции распознавания более длинных слов длиной 1,92 с. Хотя при этом количество распознаваемых слов сокращается до 20, появляется возможность распознавания не только отдельных слов, но и коротких фраз. В нашем проекте мы будем использовать интервал распознавания 0,96 с, что образует библиотеку из 40 распознаваемых слов.
Обучение процессу восприятия речи
Мы принимаем собственные способности к распознаванию речи как нечто само собой разумеющееся. Однако процесс выделения речи одного человека в толпе собравшихся на вечеринке лежит далеко за пределами возможностей современных систем УРР. Такие системы, точно так же как и мы, сталкиваются с нелегкими задачами разделения сигналов и фильтрации посторонних шумов.
Для надежной работы устройства УРР расстояние от говорящего до микрофона УРР не должно превышать 30 см. При использовании УРР на подвижном шасси робота, мы включили две небольшие радиостанции типа Walkie-Talkie. Выход одной из радиостанций соединен с микрофонным входом УРР. Другая радиостанция используется для собственно подачи голосовых команд роботу. Такая конфигурация снимает проблему удаленности от УРР и снижает посторонние шумы.
Задача распознавания речи не совпадает с задачей «понимания» речи. Если компьютер способен реагировать на звуковую команду, то это не означает, что он ее «понимает». Будущие системы распознавания речи, возможно, приобретут возможности распознавания смысловых и интонационных оттенков значения слов, т. е. будут реагировать по типу «Делай то, что я подразумеваю, а не то, что я произношу». Тем не менее подобные системы – вопрос отдаленного будущего.
Распознавание речи в зависимости и независимо от говорящего
В процессе распознавания речи можно выделить две задачи: распознавание речи для конкретного говорящего и независимо от него. Система распознавания речи «обучается» речью конкретного человека, который будет в дальнейшем ее использовать. Подобные системы способны запоминать значительное количество команд и распознавать их с вероятностью более 95 %. Недостатком такого подхода является то, что система достаточно точно распознает команды только того человека, который производил ее «обучение». Такой подход является наиболее распространенным для систем, основанных на использовании программного обеспечения персональных компьютеров.
Система, не зависящая от говорящего, «обучается» для понимания команд независимо от того, кто их произносит. По этой причине система должна иметь возможность адекватно реагировать на широкий спектр моделей речи, включая интонационное своеобразие и особенности произношения ключевых слов. В этом случае набор командных слов, как правило, значительно меньше, однако достижение необходимой точности реагирования и в этом случае возможно. Для промышленных целей чаще требуются именно системы распознавания, независимые по отношению к говорящему.
Наше УРР относится к системам, настроенным на речь конкретного человека. Мы можем сделать нашу систему отчасти «независимой» путем резервирования для каждого ключевого слова нескольких речевых моделей, каждая из которых программируется отдельно и занимает соответствующее место. Каждая из этих речевых моделей будет вызывать выполнение одной и той же команды.
Виды распознавания речи
Системы УРР имеют еще одно специфическое ограничение, которое относится к виду или стилю распознаваемой речи. Предполагается существование трех видов речи: раздельная, связная и непрерывная.
Раздельная речь
Системы УРР, оперирующие с раздельной речью, обрабатывают слова, которые произносятся раздельно. На сегодняшний день это наиболее распространенные системы УРР. В данном случае пользователю необходимо делать паузы между командными словами. В нашем устройстве РР будут использоваться как раз отдельные слова.
Связная речь
Связная речь занимает промежуточное положение между произнесением отдельных слов и непрерывным потоком речи. В этом случае пользователь может произносить группы слов в качестве команд. ИС HM2007 может быть установлена на распознавание слов или фраз длиной до 1,92 с. В этом случае словарь команд сокращается до 20 единиц.
Непрерывная речь
Непрерывный поток разговорной речи мы используем в повседневной жизни. Для УРР распознавание непрерывной речи представляет фантастически трудную задачу, поскольку в таком потоке слова проявляют тенденцию к слиянию. Например, фраза «Здравствуйте, как вы поживаете?» фонетически звучит как «Здраствуте, каквыпоживате». Подобные системы распознавания непрерывного потока речи уже появились на рынке и находятся в процессе постоянного развития.
Схемное решение УРР
Демонстрационная схема выполнена на ИС HM2007, включенной в режим ручной моды. В данной моде для программирования ИС HM2007 используется микрофон и простейшая клавиатура.
Клавиатура
В качестве клавиатуры использована стандартная телефонная клавиатура, имеющая 12 нормально разомкнутых кнопок.
При включении питания ИС HM2007 осуществляет тестирование «бортовой» статической ОП. После завершения тестирования зажигаются цифры «00» на бортовом семисегментном индикаторе, зажигается красный светодиод, и устройство ожидает подачи команды.
Обучение
Нажмите «1» (на индикаторе загорится «01»), и светодиод погаснет. Затем нажмите «Т» (Training – обучение), и светодиод загорится снова.
Держите микрофон поближе ко рту и произнесите ключевое (обучающее) слово. Допустим, в качестве обучающего слова используется слово «компьютер». Произнесите «компьютер» в микрофон. Если устройство воспримет слово, то это вызовет мигание светодиода. Слово компьютер запрограммировано как слово под номером «01». Теперь если УРР «услышит» слово «компьютер», то оно отобразит число «01» на индикаторе.
Если диод не будет мигать после произнесения слова «компьютер», то либо попробуйте повторить это слово громче, либо начните сначала – наберите «01» а затем «Т».
Продолжайте введение образцов новых слов в УРР. Для второго слова нажмите «02» и затем «Т». Напомню, что устройство способно запомнить 40 слов. Понятно, что нет необходимости вводить все 40 слов. Введите необходимое вам количество слов и перейдите к следующему этапу.
Проверка функции распознавания
Произнесите одно из ранее запомненных слов в микрофон. На цифровом индикаторе должен высветиться соответствующий номер. Допустим, ключевое слово «директория» было введено под номером 25. Соответственно, произнесение слова «директория» должно вызвать зажигание цифры 25 на цифровом индикаторе.
Коды ошибок
• 55 = слишком длинное слово
• 66 = слишком короткое слово
• 77 = соответствующего слова не найдено
Очистка памяти
Вы можете удалять отдельные записи ключевых слов путем набора номера слова и кнопки CLR. Для полной очистки памяти необходимо набрать 99 и кнопку CLR.
Особенности ИС HM2007
ИС HM2007 для распознавания речи представляет собой однокристальную ИС КМОП-структуры высокой степени интеграции. В ИС имеется аналоговый вход, анализатор голоса, блок распознавания и блок контроля системных функций. ИС может использоваться самостоятельно или под управлением ЦПУ.
Характеристики
• Однокристальная ИС для распознавания речи КМОП-структуры высокой степени интеграции
• Распознавание речи конкретного источника
• Поддержка внешней ОП
• До 40 распознаваемых ключевых слов
• Максимальная длина слова 1,92 с
• Возможность подключения микрофона
• Возможность работы в ручной моде и под управлением ЦПУ
• Время реагирования менее 300 мс
• Напряжение питания 5 В
Конструкция устройства
Устройство РР можно изготовить на основе готового набора деталей, поставляемого Images Company (см. список деталей в конце этой главы). Принципиальная схема приведена на рис. 7.1. Монтаж деталей удобно осуществлять на печатной плате.
Рис. 7.1. Схема устройства распознавания речи
Припаяйте выводы клавиатуры к печатной плате согласно рис. 7.2. Клавиатура имеет семь проводников, которые соединяются с ИС HM2007 на печатной плате. Каждый вывод клавиатуры соотносится с соответствующим выводом ИС HM2007.
Рис. 7.2. Распайка клавиатуры для УРР
На рис. 7.3. изображено расположение деталей на печатной плате со стороны компонентов. На рис. 7.4 изображено УРР в сборе.
Рис. 7.3. Вид сверху расположения деталей на печатной плате
Рис. 7.4. Устройство РР в сборе
Устройство РР, независимое от говорящего
Демонстрационная схема УРР позволяет производить эксперименты по распознаванию речи как в зависимости, так и независимо от говорящего. Обычно система настраивается под конкретного человека в предположении, что он будет ее использовать.
Мы можем использовать другой способ и «обучить» систему реагировать относительно независимо от говорящего. Для достижения этой цели мы будем использовать четыре модели «обучения» для каждого командного ключевого слова.
Для упрощения последующей цифровой обработки сообщений используем следующую логику. Для обозначения ключевого слова мы будем использовать только первую цифру (младший разряд) на цифровом индикаторе.
Таким образом, модели «01», «11», «21» и «31» будут распознаваться как одно и то же ключевое слово. Поскольку учитывается только младший разряд, то во всех случаях распознаваемое слово будет обозначаться как «1». Аналогично, модели «04», «14», «24» и «34» будут соответствовать ключевому слову «4».
Проблемы могут возникнуть при распознавании кодов ошибок.
• 55 = слишком длинное слово
• 66 = слишком короткое слово
• 77 = соответствующего слова не найдено
В использованной логике эти коды будут интерпретироваться как ключевые слова «5», «6» и «7» соответственно. Для решения проблемы существуют два пути. Первый способ использует специальную логическую схему (см. рис. 7.5), которая выдает сигнал высокого уровня при появлении цифр 5, 6 или 7 в старшем разряде, который является сигналом блокировки. Такая схема выдает сигнал высокого уровня на линию при появлении цифр 5,6 или 7, который интерпретируется интерфейсом как сигнал запрета. Другой путь решения проблемы предполагает использование PIC микроконтроллера для чтения 8-разрядного кода с выхода УРР. Любое значение более 40 будет интерпретироваться как ошибка и соответственно игнорироваться. Мы не приводим здесь схемы интерфейса для PIC микроконтроллера, поскольку для любого, умеющего работать с PICBASIC программатором и PIC ИС (см. гл. 6), это не составит большого труда. В гл. 15 мы используем встроенный PIC в схеме УРР, используемого в устройстве управления рукой робота.
Рис. 7.5. Детектор ошибки на основе состояния старшего полубайта BCD
8-битный код на выходе ИС 74LS373 является кодом с фиксацией состояния. Этот код не представляет собой обычный байт (8 двоичных разрядов), но является двумя 4-битными двоично-десятичными кодами (полубайт). В таблице 7.1 приведено соответствие между двоично-десятичным кодом и стандартным двоичным числом.
Как вы можете заметить, до числа 10 двоичный и двоично-десятичный коды совпадают. На числе 10 в двоично-десятичном коде единица «перепрыгивает» в старший полубайт, а младший полубайт обнуляется. В простом двоичном коде подобная операция (перенесение единицы в старший полубайт и обнуление младшего) осуществляется на числе 16. Если вход компьютера настроен на чтение двоичных чисел, то при подаче двоично-десятичного кода возникнут ошибки.
Таблица 7.1
Проект 2: Схема интерфейса
Основой схемы интерфейса является дешифратор 4028. ИС 4028 считывает двоично-десятичный код логики низкого уровня с выхода ИС 74LS373, расположенной на плате УРР, и выдает соответствующие сигналы высокого уровня (см. таблицу соответствий 7.2).
Принципиальная схема интерфейса изображена на рис. 7.6. Входы A,B,C, и D ИС 4028 подключены к нижнему полубайту двоично-десятичного кода ИС 74LS373. Когда я разобрал радиоуправляемую модель автомобиля, то обнаружил несколько проводов, которые при подаче питающего напряжения обеспечивают основные функции движения. Робот-автомобиль имеет четыре режима движения: движение вперед, поворот направо, поворот налево и задний ход.
Рис. 7.6. Схема интерфейса переделанной модели автомобиля
Таблица 7.2. Таблица истинности ИС 4028
Каждый режим движения обеспечивается соответствующим включением двигателя или комбинации двигатель-соленоид. Управление включением может осуществляться с помощью NPN транзистора. К выходам ИС 4028, обозначенным Q1-Q4, подключены четыре транзистора, которые осуществляют необходимое управление.
Для наглядности иллюстрации на рис. 7.6 показан только один NPN транзистор, соединенный с выходом Q1 и управляющий работой двигателя. Модель радиоуправляемого автомобиля, которую я использовал, уже снята с производства. Тем не менее подойдет любая недорогая модель подобного радиоуправляемого автомобиля, поскольку они работают аналогично. Снимите схему радиоуправления с автомобиля. Останется провод управления работой двигателя, который для запуска двигателя должен быть соединен с источником питания или с землей. Повороты автомобиля обычно осуществляются недорогими соленоидами. Проверьте провода поворотных соленоидов для определения типа управления (подача напряжения питания или заземление).
Ручные станции Walkie-talkie
У компании Radio Shack имеется в продаже большой ассортимент недорогих ручных станций Walkie-talkie. Поскольку для нормальной работы УРР расстояние до микрофона не должно превышать 30 см, использование пары ручных станций Walkie-talkie позволит значительно увеличить радиус управления роботом-платформой, использующей УРР. Выход громкоговорителя станции соединен с выводом 46 ИС HM2007 через разделительный конденсатор С1, который блокирует протекание постоянного тока от станции.
Акустическая связь
Если вы не хотите разбирать станцию и спаивать проводниками УРР и Walkie-talkie непосредственно, то можете попробовать использовать акустическую связь.
Для этой цели вы должны скрепить микрофон из набора УРР и громкоговоритель станции. Для уменьшения влияния посторонних шумов необходимо поместить микрофон и громкоговоритель в отдельную коробку.
«Обучение» и управление роботом-передвижкой
При использовании Walkie-talkie процесс «обучения» командным словам УРР, установленного на передвижной платформе, необходимо осуществлять также с использованием Walkie-talkie. Подключение интерфейса не нарушает работы бортового цифрового индикатора, поэтому он может быть использован для проверки точности распознавания записанных команд. Определите радиус действия станций Walkie-talkie. Не допускайте перемещений платформы за границы этого радиуса, в противном случае вы будете бежать за платформой, выкрикивая «стоп, стоп!» в микрофон станции. Управление роботом напоминает просто процесс общения и производит сильное впечатление.
Новые возможности платы УРР
Робот-платформа, управляемый голосом, изображен на рис. 7.7. Плата управления немного отличается от изображенной на рис. 7.4. Причиной этого является то, что мне удалось достать прототип последней версии набора УРР.
Рис. 7.7. Модель автомобиля с голосовым управлением
Последняя версия упрощает построение интерфейса для УРР. Для удобства соединения в плате имеются 9 монтажных пистонов (8 отверстий под 2 полубайта двоично-десятичного кода и отверстие под землю), которые соединены с выходом ИС 74LS373, расположенной на плате. Старший полубайт выхода 74LS373 управляет работой ИС 4028. Запускающий сигнал можно снимать с выводов красного светодиода.
В дополнение к изменениям схемы интерфейса на плате имеется вход 3. В для обновления памяти. Такое включение делает статическую ОП энергонезависимой. Иными словами, вы можете подавать или снимать питание с платы без потери информации о ключевых словах, записанной в ОП. В оригинальной версии выключение питания приводило к потере информации, записанной в ОП.
Проект 3: общая схема интерфейса УРР
Интерфейс УРР для робота-передвижки является специализированной схемой, предназначенной для конкретной цели. Следующая схема интерфейса (см. рис. 7.8) представляет собой более универсальное устройство, дающее возможность управлять целым набором устройств, таких как роботы, электрические схемы и приборы.
Рис. 7.8. Общая схема интерфейса для УРР
Для того чтобы сильно не усложнять схему и в то же время повысить надежность и точность распознавания системы УРР, мы снова ограничимся списком из 10 управляющих команд. Если вы хотите расширить этот список до полных 40 команд, то можете спроектировать интерфейс на основе идей, изложенных в этой главе. Использование 10 ключей управления позволяет нам использовать для каждого ключа 4 возможных варианта распознавания, как мы уже делали выше. Каждый из четырех вариантов распознавания, связанный с ключевым словом, позволяет запоминать различные варианты произнесения ключевого слова. Понятно, что четыре варианта произношения для каждого ключевого управляющего слова позволят повысить надежность и точность распознавания УРР.
Мы будем нумеровать места команд, как мы это делали выше, поэтому все места, соответствующие одному и тому же ключевому слову, будут иметь соответственно одинаковый младший десятичный разряд. Принцип записи будет ясен из примера.
Предположим, что мы проектируем электрическое кресло-каталку с голосовым управлением. Для управления движением кресла мы будем использовать следующий список команд:
• Вперед
• Назад
• Направо
• Налево
• Стоп
• Выключить
• Включить
• Блокировать
• Разблокировать
• Стоп (Команда «стоп» является жизненно важной, поэтому требует дублирования)
Первой командой для обучения распознавания УРР является «вперед». Мы будем использовать номера ячеек 10, 20, 30 и 40. При исключении старшего десятичного разряда в каждом номере мы получим одинаковое значение младшего десятичного разряда, равное 0. Точно так же команда «назад» записывается в ячейки 01, 11, 21 и 31. После исключения старшего десятичного разряда мы получим номер команды равный 1.
Интерфейс должен опознавать коды ошибок и не смешивать их с командами под номерами 5, 6 и 7. Для этого используется схема, состоящая из двух ИС И-НЕ типа 4011, включенных по схеме логических И и ИЛИ (как показано на рис. 7.8), которая обнаруживает коды ошибок 55, 66 и 77.
Соединение с платой УРР
Плата УРР имеет 9 отверстий под пайку, соединяющих ИС 74LS373 и 7448 для подключения схемы интерфейса (см. рис. 7.8). Восемь шин представляют 2 четырехбитных двоично-десятичных кода, девятая шина – земляная. Имеется контактная площадка красного светодиода. К этой площадке припаивается проводник, который является запускающим входом платы интерфейса.
Принцип работы устройства
Прежде всего интерфейс должен реагировать на любое слово, воспринятое УРР. Когда УРР «слышит» слово, оно пытается его распознать, что вызывает немедленное мигание светодиода.
Ток через светодиод используется для запуска интерфейса (реакция на слово). Для формирования импульса запуска используется компаратор, подключенный к катоду светодиода. Опорное напряжение составляет 3,64 В и формируется резистивным делителем 5,6 кОм и 15 кОм.
Выход компаратора имеет нормально высокий уровень. При поступлении импульса амплитудой 4,5 В с катода светодиода, на выходе компаратора формируется отрицательный импульс запуска. В качестве компаратора использован ОУ типа 741.
Процесс распознавания речи занимает до 300 мс. Во время этой задержки состояние двоично-десятичных выходов сохраняется неизменным. Если интерфейс работает слишком быстро, то он завершит обновление информации на выходе до появления входной информации, содержащейся в двоично-десятичных кодах.
Для предотвращения этого явления мы обеспечиваем задержку отрицательного импульса запуска, используя две ИС таймеров типа 555 (или одну ИС типа 556), включенных по схеме одновибратора. Отрицательный импульс с выхода компаратора запускает первый одновибратор, который выдает импульс длиной 470 мс, подаваемый на вход второго одновибратора. Второй одновибратор генерирует импульс длиной 220 мс.
Импульс длиной 470 мс предоставляет более чем достаточно времени для обновления выходов двоично-десятичного кода. Задний отрицательный фронт этого импульса запускает второй одновибратор, который выдает положительный импульс продолжительностью 220 мс. В это время происходит обновление выходов интерфейса при условии, что детектор кодов ошибок имеет высокий логический уровень на выходе.
Выход второго одновибратора (импульс 220 мс) соединен с одним из входов логического элемента И. Другой вход соединен с двумя другими логическими элементами (ИЛИ-НЕ и ИЛИ), которые образуют детектор кодов ошибок. Детектор кода ошибок соединен со старшим полубайтом двоично-десятичного кода. При наличии кода, соответствующего цифрам 5, 6 или 7 на входе детектора, он выдает низкий логический уровень на выходе. Для остальных цифр детектор имеет высокий выходной уровень. В этом случае позитивный импульс с выхода второго одновибратора запускает интерфейс для принятия младшего полубайта двоично-десятичного кода.
Высокий логический уровень на выходе детектора кода ошибок в комбинации с положительным импульсом с выхода второго одновибратора вызывает появление высокого уровня на выходе логического элемента И, что разблокирует ИС 74LS373. Когда ИС 74LS373 разблокирована, то код, содержащийся в младшем полубайте двоично-десятичного кода, поступает с ИС и записывается в ней. Четыре выхода ИС 74LS373 соединены с входами двоично-десятичного дешифратора 4028.
С другой стороны, если на выходе детектора кода ошибок присутствует сигнал низкого уровня, что происходит при наличии цифр 5, 6 или 7 в старшем разряде, то соответствующий выход элемента И имеет низкий уровень. В этом случае, при наличии положительного импульса от второго одновибратора на втором выводе логического элемента И, его выход по-прежнему имеет логически низкий уровень, тем самым ИС 74S373 блокируется, и информация младшего разряда не поступает на дешифратор 4028.
Таким путем, детектор кода ошибок отделяет числа 55, 66 и 77 от команд под номерами 5, 6 и 7.
При прохождении двоично-десятичного кода через ИС 74LS373, он поступает на вход дешифратора 4028. Дешифратор считывает данный код и выдает сигнал высокого уровня на соответствующей шине выхода (с номерами от 0 до 9).
Усовершенствование выхода интерфейса
Выходы высокого логического уровня ИС 4028 можно использовать для управления нагрузками переменного и постоянного тока. Однако лучшим вариантом является подключение выходов 4028 к триггерам. Дело в том, что в конкретный момент на выходе ИС 4028 присутствует единственный сигнал высокого уровня. По этой причине если в какой-то момент один из выходов включается, то сигнал на выходе, задействованном до того, пропадает, что представляет определенное неудобство. Наличие триггера позволяет решить эту проблему. При первом включении на выходе триггера появится сигнал высокого уровня, который сохранится до подачи на него следующего импульса. Такая схема позволит осуществлять двойное управление (включение и выключение) с помощью одной команды.
Первоначально имеется возможность активировать любое количество выходов без риска сброса уже включенных. Затем та же самая команда может быть использована для включения нагрузки (при первом произнесении) и затем ее выключения (при следующем произнесении). Таким образом, вместо использования пары команд для включения/выключения устройства (например: включить свет/выключить свет) возможно использование единственной команды, которая в «четный» раз выключает устройство (свет-свет). В некоторых случаях это позволяет удвоить список допустимых команд.
На рис. 7.9 показана схема триггера на ИС 4013. Каждая ИС содержит два триггера. Входы триггеров соединены непосредственно с выходами ИС 4028.
Рис. 7.9. Половина триггера 4013 для запоминания сигнала. Соединяется непосредственно с выходом ИС 4028, изображенной на рис. 7.8, и предназначена для сохранения включенного состояния схемы при включении следующей команды
На рис. 7.10 изображена одна схема и два фрагмента схем присоединения к выходу триггера для управления нагрузками различных типов. На части А изображен Дарлингтоновский NPN транзистор, управляющий резистивной нагрузкой в цепи постоянного тока. Подобная схема может быть использована для управления электромагнитным реле, как показано в В. Реле, соответственно, может управлять цепями постоянного или переменного тока. В части С выход 4013 соединен с оптопарой, управляющей симистором.
Рис. 7.10. Данные схемы могут быть подключены к интерфейсу, чтобы обеспечить управление схем с помощью УРР. В схеме на позиции А в качестве ключа используется триггер, управляющий Darlington транзистором. В позиции В транзистор заменен реле, что позволяет управлять сильноточными резистивными или индуктивными нагрузками постоянного и переменного тока. Схема на позиции С, объединенная с триггером позиции А позволяет осуществить гальваническую развязку между силовыми и управляющими цепями, управляя при этом включением нагрузки переменного тока
Работа устройства
Схема УРР первоначально «обучается», как описано выше. После соеди нения с интерфейсом, любая команда вызовет свечение светодиода или какую-то реакцию устройства в зависимости от того, что присоединено к вы ходам двоично-десятичного дешифратора 4028.
Улучшение процесса распознавания
Существует набор приемов для улучшения и оптимизации процесса распознавания. Прежде всего это выбор слов-команд. Избегайте омонимов и сходно звучащих слов, например, таких как спать, брать, встать, класть. Для оптимизации распознавания используйте максимально различные по звучанию слова. Во многих случаях полезно использовать синонимы или слова, имеющие приблизительно тот же смысл. Например, вместо слова «спать» используйте «дремать» или «уснуть». Вместо «брать» используйте «захватить» или «поднять». Вместо «встать» – «подняться». Слово «класть» можно заменить на «положить». Небольшие филологические изыскания помогут справиться с этой проблемой.
Настройка и сопряжение оборудования
Расстояние. Расстояние ото рта говорящего до микрофона должно быть одинаковым при «обучении» системы и ее эксплуатации.
Стресс. Под действием стрессового состояния или волнения голос изменяется. Например, если вы используете джойстик с голосовым управлением для контроля полета вашего любимого тренажера военного самолета, то в момент жаркого воздушного боя ваш голос, выкрикивающий команды «Огонь! Огонь! Крен влево!», будет немного отличаться от голоса в ситуации, когда вы спокойно сидите за столом и программируете УРР. По этой причине во время процесса программирования звуковых команд вы должны имитировать состояние стресса или возбуждения, которое вы чувствуете во время игры.
Напряженное усилие. Физический стресс является еще одним фактором. Когда вы программируете тренажерное оборудование (беговую дорожку или велосипедный тренажер) для управления голосом, вы должны подражать людям с немного сбитым дыханием.
Окружающий шум. Окружающие шумы всегда представляют собой проблему. Как было отмечено выше, постоянный шум (например, от кондиционера) оказывает меньшее влияние, чем шум, носящий случайный характер (работающий телевизор).
Рука робота, управляемая УРР
В гл. 15 будет рассмотрен еще один вариант интерфейса, управляющий рукой робота.
Список деталей для УРР
• (1) ИС1 HM2007
• (1) ИС2 SRAM 8K x 8
• (1) ИС3 74LS373
• (2) ИС4 и ИС5 7448
• (1) резонатор кварцевый 3,57 МГц
• (1) печатная плата УРР
• (1) клавиатура 12-кнопочная
• (2) индикатор 7 сегментов
• (2) сборка резисторов 220 Ом, 0,25 Вт, 16 выводов
• (1) резистор 22 кОм 0,25 Вт
• (1) резистор 5,6 кОм 0,25 Вт
• (1) конденсатор 0,047 мкФ
• (1) С2 конденсатор 100 мкФ 16 В
• (1) С5 конденсатор 0,1 мкФ
• (1) регулятор напряжения 7805
• (1) микрофон
• (1) зажим батареи 9 В
• полный набор деталей УРР
Список деталей интерфейса
• (2) ИС 4011 2 элемента ИЛИ-НЕ
• (1) ИС 74LS373 8 D триггеров
• (1) ИС 4028 двоично-десятичный дешифратор
• (1) ИС таймер 555
• (1) ОУ LM741
• (1) резистор 5,6 кОм
• (1) резистор 15 кОм
• (1) резистор 330 Ом
• (2) резистор 10 кОм
• (10) резистор 470 Ом
• (1) конденсатор 47 мкФ
• (1) конденсатор 22 мкФ
• (2) конденсатор 0,01 мкФ
• (10) светодиод миниатюрный
• Дополнительно: ИС 4013 2 D-триггера, транзистор TIP 120 NPN Darlington
Детали можно заказать в:
Images Company
39 Seneca Loop
Staten Island, NY 10314
Глава 8 Поведенчески ориентированные схемы роботов, нейронные сети, организация нервной системы и предикативная архитектура
В этой главе обсуждается класс роботов, не имеющих ЦПУ в основе схемы управления. Подобные роботы функционируют на принципах стимул-реакция, характерных для нейронных сетей.
Стимульно-реактивные механизмы, используемые в роботах, носят ряд названий, таких как нейронные сети, поведенчески ориентированные схемы, схемы нервной организации и системы предикативной архитектуры. Пионером данных работ является Вильям Грей Вальтер, создавший поведенчески ориентированные системы в конце 40-х годов. Независимо от работ Вальтера схемы реагирования роботов, построенные на принципах нейронных сетей, были научно разработаны и усовершенствованы Валентино Брайтенбергом в 80-х годах, что нашло отражение в его книге: Передвижные устройства: опыты синтетической психологии. Вдохновленный работами Вальтера профессор Массачусетского технологического института Родни Брукс разработал свою версию реагирования на стимулы, названную им «предикативной архитектурой». В свою очередь Марк Тилден, воодушевленный работой, проделанной Родни Бруксом, создал систему BEAM роботов, использующих «нервные сети».
Тема поведенчески ориентированных роботов является очень актуальной в настоящее время и, безусловно, окажется еще более важной в будущем. В системах подобной архитектуры механизмы типа «стимул-реакция» могут надстраиваться один над другим. Устройство с иерархически многослойным построением механизмов стимул-реакция может демонстрировать поразительно «разумное» поведение, как робот-охотник за «светом», описанный ниже.
До определенного времени для описания механизма «стимул-реакция» я буду использовать термин «поведенчески ориентированный». Поведенчески ориентированный подход явялется одним из двух основных подходов к снабжению роботов «интеллектом», как это было описано в гл. 6. Один из них называется интеллект «сверху вниз», а второй – интеллект «снизу вверх».
Для внесения «интеллекта» в устройство управления функциями передвижного робота (используя термин «функция» я ограничиваю для простоты возможную область обсуждения функциями движения и обследования окружающего пространства, но это является, несомненно, действительным ограничением для использования иных подходов) необходимо решить, какой из подходов окажется наиболее успешным для выполнения задания. Интеллект, управляющий функционированием устройства «сверху вниз», представляет собой экспертную систему или программу для осуществления заданного типа поиска и обнаружения. Подход «снизу вверх» опирается на создание системы искусственного поведения робота, которая обусловливает его поисковые действия.
На первый взгляд, между этими двумя подходами нет существенной разницы, однако имеется одно очень важное различие. Если экспертная система окажется в ситуации (или внешних обстоятельствах), не предусмотренных программой, то робот окажется в «нерешительности». С другой стороны, система поведения, не ориентированная на поиск шаблонных «запрограммированных» ситуаций для расчета вариантов реагирования, не придает «значения» окружающим обстоятельствам – она просто продолжает поиск.
Экспериментальная работа, проведенная в течение 30 лет, показала, что подобные системы с типом «интеллекта» «снизу вверх», т. е. поведенчески ориентированные, в ряде случаев успешно справлялись с заданиями, когда экспертные системы терпели поражение.
Пионеры в робототехнике
Как уже отмечалось, одним из пионеров в разработке поведенчески ориентированного подхода («снизу вверх») в робототехнике был Вильям Грей Вальтер. Он родился в Канзас Сити штат Миссури в 1910 году. Когда ему исполнилось пять лет, его семья переехала в Англию. Там он посещал школу и окончил Королевский колледж в Кембридже в 1931 году. После окончания он занялся фундаментальными исследованиями в области нейрофизиологии, которые проводил в госпиталях.
В начале своей карьеры Вальтер заинтересовался работами русского физиолога И.П. Павлова, знаменитого своими исследованиями механизмов «стимул-реакция», проводимых на собаках. В своих экспериментах Павлов звонил в звонок непосредственно перед тем, как дать пищу подопытным собакам. Через некоторое время собаки реагировали слюноотделением на сам звонок.
Другой современник Вальтера Ганс Бергер изобрел электроэнцефалографический аппарат. Во время визита Вальтера в лабораторию Бергера он предложил некоторые усовершенствования электроэнцефалографа. После переделки чувствительность прибора возросла, и в человеческом мозгу были обнаружены ЭЭГ кривые с частотами ниже 10 Гц.
Изучение Вальтером работы человеческого мозга привело его к изучению нейронных сетей мозга. В силу их исключительной сложности биологические нейронные сети оказалась недоступными для точной топологической картины или воспроизводства. По этой причине он выбрал объектом изучения отдельный нейрон и его электрический аналог. Он стремился узнать, какой тип поведения может быть получен в системе, состоящей из нескольких нейронов.
Для ответа на этот вопрос в 1948 году Вальтер построил трехколесный робот, имеющий вид черепахи. Размеры робота составляли 12" в высоту и около 18" в длину. Что оказалось удивительным – этот робот использовал только два электрических нейрона и при этом демонстрировал достаточно сложное и интересное поведение. Первые два робота были нежно названы Элмер и Элси (ЭЛектро МЕханический Робот и Electro Sensitive (Светочувствительный)). После наблюдений за сложным типом поведения, который демонстрировали роботы, Вальтер переименовал их в Machina Speculatrix (рассуждающая машина).
Помните, что в 40-годы транзистор еще не был изобретен, поэтому в электронных нейронах робота были использованы электронные лампы. Поскольку электронные лампы потребляют значительно большую мощность, чем транзисторы, оригинальная конструкция содержала аккумуляторы большого размера.
Нервная система или система рефлексов робота состояла из двух датчиков, соединенных с двумя нейронами. Один из датчиков представлял собой фотосопротивление, а другой – контактный выключатель, соединенный с внешней оболочкой робота.
Три колеса робота были расположены в виде треугольника. Переднее направляющее колесо было снабжено рулевым приводом и при этом могло вращаться на 360° в одном направлении. Кроме того, с этим же колесом был соединен ходовой двигатель, обеспечивающий поступательное движение робота. Поскольку рулевой механизм мог поворачиваться на полные 360°, питание ходового двигателя осуществлялось через два контактных кольца, установленных на оси привода.
Фоторезистор был также закреплен на оси привода рулевого механизма колеса. Это позволило автоматически совместить ось «взгляда» фоторезистора и направление движения робота.
Четыре режима работы
Еще до появления конструкций роботов – охотников за светом данный робот демонстрировал четыре режима работы. Необходимо отметить, что в данной конструкции как ходовой двигатель, так и двигатель рулевого привода были практически постоянно включены.
• Поиск. Окружающее пространство слабо освещено или находится в темноте. Реакция робота: двигатель рулевого механизма – полные обороты, ходовой двигатель – половинные обороты.
• Движение. Найден источник света. Реакция робота: двигатель рулевого механизма отключен, ходовой двигатель – полные обороты.
• Ослепление. Яркий свет. Реакция робота: двигатель рулевого механизма – половинные обороты, ходовой двигатель – реверсивный режим.
• Касание. Столкновение с препятствием. Реакция робота: двигатель рулевого механизма – полные обороты, ходовой двигатель – реверсирование.
Наблюдаемое поведение
В 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
Программа 2
‘Микроконтроллер 2
b4 = 150 ‘Установка среднего положения сервомотора
start:
peek 6, b1 ‘Чтение данных микроконтроллера 1
let b0 = b1 & 7 ‘Маскирование кроме первых трех битов
if b0 = 0 then slp ‘Время спячки
if b0 = 1 then rt ‘Поворот направо
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). Когда оба двигателя включены, робот движется вперед по прямой. Если один из двигателей выключен, то другой двигатель поворачивает конструкцию направо или налево.
Рис. 8.21. Общая схема робота – светоохотника
Для нашего робота-охотника при одинаковом освещении фоторезисторов нам необходимо подавать питание на оба двигателя. Для этого между выходом каждого из ОУ и базой NPN транзистора необходимо включить инвертирующий буферный каскад (см. рис. 8.22).
Рис. 8.22. Управление двигателями постоянного тока с помощью нейронных компараторов с инверторами
Поведение
Когда на один из фоторезисторов падает меньше света, чем на другой, один из двигателей соответственно выключается, а другой двигатель поворачивает устройство в направлении источника света. Когда световые потоки сравниваются, включаются оба двигателя и робот движется прямо по направлению на источник света.
Избегание света
Если мы поменяем местами выходы ОУ, управляющие двигателями, то поведение изменится на противоположное. Вместо того чтобы двигаться по направлению к источнику света, робот будет избегать света и искать «убежище».
Дополнительный тип поведения (питание)
Мы можем усложнить поведение робота-охотника, добавив еще один уровень «стимул-реакция» (см. рис. 8.23). Для этой цели подойдет еще одна управляемая светом схема компаратора, которая будет обеспечивать тип поведения «питание». Напомню, что принцип работы компараторов был изложен в гл. 5. Если у вас появились вопросы по рис. 8.23, то прочитайте еще раз эту главу. Второй слой надстроен сверху над первым. Когда интенсивность светового потока достигает критической величины, опорный детектор снимает напряжение с цепей первого слоя и системы питания двигателей. Если мы разместим на конструкции солнечную батарею и диод, то напряжение, генерируемое батареей, будет немного подзаряжать батарею NiCd аккумуляторов. Эту функцию мы назовем «питание».
Рис. 8.23. Схема компаратора для поведения типа «питание»
Еще один тип поведения (отдых)
Понятно, что у нас нет желания, чтобы робот-охотник перемещался в темноте, теряя при этом драгоценную энергию. Поэтому мы добавим еще один слой поведения. Третьим слоем будет еще один пороговый детектор (см. рис. 8.24). Этот детектор отключает напряжение от цепей первого слоя, системы питания двигателя и цепей второго слоя при уровне освещенности, близком к темноте. При повышении среднего уровня освещенности система восстанавливает питание первого слоя, подает напряжение на двигатели и цепи второго слоя.
Рис. 8.24. Схема компаратора для поведения типа «отдых»
Новый тип поведения
Посмотрим на поведение робота-охотника по трехуровневой (трехслойной) схеме «стимул-реакция» и посмотрим, можно ли классифицировать это поведение как «разумное». В полной темноте робот неподвижен, сосредоточивая всю активность на слое 3. При повышении уровня освещенности слой 3 индуцирует включение питания двух нижних слоев и активирует питание двигателей. На этом этапе слой 1 перехватывает управление устройством и направляет действия робота. Робот ищет и движется по направлению к источнику света. По мере продвижения к источнику света уровень освещенности нарастает. Когда освещенность достигнет критического порогового значения, схема слоя 2 отключит питание двигателей, переведя робота в режим «питание», что позволит ему «питаться» (подзаряжать аккумуляторы) с помощью солнечной батареи.
Решите ли вы считать такое поведение разумным или нет – зависит от вашего личного предпочтения. Подобные вопросы обсуждаются «с обеих сторон баррикад». В конце концов, подобное устройство иллюстрирует тот факт, насколько сложным может оказаться поведение при использовании иерархически уровневого построения системы по типу «стимул-реакция».
ВЕАМ-робототехника
Идеология ВЕАМ-робототехники была предложена Марком Тилденом во время работы в университете Ватерлоо в Канаде. Заинтересованность в роботах стиля BEAM возникла у Марка после лекции, прочитанной Родни Бруксом в Массачусетском технологическом институте, который Марк посетил в 1989 году. Профессор Родни Брукс рассматривал подход к конструированию роботов как систему по типу «стимул-реакция», названному «предикативной архитектурой».
Сокращение ВЕАМ (по-русски БЭАМ) представляет собой многозначный акроним, имеющий некоторое отношение к вопросам биологии, электроники, эстетики и механики. Я сказал «некоторое отношение», поскольку данный акроним можно толковать, например, как Биотехнологию, Эволюцию, Аналоговые системы и Модульные принципы.
Соревнования ВЕАМ-роботов
Для конструкторов ВЕАМ-роботов ежегодно проводятся соревнования по Олимпийской системе, программа которых включает 14 пунктов. Традиция подобных ВЕАМ-игр началась с первых международных соревнований, проведенных в Глазго, Шотландия, в 1990 году. Основной идеей философии ВЕАМ-робототехники является эволюция роботов: развитие от простых конструкций к сложным системам. Примером является идея отказа от обычных схем построения робота, управляемого «сверху» с помощью ЦПУ в пользу поведенчески ориентированных снизу вверх систем типа «стимул-реакция», построенных по иерархически «слойному» принципу (нейронные сети, системы нервных волокон). Марк Тилден назвал подобные стимул-реактивные конструкции «нервной сетью».
Тилден разработал несколько интересных конструкций роботов (см. рис. 8.25). В них использованы нервные сети, смоделированные на транзисторах. Поскольку Марк Тилден запатентовал схемы подобных нервных сетей, то найти публикации подобных схем в открытой печати не представляется возможным. По этой причине я не могу сейчас представить вам образцы подобных схем. Тем не менее среди работ Тилдена имеется книга «Living Machines».
Рис. 8.25. BEAM-роботы
Рисунок 8.26 озаглавлен Gumby Trks. Это «существо» представляет собой тип биомеханического «ходока», рассчитанного на передвижение по поверхностям различных типов. Здесь представлен Gumby 1.0, собранный на восьми транзисторах и имеющий длину 30 см, который оставляет след на песке пустыни, передвигаясь с помощью двух стерженьков с зацепами.
Рис. 8.26. Путешественник Gumby
На рис. 8.27 представлен робот Walkman 1.0. Эта первая модель 12-транзисторных «микростержневых» передвигающихся роботов, собранная из остатков пяти одинаковых кассетный плееров типа Walkman. Робот имеет семь чувствительных датчиков, включая два «глаза», и с помощью системы из пяти моторов может преодолевать поверхности достаточно сложного рельефа.
Рис. 8.27. Walkman 1.0
Электронный утиль
Конструкторы ВЕАМ-роботов гордятся тем, что используют в своих конструкциях различные, отслужившие свой век части электронных устройств: например, солнечные батареи от калькуляторов, экономичные двигатели от плееров Walkman и других кассетных магнитофонов, прижимные ролики, выключатели, конденсаторы, редукторы, соленоиды и прочие детали. Сбор электронного «утиля» и превращение его в работающие конструкции является проектом использования электронного «вторсырья».
Соревнования по ВЕАМ-робототехнике доступны всем. Все участники соревнований имеют равные условия для старта. Семилетние конструкторы имеют те же шансы на победу, что и профессора престижных колледжей. Был случай, когда победителем оказался семилетний ребенок.
Соревнования
Следующая информация является кратким конспектом программы соревнований по ВЕАМ-роботам. Полную информацию о программе и правилах соревнования можно получить в Калифорнийском университете. Адрес будет указан в конце главы.
Солнечная повозка
Создать робот с питанием от солнечных батарей, который вмещается в куб со стороной 150 мм. Максимальный размер солнечной батареи 12х 65 мм. (7 кв. см.). Длина дорожки 1 м, ширина 150 мм. Соревнования проводятся при ярком солнечном свете (допустима замена галогенной лампой 500 Вт).
• Класс А. Гонки на гладком листовом стекле
• Класс В. Гонки по пересеченной местности
Светоохотники
Создать робот с питанием от солнечных батарей, способный отыскивать цель и вмещающийся в куб со стороной 175 мм. Робот помещается вместе с соперниками в закрытый «Парк Юрского периода» на 30 часов. Победителями будут считаться роботы, продемонстрировавшие лучшие способности к выживанию, исследованию местности, противоборству, скорости и использованию мощности. Оценка этих качеств производится с помощью фото– и видеосъемки.
Водные трапперы
Создать робот с питанием от солнечных батарей, вмещающийся в куб со стороной 175 мм, который способен переплыть в длину аквариум объемом 250 литров (расстояние примерно 1 м). На полпути имеется препятствие – стенка высотой 150 мм, которую робот должен преодолеть, чтобы достичь финишной прямой.
Робот-заключенный
Создать робота, вмещающегося в куб со стороной 175 мм, способного пройти простой лабиринт. Для этих соревнований питание от солнечных батарей необязательно, но желательно.
Робот, взбирающийся по канату
Создать робота, способного взобраться по веревке метровой длины и спуститься обратно. Побеждает самый быстрый. Используется нейлоновая рыболовная леска с усилием на разрыв 18 кг. Размеры робота должны вписываться в куб со стороной 520 мм.
Робот-прыгун в высоту и в длину
Класс А. Создать робота, способного прыгнуть три раза подряд в воздух, используя один комплект батарей. Объем робота не должен превышать 0,01 кв.м.
Класс В. Создать робота, способного прыгнуть в длину три раза подряд, используя один комплект батарей. Объем робота не должен превышать 0,01 кв.м.
Шагающие роботы
Шагающие роботы соревнуются друг с другом. Роботам начисляют очки согласно их возможностям к передвижению по различным рельефам и преодолению препятствий. Ограничений на размеры нет.
Инновационные устройства
Создать новое устройство, с неочевидной целью его использования. Соревнующиеся оцениваются по качеству исполнения, «широте» взгляда на проблему и необычности применения.
Искусство роботов/соревнования по необычным применениям
Создать робота, который умел бы рисовать или создавать произведения искусства. Сами движения робота можно рассматривать также как произведение искусства. Примером может служить цветок, который медленно раскрывается и быстро закрывается при попадании прямых солнечных лучей.
Класс А. Роботы, сделанные на скорую руку (конструкции выходного дня).
Класс В. Переделанные устройства, игрушки, приспособления и т. д.
Соревнования роботов по борьбе сумо
Класс А. Роботы разбиваются попарно. Каждый пытается столкнуть другого с круглой платформы размером 150 см. Робот может быть полностью автономным, управляемым с проводного пульта или по радио.
Класс В. Роботы стараются столкнуть друг друга с края круглой платформы размером 180 см.
Соревнования наномышей
Создать несущую себя робот-мышь, способную пройти через лабиринт. Размер «подошвы» мыши не должен превышать 10х 10 см. Ограничения веса нет.
Соревнования микромышей
Создать несущую себя робот-мышь, способную пройти через лабиринт. Размер «подошвы» мыши не должен превышать 25х 25 см. Ограничения веса нет.
Соревнования летающих роботов
Создать летающего робота, способного осуществить самозапуск в воздух, достичь площадки сброса размером 7,5х 7,5 м, найти произвольно расположенную цель в зоне сброса и сбросить на нее маркер, а потом вернуться на стартовую площадку.
Смешанные соревнования
Если вы построили робота, не попадающего в указанные категории, то можете поучаствовать в смешанном зачете.
Руководство по ВЕАМ-роботам
Вы можете заказать 120-страничное руководство по ВЕАМ за $20,00. Платежный чек нужно отправить в Университет Калифорнии, ВЕАМ games. Текущую переписку можно вести по адресу:
BEAM Robot Olympics c/o Mark W. Tilden
Mail Stop D449
Los Alamos National Labs
Los Alamos, NM 87545
(505)667-2902
Интернет-адрес для ВЕАМ games:
/
Принимайте участие
Соревнования по ВЕАМ доступны всем любителям робототехники. Вы можете поучаствовать в соревнованиях или просто получить удовольствие. Для получения текущей информации свяжитесь с Олимпийским комитетом по ВЕАМ-играм по адресу, указанному выше. На следующем сайте вы найдете информацию по изготовлению робота – солнечного шара.
Глава 9 Робот – система телеслежения
В этой главе мы построим робота – систему телеслежения. Как уже было показано в гл. 2, подобные роботы находят широкое применение в науке, бизнесе, индустрии развлечений, военном деле, различного рода исследованиях и промышленности.
Почему они так называются
Современный писатель, фантаст Роберт Хайнлайн считается первым, кто предсказал возможность применения роботов – систем телеслежения в фантастическом романе 1940 года под названием «Валдо». В этом романе человек управляет механическими куклами, называемыми «Валдо», отдавая команды из удаленного места.
Я обнаружил, что вместо использования термина «Валдо» к подобным устройствам более подходит слово «Голем», взятое из еврейской мифологии. История Голема описывает человеческий дух, который намеренно вселяется в глиняную статуэтку. Дух управляет глиняной статуэткой, отдавая ей приказания, которые дух не смог или не хотел бы исполнять в своей «человеческой» форме. Как только работа Голема завершена, дух возвращается в свое человеческое тело. Такое определение очень точно описывает новую науку телеслежения. По этой причине я назвал своего робота – систему телеслежения Голем I.
Что такое телеслежение?
Система телеслежения представляет собой систему дистанционного управления высокой точности, которая делает попытку перенести управляющие действия человека на удаленного робота. Интерфейс обратной связи строит систему телеслежения по образу виртуальной реальности. На рис. 9.1 показаны основные блоки системы телеслежения.
Рис. 9.1. Базовая схема системы телеслежения
В системах виртуальной реальности мы достигаем погружения в синтетическую, сгенерированную компьютером реальность, пользуясь иллюзией «обмана» чувств, что приводит к организации взаимодействия с этой синтезированной реальностью и вере в ее «существование». В системе телеслежения окружающий мир реален, но находится на определенном удалении. Таким образом, вместо компьютерно созданной искусственной реальности, сенсорные устройства, установленные на удаленном роботе, предоставляют оператору необходимую информацию об окружающей пространственной среде, как если бы он или она непосредственно находились в данном месте.
На стороне оператора, как уже говорилось, имеется оборудование типа виртуальной реальности, которое обеспечивает отображение достаточной информации от удаленных сенсорных устройств для того, чтобы чувства оператора «поверили», что данная среда является реальной и присутствующей «здесь». Достигнутый уровень «присутствия» зависит от точности и верности информации, передаваемой через интерфейсы. Человекоподобный робот, который может точно следовать человеческим движениям, жестам, перемещениям, сохранять равновесие и при этом обладает способностью передавать оператору зрительные, тепловые, тактильные и мышечные ощущения, возникающие в его искусственном «скелете», будет являться совершенным Големом. При этом должна возникнуть иллюзия сращивания или полного погружения человека-оператора в структуру робота.
Существующие системы телеслежения решают гораздо более скромные задачи. Во многих случаях такой робот представляет собой повозку типа той, которую мы собираемся построить. Лучшие образцы подобных устройств позволяют добиться иллюзии, что он или она управляют движением повозки, находясь внутри нее.
Подобные роботы могут создаваться для исследования или работы в суровых или вредных для здоровья условиях. Список подобных условий может включать воды Арктики, океанское дно, лесные пожары, действующие вулканы, ядерные реакторы, поверхность Луны, Марса и т. д.
Подструктура системы
Мы будем конструировать нашего робота на основе модели радиоуправляемого автомобиля. В идеальном случае модель должна иметь систему пропорционального управления ходом и поворотами автомобиля. В нашем прототипе используется именно такая модель автомобиля. Могут быть использованы более дешевые модели, но они обеспечивают худшее качество управления.
На рис. 9.2 приведена фотография радиоуправляемого автомобиля, снабженного пружинной системой подвески. Чтобы обеспечить «чувство» поверхности, система может быть снабжена датчиками наклона и неровностей дороги (тряски). В данном случае мы забегаем немного вперед.
Рис. 9.2. Модель радиоуправляемого автомобиля, используемого в системе телеслежения
Приобретите модель автомобиля, работающего на аккумуляторах и имеющего зарядное устройство. Для некоторых моделей радиоуправляемых автомобилей эти устройства можно приобрести отдельно.
Немного о радиоуправляемых автомобилях
Радиоуправляемые модели превратились в популярное хобби. Существуют радиоуправляемые модели самолетов, вертолетов, планеров, катеров, подводных лодок, автомобилей, мотоциклов и т. д. Каркасы и системы пружинной подвески большинства моделей подходят для создания на их базе роботов «Големов».
Еще недавно большинство моделей работало на жидком топливе. В конце 70-х годов развитие технологии производства электрических батарей и двигателей сделало модели, работающие на электрической энергии, более популярными.
В моделях радиоуправляемых автомобилей обычно используются двухканальные системы управления «приемник/передатчик». По одному каналу осуществляется управление поворотами, а по другому – «педалью» акселератора. Каждый сигнал передатчика управляется переменным резистором на панели передатчика. Потенциометр, управляющий поворотом модели, часто соединяют с небольшим рулевым колесом на корпусе передатчика. Потенциометр акселератора часто соединяют с рукояткой или джойстиком.
Микросхема кодера передатчика модулирует несущую с помощью импульсов переменной ширины. Ширина импульсов зависит от положения (сопротивления) движка переменного резистора. Ширина модулирующих импульсов изменяется от 1 до 2 мс (см. рис. 9.3). В среднем положении движка ширина импульсов составляет 1,5 мс. В одном крайнем положении ширина импульсов достигает 2 мс. В другом крайнем положении импульсы сокращаются до 1 мс.
Рис. 9.3. Последовательность импульсов ШИМ для управления работой сервомотора
Декодер приемника обрабатывает импульсы и посылает соответствующие команды на управляющие сервомоторы. Сервомотор представляет собой интегральную конструкцию, состоящую из двигателя, редуктора, выходного вала и печатной платы управления. Управляющая схема печатной платы внутри сервомотора генерирует соответствующие импульсы на основании сопротивления внутреннего потенциометра, соединенного с выходным валом сервомотора. Управляющая ИС сравнивает импульсы внутренней схемы сервомотора и импульсы, приходящие с декодера приемника. Поворотом оси вала сервомотора длительность этих импульсов уравнивается. Таким образом, сервомотор изменяет и отслеживает положение вала ротора в соответствии с сигналом передатчика.
Глаза
Глазом (или глазами) для нашего робота телеслежения служит миниатюрная цветная видеокамера с каналом звукового сопровождения (см. рис. 9.4). Комплект видеокамеры включает приемник и передатчик диапазона 2,4 ГГц. Цена подобной системы примерно $99,95.
Рис. 9.4. Цветная видеокамера со звуковым сопровождением и передатчик диапазона 2,4 ГГц
Размеры самой камеры невелики. Она прикреплена к корпусу передатчика с помощью небольшого уголкового кронштейна. Размеры видеокамеры достаточно малы, поэтому возможна установка комплекта из двух камер на расстоянии примерно 63 мм между объективами (это соответствует среднему расстоянию между глазами) по бокам робота. Установка пары подобных камер позволит оператору получать более реалистичные стереоизображения. В устройстве-прототипе мы используем только одну камеру; позже мы обсудим возможности усовершенствования конструкции с добавлением «стереозрения», которое позволит через восприятие глубины пространства улучшить эффект «присутствия» и управление устройством.
Первоначальная модель нашего устройства содержит одну миниатюрную видеокамеру со звуковым сопровождением. Конструкция собрана по модульному принципу, поэтому если читатель захочет потом ввести стереосистему «зрения», то он может использовать уже имеющееся видеооборудование.
Конструкция
Конструирование робота начинается с поиска подходящего шасси от радиоуправляемого автомобиля. Большинство моделей радиоуправляемых автомобилей имеют внешний декоративный корпус, который придает им вид настоящего автомобиля, грузовика, вездехода и т. д. Удалите внешний декоративный корпус и крепите необходимые детали непосредственно к шасси.
Миниатюрная цветная камера робота Голем I требует отдельного источника питания (см. рис. 9.5). Для батареи 6 В изготавливается отдельный батарейный отсек, питающий видеокамеру и передатчик. Энергии свежих элементов АА должно хватать примерно на 4–6 часов непрерывной работы.
Рис. 9.5. Батарейный отсек 6 В для четырех элементов АА
Для облегчения установки и сохранения модульного принципа мы будем широко использовать самоклеющуюся ленту Velcro («липучка»). Материал Velcro обычно имеется в продаже в виде полос длиной, кратной 30 см. Лента Velcro имеет вид двух полос, скрепленных между собой. Каждая из полос имеет клейкий слой и на обратной стороне. Одна из полос крепится к соответствующему месту шасси, а другая – к детали, которую необходимо прикрепить.
Видеосистема 2,4 ГГц
Передатчик на 2,4 ГГц является интегральной частью цветной видеокамеры (см. рис. 9.6). Приемник на 2,4 ГГц представляет собой отдельный блок. Блок приемника имеет два разъема типа RCA для видео– и аудиовыхода. Эти разъемы соединены с помощью RCA кабелей с входами телевизора, монитора или видеомагнитофона.
Рис. 9.6. Система видеокамеры, передатчик и приемник
Установка видеокамеры
Видеокамера может быть установлена на шасси двумя способами. На рис. 9.7 показаны видеокамера и передатчик, прикрепленные к батарейному отсеку. Вы можете начать с фиксированного положения камеры или видеокамера может быть установлена на крышке сервомотора для обеспечения ее поворота и слежения. Понятно, что установка сервомотора является более сложной и требует отдельного канала радиоуправления для панорамирования камеры вправо и влево. В устройствах наибольшей достоверности передачи информации панорамирование камеры должно быть связано с отслеживанием поворота головы оператора. Таким образом, если оператор поворачивает голову вправо или влево, то камера передвижного робота панорамирует вправо или влево синхронно с движениями головы. Для правильной работы подобной системы оператору необходим специальный шлем-дисплей виртуальной реальности, что является очень сложной задачей. Я бы советовал для простоты конструкции сперва использовать неподвижно закрепленную видеокамеру.
Рис. 9.7. Цветная видеокамера и батарейный отсек в сборе, готовые к размещению на модели автомобиля
Жесткое крепление
Для неподвижного крепления вам потребуется небольшая полоска Velcro, приклеенная ко дну батарейного отсека видеокамеры. Другая полоска соответственно прикреплена к шасси радиоуправляемого автомобиля. Конструкция робота Голема в сборе показана на рис. 9.8.
Рис. 9.8. Цветная видеокамера установленная на модели автомобиля
Управление через систему телеслежения
Вы можете управлять автомобилем дистанционно, используя систему радиоуправления, и при этом смотреть на экран телевизионного монитора. Видеокамера снабжена микрофоном, поэтому в процессе управления вы можете слышать окружающие звуки.
Разговор
Вы можете приобрести пару недорогих портативных радиостанций для детей типа walkie-talkie. Поместив одну из станций на шасси робота, вы можете говорить «с борта» робота.
Реалистичная система управления
В роботе Голем I использована стандартная система радиоуправления, входящая в комплект модели автомобиля. Реалистичность телеслежения можно значительно увеличить путем введения реалистично выглядящих органов управления. Это несложно сделать. Извлеките управляющие резисторы из корпуса передатчика и соедините один из них с импровизированным рулевым колесом, а другой – с педалью акселератора.
Усовершенствование системы телеслежения
При некотором размышлении базовая модель системы телеслежения Голем I может быть значительно усовершенствована. Понятно, что усовершенствования приведут к некоторому удорожанию устройства. Тем не менее подобные подсистемные усовершенствования можно делать постепенно.
Стереозрение
Стоит попытаться снабдить робота Голем I системой цветного «зрения» высокой четкости. Данная попытка дает системе много дополнительных преимуществ, в частности восприятие глубины пространства. Это является областью, куда все еще возможно внести значительный вклад. Перед тем как приступать к осуществлению проекта, необходимо четко понять, что для просмотра стереоизображений с «борта» робота необходима специальная система, обеспечивающая режим подобного просмотра.
Небольшой размер миниатюрных стереокамер очень подходит для синтеза стереоизображения. Подобные камеры могут быть размещены в один ряд на расстоянии, соответствующем среднему расстоянию между глазами человека. Для большей определенности, среднее расстояние между глазами у взрослого человека составляет примерно 63 мм. Для восприятия глубины пространства объективы камер могут быть расположены на таком же расстоянии от центра до центра для имитации глаз человека. Передатчики обоих камер должны быть необходимо настроены на разные частоты. Это позволит специальному телевизионному дисплею передавать левое изображение в левый глаз, а правое изображение – в правый глаз.
Стереоизображения, получаемые с борта Голема, позволят оператору воспринимать глубину пространства в то время, когда он или она управляют устройством. Стереозрение становится гораздо более важным при необходимости восприятия глубины пространства, например при использовании искусственной руки робота. Возможность зрительного контроля положения манипулятора (руки робота) по оси Z в трехмерном пространстве (оси X,Y и Z) в большой степени увеличивает эффективность управления.
Для оператора достаточно затруднительно эффективно управлять манипуляторами (руками робота) при отсутствии Z-измерения глубины в монокулярном зрении. В этом случае оператор вынужден слегка толкать манипулятором предметы, чтобы точно определить положение руки-манипулятора по оси Z.
То же самое происходит при дистанционном управлении автомобилем через систему телеслежения. При потере восприятия глубины становится затруднительным определение расстояний до объектов впереди автомобиля.
После установки стереосистемы оператор будет видеть трехмерное изображение пространства перед автомобилем. Однако это в этом передаваемом стереоизображении будет отсутствовать очень важная информация, соответствующая конвергентным движениям глаз. Мы получаем информацию о расстоянии до объекта во многом благодаря именно конвергенции (сближению) глаз. Конвергенцией называется схождение оптических осей глаз при их повороте внутри глазных орбит при рассматривании того или иного объекта. При рассматривании очень близких объектов глаза необходимо повернуть «внутрь». Напротив, при рассматривании очень удаленных объектов направление осей глаз будет почти параллельным. Мозг автоматически учитывает эти движения при расчете расстояния до объекта.
Стереовидеокамеры находятся в фиксированном положении и направлены прямо вперед. Чтобы добавить возможность «конвергенции» видеокамер, необходимы устройства, отслеживающие положение глаз. Устройство отображения стереоизображений должно быть снабжено блоком обратной связи, постоянно отслеживающим положение глаз оператора. Полученная информация должна быть передана на сервомоторы, на которых установлены видеокамеры, для сближения оптических осей этих видеокамер пропорционально конвергенции глаз оператора.
Такая система по типу «ведущий-ведомый», насколько я знаю, еще не создана. Точность ее исполнения зависит, вероятно, от того, насколько подобная система сможет помочь оператору в определении расстояний. Создание подобной системы выходит за рамки данной книги, однако, может оказаться по плечу опытному и настойчивому экспериментатору.
Цифровой компас
В гл. 5 описаны схемы цифровых компасов, которые могут оказаться полезными в конструкции робота Голем. Компас может быть установлен двумя различными способами. В первом способе индикаторные светодиоды компаса помещены в поле зрения видеокамеры. Быстро посмотрев на индикаторы, оператор получает информацию о направлении движения робота. Второй способ требует передачи данных с цифрового выхода компаса к оператору с помощью радиоканала.
Интерфейс датчиков неровностей поверхности
При управлении автомобилем через систему телеслежения вы не можете чувствовать наклона или неровностей дороги, по которой движется автомобиль. Для введения «чувства» неровностей дороги в систему вы можете использовать систему пружинной подвески модели. Для этой цели подойдут многие типы датчиков: например, пьезоэлектрические преобразователи, датчики Холла, индикаторы деформации и т. д.
Вызовом экспериментатору является не просто обнаружение неровностей, но отображение этой информации через сидение оператора. Большинство подобных платформ используют дорогие пневматические и гидравлические системы привода. Если цена слишком высока, то этот выбор исключен.
Более дешевым решением являются сиденья ThunderSeat, производимые компанией Thunder Seat Technologies. ThunderSeat использует любой источник звука для генерации вибрационных колебаний. Он использует громкоговоритель-сабвуфер, связанный со звуковой камерой внутри сиденья. Звуковая камера передает вибрации всему сиденью. Низкочастотный громкоговоритель (сабвуфер) развивает мощность до 100 Вт. Частотный диапазон системы от 50 Гц до 3,7 кГц. Первоначально система была создана для эмулятора полета самолета, управляемого звуковой картой персонального компьютера. Выход звуковой карты был соединен с усилителем, к которому, в свою очередь, подключался ThunderSeat.
Интерфейс датчика наклона
Точно так же, как для интерфейса датчиков неровностей поверхности, можно использовать различные датчики-преобразователи для определения наклона (см. гл. 5). В одном из датчиков используется стальной шарик в пластиковой оболочке. При наклоне шарик замыкает электроды, закрепленные в оболочке. Для этой цели могут быть использованы ртутные выключатели.
Наилучшими, но самыми дорогими датчиками являются датчики электролитического типа. Один такой датчик способен выдавать информацию по двум осям наклона. Герметически запаянный датчик имеет один центральный электрод, окруженный четырьмя равноотстоящими электродами. Залитый электролит обеспечивает электрический контакт между электродами, причем сопротивление этого контакта по переменному току пропорционально углу наклона.
К сожалению, электролитические датчики не могут работать в цепях постоянного тока. Постоянный ток вызывает осаждение компонентов электролита на электродах, что приводит к его порче. Чтобы избежать этого, датчик запитывается переменным током частотой 1000 Гц и напряжением 3 В. Напряжение переменного тока на центральном электроде пропорционально наклону датчика.
Если вы все же решите использовать подобный датчик, то я могу предложить вам один способ съема данных информационного потока. Для этого необходимо соединить выход датчика по переменному току с мостовой выпрямительной схемой для получения напряжения постоянного тока. Это напряжение можно подать на ГУН (генератор, управляемый напряжением). Частота ГУН зависит от амплитуды управляющего напряжения. Информация с ГУН передается по радиоканалу на приемное устройство, которое управляет платформой сиденья оператора. Приемник декодирует сигнал (наклон) и осуществляет пропорциональное управление наклоном платформы.
Фирма Spectron Inc. выпускает ИС типа SA40011, которая обеспечивает простой интерфейс электролитического датчика наклона. Сигнал постоянного тока с выхода ИС SA40011 может управлять ГУН, как это было описано выше.
Как и в предыдущем случае, устройство наклона операторского места является одной из самых сложных частей системы. Для наклона сиденья можно использовать пропорционально управляемые пневматические или гидравлические системы.
Увеличение радиуса действия видеосистемы
Радиус действия нашего небольшого передатчика лежит в пределах от V 30 до 100 м. Для увеличения радиуса действия необходимо применение другой системы – она называется любительским телевидением.
Любительское телевидение существует уже в течение ряда лет. Это способ, используемый радиолюбителями для двухстороннего обмена изображениями. До недавнего времени цена оборудования была достаточно высока, поэтому такое могли позволить себе только отдельные «элитные» радиолюбители. С развитием твердотельной технологии ситуация изменилась.
Все компоненты для системы любительского телевидения мощностью 5 Вт можно приобрести за $200, исключая телевизионный монитор и видеокамеру. Для любительского телевидения подойдут камеры, используемые в роботе Голем I. Менее мощные системы любительского телевидения (0,75 Вт) можно приобрести за $100.
Для легального использования подобных систем на территории США необходима радиолюбительская лицензия Technical class. В настоящее время для получения данной лицензии знание азбуки Морзе необязательно. За дополнительной информацией можно обратиться в местный радиолюбительский клуб. Можно отправить письмо в American Radio Relay League (ARRL), 225 Main Street, Newington, CT 06111, или позвонить (800) 594-0200 или (203) 666-1541 (факс: (800) 594-0259).
Пятиваттная система любительского телевидения может обеспечить связь на расстояния до 50–70 километров в соответствии с уровнем местных помех, рельефа, погоды и т. д.
Другие модели
Полученный при конструировании системы телеслежения опыт поможет читателю в создании других моделей. Компания, производящая Erector Sets, постоянно совершенствует и обновляет ассортимент интересных конструкторских наборов, выпускаемых на рынок. Эти наборы, которые называются Meccano-Erector Sets, содержат двигатели, редукторы, шкивы и прочие стандартные детали Electro Set.
Выпускаются стандартные наборы для изготовления самоходных платформ, автомобилей, мотоциклов, вездеходов и пр. В этих наборах имеются очень хорошие платформы на пружинной подвеске, пригодные для изготовления экзотических моделей роботов. Наборы можно приобрести у местных US-дилеров Toys R.
Список деталей робота – устройства телеслежения
• (1) Миниатюрная цветная видеокамера с приемником и передатчиком диапазона 2,4 ГГц
• (1) Дополнительный батарейный отсек
• (1) Система пропорционального радиоуправления (приемник/передатчик – два канала, кварцевые резонаторы, сервомотор с крутящим моментом 1,3 кгс)
• (1) Лента адгезивная Velcro 30 см
Детали можно заказать:
Images SI Inc.
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Глава 10 Передвижные платформы
Платформы представляют собой основания передвижных роботов. Существует два способа: купить такую платформу или сделать ее самому. Если есть навыки слесарной работы или просто желание учиться, то изготовление платформы с самого начала имеет очевидные преимущества. Такая платформа проектируется и изготавливается специально под цели и задачи, поставленные перед роботом. При этом не имеет значения тип применяемых двигателей, редукторов, механических соединений, источников питания и т. д.
Покупка готовой платформы освобождает от ее самостоятельного изготовления. Но, с другой стороны, подходящие готовые двигатели, редукторы, источники питания и скорости движения первоначально предназначены для других целей. Одна особенность наиболее важна: большинство существующих моделей автомобилей двигаются слишком быстро. Если нет слесарных навыков, то это может быть выходом. Обычно приобретается радиоуправляемая модель электрического автомобиля. Схема радиоуправления удаляется, а электрические соединения (провода), идущие к двигателям хода и поворота, оставляются.
Вот несколько моментов, которые необходимо учитывать при покупке электрического автомобиля для последующей переделки. Во-первых, не приобретайте слишком маленький или слишком близко расположенный к земле автомобиль. В модели маленького размера трудно разместить на шасси сенсорные датчики и микроконтроллеры. Если днище автомобиля расположено слишком близко к земле, то он будет постоянно застревать. Выбирайте экземпляр с высокой колесной базой.
На рис. 10.1 изображена модель автомобиля, которую не стоит выбирать для переделки в передвижного робота. Она слишком мала, чтобы нести дополнительную нагрузку, и заметьте, насколько близко она лежит к земле. Такой автомобиль будет легко застревать. На рис. 10.2 показан лучший вариант. Размеры платформы больше (можно разместить больше деталей) и она имеет большую колесную базу.
Рис. 10.1. Небольшая модель радиоуправляемого автомобиля не подходит для переделки
Рис. 10.2. Большая модель радиоуправляемого автомобиля подходит для переделки
Шаговые двигатели
B качестве ходовых двигателей платформы лучше всего использовать шаговые двигатели. Рассмотрим некоторые преимущества таких двигателей. Поскольку шаговый двигатель поворачивается на каждом шаге на строго определенный угол, микроконтроллер может легко подсчитать пройденный путь, зная количество импульсов управления, поданных на шаговый двигатель, и диаметр ведущего колеса. В случае применения на передвижной платформе двух шаговых двигателей, по одному на каждой стороне, используемых для прямого движения и поворота, оказываются возможными повороты на точный заранее определенный угол. Ввиду особой важности шаговых двигателей для робототехники, перед тем, как проектировать и изготовлять какие либо устройства, мы подробно остановимся на принципах их работы.
Конструкция и работа шагового двигателя
Шаговые двигатели сконструированы с использованием постоянных магнитов и электромагнитов. Постоянные магниты находятся на вращающемся валу, который называется ротором. Электромагниты или катушки обмоток находятся в неподвижной части двигателя и носят название статора. Рис. 10.3 иллюстрирует полный цикл работы шагового двигателя. Обмотки статора, неподвижной части двигателя, со всех сторон окружают ротор.
Рис 10.3. Полный шаг
На рис 10.3, позиция 1, ротор находится в начальном положении и направлен к верхнему электромагниту, который включен. Чтобы повернуть ротор по часовой стрелке, верхний электромагнит отключают и включают обмотку правого электромагнита. Это приводит к повороту ротора на 90° по часовой стрелке по направлению к правому электромагниту, как это показано в позиции 2. Продолжая таким же образом, ротор пошагово поворачивается до полного оборота, пока не окажется в начальной позиции, как это показано на позиции 5.
Разрешение
Угол поворота на каждый поступающий импульс называется разрешением шагового двигателя. В иллюстративном примере на рис. 10.3 ротор поворачивался на 90° на импульс – не очень подходяще для практического использования. Реальные шаговые двигатели имеют гораздо большее разрешение (меньшую угловую величину шага), например имеющие угол поворота 1° на импульс (или шаг). Для завершения полного оборота на такой двигатель необходимо подать 360 импульсов. Когда шаговый двигатель используется для передвижения или линейного позиционирования на поверхности, каждый шаг двигателя преобразуется в строго отмеренное линейное перемещение.
Допустим, что один оборот двигателя соответствует 25 мм линейного перемещения. Тогда приращение линейного перемещения для двигателя с разрешением 3,75° на шаг будет составлять примерно 0,25 мм на шаг. Для двигателя с разрешением 1° на шаг соответствующее приращение составит 0,007 мм на шаг. Соответственно, приращение линейного перемещения будет обратно пропорционально количеству градусов на один шаг.
Половинный шаг
Для некоторых типов шаговых двигателей возможно удвоить их разрешение с помощью процесса под названием половинный шаг. Этот процесс иллюстрирован рис. 10.4. В позиции I ротор начинает вращение с верхнего электромагнита, как это было ранее. В положении II включается правый электромагнит, при этом питание катушки верхнего электромагнита сохраняется. Поскольку ток протекает через катушки обоих электромагнитов, ротор притягивается к ним обоим и занимает промежуточное положение между двумя позициями (половина шага). В позиции III обмотка верхнего электромагнита обесточивается и ротор «завершает» полный шаг. Здесь показана только одна половина шага. Очевидно, что ротор может вращаться с половинным шагом в течение полного оборота.
Рис. 10.4. Половинный шаг
Другие типы шаговых двигателей
Существуют шаговые двигатели, имеющие четыре вывода. Такие шаговые двигатели называются биполярными и имеют две обмотки, каждая из которых имеет два вывода. Хотя конструкция такого двигателя проще тех, которые мы используем, она требует более сложной схемы управления его вращением. Такая схема должна менять направление тока в обмотках после совершения шага.
Реальные типы ШД
Шаговый двигатель в рассмотренном примере имел угол поворота 90° на шаг. Статоры и роторы реальных шаговых двигателей представляют собой последовательности мини-полюсов. Мини-полюса уменьшают угол поворота на шаги улучшают разрешение шагового двигателя. Схема шагового двигателя на рис. 10.5 представляется более сложной, однако принцип его работы идентичен рис. 10.3 и 10.4.
Рис. 10.5. Многополюсное управление
Ротор двигателя на рис. 10.5 поворачивается по часовой стрелке. В исходной позиции северный полюс постоянного магнита ротора притянут к южному полюсу электромагнита статора. Заметим, что таких пар магнитов, притянутых разноименными полюсами, несколько. Во втором положении цепочка электромагнитов выключается, и включается следующая по ходу часовой стрелки цепочка. Это приводит к повороту ротора по часовой стрелке на строго определенный угол. Это продолжается таким же образом и для следующих шагов. После восьми шагов цикл завершается и начинается повторение. Поворот на половинный шаг аналогичен описанному выше.
На рис. 10.6 показана схема однополярного шагового двигателя. Двигатель имеет шесть выводов, выходящих из корпуса. Как видно из рис. 10.6, обмотки соединены попарно последовательно и имеют выводы от средней точки. Если вы только что взяли в руки подобный шаговый двигатель и ничего не знаете о нем, то простейшим способом будет измерение электрического сопротивления между выводами. Составив таблицу соответствия между цветами проводов выводов и электрическими сопротивлениями между ними, вы быстро разберетесь, какие выводы соответствуют каким обмоткам. (В некоторых случаях шаговый двигатель имеет только пять выводов. В этом случае средние точки обмоток соединены между собой).
Рис. 10.6. Принципиальная схема шестиполюсного шагового двигателя
Двигатель, который мы будем использовать, имеет сопротивление 100 Ом между центральным выводом и концом обмотки, и соответственно, 220 Ом между концами обмоток. Понятно, что сопротивление между несвязанными между собой обмотками будет равно бесконечности (нет соединения). Снабженные этой информацией, мы легко сможем определить распайку выводов обмоток любого двигателя с шестью выводами. Шаговый двигатель, который мы будем использовать, имеет угол поворота 1,8° на шаг.
ИС UCN-5804
На рис. 10.7 изображена цоколевка ИС UCN-5804. ИС предназначена для управления и запитки четырехфазного однополярного шагового двигателя, который мы будем использовать в нашей конструкции. ИС UCN-5804 имеет следующие параметры:
• Максимальный выходной ток в непрерывном режиме 1,25 А
• Величина опорного напряжения 35 В
• Управление полным и половинным шагом
• Управление состоянием выхода и направлением вращения
• Встроенные защитные диоды
• Автоматический сброс при включении
• Внутренняя защита от тепловых перегрузок
Рис. 10.7. ИС UCN-5804 контроллер шагового двигателя
ИС обеспечивает в непрерывном режиме максимальный выходной ток 1,35 А на фазу при опорном напряжении 35 В. Это оказывается более чем достаточным при управлении 12 вольтовым шаговым двигателем. Необходимый выходной ток для такого двигателя составляет (12В/110О м = 0,11 А), т. е. примерно 1/10 ампера.
Последовательность выходных импульсов, определяемая внутренней логикой UCN-5804, запускается прямоугольными импульсами, поступающими на вывод 11. Каждый прямоугольный импульс, поданный на этот вывод, своим отрицательным фронтом запускает перемещение ШД на один шаг.
Порядок включения обмоток определяется таблицей. После того как таблица заканчивается, последовательность повторяется с начала таблицы. Для реверсирования направления вращения ШД последовательность включения обмоток определяется по таблице снизу вверх.
Вывод 15 управляет статусом выхода. Когда на этот вывод подается высокий потенциал, то все выходы ИС отключаются. Если эта функция не требуется для вашей конструкции, то необходимо соединить этот вывод с землей (низкий уровень).
Таблица 10.1. Порядок следования полных импульсов
Таблица 10.2. Порядок следования половиных импульсов
Вывод 14 определяет направление вращения. Когда этот вывод имеет потенциал низкого уровня или соединен с земляной шиной, то направление вращения определяется таблицей 10.1 или 10.2, которая читается сверху вниз. Когда на этом выводе имеется высокий потенциал (15В), то направление вращения сменяется на противоположное и определяется таблицами, читаемыми снизу вверх.
Применение ИС UCN-5804
На рис. 10.8 изображена схема управления ШД с использованием ИС UCN-5804. Тактовые импульсы вырабатываются с помощью таймера ИС 555. Частота тактовых импульсов может быть увеличена или уменьшена с помощью переменного резистора V1. Изменение частоты тактовых импульсов непосредственно управляет скоростью вращения ШД. В этой главе мы также покажем, как можно управлять ШД с помощью PIC-микроконтроллера непосредственно или с использованием дополнительных схем.
Рис. 10.8. Основная принципиальная схема управления вращением шагового двигателя
В этой схеме управление дополнительными функциями осуществляется с помощью трех выключателей. Выводы ИС, с которыми соединены эти выключатели, могут также управляться с помощью шин ввода/вывода микроконтроллера того же типа. Выключатель, соединенный с выводом 15, управляет состоянием выхода. При подаче высокого потенциала выход ИС UCN-5804 отключается и происходит остановка ШД.
Выключатель, соединенный с выводом 14, управляет направлением вращения ШД (по часовой стрелке или против часовой стрелки). Переключатель, соединенный с выводом 10 ИС UCN-5804, переключает ШД в режим полного или половинного шага. Когда на вывод 10 подан высокий потенциал, то ШД находится в режиме половинного шага. Такой режим удваивает разрешение ШД. Например, двигатель, который мы используем, имеет разрешение 1,8° на шаг. При включении режима половинного шага разрешение увеличится до 0,9° на шаг, и соответственно скорость вращения уменьшится вдвое. При подаче на вывод 10 низкого уровня ШД переключится в режим полного шага.
Присоединение ведущего колеса к валу ШД
Присоединение ведущего колеса к валу ШД может представлять определенную проблему. На рис. 10.9 показан один из вариантов ее простого решения. Найдите пластмассовую шестерню большого диаметра с фиксирующим винтом. Осевое отверстие шестерни должно совпадать с диаметром вала ШД. Приложите шестерню к ведущему колесу по центру. Просверлите три сквозных отверстия на окружности шестерни через 120°. Скрепите ведущее колесо и шестерню с помощью винтов, гаек и шайб. Затем наденьте шестерню на вал ШД и закрепите ее фиксирующим винтом.
Рис. 10.9. Соединение ведущего колеса с валом двигателя
Использование микроконтроллера для управления ШД
Для изучения принципов работы ШД изготовим схему управления ШД с помощью микроконтроллера PIC 16F84.
Начальная схема управления
На рис. 10.10 показан первый тестовый вариант схемы управления ШД. Для буферизации выходных сигналов с шин PIC 16F84 использованы шестнадцатеричные буферы типа 4050. Сигнал с выхода каждого буфера подается на транзистор NPN типа. В качестве таких транзисторов в действительности использованы NPN транзисторы TIP 120 Darlington, но на схеме они обозначены как обычные NPN транзисторы. Транзисторы TIP 120 использованы в схеме в качестве электронных ключей, обеспечивающих своевременное включение обмоток ШД.
Рис. 10.10. Схема микроконтроллера шагового двигателя
Диоды, включенные параллельно транзисторам, обеспечивают гашение импульсов тока, возникающих в индуктивностях обмоток ШД. Диоды обеспечивают безопасную блокировку обратных токов. Если исключить диоды из схемы, то многократно возрастет вероятность пробоя транзисторов обратным током.
Шаговые двигатели
На рис 10.11. изображена эквивалентная электрическая схема используемого нами двигателя. Двигатель имеет шесть проводников, выходящих из его корпуса.
Рис. 10.11. Схема выводов однополярного шагового двигателя
Предположим, что мы только что взяли двигатель в руки и ничего не знаем о его внутреннем строении. Как я уже говорил ранее, наиболее простым путем выяснить внутреннюю распайку обмоток является измерение электрического сопротивления между выводами. Составив таблицу сопротивлений, измеренных между выводами, вы легко определите, какой вывод присоединен к какой из обмоток.
На рис. 10.12 изображено, какие сопротивления имеет используемый нами двигатель. Между центральным выводом и концами обмоток сопротивление составляет 13 Ом, соответственно между концами обмоток сопротивление имеет значение 26 Ом. Сопротивление между парами соединенных обмоток равно, соответственно, бесконечности (отсутствие соединения). Например, если мы измерим сопротивление между коричневым и голубым проводником, то прибор покажет бесконечность. Вооружившись этими данными, мы сможем правильно включить обмотки ШД в схему.
Рис. 10.12. Сопротивление между выводами однополярного шагового двигателя
Программа для тестовой схемы управления
После того как тестовая схема управления изготовлена, необходимо запрограммировать PIC-микроконтроллер с помощью следующей программы на языке BASIC. Программа является очень простой и короткой, чтобы показать, насколько просто обеспечить вращение ШД. В таблице 10.3 показано, как на каждом шаге включается соответствующий транзистор. Используйте таблицу 10.3 для слежения за логикой BASIC программы. Когда вы достигаете до конца таблицы, то последовательность повторяется, начиная с начала.
Таблица 10.3. Логика переключений транзисторов для полного шага
‘Контроллер шагового двигателя
Symbol TRISB = 134 ‘Инициализировать TRISB как 134
Symbol PortB = 6 ‘Инициализировать PortB как 6
Symbol ti = b6 ‘Инициализировать ti как задержку
ti = 25 ‘Задержка 25 мс
poke TRISB,0 ‘Установить шины PORTB на выход
start: ‘Последовательность движения вперед
poke portb,1 ‘Шаг 1
pause ti ‘Задержка
poke portb,2 ‘Шаг 2
pause ti ‘Задержка
poke portb,4 ‘Шаг 3
pause ti ‘Задержка
poke portb,8 ‘Шаг 4
pause ti ‘Задержка
goto start ‘Повторение
Полный оборот
При полном шаге для завершения полного оборота ШД требуется 200 импульсов (360° /1,8° на шаг). Подсчет количества импульсов позволяет PIC-микроконтроллеру управлять и позиционировать ротор ШД.
Вторая программа на PICBASIC
Вторая программа на PICBASIC является гораздо более гибкой. Пользователь может изменять параметры программы (время задержки) во время ее работы с помощью одного из четырех выключателей, соединенных с портом А. При нажатии кнопки 1 время задержки между импульсами увеличивается, и соответственно ротор ШД вращается медленнее. Кнопка 2 обладает противоположным действием. При нажатии кнопки 3 двигатель останавливается и находится в режиме ожидания, пока эта кнопка нажата. Кнопка 4 управляет направлением вращения ШД (по часовой стрелке или против часовой стрелки). Нажатие кнопки 4 изменяет направление вращения на противоположное. Реверсирование направления вращения сохраняется на все время нажатия кнопки.
‘Контроллер вращения ШД
Symbol TRISB = 134 ‘Инициализация TRISB как 134
Symbol TRISA = 133 ‘Инициализация TRISA как 133
Symbol PortB = 6 ‘Инициализация portb как 6
Symbol PortA = 5 ‘Инициализация porta как 5
symbol ti = b6 ‘Начальное время задержки
ti = 100 ‘Установка времени задержки 100 мс
Poke TRISB,0 ‘Установка PORTB как выхода
start: ‘Вращение ШД вперед
poke portb, 1 ‘Шаг 1
pause ti ‘Задержка
poke portb,2 ‘Шаг 2
pause ti ‘Задержка
poke portb,4 ‘Шаг 3
pause ti ‘Задержка
poke portb,8 ‘Шаг 4
pause ti ‘Задержка
goto check ‘Переход на проверку состояния кнопок
start2: ‘Вращение ШД назад
poke portb,8 ‘Шаг 1
pause ti ‘Задержка
poke portb,4 ‘Шаг 2
pause ti ‘Задержка
poke portb,2 ‘Шаг 3
pause ti ‘Задержка
poke portb,1 ‘Шаг 4
pause ti ‘Задержка
goto check ‘Переход на проверку состояния кнопок
Check: ‘Состояние кнопок
Peek PortA, B0 ‘Загрузка состояния
if bit0 = 0 then loop1 ‘Если кнопка 1 нажата, увеличить ti
if bit1 = 0 then loop2 ‘Если кнопка 2 нажата, уменьшить ti
if bit2 = 0 then loop3 ‘Остановка ШД
if bit3 = 0 then start ‘Вращение вперед
goto start2 ‘Реверсивное вращение
loop1: ‘Увеличение времени задержки
poke portb,0 ‘Выключение транзисторов
ti = ti +5 ‘увеличение задержки на 5 мс
pause 50 ‘Пауза 50 мс
if ti > 250 then hold1 ‘Ограничение задержки 250 мс
peek porta,b0 ‘Проверка состояния кнопок
if bit0 = 0 then loop1 ‘Продолжать увеличивать задержку?
goto check ‘Если нет, переход на основную проверку состояния
loop2: ‘Уменьшить задержку
poke portb,0 ‘Выключение транзисторов
ti = ti – 5 ‘Уменьшение задержки на 5 мс
pause 50 ‘Пауза 50 мс
if ti < 20 then hold2 ‘Ограничение задержки 20 мс
peek porta,b0 ‘Проверка состояния кнопок
if bit1 = 0 then loop2 ‘Продолжать уменьшать задержку?
goto check ‘Если нет, переход на основную проверку состояния
hold1: ‘Верхний предел задержки
ti = 245 ‘Задержка до 250 мс
goto loop1 ‘Идти назад
hold2: ‘Нижний предел задержки
ti = 25 ‘Задержка 25 мс
goto loop2 ‘Идти назад
hold3: ‘Остановка ШД
poke portb,0 ‘Выключение транзисторов
peek porta,b0 ‘Проверка состояния кнопок
if bit2 = 0 then hold3 ‘Держать мотор выключенным?
goto check ‘Если нет, переход на основную проверку состояния
Схема устройства изображена на рис. 10.13. На фотографии (рис. 10.14) трудно различить конструкцию кнопок выключателей. Они представляют собой четыре оголенных проводящих полоски позади микроконтроллера.
Рис. 10.13. Схема шагового микроконтроллера с дополнительными выключателями
Рис. 10.14. Схема микроконтроллера шагового двигателя
Верхние половины оголенных полосок соединены с источником питания 5 В через резисторы сопротивлением 10 кОм. Проводник от каждой полоски соединен с соответствующим выводом порта А ИС. Второй контакт представляет собой оголенный одножильный проводник, соединенный с землей, на который замыкаются при нажатии на соответствующие полоски.
Половинный шаг
Использование режима половинного шага эффективно удваивает разрешение ШД. В этом случае для завершения полного оборота требуется 400 импульсов. Таблица 10.4 представляет логику переключений, необходимую для работы программы. Когда вы дойдете до конца таблицы, то вы циклически вернетесь к ее началу.
Таблица 10.4. Логика переключений транзисторов для половинного шага
Переменная задержки ti
Переменная ti в каждой из программ на PICBASIC определяет время задержки, целью которой является снижение скорости следования выходных импульсов на шине В. Без этой задержки скорость следования выходных импульсов может оказаться слишком большой для обеспечения нормальной работы ШД, что приведет к сбоям в его функционировании.
Вы можете захотеть изменить значение переменной ti в зависимости от тактовой частоты работы микропроцессора, определяемой кварцевым резонатором. Проведя эксперименты, вы подберете наилучший диапазон изменения переменной ti для конкретного PIC.
Возможные неисправности
Если двигатель не вращается, проверьте полярность диодов. Убедитесь, что вы подключили их правильно, соблюдая полярность, изображенную на схеме.
Если шаговый двигатель вращается медленно или совершает колебания туда и обратно, то это может быть вызвано рядом причин.
Если вы используете питание от батарей, то батареи могут оказаться слишком слабыми для питания двигателя. Примечание: батареи истощаются достаточно быстро, поскольку ШД потребляет относительно большой ток.
В случае замены транзисторов TIP 120 NPN на транзисторы другого типа переключающий ток может оказаться слишком большим для их нормальной работы. Решение: используйте транзисторы TIP 120.
Перепутаны концы обмоток ШД, включенные в схему. Проверьте обмотки с помощью омметра и при необходимости переключите их.
Частота импульсов слишком велика. Если частота импульсов превышает время реакции двигателя, то это приведет к нарушению его правильной работы. Частота импульсов управляется переменной ti в программе. При увеличении значения этой переменой частота следования импульсов, управляющих ШД, уменьшится. Решением будет являться уменьшение частоты импульсации.
Использование PIC-микроконтроллера и ИС UCN-5804 для управления ШД
Мы использовали схему управления работой ШД непосредственно с помощью ИС PIC. Также для управления работой ШД мы использовали специализированную ИС. При совместном использовании специализированной ИС и PIC-микроконтроллера мы можем объединить преимущества, характерные для каждой из схем. ИС UCN-5804 в этом случае выполняет всю «черновую» работу по управлению работой ШД. При некотором усложнении конечной электрической схемы программа управления PIC может быть сильно упрощена, что является хорошим решением.
Принципиальная схема устройства управления ШД с использованием специализированной ИС показана на рис. 10.15, а фотография устройства приведена на рис. 10.16. Питание ИС UCN-5804 осуществляется от источника постоянного тока напряжением 5 В. При напряжении питания 5 В управляющие работой ШД напряжения могут достигать 35 В.
Рис. 10.15. Схема микроконтроллера шагового двигателя
Рис. 10.16. Принципиальная схема микроконтроллера и ИС управления шаговым двигателем
Обратите внимание, что на схеме присутствуют два резистора, обозначенные «rx» и «ry» без указания их номинала. Наличие или отсутствие этих резисторов определяется типом применяемого ШД. Целью введения этих резисторов является ограничение выходного тока, протекающего через ШД, значением 1,25 А (в случае необходимости).
Рассмотрим наш ШД с напряжением питания 5 В. Его обмотки имеют сопротивление 13 Ом. Ток, протекающий через обмотки, составляет 5В/130 м=0,385А, или 385 мА, что значительно ниже максимально разрешенного значения тока 1,25 А для ИС UCN-5804. Поэтому для данного случая резисторы rx и ry не требуются и могут быть исключены из схемы.
Перед тем как мы двинемся дальше, рассмотрим еще один случай. ШД с напряжением питания 12 В имеет сопротивление обмоток 6 Ом. Ток, протекающий через обмотки ШД, составит 12 В/6 Ом=2 А. Такое значение тока превышает максимально допустимое для ИС UCN-5804. Для использование данного ШД резисторы rx и ry необходимы. Для обеспечения одинакового крутящего момента для каждой фазы сопротивления rx и ry должны быть равны. Величины резисторов должны ограничивать ток до величины 1,25 А или ниже. В данном случае сопротивление резисторов должно быть не менее 4 Ом (при мощности от 5 до 10 Вт). При включении резисторов значение тока составит 12 В/10 Ом = 1,20 А.
Уровни входов ИС UCN-5804 совместимы с выходами КМОП– и ТТЛ-логики. Это означает, что для нормальной работы схемы мы можем непосредственно соединить входы ИС с шинами выхода PIC-микроконтроллера. Входные тактовые импульсы (вывод 11) для ИС UCN-5804 генерируются PIC-микроконтроллером. Вывод управления выходом разрешает вращение ШД при подаче сигнала низкого уровня и останавливает ШД при сигнале высокого уровня.
Выводы 10 и 14 ИС UCN-5804 управляются переключателями, подающими сигналы высокого или низкого уровня. Вывод 10 управляет режимами полного или половинного шага, а вывод 14 управляет направлением вращения. При желании этими функциями можно управлять с помощью PIC. Для управления на соответствующие выводы подаются сигналы высокого или низкого уровня аналогично управлению работой выхода ИС.
Программа на PICBASIC для обеспечения работы схемы имеет следующий вид:
‘Управление шаговым двигателем через ИС UCN 5804
Symbol TRISB = 134 ‘Инициализировать TRISB как 134
Symbol PortB = 6 ‘Инициализировать PortB как 6
Poke TRISB,0 ‘Установить шины PORTB на выход
low1 ‘Установить выход на низкий уровень
start:
pulsout 0, 10000 ‘Подача 10 мс импульсов на UCN 5804
goto start ‘Повторение
В этом случае я снова написал простейшую «базовую» программу, чтобы показать, насколько просто осуществляется управление вращением ШД. Конечно, вы можете дополнить программу управлением частотой импульсов, направлением вращения и т. д.
Список деталей для контроллера ШД
• (1) микроконтроллер 16F84
• (2) конденсатор 22 пФ
• (1) кварцевый резонатор 4 МГц
• (1) резистор 4,7 кОм, 0,25 Вт
• (1) ИС таймер 555
• (1) ИС контроллер ШД UCN-5804B
• (1) Шаговый двигатель (однополярный с 6 выводами)
• (1) Понижающий трансформатор
• (6) диод 1N914
• (4) транзистор TIP 120 NPN
• (1) ИС регулятор напряжения (7805, 7812)
• (1) диодный мост 50 В, 1 А
• (1) конденсатор 150 мкФ
• (1) ИС буфер 4050
• Разное: макетная плата
Детали можно заказать в: Images Company, James Electronics, JDR MicroDevices и Radio Shack.
Для более подробной информации см. приложение в конце книги.
Глава 11 Шагающие роботы
Шагающие роботы представляют собой класс роботов, имитирующих передвижение животных или насекомых. Как правило, для передвижения роботы используют механические ноги. Передвижение с помощью ног насчитывает миллионы лет истории. По контрасту, история передвижения с помощью колеса началась от 10 до 7 тысяч лет назад. Колесное передвижение достаточно эффективно, но требует наличия относительно ровных дорог. Достаточно взглянуть на аэрофотосъемку города или его пригородов, чтобы заметить сеть переплетающихся дорог.
Цель создания шагающих роботов
Шагающие роботы могут передвигаться по пересеченной местности, недоступной для обычных колесных средств. С подобной целью обычно и создают шагающих роботов.
Имитация жизни
Совершенные шагающие роботы имитируют движения насекомых, ракообразных, и иногда – человека. Конструкции двуногих роботов редки, поскольку требуют для осуществления сложных инженерных решений. Я планирую рассмотреть проект двуногого робота в моей следующей книге с условным названием Pic-Robotics. В этой главе мы будем строить шестиногого шагающего робота.
Шесть ног – походка треножником
Используя модель с шестью ногами мы сможем продемонстрировать знаменитую походку «треножником», т е. с опорой на три ноги, которую используют большинство существ. На следующих рисунках темный кружок означает, что нога устойчиво поставлена на землю и поддерживает вес существа. Светлый кружок означает, что нога поднята и находится в движении.
На рис. 11.1 показано наше существо в позиции «стояния». Все ноги опираются о землю. Из положения «стояния» наше существо решает идти вперед. Для того чтобы сделать шаг, оно поднимает три из своих ног (см. светлые кружки на рис. 11.2), опираясь своим весом на три оставшиеся ноги (темные кружки). Заметьте, что ноги, поддерживающие вес (темные кружки), расположены в форме треножника (треугольника). Такая позиция является устойчивой, и наше существо не может упасть. Три остальные ноги (светлые кружки) могут двигаться и двигаются вперед. На рис. 11.3 показан момент движения поднятых ног. В этой точке вес существа перемещается с неподвижных на движущиеся ноги (см. рис. 11.4). Заметьте, что вес существа по-прежнему поддерживается треугольным расположением опорных ног. Затем таким же образом переставляется другая тройка ног, и цикл повторяется. Такой способ передвижения называется треножной походкой, поскольку вес тела существа в каждый момент времени поддерживается треугольным положением опорных ног.
Рис. 11.1. Треножная походка. Исходное положение
Рис. 11.2. Треножная походка, первый шаг вперед
Рис. 11.3. Треножная походка, второе движение, перенос центра тяжести
Рис. 11.4. Треножная походка, третье движение
Создание шагающего робота
Существует много моделей небольших заводных шагающих игрушек. Такие игрушечные «пешеходы» передвигают ногами вверх-вниз и вперед-назад с помощью кулачковых механизмов. Хотя такие конструкции вполне способны «шагать», а некоторые делают это достаточно проворно, нашей целью является создание шагающего робота, не использующего кулачковые механизмы для имитации шагового передвижения.
Мы будем строить робота, имитирующего треножную походку. Роботу, описанному в этой главе, требуется три сервомотора для передвижения. Существуют другие шестиногие и четырехногие модели шагающих роботов, которые требуют больших степеней свободы в своих ногах. Соответственно, наличие большего количества степеней свободы требует большего количества управляющих механизмов для каждой из ног. Если для этой цели используются сервомоторы, то для каждой ноги потребуются два, три или даже четыре двигателя.
Необходимость в таком количестве сервомоторов (приводов) диктуется тем, что требуется как минимум две степени свободы. Одна для опускания и поднимания ноги, а другая – для движения ее вперед-назад.
Шагающий робот с тремя сервомоторами
Шагающий робот, которого мы собираемся сделать, является компромиссным решением по замыслу и конструкции и требует наличия всего трех сервомоторов. Однако даже в этом случае он обеспечивает передвижение с помощью треножной походки. В нашей конструкции использованы три облегченных сервомотора HS300 (крутящий момент 1,3 кгс) и микроконтроллер 16F84-04.
Работа устройства
Перед тем как мы приступим к конструированию робота, посмотрим на готового робота, изображенного на рис. 11.5, и проанализируем, как робот осуществляет передвижение. Треножная походка, которая использована в данной конструкции, является не единственно возможной.
Рис. 11.5. Шестиногий ходок готов к прогулке
В передней части робота закреплены два сервомотора. Каждый из сервомоторов управляет движением передней и задней ног с соответствующей стороны робота. Передняя нога прикреплена непосредственно к ротору сервомотора и способна качаться вперед и назад. Задняя нога соединена с передней при помощи тяги. Тяга позволяет задней ноге повторять движения передней ноги вперед-назад. Две центральные ноги управляются третьим сервомотором. Этот сервомотор поворачивает центральные ноги вдоль продольной оси на угол от 20° до 30° по часовой стрелке и против часовой стрелки, что наклоняет робот вправо или влево.
Используя информацию о механизме привода ног, мы сейчас посмотрим, как наш робот будет передвигаться. Посмотрим на рис. 11.6. Мы начнем с положения покоя. Каждый кружок отмечает положение ноги. Как и в предыдущем случае, темные кружки показывают положение опорных ног. Обратите внимание, что в положении покоя средние ноги не являются опорными. Эти ноги на 3 мм короче передних и задних ног.
Рис. 11.6. Фазы движения шестинога
В позиции А центральные ноги поворачиваются по часовой стрелке на угол примерно 20° от центрального положения. Это приводит к наклону робота вправо. В данной позиции вес робота удерживается правой передней и задней ногами и левой центральной ногой. Это стандартная позиция «треножника», которая была описана выше. Поскольку левая передняя и левая задняя нога оказываются «в воздухе», то их можно передвинуть вперед, как показано на рис 11.6, позиция В.
В позиции С центральные ноги поворачиваются против часовой стрелки на угол примерно 20° от центральной позиции. Это приводит к наклону робота влево. В данной позиции вес робота распределяется между левой передней и задней ногами и правой средней ногой. Теперь правая передняя и задняя ноги не несут нагрузки и могут быть передвинуты вперед, как это показано на поз. D рис. 11.6.
В позиции Е центральные ноги возвращаются в среднее положение. В такой позиции робот «стоит» прямо и опирается только на передние и задние ноги. В позиции F передние и задние ноги одновременно перемещаются назад, а робот соответственно – вперед. Далее цикл движения повторяется.
Это был первый способ хождения, который я попробовал воспроизвести, и эта система работает. Вы можете разработать, совершенствовать и конструировать другие модели способов хождения, с которыми можно проводить эксперименты. Я оставлю вам разработку способов хождения назад (реверсирование) и поворотов направо и налево. Я буду продолжать совершенствовать этого робота, добавляя датчики наличия стен и препятствий, а также способов перемещения назад и поворотов.
Конструкция робота
За основу «тела» робота я взял лист алюминия размерами 200х75х0,8 мм. Сервомоторы прикреплены к передней части пластины (см. рис. 11.7). Разметка отверстий под сервомоторы должна быть скопирована с чертежа и перенесена на лист алюминия. Такое копирование обеспечит точность положения отверстий под крепления сервомоторов. Четыре отверстия диаметром 4,3 мм расположены немного позади средней линии и предназначены для крепления центрального сервомотора. Эти четыре отверстия смещены к правому краю. Это необходимо сделать для того, чтобы фланец центрального сервомотора находился точно по центру «тела». Два задних отверстия предназначены для подвижного крепления задних ног.
Рис. 11.7. Основание «тела»
Для разметки центров отверстий под сверление необходимо использовать кернер. В противном случае при сверлении отверстий сверло может «увести». Если у вас нет кернера, вы можете использовать в качестве неплохой замены острый гвоздь.
Ноги робота изготовлены из алюминиевой полосы шириной 12 мм и толщиной 3 мм (см. рис. 11.8). В передних ногах просверливается по четыре отверстия. В задних ногах сверлятся два отверстия: одно для подвижного крепления, а другое – для крепления тяги. Обратите внимание, что задние ноги на 6 мм короче передних. Это объясняется тем, что необходимо учитывать высоту фланца сервомотора, к которому крепятся передние ноги, над общим уровнем пластины. Укорочение задних ног выравнивает положение платформы.
Рис. 11.8. Конструкция передних и задних ног
После сверления необходимых отверстий необходимо согнуть алюминиевую полосу по нужной форме. Зажмите полосу в тиски со стороны высверленных отверстий на расстоянии 70 мм. Нажмите на пластину и согните ее под углом 90°. Лучше всего нажимать на пластину непосредственно около губок тисков. При этом пластина согнется под углом 90° без риска выгибания самой «нижней» части ноги.
Центральные ноги выполнены из одного куска алюминия (см. рис. 11.9). При креплении к роботу центральные ноги оказываются на 3 мм короче передних и задних ног. Таким образом, в среднем положении они не касаются земли. Эти ноги предназначены для наклона робота вправо и влево. При вращении центрального сервомотора ноги наклоняют робота на угол примерно ±20°.
Рис. 11.9. Средние ноги
При изготовлении центральных ног в алюминиевой полосе размером 3х12х235 мм сверлятся сперва три центральных отверстия под фланец сервомотора. Затем алюминиевая полоса крепится в тиски, причем губки тисков по верхнему краю должны фиксировать полосу на расстоянии 20 мм от центра полосы. Зажмите полосу с помощью плоскогубцев на расстоянии примерно 12 мм от верхнего края тисков. Сохраняя зажим плоскогубцев, аккуратно скрутите алюминиевую полосу на угол 90°. Производите операцию достаточно медленно, иначе можно легко сломать пластину. Аналогично скрутите пластину с другой стороны.
После того как скручивание на 90° произведено, дополнительно согните пластину в двух местах на 90°, как мы это делали для передних и задних ног.
Установка сервомоторов
Передние сервомоторы крепятся к алюминиевому основанию с помощью пластиковых винтов и гаек 3 мм. Я выбрал пластиковые винты, поскольку их можно слегка гнуть и компенсировать небольшие несоответствия положений просверленных в пластине отверстий и крепежных отверстий сервомотора.
Ноги крепятся к пластиковому фланцу сервомотора. Для этого я использовал 2 миллиметровые винты и гайки. При креплении фланца к валу сервомотора убедитесь, что каждая нога может отклоняться вперед-назад на одинаковый угол от среднего перпендикулярного положения.
Конструкция тяги
Тяга между передними и задними ногами изготовлена из прутка с резьбой 3 мм (см. рис. 11.10). В исходной конструкции длина тяги составляет 132 мм от центра до центра. Тяга вставляется в отверстия на передней и задней ноге робота и может быть закреплена с помощью нескольких гаек.
Рис. 11.10. Детальный чертеж шарнира и тяги
Перед установкой тяги задние ноги робота должны быть прикреплены к основанию. Крепление задних ног изготовлено из резьбовой заклепки 9,5 мм и крепежного винта. Детальное крепление ноги показано на рис. 11.10. Необходимо подложить пластиковые шайбы под основание, которые заполнят пространство между нижней частью основания и головкой винта. Такая конструкция обеспечивает крепление ноги к основанию без ее «болтания». Чтобы уменьшить трение, можно использовать пластиковые шайбы. Не используйте слишком много шайб – это приведет к излишнему прижиму ноги к поверхности основания. Нога должна поворачиваться в соединении достаточно свободно. На рис. 11.11 и 11.12 приведены фотографии частично собранного шестиногого робота.
Рис. 11.11. Шестиног – вид снизу. Спереди два сервомотора
Рис. 11.12. Частично собранный шестиног с двумя передними сервомоторами
Центральный сервомотор
Для крепления центрального сервомотора потребуются две Г-образные скобы (см. рис. 11.13). Просверлите соответствующие отверстия в алюминиевых полосках и согните их под углом 90°, чтобы получились скобы. Прикрепите две Г-образные скобы к центральному сервомотору с помощью пластиковых винтов и гаек (см. рис. 11.14). Затем прикрепите узел центрального сервомотора к нижней части основания. Совместите четыре отверстия на основании с отверстиями на верхней части Г-образных скоб. Скрепите части с помощью пластиковых винтов и гаек. На рис. 11.15 и 11.16 приведены фотографии вида сверху и снизу для шестиногого робота.
Рис. 11.13. Скоба центрального сервомотора
Рис. 11.14. Центральный мотор в сборе с крепежными скобами и средними ногами
Рис. 11.15. Шестиног – вид снизу с тремя сервомоторами
Рис. 11.16. Шестиног в сборе. Конструкция готова для монтажа электронного управления
Электрическая часть
На рис. 11.17 приведена схема управления сервомоторами с помощью PIC-микроконтроллера. Питание сервомоторов и микроконтроллера осуществляется от батареи 6 В. Батарейный отсек 6 В содержит 4 элемента АА. Схема микроконтроллера собрана на небольшой макетной плате. Батарейный отсек и схема прикреплены сверху к алюминиевому основанию. На рис 11.5 показана готовая конструкция робота, готовая к «передвижению».
Рис. 11.17. Принципиальная схема управления шестиногого робота
Программа для микроконтроллера
Микроконтроллер 16F84 управляет работой трех сервомоторов. Наличие большого числа незадействованных шин ввода/вывода и места под программу предоставляет возможность совершенствования и модификации базовой модели робота.
Программа PICBASIC
‘Шестиногий шагающий робот
‘Соединения
‘Левый сервомотор Pin RB1
‘Правый сервомотор Pin RB2
‘Сервомотор наклона Pin RB0
‘Движение только вперед
start:
for B0 = 1 to 60
pulsout 0, 155 ‘Наклон по часовой стрелке, подъем правой стороны
pulsout 1, 145 ‘Левые ноги на месте
pulsout 2, 145 ‘Правые ноги движутся вперед
pause 18
next B0
for B0 = 1 to 60
pulsout 0, 190 ‘Наклон против часовой стрелки, подъем левой стороны
pulsout 1, 200 ‘Левые ноги движутся вперед
pulsout 2, 145 ‘Правые ноги сохраняют положение вперед
pause 18
next B0
for B0 = 1 to 15
pulsout 0, 172 ‘Среднее положение, отсутствие наклона
pulsout 1, 200 ‘Левые ноги сохраняют положение вперед
pulsout 2,145 ‘Правые ноги сохраняют положение вперед
pause 18
next B0
for B0 = 1 to 60
pulsout 0, 172 ‘Среднее положение, отсутствие наклона
pulsout 1, 145 ‘Движение левых ног назад
pulsout 2, 200 ‘Движение правых ног назад
pause 18
next B0
goto start
На команду pulsout не все сервомоторы реагируют одинаковым образом. Возможно, что для создания робота вы приобретете сервомоторы, характеристики которых будут слегка отличаться от тех, которые были использованы мной. В этом случае обратите внимание на то, что параметры команды pulsout, которая определяет положение ротора сервомотора, должны быть подстроены. В этом случае необходимо подобрать численные значения параметров pulsout, которые бы соответствовали тому типу сервомотора, который использован в вашей конструкции шестиногого робота.
Данная программа на PICBASIC позволяет роботу двигаться только в прямом направлении, однако, немного изменив программу, конструктор может заставить робота двигаться назад и совершать повороты вправо и влево. Установка нескольких сенсорных датчиков может информировать робота о наличии препятствий.
Список деталей конструкции шагающего робота
• Сервомоторы
• Микроконтроллеры 16F84
• Алюминиевые полосы
• Алюминиевый лист
• Прутки и гайки с резьбой 3 мм
• Пластиковые винты, гайки и шайбы
Детали можно заказать в:
Images Company
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Глава 12 Робот – солнечный шар
Идею создания подобного робота первоначально выдвинул Ричард Вейт из Северного Йорка, Торонто. Ричард построил робота, ищущего источник света, заключенного в прозрачную сферу (шар). Затем, в более недавнее время, Дейв Хранкиу из Калгари, Канада, так сказать, «поднял этот шар» и построил серию передвижных роботов – солнечных шаров, ищущих источники света.
Можно отметить два любопытных качества, которыми обладают подобные роботы (см. рис. 12.1). Первое из них – способ передвижения. Внутрь шара помещен редуктор. Один из концов вала редуктора наглухо прикреплен к внутренней стороне поверхности прозрачной сферы. Жесткое крепление вала редуктора препятствует его вращению, что вынуждает вращаться сам редуктор. Редуктор имеет достаточно большой вес, что перемещает центр тяжести сферы вперед. По этой причине сама сфера катится вперед.
Рис. 12.1 Робот – солнечный шар
В состоянии покоя центр тяжести редуктора находится в нижней мертвой точке (нижнее положение редуктора), и шар покоится, т. е. оказывает сопротивление качению. При включении редуктора он начинает вращаться внутри шара. Это вращение перемещает центр тяжести шара вперед, и шар, таким образом, катится в прямом направлении.
Второе качество относится к способу питания конструкции редуктора. Первоначально солнечные роботы имели бортовой источник питания, что позволяло подводить питание к редуктору в прерывистом режиме (более подробно это было изложено в гл. 3). Бортовой источник питания состоит из батареи солнечных элементов, основного конденсатора и триггерной или низкочастотной генерирующей схемы. При освещении световым потоком солнечная батарея начинает заряжать основной конденсатор. Когда значение напряжения на конденсаторе достигнет пороговой величины, триггерная схема пропускает накопленный заряд через двигатель с высоким КПД, соединенный с редуктором, что вызывает небольшое перемещение робота вперед.
В данной конструкции робота использована аналогичная конструкция редуктора, но для его питания использованы два элемента АА. Недостатком батарей является необходимость их замены после использования. Однако их преимущество в том, что питание на схему робота подается постоянно, что позволяет нам легко изучать его поведение (в основном фототропизм), движение и перемещения.
В оригинальной конструкции робота для изучения этих эффектов требовался метод замедленной съемки. В зависимости от уровня освещенности, каждая зарядка конденсатора занимает несколько минут. Когда заряд протекает через двигатель, робот чуть-чуть откатывается вперед. Например, 10 часов движения оригинальной модели солнечного робота сжимаются в несколько минут при изучении данной конструкции.
Данному роботу не требуется электронных схем управления бортовым источником питания, однако и ему необходим световой выключатель. Схема, изображенная на рис. 12.2, управляет подачей напряжения от батареи на двигатель редуктора. Схема определяет уровень освещенности, «видимой» роботом. Если уровень освещенности достаточно высок, то схема включает двигатель. Пороговое значение уровня освещенности может регулироваться с помощью переменного резистора V1.
Рис. 12.2. Принципиальная электрическая схема солнечного шара
Конструкция редуктора
Перед тем как мы приступим к изготовлению робота, давайте посмотрим на конструкцию редуктора (см. рис. 12.3). Физические размеры редуктора меньше обычных и его легче смонтировать внутри сферы. Передаточное число редуктора 1000:1. Чем больше передаточное число, тем медленнее будет двигаться робот.
Рис. 12.3. Редуктор с отношением 100:1
В прототипе использован редуктор с передаточным числом 1000:1. Вы можете использовать любой другой редуктор, умещающийся в прозрачной сфере с внутренним диаметром 140 мм. Выберете редуктор с большим передаточным числом, что позволит уменьшить частоту вращения (7 об/мин).
Конструкция робота
Первым делом нужно обратить внимание на корпус устройства. Он должен быть прозрачным и иметь достаточные размеры для размещения редуктора и электрических схем. В прототипе был использован сферический корпус диаметром 140 мм. Стыкующиеся из половин прозрачные сферы продаются во многих магазинах, специализирующихся на товарах для любителей. Подобные сферы используются любителями для размещения в них различных поделок «выходного дня». Если вы не сможете приобрести такую сферу в местном магазине, то можете заказать ее в Images SI (см. список деталей конструкции в конце главы). Пластиковый корпус является хрупким. Не заставляйте вашего робота подниматься или спускаться по ступеням, корпус может разбиться, что приведет конструкцию в негодность.
Разделите две половины корпуса. Сперва необходимо точно определить геометрический центр каждой полусферы. В этих точках будут присоединяться концы вала редуктора. Определение положения точки центра может показаться более легким, чем это есть на самом деле. Для отыскания центра я был вынужден нарисовать на бумаге окружность по периметру полусферы, затем нарисовать квадрат вокруг окружности со сторонами, касающимися окружности (см. рис. 12.4). Проведя диагонали квадрата, я нашел геометрический центр окружности. Затем полусфера была помещена на рисунок окружности. Если вы держите голову прямо напротив сферы, вы сможете визуально определить центр и отметить его на сфере с помощью маркера. Я попробовал этот способ раз или два, но результаты были неудовлетворительны. В конце концов, я наклеил бумагу на фанеру толщиной 1,5 мм и просверлил небольшое отверстие в отмеченном центре. Затем я взял небольшой штырь длиной 63 мм и зафиксировал его в отверстии, следя за тем, чтобы он был перпендикулярен плоскости. Возьмите полусферу за обод и совместите ее диаметр с нарисованной окружностью. Конец штыря укажет положение центра с большой точностью. Отметьте положение центра сперва на одной полусфере, а затем – на второй.
Рис. 12.4. Чертеж для нахождения центра окружности
Следующим шагом будет изготовление запорного устройства фиксатора внутри сферы, которое будет препятствовать свободному вращению вала редуктора внутри сферы. Поскольку вал зафиксирован, то это приводит к вращению самого редуктора внутри сферы. При этом центр тяжести перемещается, и робот двигается вперед. В то же время конструкция фиксатора вала редуктора должна обеспечивать по необходимости разъем и соединение половин сферы. Система, которую я использую, иллюстрирована рис. 12.5 и 12.6. Для этой цели мной был использован тот же тип прозрачного пластика, из которого сделана сфера, а вы можете изготовить эти части из других материалов, например из латуни или дерева.
Рис. 12.5. Детали привода прозрачной сферы
Рис. 12.6. Положение редуктора внутри сферы
Первая деталь представляет собой небольшой отрезок трубки с внешним диаметром 15 мм, внутренним диаметром 12 мм и длиной 9,5 мм. Эта трубка приклеивается к центру полусферы в отмеченной нами ранее точке.
Внутрь трубки вклеивается половина разрезанного вдоль стержня диаметром 12 мм и длиной 9,5 мм. Эта часть может быть вклеена в трубку перед приклеиванием трубки к поверхности полусферы.
Затем отрежьте небольшой кусочек стержня из жесткого пластика диаметром 12 мм. Распилите его вдоль по длине 9,5 мм и удалите половину. Это можно сделать при помощи ножовки или шлицовки. Сперва пропилите щель на глубину 9,5 мм, а затем сделайте горизонтальный пропил для удаления одной половины. Проверьте, что стержень заходит на всю глубину в трубку 15 мм и надежно соединяется с внутренней поверхностью полусферы. Если этого не происходит, подпилите полукруглый конец стержня. В другом конце стержня просверлите по центру отверстие, соответствующее диаметру вала редуктора.
Примечание. В первоначальном варианте конструкции я сделал крепление вала редуктора к полусфере аналогичным образом. Только когда конструкция была завершена, я понял, что это делать необязательно. Разъемного сочленения с одной стороны оказалось достаточно.
Конструкция крепления ко второй полусфере проще по изготовлению. Приклейте небольшой отрезок трубки с внешним диаметром 15 мм и внутренним диаметром 12 мм к центру полусферы, используя нанесенную отметку. Отрежьте небольшой кусок стержня диаметром 12 мм. Убедитесь, что стержень легко вставляется в трубку 15 мм. Если нет, то возьмите небольшой кусок наждачной бумаги средней зернистости. Оберните наждачную бумагу на расстоянии 12 мм от конца стержня. Зачистите конец стержня, вращая его в кольце наждачной бумаги. Продолжайте зачищать стержень до тех пор, пока он не будет легко входить с отверстие трубки. Затем просверлите в другом конце стержня отверстие, соответствующее диаметру вала редуктора.
Необходимо, чтобы редуктор располагался точно в центре сферы. Вставьте конец вала редуктора в отверстие в пластиковом стержне. Вставьте стержень в трубку, прикрепленную к внутренней поверхности полусферы нашего шара.
Добейтесь центрального положения редуктора и отметьте глубину, на которую вал редуктора входит в пластиковый стержень. Выньте редуктор из отверстия в стержне. Приготовьте небольшое количество эпоксидного клея. Нанесите эпоксидный клей на вал редуктора и вставьте его в отверстие стержня. Перед тем как продолжить, дождитесь высыхания клея.
Как только клей высохнет, мы должны вклеить второй пластиковый стержень с противоположной стороны. Вставьте приклеенный стержень в полусферу. В противоположный конец вала вставьте другой пластиковый стержень. Соедините половины сферы в первый раз. Заметьте глубину, на которую вал редуктора войдет в пластиковый стержень, и добавьте 3 мм для компенсации возможной ошибки. Приклейте и дайте клею подсохнуть. Во время склейки второго конца вала редуктора убедитесь, что половины сферы смыкаются нужным образом.
Электрическая схема
Электрическая схема представляет собой электронный ключ, управляемый интенсивностью светового потока. Когда уровень средней окружающей освещенности мал (возможна подстройка порогового значения), то схема отключает питание двигателя редуктора. Порог чувствительности схемы регулируется с помощью переменного резистора V1.
В изготовлении схемы нет ничего сложного. Если вы не хотите приобрести или изготовить печатную плату, то схема может быть собрана и смонтирована на макетной плате.
Работа схемы
Схема содержит операционный усилитель структуры КМОП, используемый в качестве компаратора напряжений. Компаратор сравнивает значения двух входных напряжений. Одно из напряжений называется опорным и обозначается Vоп. Это значение сравнивается с входным напряжением, обозначаемым Vвх. Когда значение Vвх. превышает или падает ниже Vcn., то состояние выхода компаратора изменяется.
Два входных напряжения подаются на выводы 2 и 3 ИС. Вывод 2 (инвертированный вход) соединен с источником опорного напряжения, образованного делителем напряжения на резисторах R1 и R2 и составляющего примерно 1,5 В.
Фоторезистор R3 образует вместе с переменным резистором V1 другой делитель напряжения, который соединен с неинвертированным входом ОУ.
В данной схеме включения ОУ нет резистора обратной связи между выходом ОУ (вывод 6) и одним из его входов, что позволяет ОУ работать в режиме максимального усиления (открытая петля).
В качестве датчика освещенности используется CdS фоторезистор. Фоторезистор изменяет свое сопротивление пропорционально величине светового потока, падающего на его поверхность. CdS фоторезистор имеет наибольшее сопротивление в полной темноте. С увеличением интенсивности светового потока его сопротивление падает. В данной схеме CdS фоторезистор включен в схему делителя напряжения. Изменение сопротивления CdS фоторезистора приводит к изменению падения напряжения на переменном резисторе V1, соединенным с выводом 3 ОУ. По мере нарастания потока освещенности сопротивление CdS фоторезистора уменьшается, и соответственно увеличивается падение напряжения на переменном резисторе V1. Увеличение падения напряжения означает повышение напряжения на выводе 3. При помощи переменного резистора можно установить уровень срабатывания компаратора для различных значений освещенности.
Изготовление схемы не составляет большого труда. Вы можете выполнить монтаж на макетной плате с помощью пайки точка-точка. Можно воспользоваться печатной платой из набора или изготовить ее самостоятельно. Чертеж печатной платы представлен на рис. 12.7. Расположение деталей на печатной плате – рис. 12.8.
Рис. 12.7. Чертеж печатной платы
Рис. 12.8. Расположение деталей на печатной плате
После сборки схемы необходимо подстроить с помощью переменного резистора V1 желаемый уровень освещенности, при котором включается схема. При помощи зажимов «крокодил» временно соедините схему с двигателем редуктора. Питание схемы и двигателя обеспечивается с помощью двух элементов АА, причем батарейный отсек для этих элементов приклеивается к редуктору в момент окончательной сборки. Убедитесь, что батарейный отсек обеспечивает легкую вставку и замену элементов.
При выставлении порогового значения уровня освещенности используйте достаточно низкие уровни. В противном случае, во время движения робота по полу, он будет каждый раз останавливаться, попадая в тень, если пороговое значение уровня освещенности слишком высоко.
Окончательная сборка
После подстройки порогового значения уровня освещенности вы можете приступить к окончательной сборке. Приклейте батарейный отсек для элементов АА к корпусу редуктора, тщательно следя за тем, чтобы клей не попал на шестерни редуктора. Затем приклейте плату со схемой, также убедившись, что капли клея не попали в шестеренчатый механизм. Присоедините источник питания. В этот момент редуктор, возможно, начнет вращаться. Чтобы правильно выполнить сборку, перенесите механизм в более темное помещение, чтобы выключить схему. Поместите конструкцию внутрь сферы.
Теперь вынесите робота на свет. Редуктор должен включиться. Поставьте робота на поверхность пола. Робот должен перемещаться вперед или в направлении источника света. Если робот перемещается в обратном направлении, остановите его, выньте редуктор и плату электроники и поменяйте местами провода, идущие к двигателю.
Передвижение
Когда я начал наблюдать за «поведением» робота, то был крайне удивлен. Первоначально я думал, что робот будет легко попадать в «ловушки». Оказалось, что это не так. Когда робот доезжает до угла и там останавливается, то вращение редуктора внутри начинает его раскачивать вверх и в сторону, перемещая его вес к «верхней» мертвой точке и таким образом выталкивая робота из угла.
Усовершенствование конструкции
В первоначальном варианте я планировал применить рулевой механизм для того, чтобы робот следовал за источником света. Однако выяснилось, что небольшой рулевой механизм не имеет достаточного веса для быстрого поворота робота в каком-то направлении. В процессе длительного перемещения на направление движения оказывают сильное влияние другие факторы (рельеф, наличие препятствий и т. д.). По этой причине я отказался от рулевого механизма. Тем не менее усовершенствование конструкции может осуществляться именно в этом направлении.
Введение добавочного режима поведения
Робот первоначально находится в покое, но при определенном уровне освещенности он переходит в «активную» фазу. Мы можем ввести еще один поведенческий уровень (питание) при добавлении некоторых компонентов (две солнечные батареи и два управляющих диода) и дополнительной схемы компаратора. Второй компаратор будет отключать двигатель при достаточно высоком уровне внешней освещенности, включая режим зарядки элементов АА от солнечной батареи. В этом случае в качестве элементов АА должны быть использованы NiCd аккумуляторы.
На рис. 12.9 показана схема поведения робота. Когда уровень освещенности низок, то робот выключен, или мы можем сказать, что он находится в состоянии «отдыха». По мере нарастания уровня освещенности, она достигает точки, когда двигатель включается, и робот переходит в режим «поиск». При дальнейшем значительном возрастании уровня освещенности, при каком-то значении второй компаратор выключит двигатель, и NiCd аккумуляторы будут заряжаться от солнечной батареи, обеспечивая режим «питания».
Рис. 12.9. Организация поведения по «уровням»
Если вы решите построить такую систему «питания», то необходимо проследить, чтобы ток, потребляемый схемой компараторов, не превышал ток, вырабатываемый солнечной батареей. В противном случае зарядка NiCd аккумуляторов окажется невозможной.
Список деталей для изготовления робота-солнечного шара
• (1) Прозрачная пластиковая сфера 140 мм (см. выше текст настоящей главы).
• (1) Редуктор (см. выше текст настоящей главы)
• (1) Стержень из твердого пластика длиной 150 мм диаметром 12 мм
• (1) Пластиковая трубка длиной 75 мм, внутренний диаметр 12 мм, внешний – 15 мм
Электронные компоненты
• (1) ОУ КМОП-структуры на 5 В ALD 1702 или аналогичный
• (1) Резистор 33 кОм, 0,25 Вт
• (1) Фоторезистор CdS
• (1) Подстроечный резистор 4,7 кОм
• (2) Резистор 15 кОм
• (1) Конденсатор 0,0047 мкФ
• (1) Транзистор TiP 120 NPN Darlington
• (1) Макетная плата
Детали можно заказать в:
Images SI,Inc.
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Глава 13 Подводные роботы
Робототехника подводных устройств развивается по многим направлениям. Большинство подводных роботов создаются для проведения спасательных операций и исследований. В будущем подводные роботы будут помогать осваивать океан для организации рыбной ловли, в фармацевтике, поиске полезных ископаемых и источников энергии.
Подводные роботы могут использоваться также в качестве моделей тестирования роботов, предназначенных для космических исследований. Роботы с нулевой плавучестью являются в определенном смысле невесомыми. В подобных роботах ракетные двигатели моделируются двигателями с гребными винтами. Подводные испытания позволяют имитировать отсутствие трения, наблюдаемое в космическом пространстве. Если вы хотите создать робота, работающего в условиях космоса, то хорошие предварительные результаты можно получить с помощью модели подводного робота. Организация НАСА начала развитие технологий дистанционно управляемых устройств с использованием систем телеслежения (TROV) (см. рис. 13.1) и автономных подводных устройств (AUV). В устройствах TROV в качестве систем дистанционного управления используются системы виртуальной реальности. Технологии телеслежения играют еще более важную роль в исследованиях окружающего пространства и вредном для человека окружении. В будущем технологии телеслежения будут развиваться как в этих направлениях, так и осваивать новые, например индустрию развлечений.
Рис. 13.1 Аппарат TROV NASA. Фотография НАСА.
Дельфины и тунцы
Были предприняты интересные исследования принципов плавания и плавательных движений рыб. Общеизвестно, что подводные обитатели могут передвигаться и плыть более эффективно и экономично, чем гребной винт может двигать судно. Хотите легко доказать это самим себе? Вы когда-нибудь постукивали по стеклу аквариума, в котором плавают рыбы? Внезапный шум заставляет рыб метаться по аквариуму настолько быстро, что ваши глаза не способны уследить за их перемещениями. Представьте, что вы можете создать корабль, способный перемещаться с подобной быстротой и внезапностью. Поэтому неудивительно, что правительство США финансирует некоторые из этих исследований.
Насколько эффективнее плывет рыба по сравнению с нашими современными способами передвижения по воде? Давайте проведем краткий анализ. В 1936 году британский зоолог Джеймс Грей исследовал дельфинов. Его целью было подсчитать мощность, развиваемую дельфином, чтобы перемещаться со скоростью 20 узлов – скоростью, которую обычно наблюдают у дельфинов. Модель Грея была очень жесткой в предположении, что сопротивление воды для движущегося дельфина остается одинаковым для жесткой и гибкой моделей. Это оказалось неверным, но даже с учетом необходимой поправки, результаты Грея оказались очень любопытными. Оказалось, что его дельфин оказался в 7 раз слабее, чем это необходимо для достижения скорости в 20 узлов. Используя дедукцию, можно предположить, что дельфин каким-то образом способен в 7 раз уменьшить сопротивление воды. Но до настоящего времени точного ответа нет.
За последние 60 лет никто не смог окончательно подтвердить или опровергнуть вычисления Грея. Любой плавающий механизм, имитирующий движения рыбы, оказывается значительно менее эффективным. В последнее время предпринимаются новые исследования для изучения способа плавания рыб. С использованием новых компьютерных технологий ученые надеются получить ответ на этот давно волнующий вопрос.
В последние несколько лет ученые Массачусетского технологического института исследовали голубого тунца. Они создали модель робота-рыбы длиной 120 см, которая плавает в специальном бассейне для проверки ходовых качеств судов. Робот-рыба похож на настоящую рыбу. Шкура рыбы сделана из специальной пены и покрыта лайкрой. В роботе использованы шесть внешних двигателей, соединенных со шкивами и «сухожилиями» внутри робота. Движение рыбы напоминает плавание настоящего голубого тунца.
Плавание с помощью крыла
Хвост рыбы можно рассматривать как подводное крыло. При движении хвоста из стороны в сторону он отбрасывает поток воды назад и соответственно движет рыбу вперед. Во время движения хвоста в воде за ним образуются вихри. Есть основания полагать, что принцип образования этих вихрей может быть ключом к пониманию эффективности передвижения рыбы.
Дельфины интересны тем, что их хвост – подводное крыло расположен горизонтально. Он не перемещается из стороны в сторону как у рыбы, а совершает движения вверх-вниз. Такие движения в той же степени эффективно толкают тело дельфина вперед.
Пингвины плывут с помощью толчков их крыльев. Вид пингвина, плывущего в воде, сильно напоминает полет птицы. Однако существует разница. При полете птица взмахами крыльев должна поддерживать тело в воздухе, а также обеспечивать движение вперед. Создание подъемной силы необходимо для преодоления силы притяжения. Для пингвинов подъемная сила не нужна. Плотность воды равна плотности тела пингвина (нулевая плавучесть), поэтому пингвин машет крыльями только для продвижения вперед.
Лопасти и весла
Рассматривая способы передвижения в воде, мы должны включить сюда использование лопастей и весел. При движении по воде утки используют перепончатые лапы в качестве лопастей. Водомерки используют ножки в качестве весел и двигаются вперед, как маленькие лодки.
Что мы знаем?
Исследования в МТИ привели исследователей к идее использования жидкостного динамического параметра, известного как индекс Строхала. Для рыбы этот параметр вычисляется умножением частоты взмахов хвоста рыбы на ширину образующегося вихря, деленную на скорость рыбы. Были исследованы рыбы разных пород. Оказалось, что КПД у рыбы максимален, когда индекс Строхала лежит в пределах 0,25-0,35.
Когда плавники робота-рыбы, созданной в МТИ были переделаны и настроены так, что индекс Строхала попал в этот диапазон, КПД устройства возрос более чем до 86 %. Это большое достижение по сравнению с гребными винтами, обеспечивающими КПД не более 40 %.
Приступаем к проекту
B этой главе рассмотрены два основных проекта подводных роботов. Один из них предусматривает переделку игрушечной подводной лодки, а другой – изготовление робота-рыбы из подручных материалов.
Подводная лодка
Модели игрушечных подводных лодок производятся и продаются многими компаниями. Их возможности зависят от степени сложности модели, но обычно они управляются по радио и способны погружаться и всплывать (см. рис. 13.2).
Рис. 13.2. Игрушечная подводная лодка готова к переделке в TROV
При переделке игрушечной подводной лодки я советую отказаться от радиоуправления и перейти к управлению по проводам с использованием соответствующего кабеля. По специальному кабелю можно подвести к подводной лодке питание и управляющие сигналы.
Такие подводные лодки для «хобби» могут быть превращены в небольшие системы телеслежения. Первоначальной переделкой может быть установка цветной видеокамеры. Большинство из подобных лодок имеют пустые отсеки, куда можно установить электронную схему (см. рис. 13.3).
Рис. 13.3. Открытый отсек для размещения электронных компонентов
В подводную лодку можно установить большинство блоков, использованных в автомобиле с дистанционным управлением (см. гл. 9). Единственным отличием является управление по проводам вместо радиоканала.
Подводная лодка является игрушкой, поэтому лучше не запускать ее в открытые водоемы. Крошечные водяные движители в таких лодках могут работать только в спокойной воде. Конечно, создание такой лодки может служить началом для более совершенных конструкций.
Существуют ли какие-либо другие способы использования подобных лодок, кроме использования их в качестве подводных «наблюдателей»? Я могу вообразить себе 10 или более подводных лодок в одном бассейне, причем, каждой управляет отдельный оператор. Я уверен, что на этой базе можно создать множество подводных или «космических» сценариев интересных игр.
Плавание с помощью хвоста
Как уже утверждалось ранее, устройства, имитирующие движения рыб, имеют очень низкий КПД. Эта модель не является исключением. Однако тщательный сбор информации источников типа МТИ может способствовать созданию модели (здесь этого не сделано) с гораздо большим КПД. И если кто-то хочет изготовлять роботов-андроидов, имеющих форму животного, то можно начать именно с этого проекта.
Кольцевые соленоиды
Движение робота-рыбы обеспечивается с помощью кольцевого соленоида (см. рис. 13.4). При включении питания верхняя часть соленоида поворачивается на угол примерно 30°. При отключении питания пружина возвращает механизм в исходное положение.
Рис. 13.4. Открытый отсек для размещения электронных компонентов
В верхней части соленоида находятся, по крайней мере, два резьбовых отверстия 1,6 мм, которые могут быть использованы для крепления деталей. В нижней части соленоида имеются две стойки с резьбой 1,6 мм для крепления соленоида. Соленоид оказался не таким мощным, как мне бы хотелось, но его все же достаточно для обеспечения подводного продвижения.
Электрическая схема
Для генерации медленной последовательности импульсов в схеме использован однопереходный транзистор Q1 (UJT2646) (см. рис. 13.5). Частота импульсов определяется номиналами C1 и R1. Импульсы подаются через резистор R2 на базу Q2. Q2 представляет собой NPN транзистор типа 2N2222. Транзистор Q2 используется для подачи инвертированного импульса на вывод 2 ИС 1. ИС 1 представляет собой таймер 555, включенный по схеме одновибратора. Форма и длина импульса определяются ИС 1. Выход таймера 555 управляет включением транзистора Q3. Транзистор Q3 управляет током, протекающим через кольцевой соленоид, использованный в роботе.
Рис. 13.5. Принципиальная схема устройства
Питание схемы осуществляется с помощью батареи 9 В. Схема достаточно проста и монтируется на печатной плате.
Проверьте работу схемы, соединив ее с соленоидом перед дальнейшей сборкой. Постоянная времени работы соленоида должна быть в районе 1 с.
Механика
Для снижения общей массы и веса устройства большинство деталей выполнено из алюминия. Первый вариант механизма, передающего движение соленоида к машущему хвосту «рыбы», изображен на рис. 13.6. Оказалось, что такой механизм сложнее, чем требуется. Окончательный вариант привода хвоста показан на рис. 13.7.
Рис. 13.6. Первоначальный привод движения хвоста
Рис. 13.7. Окончательный вариант привода
Полоса алюминия размерами 3х 12х 140 мм прикреплена к верхней крышке соленоида при помощи двух винтов 1,6 мм и длиной 6 мм. Просверлите сперва два отверстия в алюминиевой полосе, совпадающие с положением отверстий в верхней части соленоида. Затем, чтобы предотвратить излишне глубокое вворачивание винтов в соленоид, предварительно наверните на каждый винт гайку до упора. Если винты слишком глубоко ввернуты в верхнюю подвижную часть соленоида, то они будут препятствовать ее легкому вращению. Прикрепите алюминиевую полосу к подвижной части соленоида.
Плавник хвоста сделан из квадратного кусочка алюминия 30 мм, разрезанного по диагонали. Плавники крепятся к основанию 12 мм с помощью достаточного количества термоклея. Для лучшего контакта можно предварительно зачистить поверхности с помощью наждачной бумаги.
Соленоид крепится к задней части алюминиевой пластины размерами 3x30x50 мм на двух задних стойках 1,6 мм с помощью нескольких гаек. К передней части крепится плата электрической схемы и батарея (см. рис. 13.8).
Рис. 13.8. Робот-рыба в сборе
Гидроизоляция
Мы изготовили привод соленоида и электрическую схему. Для исключения попадания воды, которая может привести к порче устройства, необходимо завернуть плату соленоида в тонкую прозрачную пленку, используемую в кулинарии. Чехол из пленки крепится к хвосту с помощью проволоки. Крепление должно обеспечивать легкое поперечное перемещение хвоста.
Перед тем как опускать устройство в воду, ему необходимо обеспечить нулевую плавучесть. Если вы опустите его в воду «как есть», то передняя тяжелая часть робота «спикирует» на дно, а взмахи хвоста будут осуществляться «в воздухе». При помощи резиновой ленты прикрепите полоски пенопласта к передней части модели поверх прозрачного чехла. Положите модель в воду для проверки. Добейтесь горизонтального или почти горизонтального положения равновесия. После этого можно включить модель и отпустить ее в «плавание».
Эффективность модели
Данная модель робота не обладает КПД настоящей живой рыбы, хотя и обеспечивает движение. Я думаю, что КПД устройства можно повысить, распилив алюминиевую хвостовую пластину 12х 140 мм пополам, и затем соединить половины с помощью пружины 50 мм. Такая пружина позволит хвосту поворачиваться и изгибаться, что может обеспечить больший КПД передвижения.
Рыба-андроид
Робот отличается от андроида своим внешним видом. Если робот выглядит как «робот», то андроид копирует облик человека или иного живого существа. По этой причине андроидная рыба должна иметь вид рыбы.
Создание рыбы-андроида не столь сложно, как это может показаться на первый взгляд. Причина в том, что можно приобрести достаточно хорошо сделанную искусственную «шкуру» рыбы (см. рис. 13.9). Подобные предметы продаются в магазинах «хобби» и иллюзионного реквизита. Такая рыба может быть «вспорота» для установки внутри соответствующего механизма.
Рис. 13.9. Робот-рыба, заключенный в оболочку резиновой рыбы
Некоторые типы подобных муляжей выглядят более натурально. Я нашел модель, сделанную из толстой и мягкой резины. Такая «рыба» на вид и на ощупь очень реалистична, но требует более мощной «начинки», чтобы она могла двигаться. Лучшим выбором могут служить менее натуральные муляжи рыб, имеющие более тонкую шкуру и, следовательно, требующие меньше усилий для их передвижения.
Дополнительная информация
Чтобы больше узнать об устройствах, использующих принцип движения рыб, вы можете прочитать следующие статьи: Scientific American, March 1955, «An Efficient Swimming Machine» by Micheal S. Triantafyllou и George S. Triantafyllou, и Exploring Biomechanics, by R.McNeill Alexander, опубликованная в Scientific American Library, 1992, ISBN 0-7167-5035-X.
Список деталей для робота-рыбы
• R1 33 кОм
• R2 и R6 100 Ом
• R3 470 Ом
• R5 10 кОм
• R7 15 кОм
• Q2 транзистор NPN 2N2222
• Q3 TIP 120 NPN Darlington
• IC1 таймер 555
• C1 и C2 22 мкФ
• С3 0,01 мкФ
• Кольцевой соленоид $5,95
• Q1 2N2646 UJT $5,95
• Алюминиевая полоса 3х12х150 мм
• Алюминиевая полоса 3х30х50 мм
Детали можно заказать в:
Images SI, Inc.
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Глава 14 Аэророботы
Аэророботы представляют собой класс роботов, которые умеют летать. Сюда включаются аппараты легче воздуха (дирижабли), вертолеты и самолеты. Подобные аппараты находят применение в автономных и беспилотных полетах, военном деле, наблюдении с воздуха, индустрии развлечений и системах телеслежения.
Беспилотная авиация имеет достаточно долгую историю: первые аппараты появились еще в начале 20-х годов. Один из таких беспилотных летающих аппаратов имел кодовое название «жук» и был предназначен для военных целей. Длина «жука» составляла 3,6 метра, а размах крыльев – 4,5 метра. Его навигационная система была достаточно совершенной для того времени и включала гироскоп, альтиметр и пневматические и электрические системы управления. Система управления полетом направляла аппарат на 50–70 км вглубь вражеской территории. Когда самолет достигал заданного региона, аппарат сбрасывал крылья, и тяжелый фюзеляж сбрасывался на землю, неся при этом 200-фунтовый заряд взрывчатки. Однако устройство не нашло массового применения в связи с окончанием 1-й Мировой войны.
С самого начала конструкции подобных беспилотных аппаратов подвергались постоянным улучшениям и модификациям. Последние модели беспилотных самолетов применялись в войне в Персидском заливе. Эта акция почти не нашла отражения в прессе, хотя было совершено более 300 вылетов. Эти аппараты были использованы в разведке для оценки потерь противника и обнаружения складов вооружений. Наиболее известными и совершенными беспилотными летательными аппаратами можно назвать самонаводящиеся межконтинентальные ракеты с ядерными боеголовками.
Системы дистанционного управления и «присутствия» на летательных аппаратах также имеют достаточно длинную историю, правда, не такую долгую, как беспилотные аппараты. США использовали во 2-й Мировой войне дистанционно управляемые самолеты для полетов «камикадзе». Системы управления того времени, конечно, не идут ни в какое сравнение с современными совершенными устройствами. Эти системы были недостаточно и надежны, и чтобы точно пилотировать аппарат, пилоту приходилось визуально наблюдать за полетом.
Сегодня дистанционно управляемые летательные аппараты имеют видеокамеры, передающие изображение пилоту-оператору. Пилот может находиться в любой точке Земли. Подобные системы сегодня превратились в системы телеслежения на базе принципов виртуальной реальности.
Мы изготовим аэроробота – дирижабль с системой телеслежения. Я решил сделать аппарат легче воздуха, поскольку в сравнении с моделью самолета или вертолета он более безопасен, не производит шума, дешев и прост в изготовлении.
Дирижабли летают тихо, медленно, грациозно и «прощают» ошибки пилотирования. Основной причиной моего решения была безопасность. Если дирижабль столкнется с предметом или человеком, то он не сможет причинить ему какого-либо вреда. С другой стороны, самолет или вертолет могут быть опасны для человека (вращающийся винт самолета или вертолета может случайно стать смертельным оружием), когда полет совершается в непосредственной близости от людей.
Мы изготовим модель небольшого дирижабля с мягкой оболочкой (далее, просто «дирижабль» – прим. переводчика), предназначенного для полетов внутри помещения. Необходимо очень тщательно отнестись к подбору деталей конструкции, которые должны иметь исключительно малый вес. Подъемная сила дирижабля составляет около 6 унций. Это означает, что приемник радиоуправления, движитель, источник питания, ПЗС видеокамера и передатчик видеоизображения должны иметь вес, не превышающий 185 грамм. Ограничение очень строгое, но выполнимое.
Виды летательных аппаратов легче воздуха
Летательные аппараты легче воздуха составляют три категории: жесткие, полужесткие и нежесткие (с мягкой оболочкой). Оболочка жестких летательных аппаратов обычно сделана из легкого алюминия. Наиболее известными являются цепеллины.
Полужесткие аппараты имеют жесткую кабину, расположенную в килевой части аппарата. Мягкая оболочка, наполненная гелием, крепится сверху.
Наиболее известными сегодня являются аппараты нежесткого (мягкого) типа. Это и есть шары-дирижабли. Наиболее известными являются шары Goodyear, используемые в рекламных целях. Такой шар-дирижабль представляет собой мягкую оболочку, принимающую форму при заполнении гелием.
Системы дирижаблей
Наиболее часто дирижабли используются сегодня для наблюдения за ходом футбольных матчей с высоты птичьего полета. Также шары – дирижабли используются в рекламных целях.
Технология подобных аппаратов может показаться устаревшей, однако ученые и инженеры находят для них все новые применения. Например, в армии США используется аппарат SASS LITE (мини-система слежения и обнаружения одиночных объектов), которая используется для патрулирования границ. Недавно производитель объявил, что 90-футовый летательный аппарат можно также использовать и для коммерческих целей.
Шары, наполненные гелием, способны достигать верхних слоев стратосферы. Одна из компаний предложила создать летающую воздушную станцию на высоте более 30 км над Землей. По аналогии со спутником, с подобной станцией будет осуществляться телекоммуникационная связь. При этом стоимость подобной станции будет составлять 50 % от стоимости спутника, оснащенного аналогичным оборудованием.
Роботизованные системы и системы телеслежения устанавливаются на модели дирижаблей уже в течение ряда лет. Мы вкратце расскажем о двух проектах, одном от The Robot Group и другом от Berkley's WEB Blimp. Затем мы сосредоточимся подробно на установке простой системы телеслежения на модели дирижабля. В действительности система телеслежения представляет собой портативную, легкую беспроводную систему телевидеонаблюдения. Сенсорные системы обратной связи, типа датчиков прикосновения, имитирующих чувство осязания, которые необходимы для «реальной» системы телеслежения, не разработаны. Наша простая система передает изображение и звук. Пользователь или оператор могут управлять полетом дирижабля через систему радиоуправления.
The Robot Group – Остин, Техас
На модель дирижабля была установлена роботизованная система. The Robot Group из Остина, штат Техас продемонстрировала робот-дирижабль на первом фестивале Robofest осенью 1989 года. Я уверен, что роботизованные системы, установленные на дирижаблях, использовались и ранее в военных или научных целях, однако The Robot Group представила частные (не финансируемые правительством) исследования в этой области. The Robot Group продолжает развивать и совершенствовать роботизованные дирижабли. В 1991 году был представлен проект компьютеризованного дирижабля Mark III, использующий ультразвуковые датчики и нейронные сети в качестве системы навигации. Хотя система в общем не оправдала надежд разработчиков, ее функционирование можно признать вполне удовлетворительным.
У The Robot Group есть сайт в Интернете, который вы можете посетить и получить свежую информацию (электронный адрес в конце главы).
WEB Blimp – университет Беркли, Калифорния
Космический «собиратель» – это имя было дано системе телеслежения, размещенной на дирижабле, которая была разработана и изготовлена в университете Беркли, Калифорния, на факультете радиоэлектроники и вычислительной математики. Эти дирижабли можно представить «аватарами», или «небожителями», или, как я их предпочитаю называть, – «големами».
Группа из Беркли предприняла усилия по созданию системы телесного «перевоплощения». Настоящая система телесного «перевоплощения» требует комплексной системы сенсорной обратной связи от дирижабля «аватара» к оператору. В настоящее время система обратной связи включает передачу звука и изображения, а пользователь может управлять дирижаблем по радио.
Наиболее интересным в конструкции этого дирижабля является то, что он может управляться через сеть Интернет (отсюда его название – WEB Blimb, т. е. WEB дирижабль). Видеоизображение передается в сеть через видеокарту формата CU-SeeMe. WEB дирижабль доступен в сети через вебсайт Беркли (см. адрес доступа в конце главы).
Создание дирижаблей систем телеслеженияв виде «аватаров» и «големов»
Хорошо там, где нас нет! Роботизованные дирижабли или подобные конструкции имеют большое будущее в индустрии дистанционного наблюдения и телеслежения. Представьте, что вы хотите посмотреть несколько картин в Парижском Лувре, посетить Американский музей естественной истории в Нью-Йорке, затем оказаться в Смитсоньевском институте в Вашингтоне и, наконец, понаблюдать за пингвинами на Галапагосских островах. И условимся, что все путешествие должно занять пару часов.
Одним из способов совершить это в реальном времени – это использовать системы телеслежения. Однажды в будущем появятся телероботы, снабженные «зрением», которые смогут связаться по телефонному (или спутниковому) каналу с вашей домашней системой виртуальной реальности. Эти роботы будут расположены во многих интересных местах по всему земному шару.
Телероботы будут не только привязаны к Земле. Будут созданы роботы, находящиеся в космосе, под водой или летящие в воздухе. Проект Джейсона предполагает создание подводной системы научно-познавательных «приключений» для школьников. Через систему телекоммуникационной связи школьники смогут связаться с учеными, находящимися на далеком судне. Студенты смогут узнать о том, чем занимаются ученые, задать вопросы и иногда пилотировать TROV (средство передвижения, снабженное системой телеслежения), используя систему телекоммуникации.
Путешествие на Луну
Компания Lunacorp в Фэйрфаксе, штат Вирджиния, планирует запустить вездеход гражданского применения на Луну (см. рис. 14.1). Какую-то часть времени этот вездеход будет использоваться как система телеслежения с управлением с Земли (см. рис. 14.2). К сожалению, цена такого «вождения» высока и составляет примерно $7000 в час. Я не знаю как вы, а я бы пожертвовал $120, чтобы поездить на вездеходе по лунной поверхности в течение минуты.
Рис. 14.1 Вездеход Lunacorp
Рис. 14.2. Система телеслежения Lunacorp. Версия художника
Lunacorp планирует доставить вездеход на Луну в район моря Спокойствия. Но мы отклонились от нашей темы о дирижаблях.
Параметры дирижабля
Для эффективного использования в наземных системах телеслежения дирижабли должны удовлетворять нескольким критериям. Дирижабль должен быть абсолютно безопасен для окружающих людей. Дирижабли должны быть способны перемещаться по тем же направлениям, которые используют люди. ПЗС видеокамера должна находиться примерно на уровне глаз человека. Дирижабль должен без особых трудностей противостоять небольшому встречному ветру.
Система балласта должна позволять дирижаблю «зависать» в положении нулевой плавучести на одном или нескольких этажах здания. Если создание такой балластной системы представляет трудность, то необходимо разместить дирижабли с нулевой плавучестью на каждом этаже. При смене этажа оператор должен легко подключаться к неиспользуемому роботу телеслежения, находящемуся на требуемом этаже.
Физические ограничения накладываются на дирижабли в силу их малого веса. Например, дирижабль не может толчком открыть дверь. Здания требуют реконструкции, при которой двери и лифты будут управляться электронным способом по командам, поступающим с дирижабля.
Набор для конструирования дирижабля
Мы будем изготовлять дирижабль из прочного материала типа Mylar. Материал можно соединять путем горячей сварки с помощью бытового утюга. Существует множество возможных форм дирижаблей: в виде летающей колбасы, в виде крыла дельтаплана или обычного дирижабля – шара типа Goodyear. Я предлагаю простейшую конструкцию – дирижабль в форме подушки.
Изготовить дирижабль в форме подушки очень просто. Согните лист материала Mylar пополам (блестящей стороной наружу). Соедините сваркой его три открытых стороны, оставив небольшое отверстие внизу для штуцера наполнения газом, и все готово.
Гелий
Гелий продается в баллонах во многих магазинах товаров для «вечеринок» и предназначен для надувания воздушных шаров. Баллоны по форме напоминают баллоны для пропана. Если в вашем районе нет подобного магазина, поищите поставщика в «Желтых страницах».
Гелий или водород
Когда я начинал проект, то подумывал об использовании водорода вместо гелия, по той причине, что поскольку вес водорода почти в два раза меньше гелия, то можно ожидать увеличения подъемной силы в два раза. Правильная мысль? Ошибка!
Мое предположение о том, что вес водорода почти в два раза меньше веса гелия оказалось правильным (см. табл. 14.1), но я неверно подсчитал подъемную силу, и вот почему. Подъемная сила возникает при замещении объема воздуха водородом или гелием аналогично воздушному пузырьку в воде. Давайте используем эту аналогию. Плотность воздуха меньше плотности окружающей воды, поэтому пузырек выталкивается на поверхность. Аналогично, гелий имеет меньшую плотность, чем окружающий воздух, и поэтому он поднимается вверх. Из табл. 14.1 видно, что поднятие гелия или водорода вверх в толще более плотного газа, т. е. воздуха, определяется их меньшей плотностью.
Таблица 14.1
Итак, какова подъемная сила шара с гелием объемом 0,14 куб.м.?
Вес вытесненного воздуха = 0,14 (1,29) = 0,18 кг
Вес 0,14 куб.м. гелия = 0,14 (0,178) = 0,025 кг
Подъемная сила = 0,18 кг – 0,025 кг = 0,155 кг
Подъемная сила достаточно велика! Это произошло потому, что мы не вычли вес самого шара. Допустим, шар весит 0,1 кг, тогда полезная подъемная сила (0,155 кг-0,1 кг) уменьшится до 0,055 кг, или 55 г.
Вес 0,14 куб.м. водорода = 0,14 (0,09) = 0,012 кг
Подъемная сила = 0,18 кг – 0,012 кг = 0,168 кг
Разница подъемной силы для шара объемом 0,14 куб.м. составит:
0,168 кг – 0,155 кг = 0,013 кг, или 13 г.
Разница подъемной силы оказалась очень невелика, поэтому не стоит подвергаться риску, применяя водород. Я бы советовал использовать исключительно гелий.
Размеры дирижабля
Размер куска материала Mylar, который используется для изготовления дирижабля, после сгибания пополам составляет в плоском виде 860х 1422 мм. Вес материала составляет 93 г. Достаточно сложно определить количество гелия, заполняющего дирижабль. Для грубой оценки я буду считать, что дирижабль будет иметь форму цилиндра. Я знаю, что подушка не имеет цилиндрической формы, но, как я уже сказал, это грубая оценка. Сперва найдем диаметр. Кусок материала имеет длину 860х 2, т. е. длина окружности составит 1720 мм. Длина окружности равна радиусу, умноженному на 2п. Вычисляем радиус, который оказывается равным 280 мм. Объем цилиндра равен квадрату радиуса, умноженному на п и на высоту цилиндра. Высота в данном случае равна 1422 мм. Отсюда объем цилиндра будет равен 0,32 куб.м.
Дирижабль не будет заполнен газом до полного объема. В этом случае я буду считать, что заполнение составит 70 % расчетной величины, или около 0,22 куб.м. гелия.
Расчет подъемной силы
Вес вытесненного воздуха = 0,22 (1,29) = 0,29 кг
Вес гелия = 0,22 (0,178) = 0,04 кг
Вес оболочки из материала Mylar = 0,09 кг
Полезная подъемная сила = + 0,29 – 0,04 – 0,09 = 0,16 кг, или 160 г.
Конструкция дирижабля
Конструкция дирижабля проста и не требует особых замечаний. Основной проблемой является надежность сварного шва. Для практики отрежьте от листа материала Mylar небольшую полоску. Согните полоску Mylar блестящей стороной наружу, а темной стороной внутрь. Поставьте регулятор утюга в среднее положение. Регулируя температуру утюга, проглаживайте материал до получения соединения нужного качества. После того как вы изменили температуру утюга, подождите пять минут для стабилизации нагрева. Если температура окажется слишком большой, то материал «потечет» и в нем появятся отверстия. Если температура слишком мала, то сваренные части можно слишком легко разъединить. При правильной температуре сварки для разъединения шва потребуются значительные усилия. Перед тем как пробовать прочность шва, охладите материал Mylar в течение минуты. Найдя правильную установку температуры, запомните ее для использования в дальнейшем.
Мы будем изготавливать дирижабль в форме подушки. Согните лист материала Mylar пополам блестящей стороной наружу. Сварите три открытых стороны, оставив небольшое отверстие для штуцера, заполняющего дирижабль газом, и все готово. Ширина шва должна быть в пределах от 12 до 25 мм.
Видеокамера ПЗС
Видеокамера с ПЗС матрицей обеспечивает передачу изображения с дирижабля (см. рис. 14.3). Естественно, вес принимается во внимание в первую очередь. Камера весит чуть больше 15 г. Размеры камеры составляют 31x31x3 мм. Светочувствительность камеры составляет 0,03 люкс, разрешение 430 телевизионных строк. Выходной сигнал 1 В в системе NTSC. Камера питается от источника постоянного напряжения 9-12 В. Ток, потребляемый камерой, составляет примерно 100 мА.
Рис. 14.3. Легкая ПЗС видеокамера для системы телеслежения
Камеру можно питать от батареи «Крона» напряжением 9 В. Вес батареи (45 г.) в три раза больше веса самой камеры.
Телевизионный передатчик
Существует несколько типов наборов оборудования ТВ передатчика, которые выделяются в два основных класса. Передатчики первого типа транслируют видео– и звуковой сигналы на частоте одного из стандартных телевизионных каналов. Телевизионный приемник принимает сигнал и отображает его на экране. Радиус действия подобной системы составляет порядка 100 метров.
Другой тип передатчиков значительно дороже. Они транслируют сигналы выше частот телевизионного диапазона (частота составляет около 900 МГц), поэтому для просмотра на экране телевизора требуется специальный конвертер. Конвертер принимает сигнал на частоте 900 МГц и понижает ее до частоты стандартного телевизионного диапазона. Такая система отличается большим радиусом действия и лучшим качеством изображения. Блок, использованный в первоначальной версии устройства, передает сигналы непосредственно на телевизионный приемник в диапазоне УКВ (канал 14) (см. рис. 14.4).
Рис. 14.4. Плата ТВ передатчика
Система радиоуправления
Система радиоуправления специально создана для подобных дирижаблей (см. рис. 14.5). Она имеет исключительно малый вес. Блок движителя представляет собой сдвоенный турбовентилятор, закрепленный к нижней части дирижабля. Каждый вентилятор может вращаться в обоих направлениях и управляется отдельно по двухканальному радиопередатчику.
Рис. 14.5. Легкая система радиоуправления для дирижабля
Такая конструкция позволяет повысить маневренность дирижабля. Когда один вентилятор толкает дирижабль вперед, а другой – назад, то это позволяет быстро развернуть всю конструкцию. Дирижабль-подушка, готовый к процессу телеслежения, представлен на рис. 14.6. Детальный вид турбовентилятора, миниатюрной ПЗС видеокамеры и телевизионного передатчика показан на рис. 14.7.
Рис. 14.6. Дирижабль-подушка
Рис. 14.7. Детальный вид турбовентилятора, ПЗС видеокамеры и передатчика
Дальнейшие усовершенствования
Дирижабль как он есть представляет собой систему телеслежения. Если снабдить его автономной навигационной системой, то мы превратим дирижабль в летающего робота.
Список деталей дирижабля
• (1) дирижабль с радиоуправлением, #T30824-77
Деталь можно заказать в:
Edmund Scientific
60 Pearce Ave
Tonawanda, NY 14150-6711
1-800-728-6999
• (1) Миниатюрная ч/б ПЗС видеокамера
• (1) Миниатюрный ТВ передатчик
Детали можно заказать в:
Images, SI, Inc.
39 Seneca Loop
Staten Island NY 10314
(718) 698-8305
Ссылки в Интернете
• Robot Group, Austin, Texas – Neural Net Blimp
• WEB-controlled blimp at Berkley
/
• WEB Blimp
/~mpj/airships/ ”>Marv’s Airship Server
• Univercity of Virginia – Solar-powered airship
:80/~secap/
• U.S. competitor in Australia Solar Challenge
• Intelligent surveillance blimp at the Univercity of Virginia
/~jap6y/isb/
• Japanese Project – Solar-powered airship
Глава 15 Роботизованная рука-манипулятор, интерфейс IBM PC и система голосового управления
Данный проект представляет собой многоуровневую модульную задачу. Первый этап проекта – сборка модуля роботизованной руки-манипулятора, поставляемой в виде набора деталей. Вторым этапом задачи будет сборка интерфейса IBM PC также из набора деталей. Наконец, третий этап задачи представляет собой создание модуля голосового управления.
Манипулятором робота можно управлять вручную с помощью ручного пульта управления, входящего в комплект набора. Рукой робота можно также управлять либо через собранный из набора интерфейс IBM PC, либо используя модуль голосового управления. Набор интерфейса IBM PC позволяет управлять и программировать действия робота через рабочий компьютер IBM PC. Устройство голосового управления позволит вам управлять рукой робота с помощью голосовых команд.
Все эти модули вместе образуют функциональное устройство, которое позволит вам проводить эксперименты и программировать автоматизированные последовательности действий или даже «оживлять» управляемую полностью «по проводам» руку-манипулятор.
Интерфейс PC позволит вам с помощью персонального компьютера запрограммировать руку-манипулятор на цепь автоматизированных действий или «оживить» ее. Существует также опция, в которой вы можете управлять рукой в интерактивном режиме, используя либо ручной контроллер, либо программу под Windows 95/98. «Оживление» руки представляет собой «развлекательную» часть цепочки запрограммированных автоматизированных действий. Например, если вы наденете на руку-манипцулятор детскую перчаточную куклу и запрограммируете устройство на показ небольшого шоу, то вы запрограммируете «оживление» электронной куклы. Программирование автоматизированных действий находит широкое применение в промышленности и индустрии развлечений.
Наиболее широко применяемым в промышленности роботом является робот рука-манипулятор. Рука робота представляет собой исключительно гибкий инструмент хотя бы потому, что конечный сегмент манипулятор руки может быть соответствующим инструментом, требуемым для конкретной задачи или производства. Например, шарнирный сварочный манипулятор может быть использован для точечной сварки, с помощью сопла-распылителя можно окрашивать различные детали и узлы, а захват может использоваться для зажима и установки предметов – это лишь некоторые примеры.
Итак, как мы видим, рука-манипулятор робота выполняет много полезных функций и может служить идеальным инструментом для изучения различных процессов. Однако создание роботизованной руки-манипулятора с «нуля» представляет собой сложную задачу. Гораздо проще собрать руку из деталей готового набора. Компания OWI продает достаточно хорошие наборы руки-манипулятора, которые можно приобрести у многих дистрибьюторов электронных устройств (см. список деталей в конце этой главы). С помощью интерфейса можно подключить собранную руку-манипулятор к порту принтера рабочего компьютера. В качестве рабочего компьютера можно использовать машину серии IBM PC или совместимую, которая поддерживает DOS или Windows 95/98.
После подключения к порту принтера компьютера рукой-манипулятором можно управлять в интерактивном режиме либо программным образом с компьютера. Управление рукой в интерактивном режиме очень просто. Для этого достаточно щелкнуть по одной из функциональных клавиш, чтобы передать роботу команду выполнения того или иного движения. Второе нажатие на клавишу прекращает выполнение команды.
Программирование цепочки автоматизированных действий также не составляет особого труда. Сперва щелкните по клавише Program, чтобы перейти в программную моду. В этой моде рука функционирует точно так же, как это было описано выше, но при этом в дополнение каждая функция и время ее действия фиксируются в script-файле. Script-файл может содержать до 99 различных функций, включая паузы. Сам script-файл может быть повторно воспроизведен 99 раз. Запись различных script-файлов позволяет производить эксперименты с управляемой компьютером последовательностью автоматизированных действий и «оживлению» руки. Работа с программой под Windows 95/98 более детально описана ниже. Программа под Windows включена в набор интерфейса роботизованной руки-манипулятора или может быть бесплатно загружена из Интернета .
В дополнение к программе Windows рукой можно управлять, используя BASIC или QBASIC. Программа уровня DOS содержится на дискетах, включенных в комплект набора интерфейса. Однако DOS программа позволяет осуществлять управление только в интерактивном режиме с использованием клавиатуры (см. распечатку BASIC программы на одной из дискет). Программа уровня DOS не позволяет создавать script-файлы. Однако если есть опыт программирования на BASIC, то последовательность движений руки-манипулятора может быть запрограммирована аналогично работе script-файла, используемого в программе под Windows. Последовательность движений может повторяться, как это сделано во многих «одушевленных» роботах.
Роботизованная рука-манипулятор
Рука-манипулятор (см. рис. 15.1) имеет три степени свободы движения. Локтевое сочленение может перемещаться вертикально вверх-вниз по дуге примерно 135°. Плечевой «сустав» перемещает захват вперед и назад по дуге примерно 120°. Рука может поворачиваться на основании по часовой стрелке или против часовой стрелки на угол примерно 350°. Захват руки робота может брать и удерживать объекты до 5 см в диаметре и поворачиваться вокруг в кистевом сочленении примерно на 340°.
Рис. 15.1. Кинематическая схема движений и поворотов руки-робота
Для приведения руки в движение компания OWI Robotic Arm Trainer использовала пять миниатюрных двигателей постоянного тока. Двигатели обеспечивают управление рукой при помощи проводов. Такое «проводное» управление означает, что каждая функция движения робота (т. е. работа соответствующего двигателя) управляется отдельными проводами (подачей напряжения). Каждый из пяти двигателей постоянного тока управляет своим движением руки-манипулятора. Управление по проводам позволяет сделать блок контроллера руки, непосредственно реагирующий на электрические сигналы. Это упрощает схему интерфейса руки робота, который подключается к порту принтера.
Рука изготовлена из легкого пластика. Большинство деталей, несущих основную нагрузку, также выполнены из пластика. Двигатели постоянного тока, использованные в конструкции руки, представляют собой миниатюрные высокооборотные двигатели с низким крутящим моментом. Для увеличения крутящего момента каждый мотор соединен с редуктором. Двигатели вместе с редукторами установлены внутри конструкции руки-манипулятора. Хотя редуктор увеличивает крутящий момент, рука робота не может поднять или нести достаточно тяжелые предметы. Рекомендуемый максимально допустимый вес при поднятии составляет 130 г.
Набор для изготовления руки робота и его компоненты представлены на рисунках 15.2 и 15.3.
Рис. 15.2. Набор для изготовления руки-робота
Рис. 15.3. Редуктор перед сборкой
Принцип управления двигателями
Для того чтобы понять принцип работы управления по проводам, посмотрим, как цифровой сигнал управляет работой отдельного двигателя постоянного тока. Для управления двигателем требуются два комплементарных транзистора. Один транзистор имеет проводимость PNP типа, другой – соответственно проводимость NPN типа. Каждый транзистор работает как электронный ключ, управляя движением тока, протекающего через двигатель постоянного тока. Направления движения тока, управляемые каждым из транзисторов, противоположны. Направление тока определяет направление вращения двигателя соответственно по часовой стрелке или против часовой стрелки. На рис. 15.4 приведена тестовая схема, которую вы можете собрать перед изготовлением интерфейса. Обратите внимание, что когда оба транзистора заперты, то двигатель выключен. В каждый момент времени должен быть включен только один транзистор. Если в какой-то момент оба транзистора случайно окажутся открытыми, то это приведет к короткому замыканию. Каждый двигатель управляется двумя транзисторами интерфейса, работающими аналогичным образом.
Рис. 15.4. Схема устройства проверки
Конструкция интерфейса для PC
Схема PC интерфейса приведена на рис. 15.5. В набор деталей PC интерфейса входит печатная плата, расположение деталей на которой показано на рис. 15.6.
Рис. 15.5. Принципиальная схема интерфейса РС
Рис. 15.6. Схема расположения деталей РС интерфейса
Прежде всего нужно определить сторону монтажа печатной платы. На стороне монтажа прочерчены белые линии, обозначающие резисторы, транзисторы, диоды, ИС и разъем DB25. Все детали вставляются в плату с монтажной стороны.
Общее указание: после пайки детали к проводникам печатной платы необходимо удалить излишне длинные выводы со стороны печати. Очень удобно следовать определенной последовательности при монтаже деталей. Сперва смонтируйте резисторы 100 кОм (цветная маркировка колец: коричневое, черное, желтое, золотое или серебряное), которые обозначены R1-R10. Затем смонтируйте 5 диодов D1-D5, убедившись, что черная полоска на диодах находится напротив разъема DB25, как это показано белыми линиями, нанесенными на монтажную сторону печатной платы. Затем смонтируйте резисторы 15 кОм (цветная маркировка, коричневый, зеленый, оранжевый, золотой или серебряный), обозначенные R11 и R13. В позиции R12 припаяйте к плате красный светодиод. Анод светодиода соответствует отверстию под R12, обозначенному знаком +. Затем смонтируйте 14– и 20-контактные панельки под ИС U1 и U2. Смонтируйте и впаяйте разъем DB25 уголкового типа. Не пытайтесь вставлять ножки разъема в плату с излишним усилием, здесь требуется исключительно точность. При необходимости осторожно покачайте разъем, стараясь не погнуть ножки выводов. Закрепите движковый переключатель и регулятор напряжения типа 7805. Отрежьте четыре куска провода необходимой длины и припаяйте к верхней части переключателя. Придерживайтесь расположения проводов, как показано на рисунке. Вставьте и впаяйте транзисторы TIP 120 и TIP 125. Наконец, впаяйте восьмиконтактный цокольный разъем и соединительный 75 миллиметровый кабель. Цоколь монтируется так, что наиболее длинные выводы смотрят вверх. Вставьте две ИС – 74LS373 и 74LS164 – в соответствующие панельки. Убедитесь, что положение ключа ИС на ее крышке совпадает с ключом, помеченным белыми линиями на печатной плате. Вы могли заметить, что на плате остались места под дополнительные детали. Это место предназначено для сетевого адаптера. На рис. 15.7 показана фотография готового интерфейса со стороны монтажа.
Рис. 15.7. РС интерфейс в сборе. Вид сверху
Принцип работы интерфейса
Рука-манипулятор имеет пять двигателей постоянного тока. Соответственно нам потребуются 10 шин входа/выхода для управления каждым двигателем, включая направление вращения. Параллельный (принтерный) порт IBM PC и совместимых машин содержит только восемь шин ввода/вывода. Для увеличения числа шин управления в интерфейсе руки робота используется ИС 74LS164, которая является преобразователем последовательного кода в параллельный (SIPO). При использовании всего двух шин параллельного порта D0 и D1, по которым посылается последовательный код в ИС, мы можем получить восемь дополнительных шин ввода/вывода. Как уже говорилось, можно создать восемь шин ввода/вывода, но в данном интерфейсе используются пять из них.
Когда последовательный код поступает на вход ИС 74LS164, на выходе ИС появляется соответствующий параллельный код. Если бы выходы ИС 74LS164 были непосредственно подключены к входам управляющих транзисторов, то отдельные функции руки-манипулятора включались и выключались бы в такт посылке последовательного кода. Очевидно, что такая ситуация является недопустимой. Чтобы избежать этого, в схему интерфейса введена вторая ИС 74LS373 – управляемый восьмиканальный электронный ключ.
ИС 74LS373 восьмиканальный ключ имеет восемь входных и восемь выходных шин. Двоичная информация, присутствующая на входных шинах передается на соответствующие выходы ИС только в том случае, если на ИС подан разрешающий сигнал. После выключения разрешающего сигнала текущее состояние выходных шин сохраняется (запоминается). В этом состоянии сигналы на входе ИС не оказывают никакого действия на состояние выходных шин.
После передачи последовательного пакета информации в ИС 74LS164 с вывода D2 параллельного порта подается разрешающий сигнал на ИС 74LS373. Это позволяет передать информацию уже в параллельном коде с входа ИС 74LS174 на ее выходные шины. Состоянием выходных шин управляются соответственно транзисторы TIP 120, которые, в свою очередь, управляют функциями руки-манипулятора. Процесс повторяется при подаче каждой новой команды на руку-манипулятор. Шины параллельного порта D3-D7 управляют непосредственно транзисторами TIP 125.
Подключение интерфейса к руке-манипулятору
Питание роботизованной руки-манипулятора осуществляется от источника питания 6 В, состоящего из четырех D-элементов, расположенных в основании конструкции. Интерфейс PC питается также от этого источника 6 В. Источник питания является биполярным и выдает напряжения ±3 В. Питание на интерфейс подается через восьмиконтактный разъем Molex, присоединенный к основанию манипулятора.
Присоедините интерфейс к руке-манипулятору при помощи восьмижильного кабеля Molex длиной 75 мм. Кабель Molex присоединяется к разъему, расположенному в основании манипулятора (см. рис. 15.8). Проверьте правильность и надежность вставки разъема. Для соединения платы интерфейса с компьютером используется кабель типа DB25 длиной 180 см, имеющийся в наборе. Один конец кабеля присоединяется к порту принтера. Другой конец соединяется с разъемом DB25 на плате интерфейса.
Рис. 15.8. Соединение РС интерфейса с рукой-роботом
В большинстве случаев к порту принтера штатно подключен принтер. Чтобы не заниматься присоединением и отключением разъемов каждый раз, когда вы хотите использовать манипулятор, полезно приобрести двухпозиционный блок переключателя шин принтеров A/B (DB25). Присоедините разъем интерфейса манипулятора к входу А, а принтер – к входу В. Теперь вы можете использовать переключатель для соединения компьютера либо с принтером, либо с интерфейсом.
Установка программы под Windows 95
Вставьте дискету 3,5" с меткой «Disc 1» в дисковод для флоппи-дисков и запустите программу установки (setup.exe). Программа установки создаст директорию с именем «Images» на жестком диске и скопирует необходимые файлы в эту директорию. В Start меню появится иконка Images. Для запуска программы щелкните по иконке Images в стартовом меню.
Работа с программой под Windows 95
Соедините интерфейс с портом принтера компьютера при помощи кабеля DB 25 длиной 180 см. Соедините интерфейс с основанием руки-манипулятора. До определенного времени держите интерфейс в выключенном состоянии. Если в это время включить интерфейс, то сохранившаяся в порту принтера информация может вызвать движения руки-манипулятора.
Щелкнув два раза по иконке Images в стартовом меню, запустите программу. Окно программы показано на рис. 15.9. При работе программы красный светодиод на плате интерфейса должен мигать. Примечание: чтобы светодиод начал мигать, включение питания интерфейса не требуется. Скорость мигания светодиода определяется скоростью работы процессора вашего компьютера. Мерцание светодиода может оказаться очень тусклым; для того чтобы это заметить, вам, возможно, придется уменьшить освещенность в комнате и сложить ладони «колечком» для наблюдения за светодиодом. Если светодиод не мигает, то, возможно, программа обращается по ошибочному адресу порта (порт LPT). Для переключения интерфейса на другой адрес порта (LPT порт), зайдите в окно меню установки адреса порта принтера (Printer Port Options box), расположенного в правом верхнем углу экрана. Выберите другую опцию. Правильная установка адреса порта вызовет мигание светодиода.
Рис. 15.9. Скриншот программы РС интерфейса под Windows
Когда светодиод будет мигать, щелкните по иконке Puuse и только после этого включите интерфейс. Щелчок соответствующей функциональной клавиши вызовет ответное движение руки-манипулятора. Повторный Щелчок приведет к остановке движения. Использование функциональных клавиш для управления рукой называется интерактивной модой управления.
Создание script-файла
Для программирования движений и автоматизированных последовательностей действий руки-манипулятора используются script-файлы. Script-файл содержит список временных команд, управляющих движениями руки-манипулятора. Создать script-файл очень просто. Для создания файла кликните по функциональной клавише program. Эта операция позволит войти в моду «программирования» script-файла. Нажимая на функциональные клавиши, мы будем управлять движениями руки, как мы уже делали, но при этом информация команд будет записываться в желтую script-таблицу, расположенную в нижнем левом углу экрана. Номер шага, начиная с единицы, будет указан в левой колонке, а для каждой новой команды он будет увеличиваться на единицу. Тип движения (функции) указан в средней колонке. После повторного щелчка функциональной клавиши выполнение движения прекращается, а в третьей колонке появляется значение времени выполнения движения от его начала до окончания. Время выполнения движения указывается с точностью до четверти секунды. Продолжая таким же образом, пользователь может запрограммировать в script-файл до 99 движений, включая паузы во времени. Затем script-файл можно сохранить, а в дальнейшем загрузить из любой директории. Выполнение команд script-файла можно циклически повторить до 99 раз, для чего необходимо ввести количество повторов в окно Repeat и нажать Start. Для окончания записи в script-файл нажмите клавишу Interactive. Эта команда переведет компьютер обратно в интерактивный режим.
«Оживление» предметов
Script-файлы могут быть использованы для компьютерной автоматизации действий или для «оживления» предметов. В случае «оживления» предметов управляемый роботизованный механический «скелет» обычно покрыт внешней оболочкой и сам не виден. Помните куклу-перчатку, описанную в начале главы? Внешняя оболочка может иметь вид человека (частично или полностью), пришельца, животного, растения, камня и чего-либо еще.
Ограничения области применения
Если вы хотите достичь профессионального уровня выполнения автоматизированных действий или «оживления» предметов, то, так сказать, для поддержания марки, точность позиционирования при выполнении движений в каждый момент времени должна приближаться к 100 %.
Однако вы можете заметить, что по мере повторения последовательности действий, записанных в script-файле, положение руки-манипулятора (паттерн-движения) будет отличаться от первоначального. Это происходит по нескольким причинам. По мере разряда батарей источника питания руки-манипулятора уменьшение мощности, подводимой к двигателям постоянного тока, приводит к снижению крутящего момента и скорости вращения двигателей. Таким образом, длина перемещения манипулятора и высота поднятого груза за один и тот же промежуток времени будет различаться для севших и «свежих» батарей. Но причина не только в этом. Даже при стабилизированном источнике питания частота вращения вала двигателя будет меняться, поскольку отсутствует регулятор частоты вращения двигателя. Для каждого фиксированного отрезка времени количество оборотов каждый раз будет немного отличаться. Это приведет к тому, что каждый раз будет различаться и положение руки-манипулятора. В довершение ко всему, в шестернях редуктора имеется определенный люфт, который также не принимается во внимание. Под влиянием всех этих факторов, которые мы здесь подробно рассмотрели, при выполнении цикла повторяющихся команд script-файла положение руки-манипулятора будет каждый раз немного различаться.
Поиск исходного положения
Можно усовершенствовать работу устройства, добавив в него схему обратной связи, которая отслеживает положение руки-манипулятора. Эта информация может быть введена в компьютер, что позволит определить абсолютное положение манипулятора. С такой системой позиционной обратной связи возможна установка положения руки-манипулятора в одну и ту же точку в начале выполнения каждой последовательности команд, записанных в script-файле.
Для этого существует много возможностей. В одном из основных методов позиционный контроль в каждой точке не предусмотрен. Вместо этого используется набор концевых выключателей, которые соответствуют исходной «стартовой» позиции. Концевые выключатели определяют точно только одну позицию – когда манипулятор доходит до положения «старт». Чтобы это сделать, необходимо установить последовательность концевых выключателей (кнопок) таким образом, чтобы они замыкались, когда манипулятор достигает крайнего положения в том или ином направлении. Например, один конечный выключатель можно установить на основании манипулятора. Выключатель должен срабатывать только тогда, когда рука-манипулятор достигнет крайнего положения при вращении по часовой стрелке. Другие конечные выключатели нужно установить на плечевом и локтевом сочленении. Они должны срабатывать при полном разгибании соответствующего сочленения. Еще один выключатель устанавливается на кисти и срабатывает, когда кисть поворачивается до упора по часовой стрелке. Последний концевой выключатель устанавливается на захвате и замыкается при его полном открывании. Чтобы поставить манипулятор в исходное положение, каждое возможное движение манипулятора осуществляется в сторону, необходимую для замыкания соответствующего концевого выключателя до тех пор, пока этот выключатель не замкнется. После того как достигнуто начальное положение для каждого движения, компьютер будет точно «знать» истинное положение руки-манипулятора.
После достижения исходного положения мы можем заново запустить программу, записанную в script-файле, исходя из предположения, что ошибка позиционирования во время выполнения каждого цикла будет накапливаться достаточно медленно, что не будет приводить к слишком большим отклонениям положения манипулятора от желаемого. После выполнения script-файла рука выставляется в исходное положение, и цикл работы script-файла повторяется.
В некоторых последовательностях знание только исходного положения оказывается недостаточным, например при поднятии яйца без риска раздавить его скорлупу. В подобных случаях необходима более сложная и точная система позиционной обратной связи. Сигналы с датчиков могут быть обработаны с помощью АЦП. Полученные сигналы могут быть использованы для определения значений таких параметров, как положение, давление, скорость и вращающий момент. В качестве иллюстрации можно привести следующий простой пример. Представьте, что вы прикрепили небольшой линейный переменный резистор к узлу захвата. Переменный резистор установлен таким образом, что перемещение его движка вперед и назад связано с открытием и закрытием захвата. Таким образом, в зависимости от степени открывания захвата меняется сопротивление переменного резистора. После проведения калибровки, с помощью измерения текущего сопротивления переменного резистора можно точно установить угол раскрытия зажимов захвата.
Создание подобной системы обратной связи вводит еще один уровень сложности в устройство и, соответственно, приводит к его удорожанию. Поэтому более простым вариантом является введение системы ручного управления для корректировки положения и движений руки-манипулятора в процессе выполнения script-программы.
Система ручного управления интерфейсом
После того как вы убедитесь, что интерфейс работает правильным образом, вы можете с помощью 8-контактного плоского разъема подключить к нему блок ручного управления. Проверьте положение подключения 8-контактного разъема Molex к головке разъема на плате интерфейса, как показано на рис. 15.10. Аккуратно вставьте разъем до его надежного соединения. После этого рукой-манипулятором можно управлять с ручного пульта в любой момент времени. Не имеет значения, соединен ли интерфейс с компьютером или нет.
Рис. 15.10. Подключение ручного управления
Программа DOS управления с клавиатуры
Имеется DOS программа, позволяющая управлять работой руки-манипулятора с клавиатуры компьютера в интерактивном режиме. Список клавиш, соответствующих выполнению той или иной функции, приведен в таблице.
Голосовое управление рукой-манипулятором
B голосовом управлении рукой-манипулятором используется набор распознавания речи (УРР), который был описан в гл. 7. В этой главе мы изготовим интерфейс, связывающий УРР с рукой-манипулятором. Этот интерфейс также предлагается в виде набора компанией Images SI, Inc.
Схема интерфейса для УРР показана на рис. 15.11. В интерфейсе использован микроконтроллер 16F84. Программа для микроконтроллера выглядит следующим образом:
‘Программа интерфейса УРР
Symbol PortA = 5
Symbol TRISA = 133
Symbol PortB = 6
Symbol TRISB = 134
Poke TRISA, 255
Poke TRISB, 240
Start:
Peek PortB, B0
If bit4 = 0 then trigger ‘Если запись в триггер разрешена, читать схе
му УРР
Goto start ‘Повторение
trigger:
pause 500 ‘Ожидание 0,5 с
Peek PortB, B0 ‘Чтение кода BCD
If bit5 = 1 then send ‘Выходной код
goto start ‘Повторение
send:
peek PortA, b0 ‘Чтение порта А
if bit4 = 1 then eleven ‘Число есть 11?
poke PortB, b0 ‘Выходной код
goto start ‘Повторение
eleven:
if bit0 = 0 then ten
poke portb, 11
goto start ‘Повторение
ten:
poke portb,10
goto start ‘Повторение
end
Рис. 15.11. Схема контроллера УРР для руки-робота
Обновление программы под 16F84 можно бесплатно загрузить из
Программирование интерфейса УРР
Программирование интерфейса УРР аналогично процедуре программирования УРР из набора, описанного в гл. 7. Для правильной работы руки-манипулятора вы должны запрограммировать командные слова соответственно номерам, соответствующим определенному движению манипулятора. В табл. 15.1 приведены примеры командных слов, управляющих работой руки-манипулятора. Вы можете выбрать командные слова по вашему вкусу.
Таблица 15.1
Список деталей для интерфейса PC
• (5) Транзистор NPN TIP120
• (5) Транзистор PNP TIP 125
• (1) ИС 74164 преобразователь кода
• (1) ИС 74LS373 восемь ключей
• (1) Светодиод красный
• (5) Диод 1N914
• (1) Гнездо разъема Molex на 8 контактов
• (1) Кабель Molex 8-жильный длиной 75 мм
• (1) Двухпозиционный переключатель
• (1) Разъем уголковый типа DB25
• (1) Кабель DB 25 1,8 м с двумя разъемами М – типа.
• (1) Печатная плата
• (10) Резистор 100 кОм, 0,25 Вт
• (3) Резистор 15 кОм, 0,25 Вт
• (1) ИС регулятор напряжения 7805
Все перечисленные детали входят в комплект набора.
Список деталей для интерфейса распознавания речи
• (5) Транзистор NPN TIP 120
• (5) Транзистор PNP TIP 125
• (1) ИС 74154 4/16 – декодер
• (1) ИС 4011 логический элемент ИЛИ-НЕ
• (1) ИС 4049 – 6 буферов
• (1) ИС 741 операционный усилитель
• (1) Резистор 5,6 кОм, 0,25 Вт
• (1) Резистор 15 кОм, 0,25 Вт
• (1) Головная часть разъема Molex 8 контактов
• (1) Кабель Molex 8 жил, длина 75 мм
• (10) Резистор 100 кОм, 0,25 Вт
• (1) Резистор 4,7 кОм, 0,25 Вт
• (1) ИС регулятор напряжения 7805
• (1) ИС PIC 16F84 микроконтроллер
• (1) Кварцевый резонатор 4,0 МГц
• Набор интерфейса руки-манипулятора
• Набор для изготовления руки манипулятора компании OWI
• Интерфейс распознавания речи для руки-манипулятора
• Набор устройства распознавания речи
Детали можно заказать в:
Images, SI, Inc.
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Глава 16 Кисть руки – андроида
В этой главе мы попробуем изготовить андроидную или человекоподобную кисть руки. Для приведения в движение пальцев этой руки мы будем использовать воздушные мышцы, описанные в гл. 3.
Воздушная мышца представляет собой пневматическое устройство, способное линейно сокращаться при подаче сжатого воздуха. При активации эта мышца сокращается подобно живой биологической мышце. Вы можете подумать, что эту работу могут с успехом выполнять пневматические цилиндры, которые в настоящее время находят широкое применение. Это действительно так, однако воздушные мышцы в определенном смысле являются находкой и благом для конструкторов-любителей и создателей роботов, поскольку ее стоимость намного ниже, она имеет исключительно малый вес, гибкость и проста в применении.
Воздушная мышца имеет отношение развиваемой мощности к собственному весу около 400:1. Поскольку большинство частей мышцы изготовлены из резины или пластика, она способна работать во влажных условиях или даже под водой. Воздушная мышца представляет собой гибкую конструкцию, что позволяет использовать ее для соединения и сжатия соосных или несоосных блоков и рычагов. Воздушная мышца способна к сокращению, даже если ее перегнуть вдоль искривленной поверхности. Простота использования мышцы делает ее предпочтительнее обычных пневматических цилиндров в ряде экспериментов.
Безусловно, как и для любого пневматического устройства, для работы мышцы требуется сжатый воздух. Сжатый воздух не столь доступен, как электрический ток. Когда я впервые решил попробовать сделать воздушную мышцу, я думал, что создание небольшого устройства, вырабатывающего сжатый воздух, может оказаться проблемой. Как оказалось, я ошибался. Простую воздушную систему можно сделать, потратив всего лишь $25,00, а небольшая электрическая пневмосистема обойдется в $50,00.
При использовании электричества для сжатия воздуха суммарный КПД устройства падает. Однако воздушная мышца потребляет для работы очень небольшое количество воздуха, поэтому можно создать резервуар для его хранения. Мышца очень быстро реагирует на подачу воздуха и имеет короткий рабочий цикл. Небольшая мышца весом всего 10 г способна поднять вес около 6,5 кг.
Перед тем как мы начнем делать андроидную руку, мы сперва изготовим несколько демонстрационных устройств с ручным управлением, использующих воздушную мышцу. Демонстрационные устройства позволят нам подробнее познакомиться с устройством и работой воздушной мышцы, прежде чем мы примемся за более сложный проект.
Если в устройстве используются одна или две мышцы, то они могут легко управляться «вручную». Если имеется пять или шесть воздушных мышц, то для их последовательной или одновременной активации управление «вручную» становится затруднительным. В этом случае мы применяем компьютерное управление. Можно использовать компьютер IBM PC или подходящий PIC микроконтроллер. Схема интерфейса для любого компьютера сохраняется неизменной. В этой главе мы будем использовать IBM PC. Управление воздушной мышцей с помощью компьютера (порт принтера IBM или совместимый) через параллельный порт PC добавит примерно $25,00 к стоимости конструкции воздушной мышцы.
Преимущества воздушной мышцы
• Малый вес. Воздушная мышца длиной 150 мм с подводящей воздушной трубкой диаметром 4 мм и длиной 450 мм весит приблизительно 10 г.
• Сокращение. Воздушная мышца длиной 150 мм сокращается примерно на 25 мм (около 25 % без учета длины креплений).
• Мощность. Развивает силу порядка 200 г при давлении воздуха 3 кгс. Отношение развиваемой мощности к весу может достигать 400:1.
• Гибкость. Мягкая и гибкая конструкция, которая может быть изогнута вдоль искривленной поверхности без нарушения ее работоспособности.
Применение
Сама конструкция воздушной мышцы делает ее особенно пригодной к использованию в робототехнике и системах автоматизированных движений. В некоторых случаях ими можно заменить сервомоторы или двигатели постоянного тока. Их уникальные свойства – незначительный вес, мощность и гибкость – могут быть комплексно использованы во многих приложениях и применяться для улучшения характеристик существующих пневматических устройств. Одном словом, воздушные мышцы могут быть использованы во многих устройствах, в которых требуются линейные и сократительные движения. Во многих случаях ими можно с успехом заменять пневматические цилиндры.
Как работает воздушная мышца
Воздушная мышца представляет собой длинную трубку, выполненную в виде черного пластикового рукава. Внутрь рукава помещена трубка из мягкой резины. К каждому концу прикреплены металлические зажимы. Каждый конец пластикового рукава свернут в петлю, сложен вдвое и скреплен с помощью металлического зажима. Эти петли используются для крепления воздушной мышцы к другим частям устройства.
При подаче воздуха под давлением мышца сокращается следующим образом. Когда во внутреннюю мягкую резиновую трубку подается сжатый воздух, то она расширяется. Внутренняя трубка оказывает давление на внешний черный пластиковый рукав, что также приводит к его расширению. Когда пластиковый рукав расширяется, то он укорачивается в длину пропорционально увеличению его диаметра. Это приводит к сокращению конструкции воздушной мышцы. Однако важным является то, что для правильной работы мышцы она должна находиться в растянутом положении, когда она не активирована. В противном случае при активации мышцы мы не получим ее сокращения (см. рис. 16.1).
Рис. 16.1 Принцип работы воздушной мышцы
Детали системы воздушной мышцы
На рис. 16.2 приведены рисунки деталей, необходимых для создания воздушной мышцы. Деталь 1 – это собственно воздушная мышца (что очевидно). Деталь 2 – воздушный клапан на три положения. Трехпозиционный воздушный клапан позволяет управлять работой мышцы вручную (см. рис. 16.3).
Рис. 16.2. Необходимые части для экспериментов с воздушной мышцей
Рис. 16.3. Трехпозиционный воздушный клапан для управления воздушной мышцей
Деталь 3 – переходник крышки бутылки с предохранительным клапаном (клапан открывается при давлении более 4,2 кгс). Переходник крышки бутылки позволяет использовать стандартные полиэтиленовые бутылки из-под газированной воды в качестве воздушных резервуаров. Предохранительный клапан автоматически стравливает избыточный воздух, когда давление превышает заданный предел.
Деталь 4 – полиэтиленовая бутылка из-под газированной воды, используемая в качестве воздушного резервуара. Пластиковая бутылка легко выдерживает давление 3,5 кгс. Я проверял подобные бутылки из-под газированной воды статическим давлением до 7 кгс. Предупреждение: Ни в коем случае не используйте в качестве воздушного резервуара стеклянные бутылки. Небольшая трещина в бутылке или ее случайное падение могут привести к взрыву бутылки, сопровождающемуся разлетом стеклянных осколков. Перекачка пластиковой бутылки может привести только к ее раздуванию.
Деталь 5 – переходник ножного насоса, а деталь 6 – собственно воздушный насос. Обычный ножной насос с манометром способен создать давление в бутылке до 7 кгс. Из-за малой емкости пластиковых бутылок давление в 3,5 кгс достигается в них после четырех «качков» ножного насоса. Воздушная мышца использует очень небольшое количество воздуха, поэтому в небольшой полиэтиленовой бутылке содержится достаточно воздуха для четырех или пяти полных циклов работы. Деталь 7 представляет собой нейлоновые кабельные стяжки, которые используются для быстрого привязывания воздушной мышцы к другим механическим деталям.
На рис. 16.4 показан общий вид всей системы в сборе. В некоторых случаях вам придется воспользоваться эпоксидным клеем для склейки некоторых деталей для предотвращения их «выскакивания» под давлением. Например, если вы собираетесь использовать трехпозиционный воздушный клапан для экспериментов с воздушной мышцей исключительно совместно с переходником крышки бутылки, то можете постоянно вклеить клапан в переходник.
Рис. 16.4. Общая схема соединения частей установки
Крепление воздушной мышцы к другим механизмам
Воздушная мышца изготовлена из мягкой внутренней трубки, заключенной в прочный пластиковый рукав. Конструкция скреплена металлическими зажимами с каждой стороны. Концы пластикового рукава согнуты в петлю, имеющую отверстие. Петля с отверстием обладает большой механической прочностью и может быть использована для соединения воздушной мышцы с другими механизмами. На рис. 16.5 изображен винт, вставленный в отверстие петли.
Рис. 16.5. Винт проходит через одну из петель воздушной мышцы
Использование переходника воздушного насоса
Приобретенный вами воздушный насос имеет стандартный носик (сопло), как показано на рис. 16.6. Нам будет необходимо заменить стандартный носик специальным переходником. Поднимите запирающий рычажок, как показано на рис. 16.7. Удалите стандартный носик (см. рис. 16.8) и вставьте воздушный переходник (см. рис. 16.9). Закройте запирающий рычажок, нажав на него вниз.
Рис. 16.6. Сопло ножного насоса
Рис. 16.7. Поднимите запирающий рычажок (над соплом ножного насоса)
Рис. 16.8. Удалите стандартное сопло-переходник
Рис. 16.9. Вставьте переходник в ножной насос
У вас Кока Кола или Пепси Кола?
Вам нужно будет достать пластиковую полиэтиленовую бутылку. Простейший способ – купить бутылку газированной воды. Убедитесь, что бутылка сделана именно из пластика. Не покупайте бутылку объемом более 1 литра. Идеальной является бутылка 0,5 литра. Я пробовал навинчивать переходник на бутылки разных емкостей вплоть до 2 литров, и он подошел ко всем.
Используйте содержимое бутылки, а затем вымойте бутылку теплой водой. Перед использованием бутылка должна быть совершенно сухой. Интересен тот факт, что если случайно уронить полную бутылку с газированной водой, то результирующее давление углекислого газа, высвобожденного из карбоната натрия, значительно превысит 3,5 кгс – предел, установленный нами для подобных бутылок. Компании по производству газированных напитков изготовляют полиэтиленовые бутылки с таким расчетом, чтобы они выдерживали быстрое повышение давления газа, возникающее при случайном падении бутылки. Я не осознавал этого факта до того, как начал работать с воздушными мышцами, и думаю, что так бы и не узнал. Помните, что в конструкции воздушных мышц нельзя использовать стеклянные бутылки.
Изготовление первого демонстрационного устройства
Первое демонстрационное устройство, которое мы собираемся сделать, очень просто по конструкции и может быть использовано для измерения степени сокращения воздушной мышцы (см. рис. 16.10). Основание представляет собой дощечку толщиной 25х 50х 275 мм. Я использовал подобный материал, поскольку его можно найти повсюду. С тем же успехом вы можете использовать металл или пластик. На каждом из концов я просверлил отверстие под винты 3 миллиметров длиной 45 мм. Винты вставлены в отверстие и закреплены с помощью двух 3 мм гаек, по одной с каждой стороны дощечки. Головка винта и часть резьбы выступают над дощечкой примерно на 20 мм.
Рис. 16.10. Первая демонстрационная модель
Перед установкой головку верхнего винта необходимо продеть в отверстие верхней петли воздушной мышцы. В отверстие нижней петли воздушной мышцы продевается отрезок резиновой ленты, который затем закрепляется на нижнем винте. В свободном состоянии мышцы резиновая лента должна ее растягивать.
Произведите необходимые соединения деталей, как это показано на рис. 16.4. В некоторых случаях у меня возникали трудности при надевании трубки диаметром 4 мм на патрубки. Здесь существует несколько хитростей. Во-первых, если трубка не хочет надеваться на переходник, то можно поместить ее под струю горячей воды из водопроводного крана. Это размягчит пластик и позволит выполнить операцию. Можно также воспользоваться отрезком прозрачной пластиковой медицинской трубки. Пластиковая трубка достаточно плотно надевается на патрубки переходников (см. рис. 16.11). С другой стороны, она является достаточно растяжимой, чтобы в нее можно было вставить трубку диаметром 4 мм (см. рис. 16.12). Отрезок мягкой трубки выполняет роль переходника и легко может быть расцеплен при смене устройств, использующих воздушные мышцы.
Рис. 16.11. Использование прозрачной медицинской трубки со стандартными переходниками
Рис. 16.12. Соединение прозрачной трубки и трубки 4 мм
Чтобы устройство заработало, сперва создайте избыточное давление с помощью ножного насоса. Чтобы поднять давление до 3,5 кгс, достаточно четырех нажатий. Время работы с насосом зависит от емкости используемой полиэтиленовой бутылки.
Откройте трехпозиционный клапан для заполнения мышцы воздухом. Мышца немедленно сократится. Вы можете определить отношение сокращения мышцы в зависимости от величины подаваемого избыточного давления. Вы сможете совершить четыре или пять полных циклов сокращения – расслабления мышцы, прежде чем вам снова потребуется наполнить бутылку воздухом. Действительно, мышца при работе потребляет очень небольшое количество воздуха.
Обратите внимание, что воздушная мышца остается в сокращенном состоянии до тех пор, пока кран воздушного клапана не повернут для выпуска воздуха. Для поддержания мышцы в сокращенном состоянии не требуется энергия. В противоположность этому для обеспечения втягивания или вытягивания соленоида и позиционирования сервомотора они должны постоянно снабжаться электрической энергией.
Если мышца не сокращается, то она, возможно, не была достаточно растянута в исходном состоянии. Помните, что нормальная работа воздушной мышцы обеспечивается только при ее предварительном растяжении.
Изготовление второго демонстрационного устройства
Вторая модель представляет собой рычаг (см. рис. 16.13 и 16.14). Я изготовил модель рычага из дерева и пластика. Воздушная мышца и резиновая лента прикреплены к рычагу с помощью винтов. В точке опоры рычаг закреплен на деревянном штифте. На втором деревянном штифте крепятся воздушная мышца и резиновая лента. Устройство работает при помощи трехпозиционного клапана, о чем я уже рассказывал выше. При подаче воздуха рычаг поднимается вверх.
Рис. 16.13. Вторая демонстрационная модель «рычаг»
Рис. 16.14. Вторая демонстрационная модель «рычаг»
IBM интерфейс
Управление с помощью компьютера очень просто. Компьютер управляет электрическим трехпозиционным клапаном. Недорогие трехпозиционные, управляемые с помощью электрического соленоида воздушные клапаны имеются в продаже (см. рис. 16.15). Воздушный клапан управляется постоянным напряжением 5 В и рассчитан на давление до 6,3 кгс. Воздушный клапан имеет легко присоединяемые и разъединяемые воздушные «разъемы». Трубка диаметром 4 мм легко входит в отверстие клапана и там надежно фиксируется. Для отсоединения трубки необходимо нажать пальцами на кольцо вокруг отверстия клапана, а затем вынуть трубку диаметром 4 мм.
Рис. 16.15. Электрический трехпозиционный воздушный клапан
Для управления одним воздушным клапаном достаточно задействовать один вывод на разъеме параллельного порта (порт принтера) и вывод земли (см. рис. 16.16). Вывод подключается через логический элемент – неинвертированную буферную схему на ИС 4050HCT. Выход буфера управляет транзисторным ключом на транзисторе TIP 120 NPN Darlington. Транзистор управляет током, протекающим через воздушный клапан.
Рис. 16.16. Принципиальная схема контроллера воздушного клапана
Программа на BASIC
Программа на BASIC очень проста. После нахождения адреса порта прин тера, программа управляет работой воздушного клапана через вывод 2.
5 REM Контроллер соленоида воздушного клапана
10 REM Джон Иовин
15 REM Найти адрес порта принтера
20 DEF SEG = 0
25 a = (PEEK(1032) + 256 * PEEK(1033))
30 REM Следующая строка включает воздушную мышцу
35OUT a ,1
40 REM Следующая строка выключает воздушную мышцу
45 OUT a , 0
При высоком уровне сигнала на выводе 2 DB 25 воздушный клапан открывается и подается воздух в воздушную мышцу. При низком уровне сигнала на выводе 2 нагнетание воздуха в воздушную мышцу прекращается, и клапан выпускает воздух из мышцы.
Другие источники воздуха
I В воздушной мышце, которую мы описывали, в качестве источника сжа
того воздуха использовался ножной насос и пластиковая бутылка в качестве воздушного резервуара. Понятно, что можно использовать сжатый воздух из любого доступного источника. Например, вы можете приобрести небольшие баллончики со сжатым воздухом, используемые в краскораспылителях. Небольшие трубки и фитинги, имеющиеся в комплектах таких распылителей, помогут вам в ваших экспериментах.
На рынке имеются несколько моделей небольших электрических воздушных компрессоров. Более дорогие модели, используемые в краскораспылителях, имеют металлические резервуары для хранения воздуха и регуляторы давления. На другом конце ценовой шкалы находятся дешевые портативные воздушные компрессоры, работающие от 12 В постоянного тока и используемые для накачки шин. В таких компрессорах, как правило, нет воздушного резервуара и регулятора давления. Подобные компрессоры можно приобрести для того, чтобы создать недорогую пневматическую систему.
Для систем автоматических воздушных компрессоров никогда не используйте пластиковые бутылки. Такие бутылки можно использовать для хранения воздуха исключительно в системах ручных (или ножных) компрессоров (насосов). В автоматических системах сжатия воздуха используйте только специальные емкости, предназначенные для хранения сжатого воздуха. Небольшие емкости стоят достаточно недорого.
Безопасность прежде всего
Пневматические системы используются в быту относительно редко, поэтому лишь немногие умеют правильно обращаться с подобными устройствами. По этой причине при работе с пневматическими системами необходимо придерживаться некоторых правил техники безопасности.
При испытании нового устройства всегда носите защитные очки.
Не присоединяйте пластиковую бутылку к автоматическому компрессору.
Ни в коем случае не используйте для хранения воздуха стеклянные бутылки.
Не используйте в качестве резервуаров бутылки объемом более 1 литра.
Не отворачивайте крышку бутылки, не вынимайте клапан и не снимайте трубки с патрубков, когда система находится под давлением. Перед выполнением этих операций обязательно спустите давление в системе.
Кисть руки андроида
Конструирование механизма захвата, напоминающего кисть руки человека, начинается с визита в магазин игрушек. Нам потребуется игрушка под названием Awesome Arm, выпускаемая китайской компанией Zima (см. рис. 16.17). Для того чтобы вам хватило «пальцев», необходимо купить две такие игрушки. Большой палец игрушки имеет фиксированное положение, и его нельзя использовать.
Рис. 16.17. Механическая рука Awesome компании Zima
Игрушка работает следующим образом: «пальцы» игрушки приводятся в действие пальцами оператора, т. е. игрушка представляет собой род дистанционного манипулятора. Чтобы сделать андроидную кисть руки, нам придется разобрать игрушки и удалить из них большинство деталей.
Когда вы перевернете руку, то вы увидите пять небольших винтов, которые скрепляют конструкцию. Отверните эти винты, и конструкция распадется на части (см. рис. 16.18). Вытащите «пальцевую» часть игрушки (см. рис. 16.19). Остальные части игрушки нам не потребуются. На конце стерженьков, которые управляют «пальцами», находятся «колечки», куда оператор вставляет пальцы при управлении игрушкой. Нам эти колечки не понадобятся, поэтому необходимо удалить их с помощью кусачек, оставив длинный пластиковый стержень.
Рис. 16.18. Обратная сторона руки, где необходимо вывернуть крепежные винты
Рис. 16.19. Пальцы с тягами, извлеченные из руки
Детали конструкции собраны на плате. Я начал с того, что обвел контуры кисти моей правой руки на бумаге. Затем я зачернил некоторую внутреннюю часть рисунка (см. рис. 16.20). По контурам зачерненного рисунка я вырезал пластину из алюминия толщиной 3 мм.
Рис. 16.20. Контур кисти руки и положение алюминиевого основания
Пальцы крепятся к концу платы. Сперва отметьте положение крепления пальцев на плате. Затем поместите небольшую алюминиевую пластину шириной 12 мм и толщиной 3 мм сразу за пластиковым креплением пальцев (см. рис. 16.21). Эта пластина представляет собой задний упор для крепления пальцев. Просверлите три отверстия сквозь пластинку и основание и прикрепите пластинку к основанию с помощью винтов и гаек. Укрепите алюминиевую пластинку 3x12 мм поверх пластикового основания крепления пальцев. Просверлите четыре отверстия в пластинке и плате, как это показано на рис. 16.22. Конструкция скрепляется с помощью винтов, длиной 25 мм и гаек. Эти винты имеют двойное назначение. Во-первых, они крепят основание пальцев и удерживают пальцы в конструкции. Во-вторых, к ним будет крепиться резиновая лента, обеспечивающая растяжение воздушных мышц.
Рис. 16.21. Крепление задней пластинки
Рис. 16.22. Крепление верхней пластинки
После того как пальцы закреплены на плате, нам необходимо прикрепить к каждому пальцу воздушную мышцу. Напомню, что для правильного сокращения воздушной мышцы она должна быть предварительно растянута. Проденьте резиновую петлю через конец воздушной мышцы. Затем отверните и выньте первый из четырех винтов длиной 25 мм, которые крепят основание пальцев. Просуньте сложенные концы резиновой петли в то место, где винт проходит через верхнюю пластинку. Вставьте винт на место, продев через него концы резиновой петли, и затем затяните с помощью гайки (см. рис. 16.23 и 16.24).
Рис. 16.23. Продеть сложенную резиновую ленту через один конец воздушной мышцы и закрепить концы ленты на винте крепления верхней пластинки
Рис. 16.24. Общий вид крепления воздушной мышцы к тяге пальца
Потяните воздушную мышцу за другой конец до того, как она будет полностью растянута. Заметьте положение конца воздушной мышцы. В этом месте просверлите отверстие в плате и вставьте туда винт, закрепленный с помощью гаек. Для поддержания воздушной мышцы в растянутом состоянии наденьте конечную петлю воздушной мышцы на винт (см. рис. 16.25).
Рис. 16.25. Крепление заднего конца воздушной мышцы к крепежному винту для ее растяжки
Теперь просверлите небольшое отверстие в пластиковой части тяги пальца. Положение отверстия должно соответствовать положению передней петли крепления воздушной мышцы. Отверстие должно быть достаточно велико, чтобы в него проходил сложенный вдвое многожильный провод. Можно использовать оголенный одножильный медный провод 0,6 мм или многожильный стальной. Пропустите сложенный вдвое многожильный провод через отверстие в пластике и через отверстие петли переднего крепления мышцы. Скрепите детали путем скручивания концов провода. Если концы скрученного провода окажутся слишком длинными, то удалите излишки с помощью кусачек.
Примерный вид сверху показан на рис. 16.24. Теперь мы можем увидеть, каким образом будут сокращаться пальцы. Пальцы сокращаются при подаче сжатого воздуха в воздушную мышцу. Сократившаяся мышца воздействует на пластиковую тягу, управляющую пальцем, что в свою очередь вызывает его сокращение. Когда с воздушной мышцы снимается давление, то резиновая лента растягивает ее в первоначальное положение.
Теперь неплохо провести статическое испытание работы пальца. Соедините подачу воздуха с воздушной мышцей, чтобы убедиться в работоспособности устройства. В начальном варианте устройства для полного сгибания указательного пальца требовалось давление порядка 3 кгс.
Когда вы убедитесь, что палец работает правильно, присоедините воздушные мышцы к остальным пальцам таким же образом. На рис. 16.26 показан детальный вид воздушных мышц, соединенных с тягами соответствующих пальцев.
Рис. 16.26. Детальный вид воздушных мышц, резиновых лент и пальцевых тяг в сборе
Большой палец
Большой палец является самым важным при работе кисти. С его помощью сильно облегчается захват, удерживание и использование различных предметов. Вы так не думаете? Попробуйте тогда поднять с пола или со стола монету без помощи большого пальца. А теперь попробуйте поработать с плоскогубцами, кусачками, молотком или дрелью.
Для изготовления большого пальца воспользуйтесь мизинцем из набора второй купленной игрушки. Закрепите этот палец ниже под углом 45° по отношению к другим пальцам (см. рис. 16.27).
Рис. 16.27. Вид кисти-робота в сборе
В первоначальной конструкции большой палец сгибается в сочленениях (двигается), но не может совершать движений навстречу другим пальцам. Конструкцию можно улучшить, обеспечив встречное движение большого пальца, что увеличит эффективность работы руки. Чтобы обеспечить встречное движение пальца, необходимо отрезать «место» большого пальца на плате и заменить его шарнирным соединением на пружине (см. рис. 16.28). Подпружиненный шарнир может быть расположен на прямоугольной коробочке, показанной на рис. 16.28. Воздушная мышца присоединяется к этой секции: когда мышца активируется, то она тянет большой палец в сторону ладонной части кисти. Таким образом, обеспечивается как сгибательное, так и встречное движение большого пальца.
Рис. 16.28. Вариант крепления большого пальца для обеспечения сгибательного и встречного движения
Дальнейшее усовершенствование
Возможно создание устройства интерфейса между кистью руки робота и IBM-совместимым компьютером, в котором используются пять электрических воздушных клапанов, аналогичное устройству с одним клапаном, описанному выше. Чтобы превратить кисть робота в кисть – андроида, можно надеть на кисть сверху соответствующий чехол (см. рис. 16.29).
Рис. 16.29. Резиновая перчатка подходящей формы и размера для превращения руки-робота в «андроидную» руку
Отметим еще несколько интересных применений воздушной мышцы:
• Шестиногий робот-ходок
• Зажим для быстрого открывания банок (для людей, страдающих артритом)
• Кисть-робот
• Рука-робот
Список деталей для воздушной мышцы
• (1) Воздушная мышца, длина 150 мм с подводящей трубкой 4 мм
• (1) Крышка полиэтиленовой бутылки с предохранительным клапаном
• (1) Трехпозиционный воздушный клапан
• (1) Переходник для воздушного насоса
• (1) Ножной воздушный насос с максимальным давлением до 7 кгс
• (1) воздушная трубка диаметром 4 мм
• (1) медицинская прозрачная трубка (для быстрой разборки)
Список деталей для интерфейса IBM
• (1) Трехпозиционный электрический воздушный клапан, управляемый соленоидом постоянного тока 5 В, максимальное давление 6,3 кгс
• (1) разъем DB 25
• (1) ИС логический буферный элемент 4050HCT
• (1) Транзистор TIP 120 NPN Darlington
Детали можно заказать в:
Images Company
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Поставщики
Jameco Electronics
1355 Shoreway Road
Belmont, CA 94002
(650) 592-8097
JDR Electronics
1850 South 10 Street
San Jose, CA 95112
(800) 538 – 5000
Images SI, Inc.
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
Магазины Radio Shack
Смотрите адреса ближайших магазинов в местных телефонных справочниках.
Комментарии к книге «Создаем робота-андроида своими руками», Джон Ловин
Всего 0 комментариев