/
Автор: Жимарши Ф.
Теги: электротехника общая радиотехника программирование электроника радиотехника микроконтроллеры
ISBN: 978-5-477-00256-6
Год: 2007
Текст
В ДОМАШНИХ УСЛОВИЯХ
СБОРКА И ПРОГРАММИРОВАНА
МОБИЛЬНЫХ РОБОТОВ
Механика и электроника роботов
Датчики и их интерфейсы
Приводы и их интерфейсы
Мозг робота - процессор М68НС11
Языки программирования
Frederic Ciamarchi
Robots mobiles
programmables
Techniques avancees
Editions techniques et scientifiques franchises
Фредерик Жимарши
Сборка
и программирование
мобильных роботов
в домашних условиях
В помощь радиолюбителю
Фредерик Жимарши
Сборка
и программирование
мобильных роботов
в домашних условиях
В помощь радиолюбителю
NT Press
Москва
УДК 621.37
ББК 32.84
Ж73
Подписано в печать 28.08.2007. Формат 84x108‘/32. Гарнитура «Баскервиль».
Печать офсетная. Усл неч. л. 15,12. Тираж 3000 экз. Заказ № 7388.
Жимарши Ф.
Ж73 Сборка и программирование мобильных роботов в домашних
условиях / Ф. Жимарши ; пер. с фр. М. А. Комаров. - М. : НТ
Пресс, 2007. - 288 с.: ил. (В помощь радиолюбителю)
ISBN 978-5-477-00256-6
Вашему вниманию предлагается книга известного французского автора
Фредерика Жимарши (Frederic Giamarchi). Книгу без преувеличения можно
назвать энциклопедией мобильных роботов. В ней детально рассматривается
элементная база роботов: микроконтроллеры, их архитектура и система ко-
манд, типы применяемых датчиков, силовых контроллеров и двигателей для
роботов. Детально описаны конструкции нескольких роботов («робот F», «ро-
бот - борец Сумо», «робот-муравей», «робот с походкой человека» и др.), кото-
рые можно собрать своими руками: электронные схемы, чертежи печатных
плат и размещения радиоэлементов, соединение составных частей; листинги
программ, часть которых дана в Ассемблере, часть - на языках С и Basic. Изю-
минкой книги является рассмотрение специально разработанных языков для
роботов - объектно-ориентированного языка, на основе которого создан язык
LEGO одноименной фирмы, и улучшенного метода программирования при
помощи ускоренного создания прототипа, который предлагает молодая фран-
цузская фирма Controlord. В книге много ссылок на сайты по робототехнике.
Книга будет интересна студентам технических университетов й колледжей,
а также всем энтузиастам, интересующимся проблематикой робототехники.
Книга рассчитана на самый широкий круг любителей радио с образова-
нием в объеме средней школы, будет также полезна как справочное посо-
бие начинающим инженерам и техникам.
УДК 621.37
ББК 32.84
© Dunod, Paris.
Russian edition copyright © 2008 by NT Press. All rights reserved.
Все права защищены. Любая часть этой книги не может быть воспроизведена
в какой бы то ни было форме и какими бы то ни было средствами без письменно-
го разрешения владельца авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, посколь-
ку вероятность технических ошибок все равно остается, издательство не может
гарантировать абсолютную точность и правильность приводимых сведений. В свя-
зи с этим издательство не несет ответственности за возможный ущерб любого вида,
связанный с применением содержащихся здесь сведений.
Все торговые знаки, упомянутые в настоящем издании, зарегистрированы. Слу-
чайное неправильное использование или пропуск торгового знака или названия его
законного владельца не должно рассматриваться как нарушение прав собственности.
ISBN 2-10-005527-5 (фр.) Copyright © Dunod
ISBN 978-5-477-00256-6 (рус.) © Издание на русском языке,
перевод на русский язык,
Оформление «НТ Пресс». 2008
Эту книгу я посвящаю моей жене
Хелен (Helene) и детям Оливеру
(Oliver) и Лауренту (Laurent)
Благодарности
Выражаю искреннюю благодарность за содействие компани-
ям KTeam, Sony, Farnell, ControLord, Lextronic, Conrad, Select-
ronic, Connexion и персонально Фреду Ж. Мартину (Fred G.
Martin) и Питеру Дилуорту (Peter Dilwort) из MIT.
СОДЕРЖАНИЕ
Предисловие.......................................12
Глава 1
Общие положения...................................15
Мобильные роботы.................................17
Перемещения......................................18
Искусственный интеллект..........................18
Искусственная жизнь..............................19
Советы по изготовлению робота....................19
Глава 2
Оборудование......................................25
Механическая часть...............................25
Каркасы........................................25
Выбор двигателей...............................33
Расчет мощности двигателей.....................34
Электронная часть................................37
Датчики...........’............................38
Силовые интерфейсы двигателей..................38
Центр управления...............................39
Питание..........................................40
Качественный стабилизатор напряжения...........41
Батареи........................................42
Зарядные устройства............................45
Меры предосторожности..........................47
Документы........................................49
Глава 3
«Мозг» робота.....................................50
Процессор М68НС11................................51
Печатная плата на базе микропроцессора М68НС11 ..53
8 Сборка и программирование мобильных роботов
Изучение микроконтроллера..............................54
Изготовление процессорной платы на М68НС11А1
или М68НС811Е2.........................................58
Плата размера Mini-Board................................61
Изготовление платы Mini-Board..........................66
Плата Handy Board.......................................66
Изготовление Handy Board...............................68
Робот F1 ...............................................68
Плата PIC16F876 ........................................74
Изготовление платы PIC16F876...........................76
Документы.........,.....................................77
Глава 4
Программирование микроконтроллера PIC16F84......79
Общие сведения о микроконтроллерах PIC
компании Microchip.................................79
Различные типы PIC.................................80
Постоянная память ЭСППЗУ, или память хранения команд.... 81
Оперативная память RAM.............................81
Блоки памяти.......................................81
Память хранения данных EEPROM......................83
Команды............................................83
Замечания ........................................85
Команды пропуска (или включения)..................86
Порты входов-выходов...............................87
Синхронизация......................................88
Таймер-счетчик....................................89
Прерывания.........................................90
Режим энергосбережения SLEEP.......................91
Счетчик сторожевого таймера........................91
Режим программирования.............................92
Дополнения.........................................92
Документы.........................................93
Глава 5
Введение в программирование
микропроцессора М68НС11..............................94
Биты и байты.......................................94
Знакомство с микропроцессором М68НС11..............96
Адресное пространство памяти......................96
Регистры..........................................98
Программирование М68НС11..........................100
Машинный язык и Ассемблер........................100
Способы адресации................................101
Типы данных...................................... 103
Содержание Q
Арифметические операции...........................104
Двоичные числа со знаком или без знака............104
Регистр состояния и условных переходов............106
Стек и подпрограммы...............................107
Прерывания........................................108
Архитектура микропроцессора М68НС11 ...............110
Специальные регистры..............................111
Функциональная схема микропроцессора М68НС11 .....111
Порт В: управление двигателями....................113
Порт С: чтение датчиков...........................113
Порт Е: чтение аналоговых входов..................114
ПортА: таймеры и счетчики.........................л 115
Порт D: последовательный интерфейс.............. 118
Дополнения.........................................119
Документы.........................................120
Глава 6
Языки программирования...............................121
Ассемблер..........................................122
ЯзыкС..............................................122
BASIC..............................................123
Объектно-ориентированный язык......................124
Программы..........................................127
Глава 7
Программирование робота..............................129
Приоритетное взаимодействие........................130
Традиционный подход к программированию роботов....130
Подход приоритетного взаимодействия
для программирования роботов......................131
Применение подхода приоритетного взаимодействия...133
Глава 8
Датчики и их интерфейсы..............................139
Датчики соударений.................................140
Датчики наклона...................................142
Оптические датчики.................................142
Фоторезисторы.....................................144
Инфракрасные датчики..............................145
Детекторы приближения.............................151
Пироэлектрические датчики.........................158
Видеокамеры.......................................159
Звуковые датчики...................................160
Микрофон..........................................160
Ультразвук........................................162
10 Сборка и программирование мобильных роботов
Датчики положения.................................167
Ориентиры........................................167
Гироскоп.........................................169
Датчики внутреннего состояния робота..............172
Глава 9
Приводы и их интерфейс..............................174
Принцип работы интерфейса.........................175
Компоненты силовых цепей интерфейса...............178
Транзисторы......................................178
Интегральные схемы...............................179
Ключевой элемент с высокой частотой переключений.183
Двигатели постоянного тока........................185
Интерфейсы для двигателя постоянного тока........186
Шаговые двигатели.................................195
Интерфейс для однополюсного шагового двигателя...197
Интерфейс для двухполюсного шагового двигателя ..199
Серводвигатели....................................200
Реле и соленоиды..................................202
Интерфейс для реле...............................203
Соленоиды........................................204
Автоматическое регулирование скорости и положения.204
Перемещение робота...............................206
Глава 10
РобОТЫ - борЦЫ СуМО.................................209
Принцип работы робота - борца Сумо................210
Конструкция робота................................213
Электронная часть робота..........................215
Программирование робота - борца Сумо..............217
Заключение........................................218
Глава 11
Робот-муравей.......................................219
Принцип работы робота-муравья.....................220
Конструкция робота-муравья........................222
Электронная часть робота..........................225
Программирование робота...........................226
Заключение........................................226
Глава 12
Робот-насекомое.....................................227
Принцип работы робота.............................228
Конструкция робота................................229
Содержание *| 1
Электронная часть робота........................231
Изготовление робота............................233
Программирование робота.........................237
Заключение......................................238
Глава 13
Шагающий робот....................................239
Принцип работы робота...........................240
Конструкция робота..............................241
Электронная часть робота........................244
Изготовление робота.............................246
Программирование робота.........................250
Заключение......................................250
Глава 14
Социальный подход к разработке робота.............251
Робототехнические конкурсы......................252
Умение правильно организовать свою работу.......253
Работа в команде...............................254
Технические решения............................255
Планирование...................................256
Результаты .....................................256
Заключение........................................258
Приложение........................................260
Ссылочные данные компонентов....................260
Код ASCII.......................................261
Технические характеристики гироскопа ENC-03J....262
Содержание необходимой дополнительной
документации....................................263
Список литературы.................................264
Адреса в Интернете................................265
Предметный указатель..............................268
Предисловие
Профессия преподавателя высшей школы позволяет мне на-
ходиться в самом центре нового тревожного явления: отсут-
ствия мотивации у выпускников средних школ к техническим
дисциплинам и сопутствующим профессиям. Предпочтение
отдается исключительно наукам, разрекламированным в сред-
ствах массовой информации. Мультимедийные средства раз-
виваются ускоренными темпами, и все хотят программиро-
вать. Несмотря на то что робототехника представляет собой
новую модную науку, ни одно учебное заведение не готовит
специалистов в этой области1.
Роботы представляют собой замечательную школу жизни
и двигатель образования. В некоторых лицеях они использу-
ются в педагогических целях, высшие учебные заведения
организуют конкурсы по робототехнике для укрепления сво-
ей популярности.
Так как в системе образования до сих пор не существует
специального направления по обучению робототехнике, выс-
шие технические учебные заведения Франции, специализиру-
ющиеся на электротехнике и промышленной информатике, в
настоящее время организуют на базе своих электротехниче-
ских отделений специальную факультативную структуру обуче-
ния, цель которой заключается в развитии робототехники
путем проведения внутренних конкурсов.
Такая грустная картина в нашей стране не наблюдается. Молодые юноши и девушки
ежегодно заполняют аудитории технических университетов. Изучаются все новые и
новые дисциплины, в том числе находящиеся на стыке наук. Например, введена но-
вая дисциплина - механотроника, вобравшая в себя элементы механики, электрони-
ки, робототехники. Так что мы не грустим. - Прим. науч. ред.
Предисловие *| 3
Помимо изучения, изготовления и программирования ро-
ботов существует идея создать нечто, отличное от общепри-
нятых методик обучения. Создание робота является до-
стойной задачей как для одного человека, так и для целой
команды. Конкурсы, организуемые в области робототехники,
увеличивают мотивацию разработчиков в десятки раз и повы-
шают уровень знаний и умений в этой области.
Подобно некоторым передовым предприятиям, которым
удалось создать атмосферу поддержания у своих работников
интереса к успеху, система образования не должна доволь-
ствоваться заполнением головы учащегося знаниями, но обя-
зана воспитывать у него способность к интуитивному мыш-
лению.
Эта книга является третьей в серии книг по мобильным
роботам. Первая книга, Petits robots mobiles, призвана приоб-
щить к робототехнике электронщика-любителя. Во второй
книге, Construisons nos robots mobiles, предлагаются более слож-
ные устройства, способные удовлетворить интерес наших
первых читателей. В этой книге мы постараемся еще больше
приоткрыть завесу, окутывающую так называемых разумных
роботов, которые являются таковыми только в воображении
своих создателей и обладают лишь зачатками искусственно-
го интеллекта.
В рамках этой книги, которую мне хотелось видеть по
возможности наиболее полной, было чрезвычайно сложно
ограничиться описанием датчиков и интерфейсов для двига-
телей. В этой области уже существует множество интеграль-
ных модулей. Основной целью было сделать понятной мето-
дологию создания мобильных программируемых роботов.
Надеюсь, что данная книга будет пользоваться таким же
успехом, как и две предыдущие, так как сложно писать на ка-
кую-либо тему, не сделав хотя бы минимального отступления
назад. Возникает риск оказаться среди первых, когда знаешь,
что будущим авторам будет проще писать на эту тему и исправ-
лять допущенные тобой ошибки.
Я благодарю читателей, которые, выбрав нашу первую
книгу, позволили мне еще более развить тему мобильной ро-
бототехники на французском языке в публикациях. Также
14 Предисловие
благодарю студентов и преподавателей отделения электро-
техники Технического университета города Ним.
Машина должна не удалять человека от машины, а, скорее, по-
гружать в самую глубь его собственных проблем.
Антуан де Сент-Экзюпери
ГлаваЦ
Общие положения
С незапамятных времен человек создавал орудия различно-
го назначения: для охоты, войны, строительства домов или
транспортных средств. Но все эти орудия только помогали
людям в их повседневной жизни. Только в начале XX века
писатели начали мечтать о простой жизни, в которой по-
слушный механический слуга заменит нас в выполнении
сложных или попросту неблагодарных работ, то есть избавит
от рутинной работы. Эта мечта частично реализовалась во
второй половине XX века. Вначале по причине требовавше-
гося большого количества выпускаемых автомобилей и для
повышения их надежности роботам доверили сборку машин,
позднее - предметов бытовой техники (телевизоров, компь-
ютеров...). Эти роботы способны выполнять повторяющие-
ся или опасные операции, например сварку, покраску, ли-
тье... Роботы также успешно справляются с высокоточными
операциями. На практике роботы заменяют все рабочие спе-
циальности и в этом оправдывают предсказания писателей-
фантастов 50-60-х годов прошлого столетия.
На сегодняшний день около 1 % всех роботов занято бо-
лее сложными задачами. Они забираются в недоступные и
опасные для человека места (океаническое дно, склоны вул-
канов, труба атомной электростанции, исследование Мар-
са...) - для этого они и созданы. Для выполнения этих задач ро-
боты снабжены манипуляторами, обеспечивающими свободу
16 Глава И 1 Общие положения
передвижения. Таким образом, вторая часть мечты авторов
научно-фантастических романов обретает форму, хотя не так
быстро, как предполагалось, но имитировать человека не так
просто.
Японцы, использующие половину всех роботов планеты
на своих заводах, серьезно опережают в этой области евро-
пейцев, американцы также не отстают от них.
Поиски ведутся опережающими темпами во всех областях,
различные шаги предпринимаются в зависимости от конкрет-
ной необходимости. Японцы очень близко подошли к копиро-
ванию действий человека: оказание услуг или помощи (преста-
релым и больным) с использованием роботов в человеческом
обличии, определение местонахождения людей, оказавшихся
в сложном положении по причине землетрясения, при помощи
реального роботизированного прибора, внешне напоминаю-
щего насекомого, снабженного камерой и системой дистанци-
онного управления (к сожаленью, пока прибор не слишком
хорошо работает...) и т.п. Примеров для выполнения работ
роботами достаточно много... Игровая сторона робототехни-
ки также хорошо развита.
Существуют научные лаборатории, работающие над созда-
нием искусственного интеллекта или механики, а не над ими-
тацией внешнего сходства с человеком. Снимки, сделанные
исследовательским зондом на Марсе, облетели всю Землю,
разжигая фантазии исследователей. Все ведущие научные ла-
боратории мира участвуют в этом поиске, пытаясь создать
поистине фантастические образцы: от микророботов, пере-
двигающихся внутри сосудов человека и предназначенных для
лечения повреждений внутренних тканей, до гигантских ро-
ботов с усовершенствованной походкой, например динозав-
ра, созданного учеными Массачусетского технологического
института (MIT) - рис. 1.1. Этот искусственный динозавр как
будто пришел к нам из глубины веков, когда динозавры господ-
ствовали на Земле. Теперь господствуем мы и не всегда помо-
гаем природе, а напротив, вредим ей. Чего стоит один «пар-
никовый эффект».
Завтра мы, конечно же, будем жить в домах, оборудован-
ных разнообразными автономными роботами, которые бу-
дут выполнять всю работу по дому. А в дальнейшем один уни-
версальный робот заменит целый штат прислуги.
Мобильные роботы *|7
Рис. 1.1. Troody - робот-динозавр из Массачусетского
технологического института
Мобильные роботы
По роду своего использования большинство роботов являются
неподвижными, или стационарными, и место их установки опре-
деляется заранее. Благодаря снижению цен и повышению на-
дежности электронных компонентов сегодня стало возможно
разрабатывать подвижных (мобильных) роботов, способных
справляться с задачами другого рода. Свобода передвижения
обеспечивает мобильному роботу возможность независимого
взаимодействия с людьми.
Подвижный робот представляет собой, прежде всего, мо-
бильную базу, и в этом качестве он может использоваться как
транспортное средство. Но если теперь снабдить такого робо-
та манипулятором или камерой, то область его применения
значительно расширится (наблюдение, обнаружение возгора-
ния и т.д.). Мобильные роботы могут быть неавтономными -
передвигаться в пределах максимальной длины кабеля пита-
ния или сигнального кабеля, или автономными - со встроен-
ным питанием и управлением. Кроме указанных типов роботов
18 Глава И 1 Общие положения
есть роботы с управлением от ПК по беспроводному каналу
связи, которых отчасти можно отнести к автономным роботам.
Именно способность перемещаться представляет собой
наиболее важный аспект мобильного робота. Инструменты,
которыми можно оборудовать мобильного робота, в первое
время могут быть позаимствованы у неподвижных роботов.
Перемещения
Среда, в которой должен находиться робот, определяет вы-
бор его тягового привода. Если в научной лаборатории мож-
но использовать электрических роботов на колесах, то для
полевых условий скорее подойдет пневматический робот с
шестью лапами, которому не нужна электроэнергия. Это про-
исходит потому, что движение представляет собой комби-
нированное действие тяги и опоры на поверхность.
Для создания оптимальной траектории движения робота
нужно заранее представлять среду, в которой он должен будет
работать. Для планирования траектории необходимо модели
рование поверхности и возможных препятствий в ограничен-
ном пространстве. Программа робота должна содержать обу-
чающую часть. Анализ информации, получаемой отдатчиков,
позволит роботу создать собственную базу данных, которую
он затем будет сравнивать с запрограммированной моделью.
Это даст возможность исправить ошибки программирования
или считывания датчиков. С учетом всего этого для начала
предпочтение отдается колесам, а не более сложным видам
передвижения, уже упомянутым лапам и другой «экзотике».
Искусственный интеллект
Первые программы искусственного интеллекта служили для
расшифровки сообщений противника во время Второй ми-
ровой войны (проект «Энигма»). Позднее они использова-
лись для реализации экспертных систем (анализ и поддерж-
ка), используемых в настоящее время при «создании помех»
для наших роботов.
Искусственный интеллект позволит сконструировать че-
ловекоподобного робота. Его создание связано с изучением
Советы по изготовлению робота *| 9
основных видов человеческих отношений. Многие японские
и американские лаборатории нацелили свой поиск на изуче-
ние выражений человеческого лица (пример - робот Kismet
Массачусетского технологического института). Такое изуче-
ние представляет огромную сложность: начиная с различных
движений отдельных мышц и заканчивая сочетаниями их
движений для получения конкретного выражения, необходи-
мо попутно рассматривать синхронизацию движения мышц
рта при произнесении устного сообщения.
Но уже новая форма «искусственной жизни» стремится осво-
бодиться от всего этого, как бабочка из своего кокона. Эта жизнь
кажется более перспективной и менее структурной.
Искусственная жизнь
Этот подход охватывает другие области, отличные от элект-
роники, механики и информатики: биомеханику, искусствен-
ные нейроны и электронику эволюционного развития.
Разработка концепции искусственной жизни будет спо-
собствовать формированию высшего образа поведения в со-
обществе роботов, реальных или фиктивных, подобно есте-
ственному отбору на основании представления людей о кон-
цептуальной модели робота. В первое время знакомство с
образом поведения может быть ускорено при помощи ин-
формационного подхода к проблеме эволюции робота, впо-
следствии поведение может быть перенесено на мобильного
робота.
Советы по изготовлению робота
Разрабатывайте конструкцию робота одновременно с программой.
Не пытайтесь в начале сконструировать робота, а затем напи-
сать программу. Эти две области тесно связаны между собой.
Работая одновременно над их разработкой, вы заметите, что
они представляют собой две части одной проблемы. Написа-
ние программы одновременно со сборкой робота позволит
вам избежать проблем проектирования, способных вызвать
головную боль.
20 Глава И 1 Общие положения___________________________
В первую очередь следует установить крепкие бамперы и сопут-
ствующую им программу Робот должен быть способен самосто-
ятельно реагировать на удар. В случае выхода из строя всех
прочих датчиков именно бампер станет последним его спасе-
нием. Поэтому необходимо разработать стратегию обнаруже-
ния столкновений, чтобы робот смог наталкиваться на любые
преграды без последствий. Спокойнее знать, что робот не
требует постоянного присмотра.
Понаблюдайте за поведением вашего робота в среде его
будущей деятельности (офис, салон, лаборатория, оборудо-
ванная площадка). Какие решения смогут помочь роботу
освободиться, когда он наталкивается на предмет или заст-
ревает под стулом? Знайте, что стена редко представляет со-
бой проблему. От нее достаточно просто отойти.
Рассмотрите возможные ситуации, в которых робот заст-
ревает, его датчик изгибается или один из проводов цепля-
ется за окружающие предметы. Постарайтесь найти конструк-
тивное и программное решение для таких ситуаций, чтобы
робот сам смог выходить из них.
Опробуйте вашего робота в течение продолжительного времени.
Нет ничего необычного в том, что после нескольких секунд
наблюдения вам захочется внести изменения в программу
или механическую часть робота. Но это было бы ошибкой,
так как реакции робота могут быть связаны с начальными
условиями или другими параметрами, некорректно сформу-
лированными на начальном этапе конструирования.
Протестируйте робота при различном освещении, в раз-
ных помещениях и ситуациях, прежде чем решить, насколько
эффективно его поведение или сделанное вами изменение.
Все это, конечно, представляет собой большой и, одновре-
менно, увлекательный труд.
Ведите дневник работ, собирайте документы, составляйте
списки. Записывайте все, что вы делаете. Составляйте ком-
ментарии для программ, разрабатывайте различные схемы
(блок-схемы, структурные и электрические схемы и т.д.),
чертежи, обновляйте их ежедневно. Создавайте базу дан-
ных всех работ: как в бумажном виде, так и в электронном.
Так как, если придется вернуться к работе над роботом че-
рез неделю или более, то у вас всегда будет напоминание
Советы по изготовлению робота 21
о последних сделанных вами изменениях. Больше надейтесь
на записи, чем на свою память.
Обычная небрежность заключается в отсутствии марки-
ровки у разъемов передачи сигналов или питания и их ори-
ентации на электронной плате. Маркировка компонентов и
разъемов позволит сделать плату «зрячей» и избежать эле-
ментарных ошибок в монтаже и наладке схем робота.
Собирайте спецификации технических данных на исполь-
зуемые вами компоненты, обращайтесь к ним каждый раз при
возникновении сомнения по поводу работы или подключения
компонента.
Защита. Использование плавких предохранителей - необ-
ходимая защита, в первую очередь, от короткого замыкания
цепей при небрежном монтаже и пайке компонентов. Лучше
пусть сгорит грошовый предохранитель, чем выгорит, на-
пример, дорогая микросхема микропроцессора. Каждый ис-
точник питания должен быть оборудован отдельным защит-
ным предохранителем: батареи, стабилизатора напряже-
ния, зарядного устройства. Другая форма защиты состоит в
изолировании («развязке») маломощных сигналов от мощ-
ных, которые управляют мощными цепями исполнитель-
ных механизмов (двигателей, реле), при помощи оптоэлект-
ронных пар.
Отладьте программу робота. Не пытайтесь разрешить все
сразу. Лучше протестировать одну небольшую очевидную часть
схемы дважды. Часто проблемы заключаются в неисправности
разъемов или в неправильном проводном соединении1.
При помощи обыкновенного мультиметра вы сможете про-
верить качество и правильность соединений.
Используйте светодиоды для подтверждения исправной
работы датчиков, таймеров, а позднее - для подтверждения
исправного состояния робота.
Чужие программы. Не принимайте за чистую монету об-
рывки программ, написанные другими. Проверяйте и тести-
руйте их по отдельности. Может оказаться так, что они не
Здесь вступает в силу наука о контактах: соединение есть там, где оно не нужно, и от-
сутствует там, где требуется. Постулат выведен поколениями радиоинженеров и тех-
ников. - Прим. науч. ред.
22 Глава 1 Общие положения
совсем подходят для ваших намерений. Изменение чужих
программ иногда может потребовать больше времени, чем
написание собственных.
Однако ничто вам не мешает проанализировать чужую
программу, чтобы понять смысл, заложенный в нее автором,
и использовать в качестве фрагмента своей программы.
Механический привод. Вы должны правильно рассчитать
(с запасом, как минимум, в два раза) размеры системы механи-
ческого привода (двигателей, трансмиссий, интерфейсов),
чтобы система была способна перемещать вес, превосходя-
щий предполагаемый в два раза. В этом случае после сборки
робота вас приятно удивит окончательный вес его элементов.
Не пытайтесь изобрести колесо. Даже если пока еще можно
найти не так много литературы по робототехнике, Интернет
может стать для вас неисчерпаемым источником информа-
ции. Например, можно обратиться к специализированным
сайтам, чтобы понять принцип работы какого-либо компо-
нента или загрузить программу; анализирующую работу дат-
чика или системы управления двигателем1.
Измерительные приборы. Из измерительных приборов вам
прежде всего понадобится мультиметр. Он позволит измерять
напряжение на отдельных компонентах, разъемах, батареях в
режиме измерения напряжения, а также ток, потребляемый
двигателями, в режиме измерения тока. На первом этапе в
режиме измерения сопротивления мультиметром проводят
прозвонку цепей, - в первую очередь, цепей питания. Такая
прозвонка позволяет найти, например, короткое замыкание
между цепями. В этом случае внимательный просмотр с помо-
щью увеличивающей лупы приведет, например, к нахождению
небрежной пайки, замыкающей две соседние цепи печатных
проводников. Тем не менее, многие очень важные сигналы
невидимы для мультиметра, например сигналы таймера про-
цессора или системы управления двигателями. Осциллограф
позволит вам сэкономить много времени для наладки, отобра-
жая на своем экране форму сигналов или продолжительность
выполнения определенной операции.
Интересным сайтом для получения информации о компоненте, программном про-
дукте или типовых схемах можно считать сайт http://www.datasheet.ru, в окно Вве-
сти которого вводится название требуемой информации - Прим. науч. ред.
Советы по изготовлению робота 23
На электронных платах необходимо предусмотреть тех-
нологические точки подключения к опорным сигналам для
проведения проверок и точки подключения к общей шине
(массе), относительно которой проводятся все измерения
мультиметром и осциллогорафом.
С чего начать на начальной стадии проектирования робота. Если
вы делаете всего лишь первые шаги в робототехнике, не
пытайтесь сразу изготовить сложного робота. Это вам будет
не под силу. Начните с программирования простого двухко-
лесного робота, снабженного бамперами. Затем снабдите его
инфракрасным датчиком, чтобы робот следовал линии, про-
веденной на полу, или световым датчиком, чтобы он напра-
влялся к источнику света. Инфракрасный (ИК) датчик может
быть также использован для обнаружения различных преград.
Затем вы можете протестировать звуковой локатор или по-
пытаться управлять небольшим зажимом с помощью манипу-
лятора робота. Вот все и началось...
Не бойтесь экспериментировать, предохранители для это-
го и предназначены.
Пока оставьте в стороне сложные роботы на лапах.
Специальные модули или единая плата. Изготовление отдель-
ных модулей для каждого интерфейса будет стоить дороже,
чем изготовление единой платы. Использование отдельных
модулей сэкономит время при изготовлении следующего ро-
бота. С другой стороны, количество возможных проблем
прямо пропорционально количеству разъемов, и в этом от-
ношении единая плата является более надежной. Но при ее
поломке выходит из строя весь робот, в то время как при
использовании отдельных плат можно локализовать проблему
и заменить неисправную плату. Таким образом, использова-
ние единой платы является необходимостью только в случае
ограниченности свободного пространства внутри робота.
Во всех других случаях предпочтительнее использовать не-
сколько плат.
Подведем итог: если вы создаете одного робота, лучше
изготовить одну или минимальное количество плат. Если же
необходимо модифицировать роботов для решения различ-
ных задач, изготавливайте ряд модулей. В следующем робо-
те можно будет применить модули от предыдущего.
24 Глава И 1 Общие положения_____________________________
Некоторые стандарты. При сборке робота выберите стан-
дарт и соблюдайте его, например, стандарт цветовой маркиров-
ки проводов. В электрических проводах красный обычно ис-
пользуется для проводов питания, черный - для массы, голубой
и белый - для двигателей. Силовые провода от батареи к двига-
телям всегда должны быть большего диаметра (через них про-
ходит больший ток - вспомним уроки физики в школе), чем
провода системы управления или подключения датчиков.
Наблюдение и размышление. Внимательно наблюдайте за все-
ми механизмами, которые могут вам понадобиться. Покупайте
недорогие механические системы малых размеров. Приобре-
тайте платы от старых видеомагнитофонов или старые устрой-
ства CD-ROM в ателье по ремонту телевизоров или центрах
послепродажного обслуживания.
Расскажите об изготовленных вами устройствах другим лю-
бителям робототехники. Не бойтесь разговаривать вслух сами
с собой, а лучше найдите себе единомышленника или едино-
мышленников. С ним разговаривать логичнее, чем с самим со-
бой, - человек со стороны не поймет такого разговора1...
Говорите с вашим роботом, дайте ему имя. Гордитесь им.
Пусть завистники, способные только говорить, говорят, а
вы продолжайте созидать.
Сайт Массачусетского технологического института MIT,
посвященный роботу Kismet:
www.ai.mit.edu/projects/humanoid-robotics-group/kismet/
kismet.html.
Сайт, на котором рассказывается об экспериментах взаи-
модействия людей с роботами:
http: //talking-heads.csl.sony.fr/lnfolndex.html.
Сайт, посвященный динозавру Troody Массачусетского тех-
нологического института MIT:
http: //www.ai.mit.edu/people/chunks/chunks.html1 2.
1 Строительство роботов коллективом из двух и более человек позволит использовать
сильные стороны каждого из участвующих в проекте - один лучше знает схемотех-
нику, другой - программы, третий - неплохой менеджер, а, в итоге, дело идет значи-
тельно быстрее. - Прим. науч. ред.
2 Из русскоязычных сайтов по робототехнике одним из самых интересных можно на-
звать сайт http://parts.roboclub.ru. По поисковым системам Rambler, Yandex, Google
и т.п. достаточно просто найти и другие, не менее интересные. - Прим. науч. ред.
Оборудование
Какое определение можно дать роботу? Для большинства людей
речь идет об искусственном создании, способном заменить
человека для выполнения его работ, или о создании, поведе-
ние которого схоже с поведением человека. Но для робототех-
ника речь идет лишь о совокупности механики, электроники
и программ, состоящей из двигателей и программируемых
частей (электронной и механической), которая способна,
например, подметать пол, сигнализировать о возникновении
в доме пожара или выгуливать собаку. Но к роботу, сделанно-
му своими руками, такое унылое определение не годится. В ка-
кой-то момент после серии неудач, когда, наконец, тяжелая
работа приносит свои плоды - робот начинает ходить и вы-
полнять элементарные команды, к нему привязываешься, и он
становится таким же членом семьи, как и все окружающие вас
близкие и домашние животные.
Механическая часть
Каркасы
Для начала рассмотрим классический каркас, который дает
возможность проведения различных экспериментов. Выбор
цилиндрической формы каркаса обеспечит роботу возмож-
ность огибать препятствия и упростит его программирование.
28 Глава И 2 Оборудование
Рис. 2.3. Легко изготавливаемая конструкция робота
из подручных средств - компакт-дисков
конструкцию, на которой вполне можно закрепить несколь-
ко небольших двигателей с редуктором (или серводвигате-
лей), батареи и плату управления.
Многие роботы создаются по следующему алгоритму: на
нижней пластине устанавливаются двигатели. Для большей
прочности эта пластина делается из алюминия. Распорками
формируется достаточное пространство для установки акку-
муляторных батарей. Верхняя пластина может быть изготов-
лена из пластмассы. На ней устанавливается плата управления
роботом. В таком варианте робот будет более устойчив из-за
низкого центра тяжести.
Положение самых тяжелых элементов играет важную роль.
Общая форма робота также влияет на его устойчивость. Не
существует реальных проблем для роботов классической фор-
мы с каркасом на трех или четырех колесах. Проблемы возни-
кают с роботами, которых авторы стараются уподобить реаль-
но существующим созданиям (насекомым, животным, людям),
создавая биомеханических роботов.
В конструкции самого распространенного типа использу-
ется два ведущих колеса. Ведущие колеса устанавливаются на
одной оси, а одно или два свободных колеса придают устойчи-
вость всей конструкции (рис. 2.4).
Свободное колесо представляет собой свободно вращаю-
щееся или скользящее колесо. Его легко изготовить. Для это-
го вам понадобится винт с круглой головкой и шаровая опо-
ра небольших размеров (например, колесо от выдвижного
ящика стола) или валик от магнитофона.
Советы по изготовлению робота 27
Рис. 2.2. Робот, предназначенный для движения по лабиринту
Более простые формы могут использоваться для демонст-
рационной площадки (робот на лапах, на гусеницах, с коле-
сами в задней части и т.д.).
Но необходимо также учитывать изменения, которые пона-
добится сделать в будущем относительно расположения датчи-
ков и электронных плат. Даже опытному робототехнику слож-
но правильно разместить все компоненты внутри робота. Оп-
тимальное положение датчиков определяется после многих
испытаний и модификаций. Вес и расположение двигателей и
батарей влияют на равновесие и центр тяжести. От этого будет
зависеть КПД передвижения робота.
Конструкция
Робота можно сконструировать из различных материалов. Но
большинство роботов изготавливается из алюминия или пла-
стика. Эти материалы легки и вполне доступны. Также робота
можно изготовить из демонстрационных компакт-дисков, как
показано на рис. 2.3.
Два или три компакт-диска, соединенные между собой
распорками, позволяют получить достаточно прочную
26 Глава И 2 Оборудование
В примере, представленном на рис. 2.1, при помощи своих
передних датчиков соударения цилиндрический робот обна-
руживает столкновение с преградой, при этом его программа
подает команду поворота налево вплоть до исчезновения сиг-
налов о столкновении с препятствием. Затем робот продолжа-
ет движение. Чтобы произвести вышеуказанные действия,
прямоугольный робот вначале должен отъехать назад. Соот-
ветственно, его программа является более сложной.
Окончательный размер и форма зависят от конкретного
контекста использования робота. В лабиринте меньше свобо-
ды движения, чем на демонстрационной площадке (рис. 2.2).
В узком проходе робот должен вращаться на месте, для чего
необходимо шасси с двумя дифференциальными колесами, ус-
тановленными на центральной оси.
Рис. 2.1. Правильно выбранная форма робота позволяет избежать
многих проблем
Советы по изготовлению робота 29*
Рис. 2.4. Классическая форма конструкции робота с третьим колесом
Количество устанавливаемых колес (три или четыре) вли-
яет на ходовые характеристики робота. Выбор оптимально-
го решения зависит от характера местности, на которой бу-
дет использоваться робот. Каркас на трех колесах с двумя
ведущими и одним свободным колесом лучше всего приспо-
соблен для слабопересеченных участков местности. Прин-
цип трех колес обеспечивает постоянный контакт с поверх-
ностью. Для робота на четырех колесах с двумя свободными
и двумя ведущими колесами требуется совершенно плоская
поверхность (рис. 2.5).
Проблему количества колес в какой-то мере можно решить,
установив амортизаторы на свободные колеса.
Вторая проблема заключается в распределении масс по кар-
касу. Хорошо известно, что для улучшения ходовых характери-
стик вес привода должен приходиться на ведущие колеса.
Слабопересеченная местность.
Рис. 2.5. Проблема количества свободных колес, установленных на каркасе
30 Глава И 2 Оборудование
Наоборот, если весь вес робота сконцентрировать на свобод-
ном колесе, ведущие колеса могут потерять сцепление с поверх-
ностью и проскальзывать. Для робота с одним свободным коле-
сом необходимо попытаться найти компромисс и установить
самые тяжелые элементы по возможности ближе к ведущим
колесам.
Проблема гораздо более сложна для робота, выполненно-
го в форме животного. Конструирование робота, походяще-
го на земное творение, раскрывает многие чудеса природы.
Для получения впечатляющего результата необходимо по-
нять, как действуют силы, уравновешивающие статическое и
особенно динамическое положение робота. Необходимо по-
пытаться найти оптимальное положение центра тяжести.
В случае с человекоподобным роботом необходимо сокра-
тить вес и увеличить размер ступней. Для этого представьте
себе клоуна в больших необычной формы ботинках - он мо-
жет выглядеть смешно, но его устойчивость несомненна.
Передвижение
Для перемещения вашему роботу нужны колеса, гусеницы
или лапы. В этой книге описаны роботы на колесах и лапах.
Колеса. Ходовые характеристики будут определяться шири-
ной шин и материалом, из которого они изготовлены. Слиш-
ком тонкие шины, как правило, являются очень жесткими, как
тороидальные швы. Их использование приводит к ошибкам
симметрии, в результате чего при движении робот слегка от-
клоняется от прямой. Слишком широкие шины из мягкой ре-
зины, напротив, улучшают сцепление с поверхностью, но уве-
личивают мощность двигателей. Итак, оптимальный размер
колеса находится где-то посередине, если использовать шины
из резины. Возможно, правильным может оказаться выбор тон-
кого колеса не из резины, а из твердого пенопласта. Нужно не
бояться экспериментировать.
Колеса разной степени жесткости будут иметь разный диа-
метр, что приведет к ошибкам симметрии. Это отразится на
траектории движения робота - он не сможет двигаться по
прямой, но с успехом будет передвигаться по дуге. Поэтому,
проделав массу опытов по установке колес из разных матери-
алов и разных диаметров, можно прийти к удовлетворяюще-
му роботостроителя результату.
Советы по изготовлению робота 31
Лапы. Именно количество лап определяет уровень слож-
ности. Чем меньше лап или ног, тем более сложным является
робот, и выше его стоимость.
Изготовление робота с шестью или восемью лапами вполне
по силам роботехнику-любителю. При помощи трех или более
серводвигателей можно выполнять различные движения. Ус-
тойчивость никогда не теряется, так как три лапы постоянно
соприкасаются с поверхностью, образуя треугольник, который
включает в себя центр тяжести. Поэтому7 робот не падает.
Но у робота на четырех лапах постоянно следует следить
за положением центра тяжести, который находится на гра-
ни треугольника, образованного тремя лапами, или выпол-
нять динамическое передвижение. Эта технология заключа-
ется в перемещении центра тяжести, например, при помощи
движения головой. Изучение робота такого типа недоступно
для начинающего робототехника (рис. 2.6).
Рис. 2.6. Робот Sony Aibo 2
32 Глава 2 Оборудование
Самыми впечатляющими являются человекоподобные ро-
боты. Но для разработки уравнений и технологий, позволяю-
щих конструировать и программировать таких созданий, тре-
буется серьезное финансирование и годы исследований в ро-
бототехнических лабораториях. На рис. 2.7 показан пример
такого человекоподобного робота, разработанный компани-
ей Sony и названный SDR-3X1.
Рис. 2.7. Робот Sony SDR-3X высотой 50 см и весом 4 кг может ходить,
садиться и танцевать
Кроме роботов - помощников человека делаются попытки и даже проекты, под-
крепленные финансами, разработки военных роботов. По информации с сайта
www.windowsfordevices.com, некоторые роботостроительные фирмы США работают
над проектом, по которому к 2010 году армия США на 30% будет состоять из робо-
тов. Это из области зловещих планов переложить убийство людей на роботов. -
Прим. науч. ред.
Советы по изготовлению робота 33
Этот робот высотой 50 см и весом 4 кг является полнос-
тью автономным. Механическая часть приводится в движе-
ние 24 двигателями и управляется двумя RISC-процессорами1.
Выбор двигателей
В мобильных роботах, работающих на электрической энер-
гии, механическая тяга создается при помощи шаговых двига-
телей или двигателей постоянного тока. Выбор того или ино-
го двигателя зависит от конкретных потребностей (рис. 2.8).
Рис. 2.8. Различные двигатели, пригодные для использования в робототехнике
Для перемещения тяжелого робота необходимо использо-
вать двигатель постоянного тока. При необходимости добить-
ся точности движения легкой руки робота можно использо-
вать шаговый двигатель. Эти примеры не ограничивают об-
ласть применения двигателей двух перечисленных типов.
В любом случае, для выбора подходящего типа двигателя не-
обходимо учитывать потребляемую мощность, вращающий
момент и номинальную скорость.
При недостаточном вращающем моменте или слишком
большой скорости можно использовать редуктор скорости
Законодателем мод в компьютерной технике является США. Терминология и сокра-
щения в данной книге англо-американские, вследствие чего RISC - сокращение от
Reduced Instruction Set Computing - тип наиболее распространенной архитектуры
процессора с сокращенным набором команд. - Прим. науч. ред.
2-7388
34 Глава И 2 Оборудование
с различными коэффициентами зацепления зубчатых пере-
дач. Такая коробка скоростей позволит добиться желаемой
скорости перемещения робота и большего вращающего мо-
мента. Как правило, с шаговыми двигателями редукторы не
используются, так как их начальный вращающий момент дол-
жен быть достаточным.
Расчет мощности двигателей
Как выбрать двигатели для робота? Непросто найти точный
ответ на этот вопрос в начале конструирования робота. Так
как, в начале необходимо знать вес робота, который еще не
построен. Однако, технические характеристики и размеры
двигателей значительно влияют на окончательные параме-
тры робота. Также для получения полной информации необ-
ходимо учитывать такие факторы как вращающий момент,
скорость, мощность. С другой стороны, для классического
робота (типа черепахи или тележки) с колесами, укреплен-
ными на оси, необходимо выбрать подходящий диаметр ко-
лес и определить правильное передаточное число зубчатой
передачи для расчета скорости его движения.
Вращающий момент
Вращающий момент двигателя - это сила, с которой он воз-
действует на вращаемую ось. Чтобы робот мог двигаться, не-
обходимо, чтобы эта сила превышала вес робота (выражае-
мый в Н/м). Рассмотрим упрощенный пример (рис. 2.9).
Рис. 2.9. Упрощенный пример робота, пригодный для расчетов
Советы по изготовлению робота 35
Вес модели равен 1 кг, и мы хотим добиться максимальной
скорости 1м/с при диаметре колес 20 мм.
Для максимальной дистанции прохождения по прямой,
равной 1 м (так как мы не устраиваем состязаний в скорос-
ти) рассчитаем ускорение, необходимое для достижения ско-
рости 1 м/с.
v2 = Vo + 2аd ,
где d- расстояние, vQ - начальная скорость (= 0 на старте),
2d
где v - скорость, а - ускорение,
р
а = — = 0,5 м/с2 .
2
Для получения»перемещения робота и ускорения, необхо-
димого для достижения максимальной скорости, вращающий
момент рассчитывается следующим образом:
Ст
При моменте инерции/= mg?/2 и угловом ускорении а = а/г
Ст = ^>
где g- сила тяжести (немногим отличная от 10), г - радиус,
т - масса.
_ 1x10x0,02x0,5 „ „
Ст =-------------= 50 мНм .
2
Этот вращающий момент распределяется между двумя дви-
гателями робота и вычитается из передаточного числа зубча-
тых передач.
Мощность
Для расчета максимальной мощности двигателей использует-
ся частота вращения двигателей, выражаемая в оборотах в
минуту или радианах в секунду:
V (об/мин) =
2пг
2
36 Глава И 2 Оборудование
или
V (рад/с) = - .
Г
Отсюда:
V = -— = 50 рад/с
0,02
или
60x1
2л х 0,02
= 477об/мин
Мощность двигателей пропорциональна вращающему мо-
менту и частоте вращения:
Рт= Стх V.
Отсюда
Рт = т^а х v = т&а
2 г 2
А значит
Рт =
1x10x1x0,2 о__
-----------= 2,5 Вт
2
Это значение следует еще раз распределить на каждый дви-
гатель и разделить на передаточное число зубчатых передач.
Но обратите внимание на то, что эта мощность является ме-
ханической мощностью, вырабатываемой двигателями, а не
электрической мощностью, потребляемой ими. Необходимо
учитывать КПД двигателей, который может иметь высокое и
более низкое значение - он меняется в зависимости от изгото-
вителя. Поэтому важно покупать двигатели известных произ-
водителей и не покупать продукцию неизвестных - попаше
(без имени). Сэкономишь ненамного - и промучаешься или
выбросишь. Компания Mabushi (Япония) производит огром-
ное количество недорогих двигателей для игрушек соответству-
ющего качества и высокого КПД. Другие производители также
известны качеством двигателей, но цены на их продукцию зна-
чительно выше цен Mabushi (Portescap, Crouset, Maxon и др.).
Для обеспечения оптимальных технических характерис-
тик рекомендуется использовать двигатели с запасом выход-
ной мощности, способные вырабатывать двойную мощность.
Электронная часть 37
Для предыдущего примера с использованием передато-
чного числа, равного 10, технические характеристики уста-
навливаемых двигателей должны быть следующими:
• частота вращения - 477 х 10 = 5000 об/мин;
• вращающий момент - 50 мНм/10 = 5мНм;
• электрическая мощность - 5 Вт.
Электронная часть
Изготовление электронной платы уже само по себе дело не-
простое, а изготовление электронной платы для робота слож-
нее вдвойне ввиду ее уменьшенных размеров. Электронщикам
пришлось оптимизировать платы, чтобы максимально умень-
шить их размеры. Для соответствия всем ограничениям ис-
пользуются две классические технологии: дочерние платы,
соединяемые с материнской платой (на дне корзины), как в
ПК; платы, соединяющиеся между собой, как тарелки, кото-
рые устанавливаются одна в другую. Именно этот способ
соединения используется для роботов небольших размеров
(рис. 2.10).
Рис. 2.10. Робот Kaphera компании КТеат
40 Глава И 2 Оборудование___________________________
серии PIC16F873, которая схожа с М68НС11 компании Moto-
rola. У каждого семейства имеются свои преимущества и не-
достатки. Размер классических микроконтроллеров PIC по-
зволяет конструировать небольшие устройства, обладающие
малым объемом памяти. Микроконтроллер М68НС11, снаб-
женный многочисленными входами-выходами, способен об-
рабатывать большее количество информации и обладает боль-
шим объемом памяти.
Вы сможете легко найти средства разработки и программи-
рования для микроконтроллеров М68НС11 по очень доступным
ценам или бесплатно загрузить из Интернета. На некоторых сай-
тах предлагаются для загрузки электрические принципиальные
схемы, разводка печатных плат, средства программирования на
ассемблере, примеры программ BASIC или С для начинающих
роботостроителей.
Микроконтроллеры PIC не нуждаются в представлении,
множество книг и статей позволят начинающим правильно
использовать эти компоненты. Интернет переполнен уст-
ройствами, программами и сайтами, посвященными этому
семейству микроконтроллеров1. Программирование PIC как
и М68НС11 также может выполняться на BASIC, С или на
Ассемблере.
В этой книге представлены схемы и роботы, изготовлен-
ные на базе микроконтроллеров PIC или М68НС11. Интерес-
нее начать с изучения и изготовления роботов на базе мик-
роконтроллеров PIC. Но для более амбициозных решений
понадобятся микроконтроллеры М68НС11.
Питание
Торопясь испытать свое творение, начинающие роботострои-
тели часто не обращают достаточного внимания на правиль-
ный подбор источников питания. Неправильный выбор или
плохое состояние батарей может привести к элементарной
неудаче при грамотной разработке электронных схем. К тако-
му же результату часто приводит и неправильно разработанный
источник питания, например недостаточного тока нагрузки.
Лучшим из русскоязычных сайтов, посвященных PIC, по моему мнению, является
сайт www.microchip.ru. - Прим. науч. ред.
Электронная часть 39
технические решения силовых интерфейсов (или контролле-
ров электродвигателей) с использованием доступных и дока-
завших свою надежность компонентов. Не игнорируйте эту
плату и выбирайте самую распространенную схему силового
интерфейса, так как она часто подвергается суровым испыта-
ниям. Особо важный пункт - рассеяние тепловой мощности
транзисторов и интегральных схем. Даже если применяемые
технологии позволяют значительно сократить количество
выделяемого тепла, использование радиатора остается необ-
ходимым условием. Если каркас робота изготавливается из
алюминия, то теплочувствительные компоненты могут быть
закреплены на каркасе, который кроме механической функ-
ции несет для них и функцию радиатора.
Центр управления
Как правило, центр управления представляет собой процес-
сорную плату. В этом случае он состоит из процессора и пе-
риферийных устройств памяти. Иногда центр управления
дополняется интерфейсами для подключения двигателей и
датчиков. Основная цель заключается в изготовлении един-
ственной платы, сгруппировавшей в себе максимальное ко-
личество электронных компонентов и сократившей до мини-
мума количество соединений.
В большинстве роботов, сконструированных любителями,
используются легкодоступные микропроцессоры. Но одним
из основополагающих критериев выбора робота остается об-
щая стоимость разработки. Если стоимость компонента неве-
лика, то также необходимо, чтобы вся разработка и програм-
мирование были недорогими. Компания Motorola была одной
из первых, предложивших недорогую элементную базу - мик-
роконтроллер и другие компоненты, а также бесплатный про-
граммный продукт. Микропроцессор М68НС11 отличается
тем, что в нем имеется небольшая стандартная диалоговая
программа, упрощающая программирование при помощи от-
ладчика PCBug. 11.
Компания Microchip пошла еще дальше, предложив про-
фессиональную среду разработки для своих компонентов PIC.
Среди них следует упомянуть микроконтроллер PIC16F84,
очень удобный для управления небольшим роботом, или
38 Глава 2 Оборудование____________________
Так как электронная часть робота очень чувствительна к
ударам, она нуждается в защите. Уязвимыми являются все ме-
ста соединений плат, датчиков, двигателей и источников пи-
тания. Необходимо сократить количество соединений до ми-
нимума. Одно из возможных решений заключается в группи-
ровании максимального числа компонентов на одной плате
или функций на одном компоненте.
Датчики
Датчики являются сенсорными органами робота. Некоторые
из них хрупки и нуждаются в специальной защите, другие,
наоборот, способны поглощать ударные воздействия. Самые
простые датчики, например прерыватели, подключаются не-
посредственно к центру управления. Для других, например
инфракрасных или ультразвуковых датчиков, необходим ин-
терфейс согласования. Третьим, еще более сложным, требует-
ся специальная плата и программная обработка, выходящая за
рамки возможностей классического процессора. Последнее
касается камер цветного или черно-белого изображения, ин-
формация которых может быть обработана только при помо-
щи компьютера1.
В главе, посвященной датчикам, вы найдете подробное
описание нескольких решений и программ, которое позво-
лит вам сделать правильный выбор.
Силовые интерфейсы двигателей
Для правильного использования двигателя необходимо знать
его характеристики. Это позволяет выбрать оптимальный
интерфейс управления им. Существует множество схем упра-
вления двигателем: начиная от простого реле, включающего
или выключающего двигатель, заканчивая Н-образными мос-
тами на MOSFET-транзисторах (MOSFET - Metal-Oxide-Semi-
conductor Field-Effect Transistor) - канальных полевых уни-
полярных МОП-транзисторах. В этой книге представлены
1 Эта информация об обязательной обработке изображения компьютером, мягко го-
воря, устарела. На сайте www.dssl.ru московская фирма DSSL заявила о разработке
плат аппаратной обработки изображений, которые используют минимум процессор-
ной мощности - 10-15%. - Прим. науч. ред.
Питание 41
Характеристики источника питания определяются в зави-
симости от желаемого срока автономной работы робота. Так-
же важно правильно распределить общий объем необходи-
мого тока нагрузки для питания электроники между отдель-
ными источниками напряжения. Необходимый ток нагрузки
рассчитывается на основании потребления двигателей, кото-
рые являются самыми энергоемкими компонентами и основ-
ными потребителями тока питания источников напряжения
и ИК-датчиков. Наконец, не нужно забывать о токе, потреб-
ляемом центром управления и его блоками памяти.
Расчет прост: достаточно умножить общий ток потребле-
ния на желаемый срок автономной работы робота.
Пример: робот потребляет ток 1,2 А при напряжении 12 В.
Вы хотите провести две демонстрации робота по 15 мин, то
есть задействовать ток силой 1,2 А в течение 30 мин. Теоре-
тически подошла бы батарея напряжением 12 В и емкостью
600 мАч. Но если добавить на запас безопасности 400 мАч,
кривая разряда тока будет более пологой, емкость батареи
составит 1000 мАч.
Качественный стабилизатор напряжения
Для гарантированной обработки информации, передавае-
мой датчиками, в центр управления должно подаваться ста-
билизированное напряжение 5 В. Некоторые датчики пере-
дают аналоговые сигналы малых уровней, которые должны
быть защищены от помех, возникающих в случае неисправ-
ности в их линии питания. Как правило, двигатели имеют
плохое свойство создавать паразитные помехи в линии пи-
тания и заметно уменьшать напряжение батареи при своей
работе.
Решением всех этих проблем является качественный ста-
билизатор напряжения. Если входное напряжение превыша-
ет 8 В, подойдет стабилизатор напряжения 7805 (рис. 2.11),
но для меньших напряжений вплоть до 5,5 В необходимо ис-
пользовать стабилизатор напряжения L4805 с малым падени-
ем напряжения (LDO - Low Drop Out).
При входных напряжениях, превышающих 10 В, следует
использовать стабилизатор напряжения с ограничением по
напряжению. При применении очень мощных двигателей
44 Глава 2 Оборудование
Никель-металлогидридные аккумуляторы
Во всех примерах использования эти аккумуляторы без труда
забрали пальму первенства у никель-кадмиевых образцов, по-
казав лучшие характеристики в любой области применения.
Они не обладают эффектом запоминания (поэтому их можно
заряжать с любого уровня разряда), не загрязняют окружаю-
щую среду и имеют лучшую энергетическую плотность. Наи-
более часто используемый тип аккумуляторов - АА (или RL6)
в версии NiMH, примерно в два раза превосходит по емкости
NiCd-аккумулятор того же типа. Не забывайте о большей ем-
кости заряда при высокой силе тока и большем количестве
циклов заряда-разряда, что увеличивает срок службы NiMH-
аккумуляторов по сравнению с NiCd-аккумуляторами до 3-5 раз.
Эта технология развивается в соответствии со все более
растущими потребностями (транспортные средства на элект-
рической тяге, переносные приборы).
Лкткк-коные аккумуляторы
Именно этим аккумуляторам принадлежит завтрашний и,
теперь уже, нынешний день, если вспомнить, что в мобиль-
ных телефонах устанавливаются, как правило, Li-Ion-аккуму-
ляторы. Их энергетическая плотность значительно превос-
ходит плотность классических аккумуляторов, а напряжение
в три раза выше (3,6 вместо 1,2 В). Они не загрязняют окру-
жающую среду, как и NiMH-аккумуляторы. Испытания этих
аккумуляторов на транспортных средствах с. электрической
тягой дали положительные результаты. Но особенно широ-
ко они начинают использоваться в области мобильной те-
лефонии. Хотя эти аккумуляторы остаются относительно
дорогими, они уже используются для роботов очень малых
размеров.
Свинцовые аккумуляторы
Старые добрые свинцовые аккумуляторы, но уже на новой тех-
нологической основе еще остаются одними их самых надеж-
ных и продолжают оказывать большие услуги в области робо-
тотехники. Они могут полностью разряжаться, а достаточно
высокая емкость делает их подходящими для использования
Питание 43
батареи емкостью 500 мАч оказываются достаточными при
условии, что они подают ток достаточной силы. К тому же,
сегодня можно найти никель-металлогидридные (NiMH) акку-
муляторы прямоугольной формы и небольших размеров, под-
ходящие для этого случая.
Робототехник должен всегда находиться в курсе последних
нововведений в области батарей, поскольку вес и форма бата-
рей позволяют улучшить сконструированного робота. Наибо-
лее распространенными являются аккумуляторы типа АА (или
R6) следующей электрохимической системы: никель-кадмие-
вые (NiCd) 6F22, никель-металлогидридные (NiMH) и свинцо-
вые аккумуляторы напряжением 12 В. Не нужно забывать клас-
сические щелочные (алкалиновые) батареи и новые литий-ион-
ные аккумуляторы (Li-Ion) с прекрасным будущим. Интересны
разработки литий-полимерных аккумуляторов (Li-Pol), техно-
логия изготовления которых позволяет придавать им произ-
вольную форму, в том числе сверхтонких листов для новых
моделей мобильных телефонов - такой аккумулятор легко уста-
новить в любое свободное место телефона и, соответственно,
робота. Характеристики аккумуляторов и батарей могут значи-
тельно меняться в зависимости от модели.
Никель-кадмиевые аккумуляторы
Никель-кадмиевые аккумуляторы (NiCd) представляют собой
наиболее старые модели аккумуляторов. Им свойственна быст-
рая разрядка при высокой силе тока по причине малого внут-
реннего сопротивления. Но они являются недостаточно эко-
логически безопасными и накладывают ряд ограничений при
использовании. Эти аккумуляторы обладают эффектом запоми-
нания, который сокращает их емкость. Эффект запоминания
представляет собой последствие зарядки от частично разря-
женного элемента. В результате данного эффекта аккумулятор
может быстро прийти в негодность. Перед новой зарядкой его
необходимо полностью разрядить, чтобы исключить эффект
запоминания.
NiCd-аккумуляторы более не в моде, так как Cd токсичен.
Они не могут быть полностью переработаны при утилиза-
ции, в большинстве случаев их можно заменить никель-ме-
таллогидридными аккумуляторами (NiMH).
42 Глава 2 Оборудование
Рис. 2.11. Простейшие схемы стабилизаторов напряжения
одного стабилизатора напряжения недостаточно. Оптималь-
ным из возможных решений будет раздельное питание дви-
гателей и центра управления.
Использование конденсатора в цепи питания крайне необ-
ходимо, так как он фильтрует переменную составляющую на-
пряжения источника питания, называемую пульсациями напря-
жения источника питания, сглаживая их.
Батареи
Выбор батарей или аккумуляторов представляет собой комп-
ромисс между окончательным весом робота, его мощностью
и сроком автономной работы. У роботов, которых конструи-
руем мы, основная проблема заключается в нехватке места для
установки всех составных частей. Мы стараемся сделать робо-
тов, по возможности, самыми компактными, но при таких га-
баритах они потребляют большой ток, что хуже для батарей.
Интересный пример представляют собой роботы, перемеща-
ющиеся в лабиринте. Эти уникумы потребляют ток более 2 А.
Но так как демонстрации их действий длятся порядка 15 мин,
Питание 45
в роботах. Эти батареи можно использовать для очень солид-
ного робота-«тяжеловеса», требующего большой мощности.
В настоящее время по новой технологии изготавливают гер-
метичные необслуживаемые свинцовые аккумуляторы, кото-
рые не выделяют ядовитые пары электролита (электролит
находится не жидком, а в гелеобразном виде) и экологически
безвредны.
Щелочно-марганцевые батареи
Щелочно-марганцевые батареи продолжают использоваться в
робототехнике, несмотря на то что они не пригодны для под-
зарядки. Технология их изготовления и технические характе-
ристики значительно улучшились. Наиболее интересным явля-
ется сокращение внутреннего сопротивления, чем обеспечи-
ваются более высокие токи разряда. Срок службы батарей
увеличился примерно на 50%, а уровень саморазряда ниже,
чем у NiMH-аккумуляторов. Но даже незначительная цена этих
батарей не сопоставима с экономией, получаемой в результате
использования перезаряжаемых аккумуляторных батарей.
Емкость аккумулятора (С) представляет собой количество энер-
'ЦМ' гии, находящееся в аккумуляторе. В состоянии полной зарядки
напряжение аккумулятора составляет 1,2 В, при разрядке на-
пряжение падает до 0,9 В. Если периодически не заряжать ак-
кумулятор, он перейдет в состояние глубокого разряда, и его
нельзя будет перезарядить, после чего такой аккумулятор под-
лежит замене. Емкость выражается в ампер-часах (Ач). Емкость
представляет собой произведение потребляемого тока на про-
должительность разряда тока, выраженную в часах: С = 1,2 Ач.
Зарядные устройства
Необходимо иметь в своем распоряжении зарядные устрой-
ства, соответствующие типу ваших аккумуляторов. Зарядное
устройство можно изготовить самому или приобрести. Вто-
рое предпочтительнее первого - выпускается большое коли-
чество зарядных устройств, в том числе аккумуляторов с бы-
стрым способом зарядки (см. следующий раздел) и по уме-
ренной цене. В любом случае необходимо понять принцийп
зарядки и разрядки для правильного выбора и регулировки
зарядного устройства.
46 Глава Д 2 Оборудование___________________________
Зарядка и разрядка
Существует два способа зарядки аккумуляторов: быстрый и
медленный. Производители батарей всегда рекомендовали
использовать медленный способ. Пользователи же мечтали
о быстрой зарядке, что заставило производителей улучшить
качество продукции, чтобы быстрая зарядка не уменьшила
срок службы аккумуляторных батарей.
Производители батарей напоминают о том, что после не-
скольких быстрых зарядок необходимо выполнить одну мед-
ленную. Принцип медленной зарядки заключается в зарядке
батареи током, равным 0,1 С, в течение примерно 14 ч. Но не
произойдет ничего страшного, если вы забудете о заряжаемой
вами батареи еще на несколько часов.
Пример для аккумулятора емкостью С = 1,2 Ач необходи-
ма зарядка током 120 мА в течение 14 ч.
Для быстрой зарядки до емкости более 0,3 С потребуется
специальное зарядное устройство, ограничивающее продол-
жительность зарядки, как в случае с медленной зарядкой. При
этом необходимо следить за температурой и резким повыше-
нием напряжения (рис. 2.12).
Рис. 2.12. Кривые заряда аккумуляторов NiCd и NiMH
Питание 47
Батарея также не должна разряжаться ниже определенного
значения напряжения, составляющего, как правило, 1 В. Было
определено, что разряд батареи до тока, превышающего 1 С,
уменьшает емкость батареи, что иллюстрируется на рис. 2.13.
Производители аккумуляторных батарей не рекомендуют
использовать циклы зарядки и разрядки, превышающие 3 С,
так как они сокращают срок службы аккумулятора.
Для участия в соревнованиях или демонстрационных показах
необходимо всегда иметь запасные заряженные батареи.
Меры предосторожности
В наши дни техника безопасности превратилась в обязатель-
ное условие. За этим следят как уполномоченные организа-
ции, так и сами люди, работающие с высокотехнологичным
оборудованием, к которому относятся роботы. В любой си-
туации должна быть обеспечена безопасность людей и робо-
тов. Вспомните законы писателя-фантаста Айзека Азимова:
• первый закон: робот не может принести вред челове-
ку, находясь в пассивном состоянии, робот не может
подвергнуть человека опасности;
48 Глава И 2 Оборудование____________________________
• второй закон: робот должен исполнять приказы челове-
ка, если эти приказы не противоречат первому закону;
• третий закон: робот должен защищать свое существо-
вание в той мере, в которой такая защита не противо-
речит первому и второму законам.
Конечно же, мы еще не находимся в той эпохе, когда следо-
вало бы применять эти законы одного из отцов научной фанта-
стики1. Пока соблюдение некоторых элементарных правил тех-
ники безопасности никому не повредит.
Что касается мобильного робота, сбой программы или не-
правильный расчет может превратить его в опасный болид,
прежде всего, для самого себя. Любой удар может привести к
фатальному короткому замыканию для некоторых элементов
или к деформации датчика. Для роботов настоящей пробле-
мой является поломка электронных компонентов. Перегрева-
ющийся двигатель может сломаться и вывести из строя ком-
поненты приводов. Такая поломка может достичь сердца ро-
бота - его процессора. При помощи оптоэлектронной пары
можно разделить силовые элементы и элементы управления
и сделать робот беспроводным устройством, дистанционно
управляемым человеком. Измерительный резистор, установ-
ленный последовательно с двигателем, обеспечит оповеще-
ние центра управления об аварийной ситуации и необходи-
мых мерах по ее устранению. Индикация напряжения должна
обязательно присутствовать на пульте управления.
В конце концов, часто достаточно использовать хорошо
продуманные меры защиты по питанию, в первую очередь,
правильно рассчитанные предохранители по току и месту уста-
новки. Для более тяжелых роботов, в которых используются
платы ПК, должны быть установлены электронные средства
В другой эпохе жили гуманный и жестокий роботы-полицейские, о которых был снят
известный голливудский фильм, в котором робот нарушил три закона роботов и вы-
шел из-под контроля людей. Фильм живописно показал, как это опасно для человече-
ства. Мы находимся на начальной стадии робототехники и нам роботы-убийцы не
опасны. Их нет в природе, но такое возможно, если за создание «фантомов* в будущем
возьмутся террористические организации, которые нарушают гуманистические идеа-
лы человечества. Кроме этого, я уже сообщил ранее о разработках военных роботов,
которые по назначению переступают все законы Азимова. - Прим. науч. ред.
Документы 49
управления питанием, отключающие источник питания при
аварийных ситуациях.
Документы
В книге по робототехнике, представленной вашему вниманию,
содержится много полезной информации. Непросто понять
некоторые тонкости. В главах даются ссылки на многие доку-
менты. Естественно, рекомендуется обращаться к этой допол-
нительной информации для продвижения ввысь к вершинам
роботостроения. Сайт автора указан в конце книги, вы можете
обратиться к нему за необходимой для вас информацией.
Книга дополнена перечнем сайтов по проблематике дан-
ной книги, на которых содержатся некоторые документы и
программы. Чтобы быть в курсе последних событий, проис-
ходящих в области робототехники, необходимо регулярно
знакомиться со специализированными журналами и интер-
нет-сайтами. Интересные с точки зрения автора сайты при-
ведены ниже1:
• сайт по робототехнике: http://www.pekee.com;
• сайт об искусственной жизни и робототехнике: http://
www.vieartificielle.com;
• сайт компании Varta, батареи и аккумуляторы: http://
www.varta.de;
• сайт компании Saft, батареи и аккумуляторы: http://
www.saft.fr.
Мы также даем в примечаниях ссылки на отечественные сайты, интересные с нашей
точки зрения. - Прим. науч. ред.
Глава
3
«Мозг» робота
В этой главе будет предложено несколько плат на базе микро-
контроллеров М68НС11, PIC16F84 или PIC16F873, предназ-
наченных для управления роботом (рис. 3.1).
Эти платы разработаны для оптимального соответствия
применению в роботах начального уровня. Платы также со-
ответствуют исполняемому автором желанию начинающих
Рис. 3.1. Платы на базе различных типов микроконтроллеров
Процессор М68НС11 51
робототехников иметь в своем распоряжении одну плату, на
которой сгруппированы все компоненты для обеспечения
большей надежности. Но они не могут удовлетворить всех
ожиданий роботостроителей. Самые опытные из них в со-
стоянии изготовить платы, представленные в этой главе,
дополнив их более мощными интерфейсами, описанными в
главах 8 и 9.
Если говорить вкратце, интегральные микросхемы М68НС11
и семейство микросхем PIC представляют собой микроконт-
роллеры. Соответственно, в них имеется микропроцессор,
программная память и память данных, логические входы и
выходы, аналоговые входы и другое периферийное оборудо-
вание, обеспечивающее большую вычислительную мощность.
Процессор М68НС11
Этот компонент относится к категории часто используемых
8-разрядных процессоров компании Motorola. М68НС11 суще-
ствует в нескольких версиях, самыми распространенными из
которых являются М68НС11А1, М68НС811Е2 и M68HC11F1.
Процессор М68НС11Е2 обладает в четыре раза большей про-
граммной памятью, чем М68НС11А1, и его проще программи-
ровать. Процессор М68НС11F1 предназначен для использова-
ния с внешней памятью и кварцевым резонатором на более
высокую частоту (табл. 3.1).
Таблица 3.1. Различия в характеристиках между тремя типами
процессоров
68НС11А1 68НС811Е2 68HC11F1
RAM (ОЗУ) 256 байт 256 байт 1024 байт
EEPROM (ЭСППЗУ) > 512 байт 2048 байт 512 байт
Кварцевый резонатор 8 МГц 8 МГц 20 МГц
Корпус 52 контакта 52 контакта 68 контактов
В табл. 3.2 показаны различия блоков памяти трех процес-
соров. Видно, что оперативное запоминающее устройство
(ОЗУ), доступное для чтения и записи (или оперативная па-
мять - RAM - Random-Access Memory), всегда начинается с ад-
реса $0000. А для электрически-стираемого программируемого
52 Глава И 3 «Мозг» робота
ПЗУ (ЭСППЗУ - EEPROM - Electrically Erasable Program-
mable Read-Only Memory), или программной памяти, доступ-
ной только для чтения, в котором хранится программная
Таблица 3.2. Адресное пространство распределения трех видов
памяти*. ОЗУ, регистров и ЭСППЗУ для процессоров 68НС11
68НС11А1 68НС811Ё2 68HC11F1 $0000
RAM $0000 RAM $0000 RAM
Псевдовекторы прерываний $00С4 $OOFF $00FF
$OOFF
Регистры $1000 $103F Регистры $1000 $103F Регистры $1000 $103F
EEPROM (или RAM) $8000
$В600 $FFFF Внешняя
EEPROM
EEPROM $F800
EEPROM $FEOO
$FFFF Векторы прерываний $FFFF Векторы прерываний $FFFF
__________Печатная плата на базе микропроцессора М68НС11 53
память с начальным адресом, дело обстоит иначе (заметим,
что каждый из трех процессоров имеет отличный от других
начальный адрес EEPROM - см. табл. 3.2). Очень важно учи-
тывать это обстоятельство, так как им определяется положе-
ние векторов прерывания.
Печатная плата на базе микропроцессора
М68НС11
Эта печатная плата является одной из самых малых плат, из-
готовленных на базе данного процессора (рис. 3.2).
Рис. 3.2. Миниплата на базе М68НС11
Она максимально упрощена без вреда для надежности и
сконфигурирована для использования в роботе, оснащенном
серводвигателями в качестве средства передвижения. Из-за
малых размеров эта печатная плата используется в роботе-
муравье из главы 11.
Итак, речь идет о первой плате, которую смогут легко из-
готовить начинающие робототехники. Для максимального
упрощения платы элементы внутрисхемного программирова-
ния М68НС11 были удалены. Соответственно, на этапе про-
граммирования понадобится дополнительная внешняя плата
программатора, которая после программирования, как прави-
ло, более не используется, но может понадобиться в процессе
усовершенствования программы. В плате может использовать-
ся М68НС11 двух версий: МНС11А1 и МНС811Е2.
54 Глава И 3 «Мозг» робота
Изучение микроконтроллера
Использование процессора делает необходимым наличие мно-
гих модулей для его нормальной работы. Модуль тактового
R1
1,5 МОм
+UB +UB
R2
10 кОм
R3
10 кОм
СИ
Q1
8 мГц
ов
+UB
R4
10 кОм
S1
Кнопка
6
ОВ
XTAL
EXTAL
roSEr ]эс RESET
S—ТГ0 IRQ
XIRQ
РАЗ
РА4
РА5
РА6
РА7
31
30
29
28
34
33
32
РАО
РА1
РА2
43
45
47
49
44
46
48
50
+UB
РЕО
РЕ1
РЕ2
РЕЗ
РЕ4
РЕ5
РЕ6
РЕ7
РВО
РВ1
РВ2
РВЗ
РВ4
РВ5
РВ6
РВ7
42
41
40
39
38
37
36
35
51
VRH
VRL
РСО
РС1
РС2
РСЗ
РС4
РС5
РС6
РС7
9
10
11
12
13
14
15
16
ов
01
1 мкФ
PD0
PD1
PD2
PD3
PD4
PD5
MODA
MODB
20
21
24
25
R/W -—
+UB
ов
8
2
2
68НС11А1
Рис. 3.3. Электрическая принципиальная схема миниплаты
микропроцессора М68НС11
Печатная плата на базе микропроцессора М68НС11 55
Кб
Рис. 3.3. Электрическая принципиальная схема миниплаты
микропроцессора М68НС11 (окончание)
56 Глава 3 «Мозг» робота
генератора выполняется на базе кварцевого резонатора
8 МГц или керамического резонатора и параллельно ему под-
ключенного резистора обратной связи R1 (рис. 3.3) необхо-
димого для повышения добротности кварцевого резонатора.
Генератор на кварцевом резонаторе имеет самую высокую
точность, несколько ниже точность керамического резонато-
ра, но выигрывает он в прочности и цене. Там, где не требу-
ется высокая точность генератора, используют внутренний
RC-генератор микроконтроллера с точностью 1%. Выбран-
ная частота кварцевого генератора 8 МГц теоретически по-
зволяет выполнять 2 млн команд в секунду. При помощи на-
грузочных резисторов некоторые важные входы устанавлива-
ются в состояние «1»; второй вывод нагрузочного резистора
подключается к «+» источника питания. В устройстве исполь-
зуется простая, но эффективная схема сброса в первоначаль-
ное состояние при включении питания на интегрирующей
цепи C1R4. Импульс сброса подается на вход RESET (вы-
вод 17) также при кратковременном нажатии кнопки S1.
Разъемом К2 обеспечивается переход из режима программи-
рования, названного Mode Bootstrap (Режим самозагрузки), в
режим нормальной работы, Mode Single Chip (Режим одной
интегральной схемы) для М68НС11А1. При запуске режима
самозагрузки достаточно установить на разъем К2 (выводы 1
и 2) короткозамыкающую перемычку. После загрузки програм-
мы перемычка удаляется и плата перезапускается в типовом
режиме работы. Для М68НС11А1 разъем К2 должен постоян-
но быть замкнут перемычкой. Конденсаторы С2 и СЗ предназ-
начены для повышения стабильности напряжения питания,
что улучшает работу процессора. Конденсатор С4 служит для
стабильной работы серводвигателей, подключаемых к плате.
Разъемы КЗ, К4, К6-К9 предназначены для приема инфор-
маций и управления двигателями. Два больших разъема КЗ и
К4 обеспечивают доступ к различным входам-выходам процес-
сора. При помощи разъемов К6-К9 может одновременно упра-
вляться до четырех стандартных серводвигателей.
Д ля последовательного программирования процессора НС11
используется разъем К5, через выводы которого обеспечивает-
ся данная функция. Сигналы программирования от ПК с выхо-
дов разъема DB (выводы 2 и 3) по интерфейсу RS232 поступают
на вход второй платы преобразователя уровней RS232/TTJI на
СП МАХ232 (рис. 3.4). Питание платы преобразователя уровней
Печатная плата на базе микропроцессора М68НС11 57
RS232/TT/I составляет +5 Ви осуществляется по двум прово-
дам от основной платы вместе с двумя сигнальными провода-
ми (всего четыре провода). Плата преобразователя уровней
RS232/TTJI имеет встроенную схему удвоителя напряжения и
инвертора - преобразователя положительного напряжение в
отрицательное, выполненную на переключающихся конденса-
торах С2-С5, чтобы из однополярного напряжения +5 В полу-
чить двухполярные: +10 В и -10 В. Сигналы на вход этой пла-
ты напряжениями -10 В («1») и +10 В («0»), соответствующие
интерфейсу RS232, передаются от ПК, а с разъема К1 платы
преобразователя выхода поступают через разъем К2 на входы
PD0, PD1 (выводы 20 и 21) микропроцессора в последователь-
ном виде и в уровнях ТТЛ («1» соответствует +5 В, а «0» - 0 В).
При использовании процессора М68НС11А1 разъем К5 полу-
чает вторую полезную функцию. В случае применения процес-
сора данной модели для включения работы платы в автоном-
ном режиме необходимо удалить разъем Кб после завершения
программирования, а затем перезапустить процессор при по-
мощи функции сброса или, выключив питание платы на ко-
роткое время и снова включив его.
Рис. 3.4. Преобразователь RS232/TTJ1 на основе интегральной
микросхемы МАХ 232
58 Глава 3 «Мозг» робота__________________________
Для питания платы необходимо напряжение 5 В, которое
подается на плату от четырех последовательно соединенных
аккумуляторов напряжением 1,2 В каждый. В сумме питание
составляет 4,8 В, что находится в пределах допуска напряже-
ния питания микроконтроллера.
Режим самозагрузки (программирование) независим от даль-
нейшей работы микроконтроллера. После выполнения про-
граммирования процессора в нем более нет необходимости.
Светодиод со свечением красного цвета предназначен для
подтверждения нормальной работы последовательного соеди-
нения ПК с микроконтроллером во время программирования.
Изготовление процессорной платы
наМ68НС11А1 или М68НС811Е2
Список компонентов:
• R1 - 1,5 МОм (цветовая маркировка резистора: корич-
невый, зеленый, зеленый);
• R2, R3, R4, R5, R6 - 10 кОм (цветовая маркировка ре-
зистора: коричневый, черный, оранжевый);
• Cl - 1 мкФ/16 В;
• С2 - 100 мкФ/16 В;
• СЗ- 0,1 мкФ;
• С4- 22 мкФ/16 В;
• Q1 - кварцевый резонатор CST 8,00 МГц;
• СП - микроконтроллер М68НС11А1 или М68НС811Е2;
• К1, К2, К5, Кб, К7, К8, К9 - штырьковая разделяемая
перемычка;
• КЗ, К4 - двухрядная гнездовая разделяемая перемычка.
На печатной миниплате при просмотре заметна самая боль-
шая плотность дорожек, отходящих от процессора (рис. 3.5).
В данном случае, высокопроизводительный процессор, вы-
полненный как сверхбольшая интегральная схема (СБИС), об-
наруживает недостаток размеров. С каждой из четырех сторон
его плоского корпуса квадратной формы с общим количеством
в 52 вывода расположено по 14 выводов (в два ряда по семь вы-
водов). Такое расположение делает необходимым выполнение
очень тонких дорожек, что значительно повышает риск воз-
никновения короткого замыкания между выводами во время
пайки выводов микроконтроллера к печатной плате (рис. 3.6).
Печатная плата на базе микропроцессора М68НС11 59
Рис. 3.5. Разводка печатной миниплаты
Рис. 3.6. Размещение компонентов миниплаты
После пайки необходимо убедиться в отсутствии коротко-
го замыкания при помощи мультиметра, установленного в ре-
жим омметра. Такая же проверка должна быть выполнена и
для разъемов КЗ и К4. Разъемы могут быть штырькового (ви-
лочного) или гнездового (розеточного) типа в зависимости от
их применения: вилочные разъемы для серводвигателей, пи-
тания и соединения RS232, розеточные - для подключения
к входам-выходам процессора. Важно не забыть установить
60 Глава И 3 «Мозг» робота
три перемычки (три небольших отрезка электрического прово-
да, образующих дорожку со стороны установки компонентов).
Три отверстия большего диаметра, просверленные по трем уг-
лам контура печати, предназначены для его крепления к карка-
су робота. Пайка компонентов платы потребует терпения во
время ее выполнения и проверки всех площадок (лучше с по-
мощью увеличивающей лупы) на отсутствие замыканий между
ними, которые могут появиться при некачественной пайке.
На плате преобразователя уровней RS232/TDI установле-
ны все элементы, необходимые для проведения программи-
рования процессора от компьютера (рис. 3.7 и 3.8).
Рис. 3.7. Разводка печатной платы преобразователя уровней RS232/TTJ1
Рис. 3.8. Размещение компонентов платы преобразователя уровней RS232/TTJ1
Плата размера Mini-Board g*|
Разъем К1.не понадобится, если припаять четыре прово-
да соединительного кабеля. К2 - разъем, специально пред-
назначенный для соединений RS232. В данном случае он дол-
жен быть 9-выводным розеточным разъемом типа DB9. На
плате предусмотрена установка светодиода диаметром 3 мм
с малым потреблением тока.
Кабель соединения платы с компьютером представляет
собой ленточный гибкий кабель (провод к проводу, без пере-
сечения проводов). Компьютер оборудован разъемом после-
довательного соединения интерфейса RS-232, иначе называ-
емым COM-портом, который оканчивается также разъемом
типа DB9. Кабель является ответной частью разъема после-
довательного COM-порта на ПК.
Список компонентов:
• R1 - 2,2 кОм (красный, красный, красный);
• С1,С2, СЗ, С4, С5-10 мкФ/16 В;
• D1 - красный светодиод диаметром 3 мм;
• СП - микросхема преобразователя уровней RS232/ТТЛ
МАХ232;
• К2 - вилочный разъем DB9.
Плата размера Mini-Board
Данная плата специально разработана для управления робота-
ми. Она оптимизирована для управления небольшими двига-
телями, приема и обработки информации с различных датчи-
ков. Среди преимуществ данной платы следует отметить: не-
большой размер (рис. 3.9), идентичный размеру кредитной
карты; малое потребление тока; простоту программирования.
Преобразователь RS-232/ТТЛ на микросхеме МАХ232 для
подключения к компьютеру через последовательный интер-
фейс встроен в плату. Этот преобразователь может использо-
ваться не только для программирования платы, но и являться
интерфейсом управления от компьютера.
Плата обладает следующими характеристиками:
• управление четырьмя двигателями, работающими от
напряжения в диапазоне 6-36 В, с максимальным то-
ком потребления 600 мА;
62 Глава 3 «Мозг» робота
Рис. 3.9. Плата Mini-Board
• восемь аналоговых входов для подключения аналого-
вых датчиков;
• восемь входов-выходов для подключения цифровых двух-
позиционных датчиков типа «вкл./выкл.»;
• три или четыре входа подключения к таймерам-счет-
чикам и четыре или пять выходов широтно-импульсно-
го модулятора;
• управление пятью серводвигателями через стандарт-
ные разъемы;
• процессор 68НС811Е2 с ЭСППЗУ емкостью 2 Кб про-
граммной памяти;
• последовательное соединение с ПК по интерфейсу RS232;
• скоростное соединение для организации сети Mini-Board;
• единое питание от напряжения не менее 6 В.
Эта плата была разработана Фредом Ж. Мартином из изве-
стного американского университета MIT для участия в одном
из первых конкурсов по робототехнике, проведенном в США
в 1990 году. В следующем году была разработана 32-кил ©байт-
ная версия платы, получившая название «Плата, размещающа-
яся на ладони» (Handy Board). Эта последняя версия, хотя и
является более мощной и полной, имеет слишком большие
размеры. За удобство нужно платить... Поэтому была усовер-
шенствована плата Mini-Board. В имеющихся в настоящее
время документах описана версия 2.0 выпуска 1993 года, но
в продаже имеется несколько измененная версия 2.1 выпуска
Плата размера Mini-Board 63
1994 года. Эта плата позволяет конструировать небольших
программируемых роботов в комфортных условиях.
Процессор, изображенный в центре рис. 3.10, соединен с
многочисленными разъемами. Подтягивающие или нагру-
зочные резисторы к верхнему уровню определяют направле-
ние переключений на различных входах. В плате установлен
пьезодинамик для генерирования узкого диапазона звуковых
тонов. Два светодиода информируют о нормальной работе
микропроцессора и передаче данных, ведущейся через пос-
ледовательное соединение RS232. Последовательный интер-
фейс связи RS232 работает в одну сторону - от-ПК к плате
Mini-Board. Подача данных в обратную сторону - от платы
Mini-Board к ПК - не предусмотрена. Для этого необходим
обратный преобразователь TTJI/RS232, которого на плате
нет. Две кнопки без фиксации выполняют режим возврата в
исходное состояние - перезагрузку (SW2 - Reset) и режим
запроса прерывания процессора (SW1 - IRQ). В целях эконо-
мии места громоздкий кварцевый резонатор заменен мень-
шим по размерам керамическим резонатором. Стабильность
питания улучшена за счет использования стабилизатора на-
пряжения с малым падением напряжения LM2931 и двух бло-
кировочных катушек индуктивности L1 и L2, предназначен-
ных для исключения помех от двигателей на выходные вы-
воды стабилизатора напряжения. Два мостовых усилителя
L293D обеспечивают управление четырьмя двигателями по-
стоянного тока или двумя шаговыми двигателями. В схеме
предусмотрена установка восьми светодиодов с малым по-
треблением тока: по два на каждый двигатель, чтобы указы-
вать направление вращения четырех двигателей - по часо-
вой или против часовой стрелки.
Одна из интересных особенностей этой платы заключает-
ся в разъемах. Питание датчиков или серводвигателей про-
исходит непосредственно через разъемы.
Кроме микросхемы мостового усилителя L293D, имеющей максимальный ток нагруз-
ки 1А, можно использовать ее более мощный аналог L293,.y которого максимальный
ток нагрузки составляет 2А. Остальные параметры и цоколевка аналогичны. Кроме
того, имеется российский аналог микросхемы L293 - К31128KT4A. - Прим. науч. ред.
64 Глава И 3 «Мозг» робота
Установка
SW1
Запрос
~ прерывания
R6/2.2 МОм
+5 В
RP4
9 7x 47 кОм
1111111
8|?|g|!?r
ь =
О Q И
о
2
3
IS
8_
PE5/AN5
PE1/AN1
PE4/AN4
PEO/ANO
РВ0/А8
РВ1/А9
РВ2/А10
PB3ZA11
РВ4/А12
РВ5/А13
РВ6/А14
РВ7/А15
РА0/1СЗ
‘“^iXTAL
PCO/ADO
PC1/AD1
PC2/AD2
PC3/AD3
PC4/AD4
PC5/AD5
PC6/AD6
PC7/AD7
RESET
XIRQ
IRQ
PDO/RxD
9
10
11
12
13
14
15
16
17
18
19
20
+5 В
cxgcts
R3/10kOm R5/100kOm U2F
Свето- 4?
диод 5
RP2
4 х 1 кОм
' RP3c
3x1 кОм
R4 ЮкОг? Я
Q1
2N3905
RP3a
9 -
и
68НС11
3
+5 В
Рис. 3.10. Принципиальная электрическая схема платы Mini-Board
Плата размера Mini-Board §5
+5 В
оооооооо
«Земля»
Разъем аналогичных
входов данных (порт Е)
Вых^Вх.^^'
LM2931Z5.0 + Двигатель
---------- 12 9
С1
О мкФ|330 мкФ
RP6 9 х 47 кОм
S
со
£
L-ЧВх. 1-а
CS2
«Земля»
Свето-
диод?
>+5В Свето-
+ Двигатель диод 2
г-Ч081
9
V8S
U2B
Разъем
порта А
Свето-
диод 1
Свето-
диод 9
Пьезо- 9
динамик
CS1
CS2
«Земля,
Вых. 1 -apLT
6
Вх. 1 -а
Вх-1’ьи4ЫХ’1"Ь
L293D
Вх. 2-а Вых. 2-а
Свето-
диод 6 +5 В
о
11
Вх. 2-Ь Вых. 2-bpq^
16
Vss
Вых. 1-а
Вх. 1’ь
L293D
Вх. 2-а Вых. 2-а
Вх. 2-Ь Вых. 2-Ь
Свето-
диод 4
Свето- Свето-
диод 3 диодв
66666666
RP1 5х
1 кОм
Рис. 3.10. Принципиальная электрическая схема платы Mini-Board (окончание)
3-7388
66 Глава И 3 «Мозг» робота__________________________
Изготовление платы Mini-Board
Эта плата представляет собой двустороннюю печатную плату
с высокой плотностью размещения компонентов. Поэтому
для начинающих рекомендуется приобрести готовую печат-
ную плату, установить необходимые компоненты и аккуратно
распаять на плате (вариант для пытливых) или приобрести
полностью готовую плату с установленными и распаянными
компонентами (вариант для ленивых). Для тех, кто, несмотря
ни на что, желает погрузиться в изготовление этой платы, в
конце главы 3 в разделе «Документы» дана ссылка на сайт, где
можно найти полную документацию о плате Mini-Board. Ей
также посвящены многие сайты в Интернете, на которых
можно найти многочисленные примеры устройств с сопут-
ствующими программами. Необходимую информацию о пла-
те можно также почерпнуть на сайтах, указанных в поисковых
системах Яндекс, Рамблер, Google. В главе 11 представлен
робот - борец сумо с сопутствующей программой. Отдельно
печатную плату можно приобрести в компании Douglas (Кали-
форния).
Плата Handy Board
Название было дано плате благодаря ее размеру, так как она
на самом деле помещается на ладони (рис. 3.11).
Эта плата является дальнейшей модификацией платы Mini-
Board. Она идеально подходит для реализации образователь-
ных проектов в обрасти робототехники. Размер памяти до-
статочен для разработки программ на языке С. Графический
интерфейс обеспечивает дополнительное удобство при про-
граммировании, а также диалог между несколькими платами
Handy-Board при помощи ИК-интерфейса.
Плата имеет следующие характеристики:
• управление четырьмя двигателями от напряжения в диа-
пазоне 6-36 В и максимального тока нагрузки 600 мА;
• семь аналоговых входов для подключения аналоговых
датчиков;
• девять входов для подключения цифровых двухпози-
ционных датчиков «вкл./выкл.»;
Плата Handy Board (J7
Рис. 3.11. Плата Handy Board
• три или четыре входа подключения к таймерам-счет-
чикам и четыре или пять выходов, подключенных к
широтно-импульсным модуляторам;
• микроконтроллер М68НС11А1;
• оперативное запоминающее устройство (RAM) объе-
мом 32 Кб, сохранение данных (энергонезависимость)
обеспечивается питанием от отдельной батареи;
• ЖК-индикатор с двумя строками по 16 символов в каждой;
• последовательное соединение по интерфейсу RS232 на
отдельно подключаемой плате, которая преобразует
уровни RS-232 в ТТЛ-уровни для последовательного про-
граммирования микроконтроллера от ПК;
• органы управления: потенциометр и две пользователь-
ские кнопки;
• ИК-передатчик и ИК-приемник, работающие на ульт-
развуковой частоте 38 кГц;
• ускоренное соединение со скоростью 1 Мбод;
• разъем для подключения дополнительного оборудования.
Плата была разработана с упором на широко развитое про-
граммное обеспечение и, в меньшей степени, на схемотехни-
ку, то есть многие функции платы были перенесены с аппарат-
ного на программный уровень. Процессор, находящийся в тес-
ном окружении прочих компонентов, ОЗУ объемом 32 Кб,
3
68 Глава И 3 «Мозг» робота________________________
а также двухстрочный индикатор по 16 символов в строке обес-
печивают определенный комфорт при программировании пла-
ты. Как и Mini-Board, при помощи этой платы можно упра-
влять четырьмя небольшими двигателями, считывать девять
цифровых и семь аналоговых входов. Различия между этими
платами существенные. Можно передать или принять ИК-со-
общение при помощи Handy-Board или задать аналоговую ко-
манду с помощью потенциометра. Но самое интересное зак-
лючается в возможности подключения дополнительного обо-
рудования к шине данных и управлении им при помощи
линий управления дополнительным периферийным оборудо-
ванием. Описание платы подключения дополнительного обо-
рудования указано в сопутствующих документах.
Кроме аппаратных улучшений платы Handy-Board ей при-
дается очень качественный программный продукт. Его вер-
сия 2.8 является бесплатной, версия 3.1 - платная. Бесплат-
ная версия находится через поисковую систему Google.
Изготовление Handy Board
Эта плата также имеет двухстороннюю разводку печатных
проводников с высокой плотностью размещения компонен-
тов. Соответственно, начинающим робототехникам реко-
мендуется либо приобрести готовую печатную плату, уста-
новить и распаять на ней компоненты, либо приобрести
полностью готовую плату. Эта плата очень известна в США,
существует специальный документ, поэтапно описывающий
ее монтаж. В описании указываются различные проверки,
которые необходимо выполнять после установки каждого
компонента1.
Робот F1
Этот раздел посвящен роботу, изготовленному на базе про-
цессора M68HC11F1 с оперативной памятью ОЗУ объемом
1 Кб и перепрограммируемой памятью ЭСППЗУ объемом 32 Кб.
Относительно большой объем программной памяти дает
Готовую плату можно заказать через Интернет, найдя продавца через известные по-
исковые системы, например Google. - Прим. науч. ред.
Робот Fl 69
возможность написания программ на более совершенном язы-
ке без необходимости соблюдать ограничения конечного раз-
мера программы.
Процессор F1 из семейства 68НС11 изготавливается в кор-
пусе с 68-контактными выводами и предназначен для широко-
го диапазона применений. Соответственно, он снабжен полной
неуплотненной шиной адресов и данных и системой декодиро-
вания адресов. В плате использована программная память ЭС-
ППЗУ на микросхеме 28С256. Плата разработана специально
для тех, кто хотел бы запрограммировать робота, не припаяв
ни одного компонента (рис. 3.12), то есть для сверхленивых.
Рис. 3.12. Плата робота F1
Разъемы обеспечивают подключение основных элементов
робота: питания, двигателей, ИК-датчиков обнаружения пре-
пятствий и программирования. В плате предусмотрены ИК-
датчики, обеспечивающие обнаружение препятствий до со-
прикосновения с ними (рис. 3.13). Спереди у робота «усы-ан-
тенны». Конечно, антенны для робота не предусмотрены, а
проводами в виде усов он стилизован под урбанизированное
насекомое.
Один из приемников служит для приема команд, передан-
ных при помощи ИК-пульта дистанционного управления. По-
воротный переключатель с 10 положениями обеспечивает
70 Глава И 3 «Мозг» робота
Рис. 3.13. Декоративные «усы-антенны» робота F1 и ИК-датчики
выбор различных программ. На ЖК-индикатор выводятся
понятные сообщения о состояниях робота или информация,
поступающая от датчиков.
Рис. 3.14. Готовая плата
Робот Fl 71
Электронная плата достаточно сложна для начинающего.
К счастью, нет необходимости в ее изготовлении, так как она
продается компанией ControLord (рис. 3.14). Выйдя на сайт
этой компании www.controlord.fr, можно заказать электрон-
ную плату или найти необходимую документацию по ней.
Не вдаваясь в подробности, следует отметить наличие со-
лидного объема (32 Кб) программной памяти, адресация кото-
рой выполняется непосредственно процессором M68HC11F1
(рис. 3.15).
Также на плате предусмотрен специальный мостовой Н-уси-
литель для управления двигателями - IC6 (L293D), и двухстроч-
ный индикатор, передающий ценные сведения о состоянии
робота. Кроме этого, имеется возможность дополнительного
подключения других датчиков или управления другими двига-
телями (постоянного тока или шаговыми) через разъем под-
ключения дополнительного оборудования. Схема дополнена
специальным преобразователем уровней интерфейса RS232/
ТТЛ для программирования памяти ЭСППЗУ от ПК.
Плата подключается к ПК последовательно через преоб-
разователь уровней интерфейса RS232/TTJI на микросхеме
С14В
74LS00
Рис. 3.15. Электрическая схема робота F1 (начало)
72 Глава И 3 «Мозг» робота
Режим
Vcc
Q R11
lb-i10kOm
Перемычка
Vcc Ю7
DS1813
2
3
5
6
8
9
In Reset —
Gnd
Переключатель
SWROT
rrrr
'О 'Q 'O 'Q
X -L XTAL1 i-no
18ПФГ 4'91g|M^
RI/IOMOm
6
IB C23
10мксСи
4f->EXTAL IC1
jC > Прерывание
XIRQ _________
MODB/VSTBY
MODA/UR
RST
RXW/DPO
TXD/PD1
MISO/PD2
MOSO/PD3
SCK/P04
SS/PD5
VRH
VRL
PGO
PG1
PQ2
PG3
CSI02/PG4
OS 101/PG 5
CSGEN/PG6
CSPRGPG7
PEO/AN
PE1/AN1
PE2/AN2
PE3/AN3
PE4/AN4
PE5/AN5
PE6/AN6
PE7/AN7
«!
C5Z
0.1 мкФ
R7
30
31
_______
68
_______67
| PGO 27
PG1 26
Z PG2 25
PG3 24
PQ4 23
CSIO1 22
PG6 21
CSPRG 20
9 PEO 59C
8 PE1 61
7 PE2 63
6 PE3 65
5 PE4 60
4 PE5 62
3 PE6 64
2 PE7 66
L9-1 10kOm
PA4 38
PA5 37
PA6 38
ЮЗ
MAX232
8
13
1э
16*
6
2
R2IN R20UT
R1IN R10UT
T2OUT T2IN
T1OUT T1IN
«Земля» С2-
VCC С2 +
Vs- С1-
v»+ С1 +
9
12
10
C22
10 мкФ
11 С21
5 „ЮмкФ
7~ih~i
3
1 л ।
С20
ЮмкФ
Vcc
XTAL
4XOUT
E
R/W
PB7/A15
PB6/A14
PB5/A13
PB4/A12
PB3/A11
PB2/A10
PB1/A9
PB0/A8
PF7/A7
PF6/A6
PF5/A5
PF4/A4
PF3/A3
PF2/A2
PF1/A1
PFO/AO
D7/PC7
D6/PC6
D5/PC5
D4/PC4
D3/PC3
D2/PC2
D1/PC1
DO/PCO
vss
GND
PAI/OC1/PA7
ЮЗ/РА0
Ю2/РА1
Ю1/РА2
OC4/OC1/PA4
OC3/OC2/PA5
OC2/OC1/PA6 OC5/IC4/OC1
4 E
5 R/W
43 A15
44 A14 Г
45 A13
46 A12
47 A11
48 A10
49 A9
50 A8
51 A7
52 A6
53 A5
54 A4
55 A3
56 Л2
57.A1
58 AO
16 D7
15 D6
14 D5
13 D4
12 D3 "
11 D2
10 D1
9 DO
34
SSE
35 PA7
42 РАО
41 PA1
40 PA2
39 РАЗ
MC88HC11F1
..РА7 1
РА6—.2
РА5 з
РА4 4
РАЗ 5
РА2 6
РА1 7
РАО 8
~10
Вх1
Bx2
ВхЗ
Вх4
Вх5
Вхб
Вх7
Вх8
Фиксирующий диод
Вых1
Вых2
Вых3
ULN2803 Вых4
Вых5
Выхб
Вых7
Вых8
1Z_
Д5_
14
13
12
11
Рис. 3.15. Электрическая схема робота F1 (продолжение)
___________________________________________________Робот Fl 73
АЮ...14]
Jfi___10-
Al____1
A2____8
A3____7
A4____6
AS____5
A6____4
A7____3
A8___25
A9___24
A10 21
A11 23
A12 2
A13 26
A14 1
VccO-^
14
D [0—.7]
Разъем 3
ML ” w °
0"0’P'
CI4A
74LS00
сзо:
0,1 мкФ
= C3i
0,1 мкФ
Ю2
28C256
AO
Al
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
СЕ
ОЕ
WE
VCC
«Земля»
DO
DI
D2
D3
D4
D5
D6
D7
85888882
PE4
PE5
PE6
PE7
PA5
PA4
Vcc
20 CSPRG
22_______
27_______
10kOm
1.1.. ..И>
12 D1
13 D2
15 D3
16 D4
17 DS
18 D6
19 D7
Vcc
О
LCD
47 Ом П 02
AO
C 1
-C 2
-C 3
CSI01
-C 5
< e
-C
<
-C
<
-C
8
9
10
11
12
13
14
2
2
2
S
i
250 ОмП Р1
POOL
PQL
2
R10
L9-1
Wk0MPG4N1
PG6N 9
PG3 15
»Vcc
C 2
< 3
< 5
14
-C 9
< Ю
C 11
z
2
СО
со
Ф
IN1
IN2
Vs Vcc
Vs Vss
ice
L293D
IN4
EN1
EN2
Gnd Gnd Gnd Gnd
go 032 =
z 50,1 мкФ
Ф о
3.
OUT1 g-1
OUT2
OUT3
OUT4P!
6
11
14
= C33
0,1 мкФ
q bo
47 Ом
250 Ом
ИК-светодиод
Разъем 3
MR
Рис. 3.15. Электрическая схема робота F1 (окончание)
74 Глава Я 3 «Мозг» робота
МАХ232. Программный продукт под Windows позволяет со-
здавать собственные программы для данной платы и загру-
жать их в нее. После загрузки программ плата отключается
от компьютера и становится автономной.
Плата продается с различными программами, предназна-
ченными для тестирования робота и написания на их осно-
ве собственных программ.
Плата PIC16F876
Эта плата предназначена для использования микроконтрол-
леров PIC16F873 и PIC16F876 в минимальной конфигурации.
Для применения она должна быть установлена особым обра-
зом (рис. 3.16).
Принципиальная схема платы показана на рис. 3.17.
В схеме применена минимальная конфигурация, используе-
мая компанией Microchip для своей системы внутрисхем-
ной разработки (ICD - In-Circuit Design). По сравнению с
предыдущей платой для программирования не использу-
ется ПК и, соответственно, преобразователь RS232/TTJI.
Рис. 3.16. Установка платы на роботе, предназначенном для движения
по лабиринту
Плата PIC 16F876 75
+5 В
СИ
9
Vdd
Osc1
Q1
4 МГц
10
OB
Osc2
RC7
RC6
RC5
RC4
RC3
RC2
RC1
RCO
18
17
16
15
14
13
12
11
Л
-.6 RB3
ZI 5 RB6
II 4 RB7
^=-
1 MCLR
0
OB
S1
R1
47 кОм
R2
470 Ом
Reset
6
OB
+5 В
MCLR
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RBO
28
27
26
25
24
23
22
470 0м
R3
+5 В
R4
100 Ом
8
19
Vss
Vss
RA5
RA4
RA3
RA2
RA1.
RAO
6
5
4
2
2
S2
OB
OB
PIC16F873P
+5 В
10 мкФ
6
OB
+5 В
C2
0,1 мкФ
OB
R5
1 кОм
D1
Светодиод
JP2
JP1
Рис. 3.17. Электрическая схема платы PIC16F876
Программирование микроконтроллера проводится от сис-
темы внутрисхемной разработки ICD.
Кварцевый резонатор в очередной раз заменен керамиче-
ским резонатором. Возврат в исходное состояние выполнен по
схеме, разработанной компанией Microchip. Дополнительная
кно*пка, соединенная с RB0, позволяет тестировать линию
76 Глава 3 «Мозг» робота_________________________
в режиме входа в конкретной программе и познакомиться с
прерываниями.
Питание на микроконтроллер подается через его разъе-
мы. Разъем J1 сочетается с системой ICD компании Micro-
chip, но может также использоваться для программирования
микроконтроллера при помощи самого обычного програм-
матора. Питание платы защищается от помех конденсатора-
ми С1 и С2. Это же питание подается на плату, подключаемую
к разъему J1.
Разъемы JP2 и JP3 в точности повторяют цоколевку мик-
роконтроллера, за исключением контактов генератора (вы-
воды 9 и 10).
Изготовление платы PIC16F876
Список компонентов:
• R1 - 47 кОм (желтый, фиолетовый, оранжевый);
• R2, R3 - 470 Ом (желтый, фиолетовый, коричневый);
• R4 - 100 Ом (коричневый, черный, коричневый);
• R5 - 1 кОм (коричневый, черный, красный);
• Cl - 1 мкФ/16 В);
• С2-0,1 мкФ;
• D1 - светодиод диаметром 3 мм со свечением красного
цвета;
• СП - микроконтроллер PIC16F873 или PIC16F876;
• Q1 - резонатор с частотой 4 МГц;
• J1 - разъем RJ11;
• SI, S2 - кнопки без фиксации, предназначенные для
установки на печатной плате;
• JP2, JP3 - вилочный разъем, выполненный из длинных
разъединяемых перемычек.
Корпус интегральной схемы - 28-выводной. Плату неслож-
но изготовить (рис. 3.18).
Следует просверлить отверстия диаметром 0,8 мм. Для
установки разъемов JI, JP2 hJP3 диаметр отверстий увеличи-
вается до 1 мм.
J1 представляет собой разъем, предназначенный для про-
граммирования PIC. Это специальный разъем типа RJ11. Не
следует забывать о наличии на разъеме перемычки.
Файл взят с сайта
www.kodges.ru,
на котором есть еще
много интересной
литературы
Документы 77
Рис. 3.18. Печатный контур и размещение компонентов
В первую очередь устанавливаются компоненты низкого
профиля, например, перемычка, затем резисторы, за кото-
рыми следуют кнопки SI, S2 и корпус интегральной схемы.
Далее - все остальное.
В качестве разъемов JP2 и JP3 можно использовать вилоч-
ную разъединяемую перемычку с длинными штырьками.
Документы
На сайте http://douglas.com/hardware/psbs/mainboard.html
вы найдете документ о плате Mini-Board -miniboard.pdf, -
который дополняет информацию, представленную в данной
главе.
Все необходимые документы о плате Handy-Board можно
найти на сайте http://handy-board.com. Далее по ссылкам са-
мый полный документ - handyboard.pdf. Возникающие вопро-
сы по данной плате можно задать или посмотреть типичные
78 Глава И 3 «Мозг» робота________________________________
ответы в сетевом файле вопросов и ответов FAQ по адресу:
http://handy-board.com/faq.
Документ о плате PIC16F876 - сайт http://microchip.com,
далее по ссылкам найти документ board_876.pdf.
Сайт, посвященный плате Handy-Board: http://www.handy-
board.com.
Доступ на сайт Массачусетсткого технологического ин-
ститута (MIT) - архив документов о НС11, Mini-Board, Handy-
Board, Ассемблер Motorola, бесплатный компилятор ICC11:
ftp: //cher.media.mit.edu/pub/projects/.
Сайт компании, выпускающей плату Робот Fl: http://www.
controlord.fr.
ГлаваИ
Программирование
микроконтроллера PIC16F84
Общие сведения о микроконтроллерах PIC
компании Microchip
При первом знакомстве с микроконтроллерами PIC компа-
нии Microchip сразу же заметна их архитектура, сильно от-
личающаяся от архитектуры других процессоров. Она может
сбить с толку тех, кто привык к классической архитектуре
центрального процессора, блоков памяти и периферийного
оборудования, подключенных параллельно к одной и той же
мультиплексируемой (разделяемой) шине команд и данных,
что присуще Фон-неймановской архитектуре. В микроконт-
роллерах PIC имеются две отдельные шины команд и дан-
ных, что соответствует двухшинной Гарвардской архитекту-
ре. Между собой разделены постоянная энергонезависимая
память программ (ЭСППЗУ) и энергозависимое ОЗУ данных.
Команды, в основном, хранятся в ЭСППЗУ и служат для указа-
ния микроконтроллеру исполняемой программы. В PIC пре-
дусмотрен очень малый объем ОЗУ. Он предназначен для хра-
нения переменных, используемых в программах. Также очень
малое пространство отведено для хранения данных - исполь-
зуется электрически стираемое перепрограммируемое посто-
янное запоминающее устройство ЭСППЗУ, достаточно мед-
ленное и требующее деликатного обращения.
80 Глава И 4 Программирование микроконтроллера PIC 16F84
Различные типы PIC
Существует впечатляющее количество семейств микроконт-
роллеров PIC. К ним относятся серии начального (PIC12),
среднего (PIC16) и высшего (PIC18) уровня, которые покры-
вают практически все применения в области электроники:
от самых простых до чрезвычайно сложных. Эти микрокон-
троллеры могут иметь различное количество входов-выхо-
дов: от небольшого числа для корпусов малого размера (в
восьмивыводных корпусах) до нескольких восьмибитовых
портов для корпусов самого большого размера (в 40/44-вы-
водных корпусах). С выходов PIC возможно непосредствен-
но управлять светодиодами, так как выводы допускают ток
нагрузки в 20 мА, которым «зажигает» сегмент светодиода.
В микроконтроллерах этого семейства имеется от одного до
трех встроенных восьмиразрядных таймеров, которые вы-
полняют более сложные функции, например измерение вре-
мени или генерирование сигналов широтно-импульсной мо-
дуляции. Некоторые микроконтроллеры работают в режи-
мах синхронной или асинхронной приемопередачи, которая
используются для связи PIC с ПК или внешними терминала-
ми, с микросхемами ЦАП, АЦП и т.д. Для связи с периферий-
ными устройствами в микроконтроллерах также применяют-
ся режимы последовательного периферийного интерфейса
(SPI) и шины между интегральными схемами I2C (IIC = FC-
Inter IC).
Радиолюбители, как правило, используют модели PIC12C508,
PIC12C509, PIC16F84 и PIC16F876. Очевидно, что для приме-
нения этих компонентов требуется как общее знание микро-
контроллеров PIC, так и знание конкретной модели. Всю не-
обходимую информацию можно получить на бесплатном
двойном компакт-диске компании Microchip или, посетив ее
интернет-сайт (дан в разделе «Адреса в Интернете»).
Дальнейшие объяснения будут касаться, прежде всего, мик-
роконтроллера PIC16F84.
Блоки памяти 81
Постоянная память ЭСППЗУ, или память
хранения команд
В PIC16F84 команды имеют ширину 14 бит и хранятся во флэш-
памяти ЭСППЗУ. Объем памяти составляет 1024 команды.
Изменение программы возможно только при помощи внеш-
него программатора. При сбросе микроконтроллера в ис-
ходное состояние (по сигналу MCLR - Master clear - Очист-
ка базового компонента) происходит установка в ноль счет-
чика команд, и выполнение команд производится начиная
с этого адреса (000h). Так как программа находится в посто-
янной энергонезависимой памяти, при отключении пита-
ния ее стирания не происходит.
Оперативная память RAM
Помимо 14-разрядной шины памяти программ в PIC имеется
восьмибитовая шина данных, через которую обеспечивается
доступ к внутренним регистрам, портам, таймеру и т.д. В PIC
16F84 имеется 80 байт памяти данных, занимаемых регистрами
специального и общего назначения. 12 первых из восьмидесяти
байт отданы под регистры специального назначения, используе-
мые микроконтроллером. Остальные 68 байт занимают регист-
ры общего назначения, которые выполнены как ОЗУ. В них обес-
печивается временное хранение переменных. Доступ к различ-
ным регистрам производится при помощи команд. Это также
означает, что ОЗУ недоступно для программирования извне, как
в большинстве других процессоров. При выключении питания
данные, находящиеся в ОЗУ, уничтожаются. В некоторых случа-
ях ОЗУ питается от аккумуляторной батареи, и тогда при выклю-
чении основного питания данные ОЗУ сохраняются.
Блоки памяти
В PIC все внутренние регистры распределены на банки. Не
все регистры доступны в одно и то же время. Наиболее часто
82 Глава 4 Программирование микроконтроллера PIC 16F84
используемые в программе регистры находятся в банке 0.
В банке 1 располагаются реже используемые регистры. Пере-
ход между банками осуществляется при помощи бита 5 (RP0)
регистра состояния STATUS. Этот регистр присутствует в
обоих банках. При установке бита в 0 доступен банк 0, при
установке бита в 1 - банк 1.
Для обеспечения работы с разными банками многие реги-
стры присутствуют в обоих банках (табл. 4.1).
Таблица 4.1. Карта распределения различных регистров
Адреса
регистров
00h
01 h
02h
03h
04h
05h
05h
07h
08h
09h
OAh
OBh
OCh
2Fh
30h
7Fh
Ind Adr Ind Adr 80h 81h 82h 83h 84h
TMRO OPTION
PCL PCL
STATUS STATUS
FSR FSR
PORTA TRISA 85h
PORTB TRISB '86h
87h
EEDA1A EECON1 88h
EEADR EECON2 89h
PC LATH PC LATH 8Ah
INTCON INTCON 8Bh
36 свободных 8Ch
регистров
общего
пользования
Команды 83
Память хранения данных EEPROM
В микроконтроллере PIC 16FF84 имеется также третий тип
памяти, называемый памятью хранения данных. Эту память
можно использовать для данных, которые необходимо со-
хранить при выключении микроконтроллера, а также неопе-
ративных данных. Неоперативными данными могут быть
настроечные параметры, изменяемые константы и даже тек-
сты. Объем памяти хранения данных небольшой. Она содер-
жит 64 байта, которые стираются и перепрограммируются
электрическими сигналами.
Но эта память не может использоваться в качестве ОЗУ. Ее
адресация выполняется не напрямую, а при помощи четырех
регистров. К тому же, процедура записи данных не является
быстрой. Но важным преимуществом памяти хранения дан-
ных ЭСППЗУ (EEPROM Data Memory), или флэш-памяти дан-
ных (FLASH Data Memory) будет то, что программирование
этой памяти может выполняться одновременно с программи-
рованием остальных компонентов микроконтроллера. Для
записи или чтения данных, хранящихся во флэш-памяти, не-
обходима последовательность специальных команд, использу-
ющих регистры EEADR, EEDATA, EECON1 и EECON2, связан-
ные с памятью. Так как два последних регистра находятся в
банке 1, для их использования необходим переход в этот банк.
Команды
Сокращенный набор простых команд (37 команд) и его ре-
зультат - малая разрядность команд (14 бит), заставляют пой-
ти на некоторые компромиссы. Нельзя выполнять действия
между двумя регистрами непосредственно. В этом случае
выходом из положения будет использование рабочего регист-
ра W (от work - работа), через который и проводятся основ-
ные операции микроконтроллера. Регистр W можно назвать
«рабочей лошадкой» микроконтроллеров Microchip. Напри-
мер, для выполнения копирования одного регистра в другой
всегда требуются две команды, и применяется рабочий ре-
гистр W. Возьмем пример световой последовательности, ко-
торую мы хотели бы получить на выходах порта В:
84 Глава И 4 Программирование микроконтроллера PIC 16F84
MOVF MOTIF, W /копирование содержания регистра MOTIF
/в рабочий регистр W
MOVWF PORTB /копирование содержания регистра W в Port В
Первая команда, MOV f, d выполняет копирование реги-
стра f (по-английски file) в d (в данном случае - W). Вторая
команда, MOVWF, f, копирует содержимое регистра W в ре-
гистр f (MOTIF в данном примере).
Во время программирования возможно заносить постоян-
ные значения в различные регистры. Microchip называет дан-
ные этого типа литеральными данными. Литеральные данные (к)
являются восьмибитовыми данными (0-255). Команды, содер-
жащие литеральные данные, работают только с регистром W.
Таким образом, для занесения литеральных данных в регистр
необходимо выполнить две команды:
MOVF $АА /заносит значение ДА в регистр W
MOVWF MOTIF /копирует содержание регистра W
/в регистр MOTIF
Это же касается выполнения классических операций (сло-
жение, вычитание) или логических операций (И, ИЛИ, ис-
ключающее ИЛИ и т.п.) с литеральными данными:
MOVF к /заносит литеральное данное в регистр W
SUBWF f, d /заносит результат вычитания f - d
/регистр назначения
В следующем примере мы желаем замаскировать четыре
самых младших бита регистра MOTIF:
MOVLW $F0 /определение маски
ANDWF MOTIF, f /результат MOTIF и $F0 заносится в
/MOTIF
Если операция касается только регистра W, достаточно
одной операции:
ADDLW к
SUBLW к
ANDLW к
IORLW к
XORLW к
Некоторые команды легко понять из их сокращенного на-
звания:
Команды 85
CLRF f /устанавливает в ноль регистр (CLear
/Register F)
CLRW /устанавливает в ноль регистр W (CLear
/Register Working)
BCF f, b /устанавливает в ноль бит b регистра f
/(Bit Clear bit b of F)
BSF f, b /устанавливает в единицу бит b регистра f
/(Bit Set bit b of F)
Замечания
Вот несколько советов, которые позволят вам избежать не-
которых ошибок, когда вы только начали программировать
и не знаете тонкостей программирования, а также сэконо-
мить немало времени.
Команды MOV очень часто используются в программах. Со-
ответственно, очень просто ошибиться между копированием
содержимого регистра W в другой регистр и копированием
какого-либо регистра в регистр W:
MOVWF f /W копируется в регистр f (f change)
MOVF f, w /регистр копируется в W (W change)
MOVF f, f /регистр копируется сам в себя
/f не меняется, но устанавливаются
/указатели
Обратите внимание, что MOVWF является единственной ко-
мандой, не имеющей выбора назначения. Назначением всегда
является f. У прочих команд -WF, ADDWF, SUBWF, SWAPWF, IORWF и
XORWF - имеется выбор назначения w или f. Помните также,
что в команде SUBWF w вычитается из f.
Существуют и другие команды, в которых возможен вы-
бор назначения:
INC DEC f, f, d d /заносит значение регистра f + 1 в d /заносит значение регистра f - 1 в d
COMP f, d /заносит побитовое дополнение регистра в d
SWAP f, d /меняет местами биты старшего разряда /с битами младшего разряда и заносит /результат в d
RLF f, d /смещается влево с битом переноса и заносит /результат в d
RRF f, d /смещается вправо с битом переноса
/и заносит результат в d
86 Глава 4 Программирование микроконтроллера PIC 16F84
Если назначением является W, операция выполняется толь-
ко для регистра W, регистр f не меняется.
В команде SUBLW к происходит вычитание W из литераль-
ных данных к.
Для вызова подпрограммы CALL или возврата в исходную
программу можно воспользоваться командой GOTO. При этом
всегда существует риск возникновения бесконечного цикла,
из которого невозможно выйти.
Всегда важно помнить о необходимости присвоения раз-
ных имен регистрам, используемым в разных программах, в
особенности, если одна из программ вызывает другую. Ти-
пичным является пример цикла тактирования (определение
временного промежутка), где переменная TEMP использует-
ся в подпрограмме, вызывающей цикл синхронизации, в ко-
тором задействована подобная переменная.
В командах сдвига (RLF, RRF) используется бит переноса
(carry). Перед использованием команд следует проверить
значение этого бита.
Команды пропуска (или включения)
Программа начинается с выполнения команды, находящей-
ся по адресу 0, и продолжается выполнением команд с после-
дующими адресами. Некоторые команды изменяют этот по-
рядок и используют счетчик команд.
Команда GOTO 500 устанавливает счетчик команд по адре-
су 500 и выполняет команду, находящуюся по этому адресу.
Команда CALL 600 действует по-другому. Она заносит следу-
ющий за ней адрес в стек, а затем переходит к адресу 600. Ко-
манды с новым адресом выполняются до поступления коман-
ды возврата RETURN, RETLW или RETIE. После поступления
команды возврата адрес, занесенный в стек, заносится в счет-
чик команд, который продолжает их выполнение после по-
ступления команды CALL:
RETURN ;возврат после команды CALL
RETLW k ;возврат после команды CALL
;со значением, занесенным в W
RETIE /возврат после прерывания
В стеке содержатся восемь ячеек памяти, в которых регис-
трируются адреса при выполнении команд пропуска с возвра-
том. Прямой доступ к стеку невозможен.
Порты входов-выходов 87
Существуют другие четыре команды пропуска, но услов-
ного типа. Эти команды условного пропуска соблюдают со-
стояние бита регистра:
INCFSZf, d /заносит f + 1 в d и пропускает следующую
/команду, если результат равен 0 (INCrement F
/Skip if Zero)
DECFSZf, d ;заносит f - 1 в d и пропускает следующую ;команду, если результат равен 0 (DECrement F /Skip if Zero)
BTFSC f, b /тестирует состояние бита b регистра f /и пропускает следующую команду, если ,-этот бит равен 0 /(Bit Test F Skip if Clear)
BTFSS f, b /тестирует состояние бита b регистра f /и пропускает следующую команду, если этот /бит равен 1 /(Bit Test F Skip if Set)
Порты входов-выходов
Микроконтроллер PIC 16F84 снабжен 13 линиями, каждая из
которых может быть сконфигурирована на вход или выход
(рис. 4.1).
RA4/T0CK! 3
Vss
| PIC16F84 |
OSC1
OSC2
VdD
5
Рис. 4.1. Цоколевка выводов микроконтроллера PIC 16F84
88 Глава 4 Программирование микроконтроллера PIC 16F84
Выводы распределены между двумя портами: пять выводов
порта А и восемь выводов порта В. Выбор состояния (вход
или выход) определяется двумя регистрами: TRISA и TRISB. О
переводит линию в состояние выхода, 1 - в состояние входа.
В нижеуказанном примере порт В сконфигурирован таким
образом, что линии ВО-ВЗ находятся в состоянии выхода, а
линии В4-В7 - в состоянии входа:
MOVWF $F0 /перевод линий в состояние входов
/и выхода '11110000'
TRIS TRISB ;W копируется в TRISB
Некоторые выводы обладают особенностями, связан-
ными со специфическими функциями процессора. Будучи
запрограммированными в состояние входов, линии RB0 и RB4-
RB7 порта В могут активировать прерывания. Вывод RA4 пор-
та А может служить входом подключения внешнего тактово-
го генератора для внутреннего счетчика TIMER0.
Синхронизация
Синхронизация представляет собой цикл, в течение которого
выполняется выдержка определенного промежутка времени.
При использовании кварцевого резонатора частотой 4 МГц
(или четыре цикла синхронизации) выполнение каждой коман-
ды происходит в течение 1 мкс, за исключением команд пропус-
ка, длительность выполнения которых составляет 2 мкс. Время
цикла соответствует продолжительности обычной команды,
или четырем периодам частоты выбранного синхронизатора.
Для кварцевого резонатора с частотой 4 МГц период со-
ставляет 250 нс, а четыре периода - 1 мкс.
Ниже приводится программа создания задержки длитель-
ностью 1 мс для кварцевого резонатора частотой 4 МГц:
MSEC1 MOVLW NOP $F9 /для 4 мкс /2 для вызова
MICRO ADDLW $FF /W - 1
GOTO BTFSS MICRO4 RETURN $FF /Пропуск, если W = 0 /еще один цикл
В предыдущем примере длительность каждого цикла со-
ставляет 4 мкс, ADDLW длится 1 мкс, a GOTO - 2 мкс. Точно так
Синхронизация 89
же при выполнении последнего пропуска выполняется цикл
длительностью 4 мкс.
Заметьте, что для вычитания 1 из W к двум командам при-
бавляется 1, равная $FF, что одно и то же.
Выполняется тестирование бита 0 регистра состояния
STATUS. Этот бит устанавливается в 1, если результат вычита-
ния равен 0.
Для выполнения нескольких периодов синхронизации
длительностью 4 мкс достаточно изменить значение, зане-
сенное в W.
Особенность данной программы синхронизации заключает-
ся в отсутствии использования какого-либо регистра за исклю-
чением рабочего регистра W. Для установки более длительных
периодов необходимо использовать регистры. Нижеуказанная
программа обеспечивает генерирование нескольких перио-
дов синхронизации длительностью 1 мс общей продолжи-
тельностью до 0,25 с (1-255 мс):
MSEC MOVWF CNT_MS ;загружает в регистр длительность ;в мс, содержащуюся в W
ТЕМР_1 MOLW $F8 ;для 8 мкс
CALL MICR04 NOP ;248 х 4 + 2 = 994
NOP ;для получения 6 мкс
DECFSZ CNTMSEC, f /уменьшение регистра
GOTO RETURN ТЕМР.1
Таймер-счетчик
В микроконтроллере имеется внутренний восьмиразрядный
регистр, названный счетчиком, или синхронизатором, который
предназначен для генерирования сигнала переполнения при
переходе содержимого регистра из 255 в 0.
Этот регистр широко используется для точного подсчета
тактов или внешних событий. Для выполнения синхронизи-
рующей функции регистр подключен к внутреннему тайме-
ру. Приращение регистра происходит с частотой синхрони-
зации, поделенной на четыре. В случае переполнения содер-
жимого регистра INTCON происходит установка в 1 одного
бита (ТОIF). Этот бит может активировать прерывание про-
граммы. Для получения периодов синхронизации большей
90 Глава И 4 Программирование микроконтроллера PIC 16F84
длительности регистр OPTION может использовать программи-
руемый предварительный делитель. В этом случае для кварце-
вого резонатора частотой 4 МГц возможно получить цикл син-
хронизации длительностью 65 мс.
В режиме счетчика производится подсчет импульсов, по-
даваемых на линию RA4, сконфигурированную в состояние
входа (например, при помощи внешнего таймера с периодом
синхронизации 1 с). В этом случае также можно использовать
предварительный делитель. Возможно учитывать и только
передние или задние фронты импульсов.
Регистр OPTION осуществляет конфигурацию различных
опций для счетчика, называемого TIMER0.
Прерывания
В некоторых случаях нет возможности отслеживать какое-либо
значение или ожидать сигнал переполнения. В таких случаях
решение заключается в использовании счетчика TIMER0, спо-
собного генерировать прерывание. При переполнении счетчи-
ком его содержимого происходит установка одного бита в 1, и
активируется прерывание программы. Адрес следующей опера-
ции заносится в стек, счетчик команд переходит к адресу 4 и
продолжает выполнение программы с этого адреса. В этом слу-
чае выполняется вызов программы прерывания.
Программа прерывания должна быть запрограммирована
для выполнения короткой задачи при каждом генерировании
прерывания. При этом происходит блокировка всех прочих
возможных прерываний. Для активации следующего прерыва-
ния бит, сгенерировавший предыдущее прерывание, необхо-
димо установить в 0. Команда RETIE восстанавливает адрес,
занесенный в стек.
Прерывания также можно сгенерировать в следующих
трех ситуациях. Линия RB0, сконфигурированная в состояние
входа, может генерировать прерывание для внешнего собы-
тия. Прерывание генерируется на переднем или заднем фрон-
те. Оно может быть сгенерировано при изменении состояния
одной из четырех линий порта В (RB4-RB7), сконфигуриро-
ванных в состояние входа, или в случае переполнения объема
памяти данных EEPROM.
Счетчик сторожевого таймера 91
Параметры всех возможных ситуаций прерывания - ис-
точников прерываний (до 14), могут быть заданы при помо-
щи регистра INTCON. Для каждого прерывания возможная
ситуация прерывания указывается при помощи бита пере-
полнения. Но выполнение прерывания происходит только в
случае установки в 1 сопутствующего бита подтверждения.
Также в случае выполнения прерывания бит, сгенерировав-
ший переполнение, должен быть восстановлен в 0. Бит GIE
блокирует любые прерывания на время, необходимое для
обработки одного из них. Затем он восстанавливается на 1
командой RETIE.
Режим энергосбережения SLEEP
Этот режим предназначен для сокращения потребляемого
тока с целью продления срока службы батареи. В данном слу-
чае ток, потребляемый микроконтроллером, снижается до
50 мкА. Микроконтроллер будет находиться в «спящем» ре-
жиме. Перевод в него осуществляется командой SLEEP, а вы-
ход из режима выполняется одним из следующих способов:
• внешним возвратом в исходное состояние на выводе
MCRL;
• переполнением сторожевого таймера (если он активи-
рован);
• прерыванием вследствие:
- изменения состояния на линиях RB4-RB7;
- изменения состояния на линии RB0/INT;
- переполнения объема EEPROM.
В этом режиме выполнение программы и счетчик оста-
новлены.
Счетчик сторожевого таймера
Счетчик сторожевого таймера (WDT - WatchDog Timer) пред-
назначен для вывода PIC из циклов программы. Счетчик WDT
снабжен собственным внутренним генератором, независимым
от основного. При активации данной функции необходимо
92 Глава И 4 Программирование микроконтроллера PIC 16F84
регулярно устанавливать счетчик на 0 командой CLRWDT (CLeaR
WatchDog Timer). Переполнение счетчика происходит после
18 мс, в результате чего выполняется общий возврат в исходное
состояние процессора. Предварительный делитель счетчика
TIMER0 может работать со счетчиком сторожевого таймера,
но не с двумя счетчиками одновременно.
Режим программирования
Для программирования микроконтроллера в последователь-
ном режиме от внешнего программатора используется два
вывода микроконтроллера. Существуют версии микроконт-
роллеров с одним выводом для внешнего программирования,
а также версии микроконтроллеров, программы которых на-
ходятся во встроенном ППЗУ (программируемом постоянном
запоминающем устройстве) с УФ-стиранием и могут стирать-
ся УФ-излучением. Но для радиолюбителей наиболее инте-
ресной является серия микроконтроллеров со встроенной
флэш-памятью (программируемое ПЗУ с групповой (парал-
лельной) электрической записью, считыванием и стирани-
ем), носящими название-синоним «флэш-ППЗУ». В эту се-
рию входят микроконтроллеры PIC 16F84, 16F873, 16F876,
16F627 и 16F628. Они могут быть электрически перепрог-
раммированы до сотни тысяч циклов. В Интернете можно
найти множество схем программаторов и программных
продуктов, предназначенных для программирования в пос-
ледовательном режиме.
Дополнения
Информация, содержащаяся в этой главе, должна помочь вам
правильно начать программирование микроконтроллеров
PIC. Но для лучшего понимания каждой функции личный
опыт незаменим. Не бойтесь тестировать короткие програм-
мы. В Интернете можно найти множество сайтов, посвящен-
ных микроконтроллерам PIC. На сайте автора книги вы най-
дете большое количество плат различного назначения на
микроконтроллерах PIC для начинающих и бесплатный про-
граммный продукт.
Документы 93
Документы
Компания Microchip - изготовитель микроконтроллеров PIC
осуществляет техническую поддержку потребителей. С этой
целью по запросу она бесплатно высылает на двух CD-дисках
всю необходимую информацию по микроконтроллерам PIC.
На прилагаемых компакт-дисках имеется ряд документов, до-
полняющих информацию данной главы.
Технические спецификации микроконтроллеров PIC16F84,
PIC16F87x, PIC12C50x, PIC16F62x:
• Icprog - программный продукт, предназначенный для
программирования микроконтроллеров PIC;
• MPLAB 5.11 - программный продукт для разработки.
Сайт компании Microchip: http://www.microchip.com1.
Сайт Паскаля Мэйо, автора книги для начинающих по ра-
боте с микроконтроллерами PIC: http://perso.libertysurf.fr/
р.тау.
Российская компания «Микро-Чип» - дилер компании Microchip - проводит ту же
политику технической поддержки, что и Microchip. Она полностью перевела всю до-
кументацию по микроконтроллерам PIC на русский язык и выложила ее на сайте
http://www.microchip.ru для ознакомления. Указанное выше есть и на этом сайте. -
Прим. науч. ред.
Введение
в программирование
микропроцессора М68НС11
Биты и байты
Первобытные люди начали считать при помощи своих деся-
ти пальцев, так появилась десятичная система счисления. Да-
лее к этой системе прибавились другие, решающие свои ло-
кальные задачи. С изобретением компьютеров и их развити-
ем начала использоваться двоичная система. Информация
выражается при помощи сигналов электрических напряже-
ний определенных уровней. Соответственно, удобнее всего
использовать два уровня напряжения, которые представляют
двоичное кодирование: 0 и 1. Таким образом, компьютеры
работают с двоичными числами, называемыми битами: 0 и I1.
Микропроцессоры группируют биты в слова. Первые мик-
ропроцессоры работали со словами, состоящими из четырех
бит. В наши дни многие микропроцессоры работают со слова-
ми из восьми бит, называемыми байтами. При помощи байта
(слова из восьми бит) можно представить 256 различных со-
стояний (28). Эти 256 состояний используются для указания
различных величин:
Путь развития программного обеспечения компьютеров извилист. Возможно, если
получила бы развитие троичная система счисления, которую применили в электрон-
но-вычислительной машине «Сетунь», то вместо двоичной была бы популярна она.
Но никто ее не поддержал. - Прим. науч. ред.
Биты и байты 95
• целое число от 0 до 255;
• целое число от -128 до +127;
• печатный символ (буква, число или символ).
При необходимости использования больших чисел байты
группируются для образования слова из 16 бит. Таким обра-
зом, можно получить 65 536 значений (216).
Но если десятичные числа не пригодны для использования
компьютером, то для людей использовать двоичные числа еще
более сложно. Поэтому возникла необходимость в создании про-
межуточной системы счисления. Шестнадцатеричная система
стала хорошим компромиссом между людьми и компьютером.
Цифры кодируются в начале шестнадцатеричной систе-
мы и занимают пространство от 0 до Е Буквы соответствуют
цифрам, следующим за 9 (табл. 5.1).
Таблица 5.1. Преобразования систем счисления
Десятичный код Шестнадцатеричный код Двоичный код
0 $0 %0000
1 $1 %0001
2 $2 %0010
3 $3 %0011
4 $4 %0100
5 $5 %0101
6 $6 %0110
7 $7 %0111
8 $8 % 1000
9 $9 %1001
10 $А %1010
11 $В %1011
12 $с %1100
13 $D %1101
14 $Е %1110
15 $F %1111
16 $10 %10000
127 $7F %01111111
128 $80 %10000000
255 $FF %11111111
1 024 $400 %10000000000
65 535 $FFFF $1111111111111111
96 Глава И 5 Введение в программирование микропроцессора М68НС11
В этой системе байт кодируется при помощи двух цифр, а
слово - при помощи четырех цифр.
Так как выражения цифр и букв в шестнадцатеричной систе-
ме дают преимущества при написании программ, они должны
распознаваться большинством редакторов программ. С этой
целью был установлен стандарт:
• двоичным цифрам должен предшествовать символ %:
%00101001 = 3910;
• шестнадцатеричным цифрам должен предшествовать
символ $:
$29 = 3910;
• десятичные цифры используются без специального пред-
шествующего символа:
127;
• символам американского стандартного кода обмена ин-
формацией (ASCII) предшествует символ ':
ZA.
Второй стандарт был установлен для организации обще-
ния между информационными системами: в нем используют-
ся печатные символы, дополненные кодами управления. Речь
идет об американском стандартном коде обмена информаци-
ей (ASCII), который состоит из 128 символов, выраженных в
шестнадцатеричном коде от $00 до $7F. Первые значения со-
ответствуют кодам управления (от $00 до $1F). Знание кода
ASCII необходимо для общения с ПК через последовательное
соединение.
Знакомство с микропроцессором М68НС11
Адресное пространство памяти
Микропроцессоры регистрируют программы и данные в сво-
ей памяти. Память Состоит из адресов или смежных ячеек.
В 68НС11 каждая ячейка памяти содержит данные из вось-
ми бит (одного байта). Общий объем адресуемой памяти пред-
ставляет 65 536 ячеек памяти (216).
Знакомство с микропроцессором М68НС11 Q7
Как правило, все ячейки памяти эквивалентны, но в микро-
контроллере М68НС11 конфигурация памяти частично пре-
допределена: младшие адреса - от $0000 до $00FF - предназна-
чены для оперативной памяти - ОЗУ(ЯАМ), адреса от $ 10 0 0 до
$ 10 3 F используются специальными регистрами, которые опре-
деляют параметры работы микроконтроллера. Старшие адре-
са - от $F8 00 до $FFFF - используются постоянной электронно-
перепрограммируемой памятью - ЭСППЗУ. Промежуточные
адреса ячеек памяти являются свободными и заполняются лич-
ной информацией пользователя (табл. 5.2).
Таблица 5.2. Адресное пространство памяти микроконтроллера
М68НС11Е2
Адреса памяти Функция
$0000
$OOFF Оперативная память - ОЗУ (RAM)
$0100
$0FFF Не используется
$1000
$103F Специальные регистры
$1040
$F7FF Не используется
$F800
$FFFF Электрически стираемое перепрограммируемое постоянное запоминающее устройство - ЭСППЗУ (EEPROM)
Оперативная память, доступная для чтения и записи, часто
называемая ОЗУ (RAM), используется для хранения часто ме-
няющихся временных данных и выполнения расчетов. Незна-
чительный объем памяти микроконтроллера (256 байт) не
является недостатком в рамках несложных приложений. При
недостаточности объема внутренней памяти имеется возмож-
ность использования внешней памяти: данный микроконтрол-
лер предусмотрен для применения и в такой конфигурации.
Специальные регистры с адресами от $1000 до $103F
предназначены для чтения линий входов, активации линий
выходов, учета событий, общения через последовательный
порт с другим компонентом или конфигурации этого компо-
нента.
4-7388
98 Глава И 5 Введение в программирование микропроцессора М68НС 11
Постоянная память микроконтроллера представляет собой
интересную модель для разработки программного продукта.
Речь идет о памяти EEPROM, которая может быть электриче-
ски очищена и перепрограммирована в течение нескольких се-
кунд без какого-либо перемещения микроконтроллера, то есть
для программирования микроконтроллера не нужно внешних
программаторов, куца необходимо вставить микроконтроллер.
Все происходит локально, и программу можно «зашить» в мик-
роконтроллер, установленный на печатную плату
Регистры
Работа микропроцессора заключается в передаче данных из
памяти во внутренние регистры и их возврате в память после
обработки. Эти регистры представляют собой переменные,
которые процессор использует для своих расчетов. Существу-
ют регистры двух разных типов: накапливающие и индексные.
Накапливающие регистры используются для выполнения
большинства арифметических операций: сложения, вычита-
ния или логических операций в любой необходимой после-
довательности. Часто результаты выполнения таких опера-
ций снова заносятся в регистр. Например, команда может
прибавить какое-либо значение к значению в регистре А и
занести полученную сумму в него же. Именно поэтому реги-
стру данного типа присвоено название накапливающего: он
накапливает результаты проводимых расчетов.
Постоянная память ПЗУ (ROM) используется для хране-
ния программ. Ее отличие от энергозависимой оперативной
памяти заключается в сохранении данных при выключении
питания процессора, то есть постоянная память энергонеза-
висима. Эта память объемом 2048 байт занимает старшие ад-
реса, так как в ней находятся начальные адреса установки про-
цессора в ноль и внутренние прерывания.
Индексные регистры используются для указания данных,
находящихся в памяти. Например, при выполнении сложе-
ния значение прибавляется к регистру X для указания ново-
го адреса. Регистры микропроцессора 68НС11 представлены
в табл. 5.3.
Знакомство с микропроцессором М68НС11 99
Таблица 5.3. Регистры микропроцессора 68НС11
В М68НС11 имеется два накапливающих восьмибитовых
регистра А и В, способных выполнять операции с одним
байтом.
Другие регистры являются индексными регистрами X и Y.
Эти 16-битовые регистры в основном используются для адре-
сации данных, находящихся в памяти.
Регистры А и В могут применяться совместно, образуя
арифметический регистр из 16 бит (двух байт). Данный ре-
гистр при таком применении именуется регистр D - в накап-
ливающем регистре А образуются биты старшего разряда.
Указатель стека, или регистр SP, используется для регист-
рации местонахождения стека программы. Стек, речь о ко-
тором пойдет далее, предназначен для временной регистра-
ции данных или хранения адреса возврата в случае вызова
подпрограммы.
Счетчик команд, или регистр PC, применяется для слеже-
ния за ходом выполнения команды. В нем автоматически про-
изводится приращение содержимого (увеличивает свое значе-
ние) в ходе выполнения команды процессором.
4
100 Глава И 5 Введение в программирование микропроцессора М68НС 11
Программирование М68НС11
В ходе выполнения микропроцессором программы счетчик
команд PC указывает очередной адрес памяти микропроцес-
сора, происходит его последовательное движение по адресам
памяти, в ходе которого он поочередно производит адреса-
цию (указывает адреса) - выполняются команды, находящие-
ся в ячейках памяти по этим адресам. После выполнения ко-
манды происходит приращение регистра PC, за которым сле-
дует прочтение следующей выполняемой команды.
Для лучшего понимания рассмотрим пример того, что про-
исходит с классической командой. Загрузите в накапливаю-
щий регистр А какое-либо число. Машинным кодом этой ко-
манды является 8бхх, где хх - значение байта, заносимого в
накапливающий регистр А.
$86 представляет собой шестнадцатеричный код коман-
ды, называемый кодом операции.
Длина команды зависит от ее функции. Некоторые коман-
ды могут использовать до четырех байт. По первому байту
процессор узнает количество байт, необходимое для выпол-
нения команды.
В определенный момент времени процессор способен вы-
полнять не более одной команды, но с очень высокой скоро-
стью. Микропроцессор М68НС11 работает на частоте 2 МГц
(или частоте выбранного кварцевого резонатора, поделенной
на четыре). Соответственно, он способен выполнять 2 млн
простых команд в секунду. Длительность выполнения одной
простой команды называется машинным циклом. Длительность
машинного цикла обратна частоте кварцевого резонатора и
составляет 0,5 мкс.
Разумеется, для выполнения более длинных команд требу-
ется большее количество времени.
Машинный язык и Ассемблер
Команды машинного языка (или машинный код) и Ассембле-
ра представляют собой одно и тоже, когда процессор выпол-
няет какую-либо программу. Использование двух разных вы-
ражений связано со стадией разработки программы.
Программирование М68НС11 “j Q“|
Процессор способен обрабатывать только двоичные дан-
ные или их эквиваленты, сгруппированные в байты. Чтение и
запись этого кода представляет собой тяжелый и утомитель-
ный процесс. Программисту предпочтительнее использовать
несколько более понятную эквивалентную запись, с помощью
которой машинные коды представляются в удобочитаемой
форме. Этой более понятной записью является язык Ассемб-
лер, состоящий из мнемонических символов, которые пред-
ставляют собой сокращенную функцию. Дополнительная про-
грамма, также называемая Ассемблером, преобразует эту за-
пись в объектный код, являющийся частью машинного кода.
Именно эта последняя форма будет выполнена процессором.
На языке Ассемблер микропроцессора 68НС11 команда
«загрузить в накапливающий регистр А» записывается так:
LDAA #$А2.
В данном случае используется сокращение английского
выражения LoaD Accumulator А. $А2 обозначает загружае-
мые шестнадцатеричные данные.
Несмотря на более понятное написание, Ассемблер не
пользуется особой популярностью среди программистов. Ему
предпочитают языки высокого уровня (Basic, Pascal, С). Напи-
сание этих языков упрощено в результате использования по-
рядков эквивалентностей, имен, макросов, функций распозна-
вания различных форматов данных (десятичного, шестнадца-
теричного, двоичного, ASCII, последовательности символов).
Способы адресации
В предыдущем примере (LDAA #$А2) шестнадцатеричное зна-
чение было загружено в накапливающий регистр А. Этот спо-
соб загрузки данных называется непосредственной адресацией,
так как загружаемые данные располагаются непосредствен-
но после кода команды.
Непосредственная адресация используется для загрузки
точных данных в регистр. Символ # используется для обозна-
чения непосредственной адресации.
Но это не единственный способ адресации обрабатывае-
мых данных. Другие способы предназначены для данных, хра-
нящихся в памяти.
102 Глава И 5 Введение в программирование микропроцессора М68НС ’ I
Способ расширенной адресации - это один из путей доступа
к данным. При этом способе в команде указывается полный
адрес данных: LDAA $ F 8 0 0.
Эта команда загружает содержимое адреса памяти F800 в
накапливающий регистр (символ $ означает, что следующее за
ним данное записано в шестнадцатеричном коде). Она исполь-
зует три байта памяти: один для кода операции и два для ука-
зания адреса памяти.
Способ прямой адресации схож с расширенным способом,
но ограничен первыми 256 байтами памяти. Адресное про-
странство памяти (от адреса $00 до $FF) образует внутрен-
нюю память микропроцессора М68НС11.
При способе индексной адресации используются регистры
X и Y в качестве указателей в памяти. Значение, содержаще-
еся в индексном регистре в сочетании с байтом смещения,
указывает местонахождение искомого байта.
Рассмотрим еще один пример:
Если в регистре X находится значение $ 10 0 0, то команда
LDAA 0 , X выполнит загрузку в накапливающий регистр А
содержимого адреса $ 10 0 0. В то время как команда: LDAA 5, X
выполнит загрузку в накапливающий регистр А содержимо-
го адреса $1005.
Значение смещения содержится в байте данных. Возмож-
ны только смещения, содержащиеся в промежутке от 0 до 255.
Зачем использовать индексный способ адресации, если
расширенная адресация обеспечивает непосредственный
доступ к искомому байту?
Этот способ позволяет адресовать определенную область
памяти, используя только байт смещения. Так как команды
являются более короткими, экономится адресное простран-
ство памяти и время цикла.
Лучшим примером этого способа является зона специаль-
ных регистров микропроцессора М68НС11, которые начина-
ются с адреса $ 10 0 0 и заканчиваются адресом $ 10 3 F. Предполо-
жим, что определенной серии команд необходимо получить
доступ к регистрам, находящимся в этой зоне. Мы можем из-
брать регистр X в качестве базового указателя. Для этого загру-
зим адрес начала этой зоны памяти $ 10 00 в регистр при помо-
щи команды LDX $1000. После этого мы сможем использовать
Программирование М68НС11 *| Q3
индексные команды, пользуясь байтом смещения для выполне-
ния чтения, записи или других действий в этом адресном про-
странстве.
Индексная адресация также чрезвычайно полезна при ма-
нипуляциях с таблицами данных. Индексный регистр направ-
ляется на адрес начала таблицы, а все остальные операции
выполняет смещение. Для перехода к новой таблице достаточ-
но загрузить адрес ее начала, так как остальная часть програм-
мы не меняется. В табл. 5.4 указаны все возможные способы
адресации микропроцессора М68НС11.
Таблица 5.4. Способы адресации микроконтроллера М68НС11
Непосредственная адресация Используемое значение, указанное непосредственно после команды, символа # является знаком этой обработки: LDAA #$2А LDX #$1000 ANDA #%00001111
Прямая адресация При прямой адресации используется только область памяти от $0000 до $00ff, то есть оперативная память
Расширенная индексация В команде указывается полный адрес прочитываемого значения: LDAA $1004
Индексная адресация Расположение данных указывается путем прибавления байта смещения к содержанию регистра используемого индекса: LDAA 4 , X
Адресация кодом команды Команда является неявной и не требует никаких дополнительных данных
Относительная адресация Этот способ адресации применяется для команд подключения. Значение, получаемое после выполнения команды, представляет собой число, на которое необходимо выполнить смещение для указания новой команды, в положительном или отрицательном выражении
Типы данных
Если данный микропроцессор допускает различные типы дан-
ных и способы отображения чисел, то именно язык програм-
мирования позволяет выполнять манипуляции со структурами,
содержащими большее количество данных или более сложные
данные. Если программирование на более сложном языке
(С, Basic) дает возможность манипулировать большим количе-
ством типов данных, то при программировании на Ассемблере
104 Глава И 5 Введение в программирование микропроцессора М68НС11
следует довольствоваться восьмибитовыми байтами и шестнад-
цатибитовыми словами. Соответственно, для использования
более сложных форм программист вынужден создавать под-
программы.
Арифметические операции
Имеется набор математических и логических операций, ко-
торые могут производиться с числовыми значениями.
Микропроцессор М68НС11 поддерживает следующие ко-
манды:
• сложение для восьмибитовых и 16-битовых значений;
• вычитание для восьмибитовых и 16-битовых значений;
• умножение двух восьмибитовых значений с получени-
ем 16-битового результата;
• деление двух 16-битовых значений с получением цело-
го или дробного числа;
• приращение двух восьмибитовых или 16-битовых зна-
чений. Команда добавляет единицу к своему операнду;
• уменьшение двух восьмибитовых или 16-битовых зна-
чений. Команда вычитает единицу из своего операнда;
• логическое И для восьмибитовых значений. Эта коман-
да использует операнд для выполнения операции логи-
ческое И с используемым регистром;
• логическое ИЛИ для восьмибитовых значений. Эта ко-
манда использует операнд для выполнения операции
логическое ИЛИ с используемым регистром;
• исключающее ИЛИ для восьмибитовых значений. Эта
команда использует операнд для выполнения опера-
ции исключающее ИЛИ с используемым регистром;
• смещение восьмибитового регистра вправо или влево
с или без бита переноса;
• манипуляция с битами восьмибитового регистра. Уста-
новка бит в 0 или 1;
• установка регистров или бит в исходное состояние. Уста-
новка в 0.
Двоичные числа со знаком или без знака
Существует два способа представления двоичных чисел, ис-
пользуемых микропроцессорами. Речь идет о двоичном форма-
те без знака и двоичном формате со знаком и дополнительным
кодом 2.
Программирование М68НС11 “| Q5
Формат без знака используется для представления восьми-
битовых чисел от 0 до 255 или 16-битовых чисел от 0 до 65 535.
Формат со знаком с дополнительным кодом 2 обеспечива-
ет представление восьмибитовых значений в промежутке
от -128 до +127 или 16-битовых значений в промежутке от
-32 768 до +32 767.
Знак числа заносится в бит старшего разряда, 0 указывает
положительное число, 1 - отрицательное число. Рассмотрим
небольшой пример.
Если число является отрицательным, его значение опре-
деляется следующим процессом: инвертировать порядок зна-
чимых бит и добавить 1.
Каково значение % 10010011?
%10010011 число %х0010011 удаление бита знака %х1101100 инверсия бит %х1101101 прибавление 1 $6D или 109 результат, к которому следует прибавить знак 6D в шестнадцатеричном выражении или 109 в десятичном выражении В табл. 5.5 указано несколько чисел со знаком и без знака. Таблица 5.5. Числа со знаком и без знака
Двоичное число без знака Десятичное число Двоичное число со знаком Десятичное число
%0 0 %10000000 -128
%1 1 %10010011 -109
%2 2 %11111011 -5
%3 3 %11111111 -1
%4 4 %0 0
%5 5 %0101 5
%01111111 127
%10000000 128 %1010 10
%11111111 255 %01111111 127
Эта необычная операция выполняется, так как она имеет
значимое свойство: двоичные числа со знаком могут склады-
ваться между собой или с числами без знака.
Рассмотрим пример десятичного вычитания и вычитания
при помощи дополнительного кода 2:
"106 Глава И 5 Введение в програлдмирование микропроцессора М68НС 11
* £00000101
* £11111010
* £11111011
00001111
11111011
00001010
15
д5
+10
5
инверсия бит
прибавление 1
15 в обычном двоичном выражении
- 5 в дополнительном коде 2 значение пере-
носа утрачено
10 в двоичном выражении
Регистр состояния и условных переходов
Каждый раз, когда 68НС11 выполняет математические или ло-
гические операции, признаки или флаги состояний занимают
определенное положение в зависимости от формы результата.
Специальный регистр, называемый регистром состояния
CCR (Code condition register - Условный регистр кода) произво-
дит регистрацию следующих пяти флагов состояний из восьми:
Z, V, N, С, Н (табл. 5.6).
Таблица 5.6. Регистр состояния
S X Н I N Z V С
Если результат операции - 0, то флаг состояния Z (Ноль)
устанавливается в 1.
Если результат операции превышает максимум содержи-
мого регистров, флаг состояния V (oVerflow - переполнение)
устанавливается в 1.
Если результат операции является отрицательным значени-
ем, флаг состояния N (Отрицательный) устанавливается в 1.
Если результат операции активирует перенос, флаг состо-
яния С (Перенос) устанавливается в 1.
Если результат операции активирует перенос полубайта,
то флаг состояния Н (Полуперенос) устанавливается в 1.
Прочие биты регистра, используемые для прерываний,
будут рассмотрены позднее.
Эти флаги состояния используются для выполнения ус-
ловных переходов в соответствии с их значениями. Одним
из самых классических примеров является цикл синхрониза-
ции, заключающийся в уменьшении содержимого регистра
до ноля. Условием окончания цикла является проверка фла-
га состояния Z:
___________________________Программирование М68НС11 *| Q7
LDAA ^Значение * загружает значение в А
LOOP DECA * уменьшение А
BNE LOOP * возвращает Цикл к имени, если А Ф О
--- * продолжение программы
Мы приводим список нескольких команд перехода, отно-
сящихся к флагам регистра состояния.
• BEQ (Branch if equal to zero) - переход, если флаг состо-
яния Z установлен в 1;
• BNE (Branch if not equal to zero) - переход, если флаг
состояния Z установлен в 0;
• ВСС (Branch if carry is clear) - переход, если флаг состо-
яния С установлен в 0;
• BCS (Branch if carry is set) - переход, если флаг состоя-
ния С установлен в 1;
• BLO (Branch if lower) - переход, если результат вычита-
ния меньше 0;
• BGE (Branch if greater than or equal) - переход, если ре-
зультат вычитания больше или равен 0.
Этот список неполный. Существует одно ограничение, ка-
сающееся команд перехода: переходы возможны только в пре-
делах от -128 до +127. Решить эту проблему помогает команда
перехода JMP.
Стек и подпрограммы
Стек1 связан с использованием подпрограмм, но применяет-
ся для других целей.
Стек представляет собой область оперативной памяти
предназначенную для хранения адресов и данных:
DOWNSTACK EQU $00FF * $00FF - последний адрес
* оперативной памяти
LDS #DOWNSTACK * инициализация стека
NOP * Программа начинается здесь
Данная команда выполняет инициализацию стека, зано-
ся в регистр S самый старший адрес оперативной памяти,
предварительно эквивалентным этому адресом указывается
DOWNSTACK - НИЗСТЕКА.
Stack (англ.) - стопа, но этот англоконизм прижился и так и называется «стек». -
Прим. науч. ред
108 Глава И 5 Введение в программирование микропроцессора М68НС11
Стек работает по принципу: «Последним пришел - Пер-
вым обслужен», согласно которому первым извлекается по-
следний элемент стековой памяти. При занесении в стек байт
хранится по адресу, указанному индикатором стека, который
автоматически уменьшается на 1. При удалении байта из сте-
ка индикатор, наоборот, увеличивается на 1.
Основным назначением стека является хранение адреса
возврата из подпрограммы, вызванной командой перехода
JSR (Jump to subroutines - Переход к подпрограммам). По
окончании обработки подпрограммы команда окончания
программы RTS (Return from subroutine - Возврат из под-
программы) удаляет из стека 16-битовый адрес, что обеспе-
чивает продолжение выполнения основной программы.
Интересной особенностью стека и подпрограмм являет-
ся возможность вложения подпрограмм друг в друга, которое
позволяет запросам с более высоким приоритетом вклини-
ваться в подпрограммы обслуживания прерываний с более
низким.
Другим назначением стека является моментальное хране-
ние значений, переносимых в несколько одновременно вы-
званных подпрограмм. Эту процедуру следует использовать
осторожно, так как не нужно забывать об удалении хранящих-
ся в стеке данных. Сохранение данных в стеке может приве-
сти к потере адреса возврата из подпрограммы, что в свою
очередь вызовет сбой программы.
Прерывания
Использование прерываний обеспечивает остановку выпол-
нения программы в случае наступления события, предвари-
тельно выбранного приоритетным. Как правило, такие собы-
тия называются прерываниями. Они активируют обработку
подпрограммы прерывания. Активация (наступление) пре-
рывания может быть вызвана различными причинами: пере-
полнением счетчика, срабатыванием конечного датчика со-
прикосновения, запросом диалога с другим компонентом.
При наступлении прерывания микропроцессор 68НС11
заканчивает выполнение команды, сохраняет данные всех
Программирование М68НС11 *| QQ
базовых регистров и обрабатывает прерывание. У каждого
источника прерывания имеется собственная программа об-
работки, написанная в соответствии с конкретной необходи-
мостью (табл. 5.7).
Таблица 5.7. Содержание стека после прерывания
DOWNSTACK (низ стека) Адрес возврата (нижний байт) Индикатор стека до прерывания
DOWNSTACK - 1 Адрес возврата (верхний байт)
DOWNSTACK - 2 Регистр У (нижний байт)
DOWNSTACK - 3 Регистр У (верхний байт)
DOWNSTACK - 4 Регистр X (нижний байт)
DOWNSTACK - 5 Регистр X (верхний байт)
DOWNSTACK - 6 Регистр накопления А
DOWNSTACK - 7 Регистр накопления В
DOWNSTACK - 8 Регистр состояния
DOWNSTACK - 9 Индикатор стека после прерывания
Использование прерываний создает впечатление того, что
процессор одновременно выполняет несколько задач (поня-
тие реального времени). Конечно, это утверждение условно -
последовательно выполняется ряд задач, некоторые из кото-
рых занимают малое время на фоне более продолжительных
задач...
При наступлении прерывания процессор завершает выпол-
нение команды, сохраняет адрес возврата, соответствующий
последующей команде, а также все свои внутренние регистры.
После этого процессор должен знать, где находится подпро-
грамма обработки данного прерывания. Для этого индикатор
программы указывает адрес вектора прерываний, связанного с
вызванным прерыванием. По этому адресу находится адрес
подпрограммы, написанной для данного события.
В табл. 5.8 указаны адреса расположения различных век-
торов прерывания, а также адрес вектора установки в ноль
(RESET). В эти адреса памяти необходимо занести при помо-
щи специальной команды адрес начала подпрограммы пре-
рывания.
4 10 Глава И 5 Введение в программирование микропроцессора М68НС11
Таблица 5.8. Векторы прерываний
Адреса Прерывание
FFD6 и FFD7 Последовательное соединение (SCI)
FFD8 и FFD9 (SPI)
FFDA и FFDB Счетчик PAIE
FFDC и FFDD Переполнение счетчика
FFDE и FFDF Переполнение таймера
FFEO и FFE1 Вход сбора 4 (TIC4) Компаратор 5 (ТОС5)
FFE2 и FFE3 Компаратор 4 (ТОС4)
FFE4 и FFE5 Компаратор 3 (ТОСЗ)
FFE6 и FFE7 Компаратор 2 (ТОС2)
FFE8 и FFE9 Компаратор 1 (ТОС1)
FFEA и FFEB Вход сбора 3 (TIC3)
FFEC и FFED Вход сбора 2 (TIC2)
FFEE и FFEF Вход сбора 1 (TIC1)
FFFO и FFF1 Прерывание в реальном времени (RTII)
FFF2 и FFF3 Внешнее прерывание IRQ
FFF4 и FFF5 Внешнее прерывание XIRQ
FFF6 и FFF7 Прерывание программного продукта (SWI)
FFF8 и FFF9 Запрещенный код
FFFA и FFFB Сбой (СОР)
FFFC и FFFD Дефект таймера
FFFE и FFFF Установка процессора в 0 (RESET)
Архитектура микропроцессора М68НС11
Помимо арифметического и логического блока, общего для
всех процессоров, микропроцессор М68НС11 снабжен мно-
жеством дополнительных устройств. Эти устройства служат
для максимального упрощения диалога процессора с внешним
миром:
• большое количество линий входа-выхода;
• две линии последовательного двунаправленного соеди-
нения;
• аналоговые входы;
• таймеры;
• счетчики;
• прочие более специальные функции.
Архитектура микропроцессора М68НС11 111
Специальные регистры
Функции, обеспечивающие диалог микропроцессора с вне-
шним миром, связаны с особой областью памяти, располо-
женной в пределах адресов $1000 и $103F. Эти специальные
регистры сгруппированы в соответствии с их функциями.
Данный блок памяти имеет те же характеристики, что и
оперативная память. Это подразумевает возможность совме-
стного использования с данными регистрами классических
команд.
Функциональная схема микропроцессора
М68НС11
На рис. 5.1 представлена упрощенная функциональная схема
архитектуры микроконтроллера М68НС11.
Рис. 5.1. Упрощенная структурная схема микропроцессора 68НС11
Полная электрическая принципиальная схема имеется в
справочном руководстве микропроцессора М68НС11 компа-
нии Motorola (M68HC11RM/AD).
Структурная схема не так подробна, как принципиальная,
но несмотря на простоту на ней видно направление взаимо-
действия процессора и периферийного оборудования, а так-
же направление взаимодействия с внешними устройствами.
Порты А, С и D являются двунаправленными и могут исполь-
зоваться как в качестве входов, так и в качестве выходов.
Порты В и Е - однонаправленные.
Все порты являются восьмибитовыми (однобайтовыми).
Для активации линий в режиме выхода или для получения
112 Глава И 5 Введение в программирование микропроцессора М68НС11
данных достаточно записать или прочесть регистр, соответ-
ствующий выбранному порту.
Эта особенность обеспечивает интерфейс внешнего вось-
мибитового периферийного устройства с полным портом.
Рассмотрим подробно каждый порт.
Порт А.
Хотя этот порт может использоваться в качестве порта
общего назначения, он снабжен очень интересными функци-
ями таймирования. Три входа и четыре выхода устанавлива-
ются в однонаправленный режим, а одна линия может функ-
ционировать как двунаправленная. Порт используется для
реализации входов подсчета и выходов синхронизации. Эти
функции предназначены для подсчета внешних событий или
включения таймера по фронту внешнего сигнала;
Порт В.
Этот порт является однонаправленным и может исполь-
зоваться только для записи содержимого во внешних устрой-
ствах. Он используется для управления внешним модулем;
Порт С.
Данный порт является двунаправленным и может исполь-
зоваться для подключения к внешнему модулю. Но каждая из
его линий универсальна и может быть также запрограммиро-
вана как в режим входа, так и в режим выхода;
Порт D.
Это двунаправленный порт с шестью линиями. Он предна-
значен для функций последовательного соединения. Две ли-
нии используются для передачи данных в компьютер в асинх-
ронном режиме. Четыре линии предназначены для обмена
данными в синхронном режиме на высокой скорости с пери-
ферийным оборудованием или другим микропроцессором
М68НС11.
Порт Е.
Однонаправленный порт общего назначения использует-
ся, в основном, в качестве аналогового входа. Подаваемые
напряжения должны составлять непрерывные уровни в диа-
пазоне от 0 до 5 В.
Архитектура микропроцессора М68НС11 *113
Порт В: управление двигателями
Хотя эта функция является специфичной для одной из рас-
смотренных нами плат (Mini-Board), мы подробно изучим ее
в этом разделе.
Данная функция выполняется портом В. В справочной
литературе по микропроцессорам М68НС11 этот порт назы-
вается PORTB, а связанный с ним регистр находится по ад-
ресу $1004.
Восемь линий этого порта используются для контроля осо-
бых контуров при управлении четырьмя двигателями малой
мощности. Для платы Mini-Board используются двигатели
типа L293D.
Четыре бита старшего разряда активируют четыре входа,
в то время как четыре бита младшего разряда определяют
направление вращения двигателей.
Ниже приводится программа активации двигателя:
PORTB EQU $1004
LDAA #%00010000 * запуск двигателя n 1
STAA PORTB *
Нижеуказанный код переключает направление вращения
двигателя:
LDAA #%00010001 * инверсия направления вращения
двигателя 1
STAA PORTB *
Обратите внимание на значения, загружаемые в накапли-
вающий регистр А.
Порт С: чтение датчиков
В этом случае мы также сориентируем объяснение материала
по микропроцессорам М68НС11 в соответствии с интересую-
щим нас применением, то есть приблизим теорию к практике.
В режиме входа данный порт обеспечивает чтение про-
стых датчиков. Он называется PORTC, его адрес - $1003. При
желании использовать в режиме выхода все или определен-
ные линии порта С необходимо указать в DDRC (Data direction
register port С - Регистр направления данных порта С) напра-
вления данных этого порта.
114 Глава 5 Введение в программирование микропроцессора М68НС 11
Нижеуказанный код прочитывает входы порта С и вы-
полняет переход к программе, если входы порта установле-
ны в 0:
PORTB EQU $1003
LDAA
BEQ
PORTC * копирование порта С в А
ELSEPORTS * переход к другим портам,
если А = 0
* продолжение, если А £ 0
ELSEPORTS
Порт Е: чтение аналоговых входов
Порт Е является аналоговым портом, который переводит на-
пряжения в пределах от 0 до 5 В в цифровые восьмибитовые
значения от 0 до 255 (или $FF в шестнадцатеричном коде).
Этот порт управляется несколькими регистрами и может быть
сконфигурирован в различные режимы.
Время от времени его можно использовать в качестве циф-
рового порта входа, как и порт С, но это не является его ос-
новной функцией.
Перед применением аналоговых входов необходимо активи-
ровать аналогово-цифровой преобразователь. Для этого доста-
точно установить бит 7 регистра конфигурирования опций
(OPTION) в 1:
LDAA #%10000000 * установка бита 7 в 1
STAA $1039 * адрес регистра OPTION
Восемь входов разделены на два блока по четыре входа в
каждом. Регистр управления преобразователем (ADCTL) обес-
печивает выбор нескольких режимов работы (табл. 5.9).
Таблица 5.9. Регистр управления преобразователем ADCTL
CCF SCAN MULT CD СС СВ СА
В одном из рабочих режимов преобразователь последова-
тельно считывает все входы каждого блока. Находясь в другом
режиме, преобразователь считывает лишь один вход. Для вы-
полнения полного аналого-цифрового преобразования преоб-
разователь затрачивает 17 мкс.
Архитектура микропроцессора М68НС11 1 *| 5
По окончании преобразования четырех входов бит 7 дан-
ного регистра (CCF: Conversions complete flag - Флаг завер-
шения преобразований) устанавливается в 1. Для непрерыв-
ного чтения бит 5 (SCAN: Continuous scan control - Непре-
рывное управление просмотром) должен установиться в 1.
Для воздействия на оба блока бит 4 (MULT: Multiple channel/
Single control - Множественный канал/Единое управление)
также должен установиться в 1. Следующие биты обеспечи-
вают выбор входов для преобразования. Результат выбора
можно прочесть в регистрах ADR1-ADR4 (табл. 5.10).
Таблица 5.10. Выбор регистров ADR
CD сс св СА Вход Результат (при MULT = 1) Адрес
0 0 0 0 Бит 0 порта Е: AD0 ADR1 $1031
0 0 0 1 Бит 1 порта Е: AD1 ADR2 $1032
0 0 1 0 Бит 2 порта Е: AD2 ADR3 $1033
0 0 1 1 Бит 3 порта Е: AD3 ADR4 $1034
0 1 0 0 Бит 4 порта Е: AD4 ADR1 $1031
0 1 0 1 Бит 5 порта Е: AD5 ADR2 $1032
0 1 1 0 Бит 6 порта Е: AD6 ADR3 $1033
0 1 1 1 Бит 7 порта Е: AD7 ADR4 $1034
Программа чтения входов РЕО и РЕ1:
LDAA STAA LDAA STAA июоооооо $1039 #£00010000 $1030 * установка бита 7 в 1 * адрес регистра OPTION * установка бита 7 в 1 * адрес регистра OPTION
BRCLR $1030, #£10000000
LDAA 1031
STAA ANALOG—0
LDAA 1032
STAA ANALOG_1
Порт А: таймеры и счетчики
Порт А связан с таймерами и счетчиками. Так как эта часть
является достаточно сложной, для ее подробного изучения
мы рекомендуем вам обратиться к справочному руководству
для микропроцессора М68НС11 компании Motorola.
116 Глава И 5 Введение в программирование микропроцессора М68НС11
Таймеры
Французский термин «temporisateur» (синхронизатор) являет-
ся упрощенным переводом английского слова «timer», который
подразумевает гораздо больше возможностей1. Таймер пред-
ставляет собой регистр, регистрирующий 16-битовое значение.
Когда это значение становится равным содержимому независи-
мого счетчика, может быть изменен выход, связанный с тайме-
ром. Выполняемое действие является сравнением.
Каждый из пяти таймеров, доступных по выходу, имеет
связанный с ним регистр. Каждый таймер может быть за-
программирован для активации своего выхода с целью выпол-
нения следующих четырех действий: отсутствия действия, уста-
новки выхода в 1, 0 или инверсии значения на выходе.
В случае идентичного сравнения каждый таймер может
также сгенерировать прерывание, но оно обычно использу-
ется для повторного запуска действия.
Счетчик TCNT является главным из таймеров-счетчиков.
Он представляет собой 16-битовый регистр, который увели-
чивает свое значение («приращается») по окончании каждо-
го времени цикла. Именно содержимое этого счетчика срав-
нивается с одним из регистров таймеров.
Для лучшего понимания рассмотрим пример, в котором
нам необходимо получить прямоугольный сигнал на выхо-
де РА4.
Достаточно запрограммировать один таймер, чтобы при
выполнении сравнения происходила инверсия его выхода.
После этого в регистр таймера записывается значение, соответ-
ствующее половине периода прямоугольного сигнала. В конце
программа прерывания должна повторно записать то же самое
значение в таймер. Последнее действие выполняет переход к
основной программе для реализации других задач. При этом
формирование прямоугольного сигнала становится фоновой
задачей, о которой можно как бы забыть. Забывать, конечно,
обо всех фоновых задачах не нужно...
Нижеприведенная программа описывает необходимый код:
В технической литературе по микропроцессорам «timer» таймером и зовется. - Прим,
науч. ред.
Архитектура микропроцессора М68НС11 117
LDAA #£00000100 * инверсия выхода 4
STAA $1020 * регистр управления 1 (TCTL1)
LDAA #£00010000 * выбор таймера п 4
STAA $1023 * активация прерывания (TFLG1)
STAA $1022 * активация сопутствующей маски (TMSK1)
Следующая программа представляет собой программу пре-
рывания, которая повторно генерирует активацию таймера:
CARRE_INT
LDX #$1000 * Загружает базовый адрес специальных
* регистров для использования
индексного режима
LDD #1000 * значение полупериода в D
ADDD $1С,Х * увеличенное на содержимое таймера
STD $1С,Х * реализует значение (ТОС4)
BCLR $23 ,Х $EF * Активирует ближайшее прерывание
RTI
Счетчики
Порт также снабжен тремя счетчиками, приращение кото-
рых происходит в результате различных событий, которые
могут возникать на соответствующих им входах. Этими собы-
тиями могут быть передние фронты, задние фронты (срезы)
или их совокупность. Эти счетчики могут использоваться для
измерения периода сигнала.
Также имеется один вход порта А, который способен под-
считывать импульсы, сопутствующий регистр (PACNT) мо-
жет быть запрограммирован для данного применения.
Прерывание в реальном времени
Микропроцессор М68НС11 также снабжен функцией преры-
вания в реальном времени (RTI), которая может быть запро-
граммирована для активации прерывания по прошествии
определенного промежутка времени, устанавливаемого зара-
нее. Эта функция используется для выполнения программиро-
вания в реальном времени.
Для получения более подробной информации о данной
функции и ознакомления с примерами программирования
рекомендуется обратиться к справочному руководству мик-
ропроцессора М68НС11.
“| “| 8 Глава И 5 Введение в программирование микропроцессорам 68 НС 11
Порт D: последовательный интерфейс
Последовательный порт предназначен для передачи в микро-
процессор программ и последующего обмена данными с ним.
Эта последняя возможность является очень интересной для
обнаружения ошибок программирования. Последовательное
соединение конфигурируется последовательным связным ин-
терфейсом SCI (Serial communications interface).
В этом применении задействовано пять регистров микро-
процессора М68НС11:
• BAUD (Baud rate register - Регистр скорости передачи -
$102В). Регистр управления скоростью последователь-
ной передачи, управляет скоростью передачи данных
через этот порт;
• SCCR1 (SCI control register - Регистр управления по-
следовательным связным интерфейсом - $102С) обес-
печивает выбор формата передаваемых или принима-
емых данных;
• SCCR2 (SCI control register - Регистр управления по-
следовательным связным интерфейсом - $102D) явля-
ется главным регистром управления;
• SCSR (SCI status register - Регистр состояния последова-
тельного связного интерфейса - $102Е) содержит ин-
формацию об общем состоянии передачи, ее оконча-
нии или ошибках передачи сообщений;
• SCDR (SCI data register - Регистр данных последова-
тельного связного интерфейса - $102F) содержит при-
нимаемые или передаваемые данные.
Нижеприведенная программа инициализирует последо-
вательный порт для передачи и приема при помощи преры-
вания со скоростью 9600 бод:
BAUD EQU $2B
SCCR1 EQU $2C
SCCR2 EQU $2D
SCSR EQU $2E
SCDR EQU $2F
INIT- .SCI
LDX #$1000 * загружает базовый адрес регистров
Языки программирования
Мобильный робот может быть запрограммирован на Ассемб-
лере или более совершенном языке, например С. Но на прак-
тике эти языки сосуществуют, дополняя друг друга. Ассемблер
используется для написания программ управления двигателя-
ми или чтения входов, а язык С - для программирования раз-
личных типов поведения робота, образуя некую форму искус-
ственного интеллекта.
BASIC является очень удобным языком для начинающих
программистов. Если вы делаете первые шаги в программа
руемой робототехнике, BASIC станет для вас правильным
выбором.
Но робота можно запрограммировать и при помощи
объектно-ориентированного языка. Подобные языки обеспе-
чивают простой способ приобщения к робототехнике. Та-
ким был выбор компании LEGO для ее конструкторов робо-
тов LEGO Mindstorms.
Языки делятся на интерпретаторы и компиляторы. Разни-
ца между ними значительна: интерпретатор присутствует
внутри компонента, программа загружается в оперативное
запоминающее устройство - ОЗУ (RAM) или перепрограм-
мируемую постоянную память - ЭСППЗУ (EEPROM), после
чего она декодируется и выполняется. Компилятор перево-
дит исходную программу в объектную, которая загружается
в микропроцессор. Замечено, что интерпретатор занимает
120 Глава И 5 Введение в программирование микропроцессора М68НС11
Документы
Ниже указано точное название документа, который вы найде-
те на сайте компании Motorola. Он дополнит представленную
в этой главе информацию.
Справочное руководство для микропроцессора 69НС11:
MC68HC11FTS/D.
Еще один сайт компании Motorola, посвященный микро-
процессору М68НС11:
http: //www.mcu.motsps.com.
Дополнения *119
CLR SCCR1,X * формат 8 бит
LDAA #$30 * скорость 9600 Бод
STAA BUAD,X * записывает в регистр BAUD
LDAA #$2C * активирует прерывания
STAA SCCR2,X * на регистре управления SCCR2
Следующая программа TRANSMISSION LDX #$1000 отправляет символ и проверяет функцию
STAA WAITING LDAA SCDR,X SCSR,X * передача данных
BPL WAITING * проверяет, является ли регистр * пустым
Следующая программа прерывания RECEIVING LDX #$1000 WAIT получает символ через программу * ожидает наполнение регистра
LDAA SCSR,X * проверяет, указывает лй бит RDRF
ANDA BEQ #$20 WAIT * регистра на окончание приема
LDAA SCDR,X * данные находятся в А
RTI
Дополнения
Информация, указанная в данной главе, должна помочь вам пра-
вильно начать программирование микропроцессора М68НС11.
Но для понимания каждой отдельной функции ничто не срав-
нится с вашим личным опытом. Не бойтесь тестировать корот-
кие программы. Они позволят вам учиться программировать
исходя из опыта более квалифицированных программистов. На
сайте компании Motorola: http://www.motorola.com, посвящен-
ном данному микропроцессору, вы найдете множество приме-
ров его использования. Также в Интернете вы найдете много
сайтов, где освещаются модели М68НС11. Существует огромное
количество информации об этом компоненте1.
На русском языке необходимую информацию по микропроцессорам модели М68НС11
можно найти на сайтах http://www.motorola.ru и http://www.datasheet.ru. - Прим,
науч. ред.
122 Глава & Языки программирования
значительное пространство, ограничивая тем самым размер
программы применения. С другой стороны, интерпретация
каждой команды занимает больше времени. Соответственно,
компилятор является более совершенным, чем интерпретатор.
Ассемблер
Ассемблер является языком, наиболее близким микропро-
цессору и, соответственно, наиболее сложным для начинаю-
щего. Основной его недостаток заключается в том, что язык
меняется для каждого конкретного типа микропроцессора.
Соответственно, для каждого семейства микропроцессоров
необходимо изучать свойственный только ему достаточно
сложный язык. Для своих компонентов PIC компания Micro-
chip использует RISC-архитектуру, сокращающую количество
команд, которые должен изучить пользователь, до 37. Помимо
всего прочего в этом заключается один из факторов большей
популярности компонентов PIC по сравнению с М68НС11.
В двух предыдущих главах мы рассмотрели основную струк-
туру этих разных, но интересных в применении микропро-
цессоров и различия в их программировании. Совершенно
очевидно, что эти главы не могут рассматриваться в качестве
’введения в программирование на языке Ассемблер. Усвоен-
ные понятия необходимы для движения вперед к более со-
вершенному языку.
При конфигурировании микропроцессора можно заметить
сходство функций каждого языка. Соответственно, важно по-
нять команду на Ассемблере, которая воздействует, прежде все-
го, на соответствующие регистры. Конфигурации входов-выхо-
дов, выбор параметров различных таймеров или прерываний
являют собой типичные примеры, в которых команда на Ассем-
блере сходна с ее функцией на языках BASIC или С.
ЯзыкС
Этот язык является языком программирования в полном смы-
сле этого слова и относится к языкам высокого уровня. Боль-
шинство роботов из данной книги запрограммировано на
языке С. Этот язык называется переносным, то есть программа,
BASIC 123
написанная на С для одного микроконтроллера, может быть
использована для другого микроконтроллера после внесения
в нее незначительных изменений. Основные различия будут
касаться разных периферийных устройств, специфичных для
каждого компонента.
Язык С высоко оценивается программистами. Он не явля-
ется ни языком самого высокого уровня, ни слишком тяже-
лым языком, сочетая в себе элементы языков высокого уров-
ня и машинного языка. Программы, написанные на С, могут
без труда сочетаться с программами на Ассемблере. Таким
образом, С прекрасно адаптирован для программирования
микроконтроллеров, используемых в мобильных системах,
например в роботах.
Роботы на базе микроконтроллера PIC были запрограмми-
рованы на языке С при помощи компилятора CCS. Другим ком-
пилятором, который также может использоваться для PIC, яв-
ляется HI TECH.
Для роботов на базе микропроцессора М68НС11 был ис-
пользован компилятор ICC 11 компании Imagecraft. Компа-
ния Controlord предлагает демо-версию своего компилятора
СС11, представленную на сайте http://www.controlord.fr.
BASIC
Среди программистов BASIC считается самым простым язы
ком. Некоторые микроконтроллеры продаются со встроен
ным языком BASIC. Этот язык упрекают в медлительности -
он примерно в 100 раз медленнее, чем Ассемблер.
BASIC разрабатывался как базовый язык, простой для изу-
чения и освоения за короткий промежуток времени. Первые
системы BASIC представляли собой интерпретаторы, кото-
рые работали на компьютерах до наступления эры микроконт-
роллеров и ПК. BASIC вернулся в моду в виде интерпретато-
ра, загружаемого в постоянную память - ПЗУ (ROM) микро-
контроллеров.
BASIC не является стандартизированным языком и меня-
ется в зависимости от микроконтроллера. В некоторых вер-
сиях BASIC количество команд сведено к минимуму. BASIC 11
компании Controlord, разработанный для микропроцессоров
1 24 Глава И 6 Языки программирования
М68НС11, является структурированным языком, как и язык С.
Он выступает не интерпретатором, а компилятором, перево-
дящим исходную программу в объектную.
Объектно-ориентированный язык
Вначале объектно-ориентированные языки создавались для
сбора данных (измерения и тестирования). Первыми в этой
области стали программные продукты LABView и HPView.
Эти программы были очень удобны, но слишком ограниче-
ны пределами продукции своей марки. Однако возможность
анализировать информацию также должна была послужить
управлению процессами без участия человека. Эту техноло-
гию назвали наблюдением.
В данном случае заметна необходимость сосуществования
оборудования и программы. Однако только естественные язы-
ки программирования (Basic, С или Ассемблер) обеспечивали
управление мощным электронным интерфейсом (программи-
руемыми автоматами). Чтобы дать большему количеству лю-
дей - инженерам и техникам в области физики или электро-
ники, возможность удобного программирования, были созда-
ны графические языки программирования.
Использование графических объектов, связанных между
собой нитями (HPView, Prototypage) или программой (Visual
Basic, Delphi) вместо текста стало глотком кислорода для про-
фессиональных программистов и программистов-любителей.
Несколько больших школ программистов работают не
только над проблемами программирования роботов, но и над
моделированием при помощи программных продуктов этого
типа. Каким бы ни был язык программирования, теперь воз-
можно найти его графические версии. Компания Borland
предлагает продукт Delphi для языка Pascal и Builder для С.
Microsoft предлагает Visual Basic для Basic.
На базе всего этого обилия языков программирования по-
явился новый язык LOGO, которым раньше пользовались дети
для игр под DOS. В редактирующем окне ребенок писал очень
простые командные строки в стиле:
• ДВИГАТЬСЯ ВПЕРЕД 50;
• ПОВЕРНУТЬ НАПРАВО 10;
• ПОДНЯТЬ РУКУ и т.д.
Объектно-ориентированный язык 125
Сейчас достаточно сложно найти этот язык, но осталась
возможность его воссоздания при помощи, например, интер-
фейса Delphi.
Следует также отметить новую программную разработку
компании LEGO. Компания предлагает конструктор «Robo-
tics Invention System»1. Он позволяет проводить программи-
рование с помощью элемента конструктора, называемого
«большим желтым кирпичом» - RCX, используя простой ин-
терфейс программирования (рис. 6.1). Так как продукт пред-
назначался, прежде всего, детям, было необходимо макси-
мально упростить команды и сохранить визуальный подход
к программированию. Но с точки зрения простоты програм-
мирования продукт не использовал всех технических воз-
можностей RCX.
Некоторые ученые в области робототехники занялись ре-
шением этой проблемы и пришли к созданию более мощных
Рис. 6.1. Графический интерфейс Lego
В русском переводе конструктор называется «Система изобретения робототехни-
ки*. - Прим. науч. ред.
126 Глава И 6 Языки программирования
сред программирования, обеспечивающих полное использо-
вание всех возможностей RCX. Это позволяет создавать более
сложные и более реалистичные типы поведения конструиру-
емых роботов.
Один из программных редакторов для RCX называется
RCX Command Center (Командный центр RCX). В этом про-
граммном продукте используется разновидность языка С,
модифицированная для соответствия потребностям LEGO®-
MindStorms™. Редактор снабжен многими функциями, на-
пример:
• окном для наблюдения за происходящим внутри робота;
• окном непосредственного управления роботом;
• окном управления через систему дистанционного упра-
вления при помощи ИК-порта;
• окном управления роботом для исполнения музыкаль-
ных мелодий;
• окном диагностики и т.д.
Рис. 6.2. Программирование при помощи ускоренного создания прототипа
Программы "| 27
Зайдите на форумы в Интернете, посвященные данной
теме. Вас удивят масштабы этого явления под названием «Ко-
мандный центр RCX (RCX Command Center)», разработанно-
го программистами фирмы LEGO1.
Молодая французская компания Controlord предлагает дру-
гой альтернативный подход - ускоренное создание прототипа. Эта
технология программирования немного похожа на объектно-
ориентированное программирование. Но самое интересное
заключается в том, что она, прежде всего, предназначена для
начинающих, так очень проста для усвоения и не требует пред-
варительного опыта в области программирования (рис. 6.2).
Можно сказать, что новая технология программирования от
Controlord - мечта начинающего программиста.
Программы
Программные продукты, указанные в главе 6 можно найти на
сайтах компаний-разработчиков. Для получения последних
версий программных продуктов необходимо регулярно посе-
щать различные сайты, посвященные компонентам. На боль-
шинстве сайтов вы найдете ограниченные бесплатные версии.
• Controlord: Ассемблер, BASIC и компилятор С для НС 11;
• ICC1 lv48: бесплатный компилятор С для НС11;
• ICCllv6: демонстрационная версия 6;
• HI TECH: демонстрационная версия компилятора, ог-
раниченная применением для 16F84.
Сайт, посвященный компилятору на Ассемблере, BASIC, С
и программе ускоренного создания прототипа для 68НС11:
http: //www.controlord.fr.
Сайт компании LEGO®, посвященный робототехнике:
http://www.legomindstorms.com.
1 Их мысли можно понять - робот начинается как простенькая игрушка для детей, а в
конце концов превращается в сложную конструкцию, выполняющую рутинную че-
ловеческую работу или заменяющую человека на опасных производствах. Фирма
LEGO не хочет отстать от прогресса. - Прим. науч. ред.
*| 28 Глава И 6 Языки программирования
Сайт компании CCS, работающей над разработкой компи-
лятора С:
http: //www.ccsinfo.com.
Сайт компании HI TECH, работающей над своим вариан-
том разработки компилятора С:
http: //www.htsoft.com.
Сайт, посвященный разработчикам PIC на языке С:
http: //www.wworkingtex.com/htpic.
Сайт компании, разработавшей компилятор С для НС11:
Imagecraft:
http: //www.imagecraft.com1.
Все или почти все из вышеуказанных программных продуктов можно найти на сайте
http://www.datasheet.ru, задав в поле Найти название затребованного программно-
го продукта. - Прим. науч. ред.
Программирование робота
Структура программы, написанной для робота, ни в малейшей
степени не похожа на программирование классической зада-
чи для микроконтроллера. Программирование робота долж-
но быть, специализировано и адаптировано для его поведен-
ческой модели, отличающейся от поведенческой модели чело-
века именно по причине его мобильности. Родни Брукс из
Массачусетского технологического института (MIT) стал пер-
вым, кто предложил новый подход к программированию ро-
ботов. Используя пример насекомых, он предложил свести к
минимуму процесс мышления, предшествующий действию.
Свой алгоритм поведения робота Брукс назвал «Архитектурой
приоритетных взаимодействий».
Архитектура приоритетных взаимодействий позволяет со-
брать в единую согласованную (когерентную) систему все эле-
менты управления мобильным роботом. Преимущество этого
способа, объединяющего восприятие и движение, заключается
в том, что он требует лишь незначительных математических ре-
сурсов.
Искусственный интеллект может быть доступным для всех...
5-7388
130 Глава И 7 Программирование робота_________________
Приоритетное взаимодействие
Традиционный подход к программированию
роботов
Руководствуясь традиционным подходом, программисты ста-
раются смоделировать среду, близкую мобильному роботу.
Сопутствующая программа представляет собой последова-
тельность подпрограмм, выполняемых в традиционном и не-
изменном порядке (рис. 7.1).
Датчики
____7
Интерпретация
Моделирование
Планирование
Действие
Двигатели
Рис. 7.1. Традиционное программирование роботов
Преимущества традиционного подхода
При помощи датчиков собираются данные об окружающей
среде. Для исключения погрешностей измерения данные под-
вергаются интерпретации. Моделирование окружающего
мира должно включать геометрические параметры препят-
ствий и их положение. Эта модель окружающей среды позво-
ляет роботу выполнить последовательность действий.
Такой подход позволяет оптимизировать выполняемые
роботом действия для получения последовательности гаран-
тированно безошибочных действий (промышленные робо-
ты в окружающей их среде).
Недостатки традиционного подхода
С одной стороны, такой подход подразумевает использование
очень сложной математической системы расчетов. С другой
Приоритетное взаимодействие *| 31
стороны, так как в реальном мире содержится огромное коли-
чество данных, потребуется значительный объем памяти.
Датчики также должны обладать исключительной точ-
ностью. Однако датчики работают с погрешностью, а ис-
пользование различных технологий измерения, основан-
ных на разных принципах действия, приводит к противо-
речивым результатам (ультразвуковые и телеметрические
ИК-датчики)1.
Подход приоритетного взаимодействия
для программирования роботов
Эта технология совмещает управление в реальном времени с
реакциями поведения, приводимыми в действие датчиками.
Вместо проверки*действительности информации, получен-
ной от датчиков, в роботе используется стратегия, при кото-
рой его общее поведение определяется только датчиками.
При этом поведенческие реакции робота становятся незави-
симыми системами, действующими одновременно в параллель-
ном режиме. Противоречия данных превращаются в противо-
речивые поведенческие реакции. Особый арбитраж определя-
ет приоритеты доя создания доминирующего поведения.
Реакции поведения более высокого порядка замыкают на-
коротко реакции поведения более низкого порядка. При ис-
чезновении условия, созданного датчиком более высокого
порядка, происходит отмена сопутствующего поведения в
пользу поведения более низкого порядка.
Итак, более нет неподвижной модели мира - существует
лишь непосредственный учет каждого события.
Пример
Расмотрим подвижного робота, снабженного несколькими
датчиками типа «Локатор», а также ИК-системой обнаруже-
ния, установленной в верхней части робота (рис. 7.2).
С другой стороны, датчики разного принципа действия в некоторых применениях
взаимно дополняют друг друга. Например, комбинированные охранные извещатели
(ИК-пассивные и радиолучевые - СВЧ) хорошо себя зарекомендовали для целей
охраны помещений от несанкционированного вторжения. - Прим. науч. ред.
5
132 Глава 7 Программирование робота
Рис. 7.2. Пример программирования с использованием архитектуры,
построенной на принципе приоритетного взаимодействия
Цель движения робота (как его запрограммировали) - пе-
ремещаться по комнате, избегая столкновения с препятствия-
ми. Ниже названы подпрограммы и типы поведения робота,
разработанные от низших к высшим приоритетам по принци-
пу приоритетного взаимодействия:
• умолчание - поведенческая реакция, передающая ро-
боту приказ остановки;
• двигатели - подпрограмма, активирующая двигатели
при помощи силового интерфейса;
• локатор - подпрограмма, измеряющая расстояние в по-
стоянном режиме;
• уклонение - поведение, поддерживающее безопасное
расстояние между роботом и препятствиями. Оно за-
ставляет робота поворачиваться до тех пор, пока его
задний датчик «Локатор» не определит самое корот-
кое расстояние, после чего робот начинает двигаться
вперед;
• подзарядка - поведение робота, которое заключается в
перемещении по направлению разъема зарядного уст-
ройства в случае почти полной разрядки батареи. Для
этого робот использует данные, полученные от датчи-
ков Локатор, ИК-передатчик и Батарея. Разъем зарядно-
го устройства находится около стены и оборудован ИК-
передатчиком, постоянно посылающим ИК-излучение.
Приоритетное взаимодействие “| 33
Точка S представляет собой узел приоритетного взаимодей-
ствия. Поведенческая реакция Подзарядка является приори-
тетной по отношению к реакции Уклонение, которая в свою
очередь приоритетна относительно реакции Умолчание.
Преимущества подхода приоритетного
взаимодействия
Данный способ программирования разбит на отдельные за-
дачи, работающие одновременно в параллельном режиме.
Это позволяет проводить независимое программирование
каждой задачи. Но главное преимущество заключается в том,
что при поэтапном изготовлении робота существует возмож-
ность добавления новых функций без утраты уже существую-
щих возможностей, нужно лишь их взаимно увязать и расста-
вить приоритеты.
Замечено, что при условии усовершенствования центра
управления такая технология добавления функций не приве-
дет к замедлению его работы.
Реальное время
При необходимости обеспечения одновременного функцио-
нирования нескольких программ следует использовать мно-
гозадачную взаимодействующую систему или, еще лучше, систе-
му работы в режиме реального времени. Ее принцип заклю-
чается в использовании основной программы, выделяющей
одинаковое количество времени для выполнения каждой за-
дачи. Системы работы в режиме реального времени доста-
точно сложны в изготовлении. Однако при упрощении сис-
темы работы в режиме реального времени можно интерпре-
тировать ее работу и получить систему сходного принципа.
Эта система называется многозадачной взаимодействующей
системой. Ее недостаток заключается в несколько большей
длине записываемых задач.
Применение подхода приоритетного
взаимодействия
Для получения каждой поведенческой реакции робота ис-
пользуются две глобальные переменные: одна - для передачи
134 Глава И 7 Программирование робота
команды на двигатели, другая - для оповещения многозадач-
ной системы о желаемой передаче сигнала на двигатели. Вто-
рая переменная называется флагом.
На рис. 7.3 представлена блок-схема, отображающая осо-
бенность программирования каждого компонента.
Рис. 7.3. Блок-схема компонента
Пример 1. Рассмотрим пример, соответствующий поведе-
нию робота по умолчанию из предыдущего примера.
//=======================================================
II Поведение по умолчанию
// = = = = = = = = = = = = = = = = = =: = = = = =: = = = = = = = = = = = = = = = = = = = = = = = = = = =: = = = = =
int Default- command; // Команда на двигатели
int Default-flag; // Флаг для системы
voidDEFAULT ()
{
Default- command = Shutdown;. // Робот остановлен
Default—flag =1; // Команда активирована
}
Данный модуль отправляет команду «Остановка» в непре-
рывном режиме и уведомляет, что эта команда должна акти-
вироваться с максимальной частотой.
Приоритетное взаимодействие 135
Пример 2. В данном примере поведение робота обеспечи-
вает его уклонение от препятствия, замеченного локатором.
Локатор производит измерение расстояния до препятствия.
По сторонам робота установлено четыре локатора.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = . = = = = = = = = = = = =
// Программа уклонения от препятствий
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =: = = = = х
int Deviation_Command;
int Deviation_Flag;
void Deviation ()
{
if (Sonar_Fl > Dist.Max && Sonar_left > Dist_Max
8c& Sonar_Forward > Dist_Max && Sonar_Back > Dist_Max)
Deviation_Flag = 0;
or if (Sonar_Back < Sonar_Forward &&
Sonar_Back < Sonar_Left && Sonar_Back < Sonar_Right)
{ Deviation—Command = Motion forward;
Deviation_Flag = 1;}
or
{ Deviation-Command = Motion right;
Deviation_Flag = 1;}
}
Если результат проведенного функцией уклонения измере-
ния меньше предельного значения на одной из сторон робо-
та, то данная функция производит поворот робота в напра-
влении, противоположном ближайшему препятствию. В про-
тивном случае функция не подает никакой команды.
Пример 3. Данный пример является полной программой
примера, рассмотренного на рис. 7.2.
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =!= = = = = = =: = = = == = = = = = = = = = = = = =
// Номер Программы : ехо_1.с
// Дата : 4-12-2001
// Версия : 1
// Автор : Ф. Жиамарши (F. Giamarchi)
И
// Описание : Базовая сетка для PIC 16F87X
программа на языке С
Изучение поведения робота
//=======================================================
Вызов необходимых подпрограмм
//=======================================================
#include <16f873.h>
#include <robot-01.h>
136 Глава И 7 Программирование робота
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =: = = = = = = = =
// Программа управления двигателями
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =: = = = = = = = = = = = = = = =
int Motor-Command;
void Activation.Motors ()
{
// эта функция подробно не указана.
}
//=======================================================
// Программа по умолчанию
//=======================================================
int Motor_Command;
int Motor.Flag;
void Default ()
{
Default-Command = Shutdown;
Default.Flag = 1;
}
//=======================================================
// Программа уклонения от препятствий
// = = = = = = = = = = = = = = = = = = = = = = = =: = = = = = =: = = = = = = = = = = = = =: = = = = = = = = = =: = =
int Deviation-Command;
int Deviation.Flag;
void Deviation ()
{
if (Sonar_Fl > Dist_Max && Sonar_left > Dist.Max
&& Sonar_Forward > Dist.Max && Sonar_Back > Dist.Max)
Deviation_Flag = 0;
or if (Sonar_Back < Sonar_Forward &&
Sonar_Back < Sonar.Left && Sonar.Back < Sonar_Right)
{ Deviation. Command = Motion forward;
Deviation.Flag = 1;}
or
{ Deviation-Command = Motion right;
Deviation_Flag = 1;}
}
// = = = = = = = = = = = = = = = = = = = = = =: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// Программа подзарядки батареи
//=======================================================
int Charging_Command;
int Charging.Flag;
Приоритетное взаимодействие 137
void CHARGING ()
{
if (Measuring_Bat > Limit_Bat)
Charging_Flag = 0;
or if (Transmitter_Ir==l && Sonar_Forward ==0)
{ Charging_Command = Shutdown;
Charging-Flag = 1;}
or if (Transmitter_Ir)
{ Charging_Command = Motion forward;
Charging-Flag = 1;}
or { Charging-Command = Rotation right;
Charging_Flag =1;}
}
// = = = = = = = = = = = = = = = = = = = = = = = = =: = = = = = = = = = = = = = = = = =: = = = = = = = =: = =: = = =
// Программа арбитража
// = = = = = = = = = = t: = = = =: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
void Arbiter ()
{
if (Charging_Flag)
Motor-Command = Charging-Command;
or if (Deviation-Flag)
Motor_Command = Deviation-Command;
or if (Default-Flag)
Motor-Command = Default-Command;
or
Motor_Command = Shutdown;
}
//=======================================================
// Основная программа
//=======================================================
main()
(
INIT—Robot();
While (1)
{
Default();
Deviation();
Charging();
Arbiter();
Activation-Motors();
}
}
//=======================================================
В файле robot-0l.h указана информация о конфигураци-
ях, а также о дополнительных функциях.
138 Глава И 7 Программирование робота________________
Функция Activation_Motors () не описана, так как она за-
висит от типа привода.
В следующих главах будет рассказано об областях приме-
нения программирования такого типа.
Рекомендуем прочесть книгу Les Robots mobiles. Jones J. L.,
Flynn A. M. Diderot, 1997.
Глава
8
Датчики и их интерфейсы
Выбор и использование по назначению датчиков, которыми
оснащается робот, представляют собой отдельную задачу.
Первые датчики, используемые начинающими роботострои-
телями, зачастую представляют собой очень простые компо-
ненты: выключатели (могут использоваться в качестве детек-
торов столкновения) и фотОрезисторы (могут направлять
движение робота к источнику света). Принцип работы этих
датчиков очень прост для понимания. Но не нужно полагать,
что они без проблем могут служить сенсорными органами
робота.
Классическая ошибка состоит в перенесении себя на мес-
то робота, размышлении над ответным действием на какое-
либо событие и в последующих попытках добиться адекват-
ной реакции робота при помощи датчиков и программ.
К счастью, не все так просто... Робот не способен на доблес-
тные подвиги людей. Но, конструируя робота, начинаешь по-
немногу понимать, каким образом природа при помощи ес-
тественного отбора в течение многих миллионов лет смогла
создать совершенного человека.
Вопрос, который следует задать самому себе перед исполь-
зованием датчика: как работает этот датчик, и для чего он
может служить?
Проследите за эволюцией новорожденного малыша. При
рождении он не понимает того, что видит, не знает о том,
140 Глава 8 Датчики и их интерфейсы
что у него есть ноги и руки, нос и уши, другие органы. Прой-
дет несколько месяцев, прежде чем он научится хватать свою
погремушку руками, и еще несколько месяцев, прежде чем он
научится ходить.
Чтобы адаптировать тот или иной датчик к программируе-
мому роботу, необходимо замерить подаваемые им аналого-
вые или цифровые данные, улучшить их, если нужно, при по-
мощи классического интерфейса, затем преобразовать полу-
ченную информацию при помощи программы. Результатом
этого является логическая информация о состоянии датчика,
например значение ниже или выше установленного порога.
Только после этого следует принимать решение об активации
соединяемого с датчиком двигателя.
Необходимо потратить некоторое время для правильно-
го тестирования каждого датчика, правильного подбора для
него соответствующего электронного интерфейса и оптими-
зации программы. Выбор места установки датчика на корпу-
се робота играет важную роль: датчик должен быть защищен
от соударений.
Датчики соударений
Как правило, датчик соударений представляет собой выклю-
чатель, подающий информацию логического типа. Выключа-
тель может находиться в одном из двух положений - разом-
кнутом или замкнутом. Может показаться, что эту информа-
цию легко преобразовать для использования в программе.
В физическом смысле датчики соударений представляют
собой выключатели концевого типа, или кнопки (рис. 8.1).
Датчики такого типа можно использовать для особых ро-
ботов (божья коровка). Они используются в качестве бампе-
ров мобильных роботов на колесах, а также для остановки
вращения оси, пришедшей в положение соприкосновения с
ограничительным упором.
На рис. 8.2 представлены схемы интерфейса для датчиков
такого типа.
Как правило, в состоянии покоя выключатель находится
в разомкнутом положении, но это необязательно. Важным
является то, что, когда датчик находится в состоянии покоя,
Датчики соударений 141
Рис. 8.1 Различные датчики соударений
R1
47 кОм
SR1
47 кОм
Работа
1 - кнопка разомкнута
О - кнопка замкнута
К2
Концевой
выключатель
Рис. 8.2. Интерфейс для датчика соударений
в центр управления подается верхний уровень напряжения, опре-
деляемый нагрузочным резистором. Это необходимо по двум
причинам. Первая заключается в потребляемом токе, так как
предполагается использование датчика только в определенные
моменты, а вторая - в том, что резистор зачастую устанавливает-
ся на плате управления, вблизи физических входов процессора.
У этих датчиков имеется серьезный недостаток: контакт не
замыкается сразу. Появляется эффект дребезга контакта, кото-
рый может быть неправильно интерпретирован центром упра-
вления. Решение этой проблемы заключается во введении в
программу достаточно длительной задержки, перекрывающей
1 42 Глава 8 Датчики и их интерфейсы
интервал времени дребезга контакта, между двумя интервала-
ми времени чтения этих входов. Такое решение используется в
программах, имеющих узел реального времени.
Датчики наклона
Эти датчики предназначены для использования на пересечен-
ной местности (рис. 8.3), но не просто найти модель, указыва-
ющую наклон с большой точностью до двух градусов наклона
и более.
Рис. 8.3. Датчики наклона
Положение датчика очень важно во избежание получения
ложной информации. Малейшее ускорение робота вызывает
срабатывание датчиков. Необходимо установить несколько
датчиков для проверки истинности полученной информации
и дождаться остановки робота для прочтения их значения.
Интерфейсы датчиков наклона идентичны интерфейсам,
предназначенным для датчиков соударений.
Оптические датчики
В этом разделе собраны все датчики, использующие световое
излучение как видимого, так и невидимого диапазона свето-
вых волн (рис. 8.4).
Оптические датчики включают в себя фоторезисторы,
фототранзисторы, фотодиоды, пироэлектрические датчики
Оптические датчики 143
Рис. 8.4. Оптические датчики разного типа
и видеокамеры. Выбор того или иного типа зависит от таких
параметров, как длина волны оптического спектра излуче-
ния или скорость считывания показаний датчика. Длиной
Относительная
мощность
------ Солнце
1 Глаз
-------Вольфрам
Рис. 8.5. Длины волн оптического спектра излучения
“| 44 Глава И 8 Датчики и их интерфейсы____________
волны определяется цвет источника света, который может
меняться от ультрафиолетового до инфракрасного, проходя
через видимую область спектра. На рис. 8.5 показаны обла-
сти известных источников света - от солнечного света до са-
мой обычной электрической лампочки с вольфрамовой ни-
тью накала, в сравнении с характеристикой восприятия че-
ловеческого глаза.
Время срабатывания представляет собой важный фактор
времени расчета для подтверждения информации. Фотодио-
ды и фототранзисторы являются самыми быстрыми, а фото-
резисторы и видеокамеры - более медленными.
Эти датчики могут оснащаться как простыми электронными
интерфейсами подобно датчикам соударений, так и сложными
интерфейсами, необходимыми, например, для видеокамеры.
Данные, получаемые от датчика, могут быть аналоговыми или
цифровыми в зависимости от выбранного интерфейса. Для
улучшения чувствительности при конкретном применении мо-
жет понадобиться дополнительный источник света. Например,
кодированное ИК-сообщение информирует робот-пылесос о
местонахождении разъема для зарядки батареи.
Фоторезисторы
Фоторезистор представляет собой полупроводниковый резис-
тор, сопротивление которого зависит от освещенности, при
уменьшении которой его сопротивление увеличивается. Очень
просто изготовить интерфейс для данного компонента с анало-
говым входом для подключения платы управления. Достаточно
всего одного резистора в паре с фоторезистором. При помощи
резистора мы создаем делитель напряжения, выходное значе-
ние которого зависит от освещенности (рис. 8.6).
у =
s УФР+41К
Для улучшения чувствительности датчика его можно по-
местить в небольшую полиэтиленовую трубку черного цвета.
Например, прекрасно подойдет отрезок термоизоляцион-
ной трубки. При этом датчик станет более чувствительным к
направленному источнику излучения. Датчик сможет обнару-
живать только свет, направленный непосредственно на него.
Оптические датчики 145
+5V
R5
47 кОм
резистор
Рис. 8.6. Интерфейс для фоторезистора
Этот датчик очень чувствителен к видимому свету, соот-
ветственно, данная информация может быть очень полезна
для управления роботом. Подобно человеку датчик должен
быть способен различать градации света: темноту, затемнен-
ные зоны и изменения яркости света.
Инфракрасные датчики
ИК-датчиками являются фототранзисторы или фотодиоды
(рис. 8.7).
Фототранзистор и фотодиод обладают максимальным по-
крытием ИК-области спектра, но их также можно применять
Рис. 8.7. ИК-датчики: фототранзистор, фотодиод, приемник сигналов пульта
дистанционного управления, линейный датчик
146 Глава И 8 Датчики и их интерфейсы
и в красной области спектра. Фотодиод имеет более быстрое
время срабатывания, чем фототранзистор.
Фотодиоду отдают предпочтение, когда необходимо обна-
ружение кодированного сообщения, например при приеме
сигналов пультом дистанционного управления телевизора.
Но для усиления принятого сигнала необходим интерфейс,
и, соответственно, фотодиод не может подключаться непо-
средственно к плате управления.
Фототранзистор используется в качестве замены фоторе-
зистора для обнаружения быстрых перепадов освещенности
окружающего пространства. Как и фоторезистор, фототран-
зистор подключается непосредственно к плате управления
при помощи простого интерфейса (рис. 8.8).
Рис. 8.8. Интерфейс для фототранзисторов и фотодиодов
Фототранзисторы часто используются совместно с излуча-
телем фотонов - источником света, например светодиодом
(французское обозначение - Del, английское обозначение -
Led). Эти совместно работающие компоненты называются
оптопарой и в зависимости от ориентации могут образовы-
вать датчик отражения или оптокоммутатор. Схема включения
неизменна для обоих типов датчиков (рис. 8.9).
Для сведения к минимуму влияния окружающего света на
датчик используется ИК-модель светодиода. Светодиод на-
страивается на оптимальное значение светового излучения
при помощи переменного резистора, которым регулируется
количество излучаемых фотонов. Это позволяет избежать
насыщения приемника, в результате которого приеМник ста-
новится непригодным для использования. Сопротивление
Оптические датчики 147
Рис. 8.9. Интерфейс для датчика отражения и оптокоммутатора
нагрузки фототранзистора зависит от модели. Оптимальное
значение сопротивления подбирается опытным путем. Для
фототранзистора марки НОА 149 сопротивление нагрузки
составляет 22 кОм.
Датчик отражения
Датчик отражения используется для обнаружения градаций
монохромного (черно-белого) цвета на плоской поверхнос-
ти. Темная поверхность поглощает излученные фотоны, и
транзистор остается в закрытом состоянии. Светлая поверх-
ность отражает свет в направлении фототранзистора, в ре-
зультате чего происходит его насыщение - транзистор пере-
ходит в другое, открытое, состояние (рис. 8.10).
Таким же образом возможно обнаружение и других цветов,
например зеленого. Оптимальное расстояние обнаружения
Рис. 8.10. Датчик отражения в дискретном и интегральном исполнениях
148 Глава И 8 Датчики и их интерфейсы
составляет порядка 5 мм. При изменении этого расстояния
характеристики датчика заметно ухудшаются.
Для изготовления такого датчика необходимо подобрать
компоненты с одинаковой длиной волны излучения и при-
ема или приобрести готовый датчик, компоненты которого
подобраны в пару.
При установке датчика на корпус робота необходимо обра-
тить внимание на два следующих момента. Первый касается рас-
стояния, а второй - защиты датчика от окружающего освещения.
Как правило, датчик используется для наблюдения за по-
лом. Но первоначальные цвета могут меняться (грязь, измене-
ние окраски пола в зависимости от помещения). Для учета
всего этого необходимо четко определить ваши потребности.
В конкурсах по робототехнике перед началом на пол наносят-
ся линии различных цветов, и центр управления довольству-
ется цифровой информацией. Ваша потребность должна быть
учтена в интерфейсе путем дополнения предыдущей схемы
гистерезисным компаратором (рис. 8.11).
Рис. 8.11. Улучшенный интерфейс для цифровой информации
Если вы желаете, чтобы робот следовал черной или белой
линии, рекомендуется использовать данную технологию, так
как она позволяет избежать применения преобразователей на-
пряжения и сэкономить время при расчете траектории движе-
ния центром управления. Робот будет двигаться по траектории
линии, нарисованной на полу, и не будет проводить никаких
расчетов - ни простых, ни сложных...
Оптические датчики 149
V =______________!____х К + —
порог _2 р .р опорное р
V , и V о - два порога переключения компаратора,
порог_1 порог_2 г JT г г
соответственно нижний (меньше опорного сигнала V )
и верхний (больше опорного сигнала VonopHoe) пороги. Необ-
ходимо, чтобы R1 имел в 10 раз большее сопротивление, чем
сопротивление нагрузки фототранзистора.
Оптокоммутатор
Принцип работы оптокоммутатора очень похож на принцип
работы датчика отражения (рис. 8.12), различие заключает-
ся в направлении излучаемого луча.
Инфракрасный
светодиод
Фототранзистор
Рис. 8.12. Принцип работы оптокоммутатора
В данном датчике ИК-луч направляется непосредственно
на приемник без отражения. Цель заключается в разрыве луча
каким-либо непрозрачным предметом. Такой датчик широко
используется для учета предметов или организации прохода
людей.
В границах области робототехники датчик может исполь-
зоваться в конце хода руки робота или для обнаружения на-
личия предмета в руке. Но одним из самых важных примене-
ний этого датчика является учет оборотов колес или враще-
ния двигателей. В последнем случае совместно с датчиком
используется разрезное колесо (рис. 8.13). Эта функция на-
зывается преобразователем углового положения вала в код,
или одометром.
Принцип работы прост. В разрезном колесе по его внеш-
ней окружности есть сплошные области и области разрезов.
Во время вращения при каждом изменении луча (разрыв
150 Глава 8 Датчики и их интерфейсы________________________
Рис. 8.13. Разрезное колесо для учета количества оборотов оси
луча или его появление) выходной сигнал переходит из одно-
го состояния в другое: из открытого (транзистор в насыще-
нии) в закрытое и наоборот. В счетчике оборотов количество
прямоугольных импульсов соответствует, например, количе-
ству разрывов луча.
Датчик отражения может быть также использован для изме-
рения такого типа. Для этого достаточно нанести краской не-
сколько реперов-точек отсчета на зубчатое или обыкновенное
колесо. Но можно пойти еще дальше и наклеить небольшой
кружок из картона, разделенный на двадцать чередующихся
черных и белых секторов. В этом случае датчик отражения ра-
ботает как оптокоммутатор и генерирует последовательность
прямоугольных импульсов, количество которых соответствует
количеству секторов одного цвета, черного или белого.
Эту технологию можно использовать для изготовления аб-
солютного датчика положения. В этом случае разрезной диск
заменяется моделью диска с двоичным циклическим (рефлек-
сным) кодом (кодом Грея - по фамилии изобретателя кода),
который используется совместно с несколькими оптокоммута-
торами. Все устройство устанавливается в небольшой модуль.
Его назначение состоит в точном определении угла положе-
ния оси в пределах 360°.
Оптические датчики 151
Детекторы приближения
Очень полезно уметь уклоняться от столкновения с непод-
вижным или мобильным препятствиями. Столкновение мо-
жет привести к неожиданным последствиям. Итак, данное
умение - очень ценное преимущество робота.
В этом разделе мы рассмотрим принцип обнаружения пре-
пятствия и измерение расстояния при помощи ИК-луча. Для
обнаружения препятствий, расположенных на небольшом
расстоянии, можно использовать излучающий ИК-светодиод
с небольшим фотоприемником. В совокупности компоненты
называют оптопарой. Для измерения расстояния применяется
более сложный компонент - доступная в продаже оптопара в
интегральном исполнении.
Обнаружение препятствия
Используемый принцип близок к принципу работы датчика
отражения, но с одним усовершенствованием. ИК-излучение
должно быть не непрерывным, а импульсным, что позволит
исключить паразитные ИК-излучения (солнечный свет, источ-
ник тепла). При наличии препятствия перед роботом излуче-
ние отражается и принимается приемником. Но эффектив-
ность этой системы зависит от мощности излучения, угла от-
ражения, происхождения и цвета препятствия.
Импульсное излучение модулирует несущую на частоте
40 кГц. Эта частота является стандартной несущей частотой
всех коммуникационных систем, использующих ИК-излуче-
ния (пульты дистанционного управления телевизорами и про-
чие приборы). Излученный сигнал принимается специаль-
ным приемным модулем, который включает в себя фотодиод,
усилитель и демодулятор, работающий на частоте 40 кГц. Мо-
дуль после демодуляции преобразует ее в цифровую форму и
в уровнях, непосредственно совместимых с уровнями сигна-
лов на входах платы управления.
Для обеспечения достоверности информации необходимо,
чтобы продолжительность излучения составляла примерно 1 мс,
152 Глава И 8 Датчики и их интерфейсы
а между излучениями выдерживалась пауза длительностью
1 мс. Во время излучения выполняется чтение приемника,
наличие препятствия подтверждается отсутствием сигнала
приемника при отсутствии излучения. Указанные промежут-
ки могут быть сокращены при испытаниях в конкретной си-
туации.
Схема датчика, представленная на рис. 8.14, проста в ис-
полнении.
6
ов
+5 В
ОВ
Рис. 8.14. Схема детектора приближения с использованием ИК-светодиода
и приемника дистанционного управления
Приемник представляет собой модель PIC26043S, кото-
рая имеется в продаже в магазинах Farnell1, но возможно ис-
пользование и других моделей. Для увеличения или уменьше-
ния расстояния обнаружения можно изменить номинал ре-
зистора. Так как стоимость одного датчика в собранном виде
не превышает трех евро, по периметру робота можно уста-
новить несколько таких датчиков, которые образуют пояс
обнаружения. В данном случае более экономично одновре-
менно управлять всеми ИК-светодиодами и последовательно
считывать показания с приемников.
Для изготовления такого устройства понадобится микро-
контроллер и приемный модуль системы дистанционного
управления с несущей частотой примерно 40 кГц. Существует
несколько более дорогая альтернативная версия такого уст-
ройства, представляющая собой небольшую интегральную
Магазины Farnell - такой же «Клондайк» для англоязычных радиолюбителей, что и
магазины «Чип и Дип» - для наших. - Прим.науч. ред.
Оптические датчики “| 53
Рис. 8.15. Детектор приближения IS 471 F в интегральном исполнении
микросхему IS 471 F, вобравшую в себя почти все элементы
схемы за исключением излучающего светодиода и резистора
регулировки дальности действия (рис. 8.15).
Такие устройства обладают ограниченным радиусом дей-
ствия, не превышающим 40 см. Предусмотрена возможность
регулировки расстояния. Эти датчики использованы для ро-
ботов-борцов Сумо из главы 10 и муравья из главы 11.
Измерение расстояния
Функция измерения расстояния, даже такого небольшого, как
в данном случае, является важным преимуществом. Она обес-
печивает проверку положения робота, рассчитанного други-
ми способами. Долгое время измерение расстояния являлось
прерогативой ультразвуковых систем из-за относительно не-
большой стоимости по сравнению с лазерными телеметричес-
кими датчиками. Но после разработки технологичных теле-
метрических ИК-датчиков их можно приобрести в компании
Sharp (рис. 8.16). Они обеспечивают достаточно точно изме-
рение расстояний в пределах от 10 до 80 см при помощи инф-
ракрасного излучения.
Для расчета расстояния или наличия объекта в поле зре-
ния эти датчики используют триангуляцию совместно с сетью
фотодиодов. Идея заключается в излучении коротких и мощ-
ных ИК-импульсов, которые отражаются объектом или теря-
ются, если не попали в поле его зрения. В случае отражения
на детектор поступает луч в точке, образующей треугольник с
точкой излучения и обнаруженным объектом (рис. 8.17).
*154 Глава И 8 Датчики и их интерфейсы
II
Рис. 8.17. Принцип работы датчиков Sharp
Рис. 8.16. Sharp предлагает точные инфракрасные датчики
небольших размеров
Угол отражения в треугольнике меняется в зависимости
от расстояния до обнаруженного объекта. Точность датчика
повышается линзой детектора. Фазочувствительный детек-
тор положения определяет угол отражения и рассчитывает
расстояние до объекта. Этот способ позволяет исключить
влияние окружающего освещения, а также цвета обнаружен-
ного объекта. Соответственно, возможно обнаружить чер-
ную стену при полном освещении помещения.
Расстояние и вычисленное значение не находятся в ли-
нейной зависимости. Соответственно, необходимо занести
в таблицу результаты измерений от 10 до 80 см, выполняя
измерения через каждые 10 см, а из таблицы - в программу
измерений.
Оптические датчики 155
Интерфейс с контроллером чрезвычайно прост, если не
считать необходимость соблюдения небольшой предосто-
рожности (рис. 8.18): напряжение, подаваемое на тактовый
вход моделей GP2D02 и GP2D05, не должно превышать 3 В.
Для эффективной защиты входа от импульсного перенапря-
жения можно воспользоваться делителем напряжения рав-
ными по значению номиналами сопротивлений (в пропор-
ции S). Еще один вариант - в разрыв связи детектор-микро-
контроллер установить диод фиксации уровня в указанной
на рисунке полярности.
Детектор +?В
GP2D02 f
Контроллер
НС11
Детектор +5 В
GP2D02
Vcc
Выход
Таймер
«Земля»
D
1N4148
Вход
Выход
Vcc
Выход
Таймер
«Земля»
1 кОм
1 кОм
Контроллер
НС 11
Вход
Рис. 8.18. Интерфейс для детекторов Sharp
В табл. 8.1 указаны характеристики различных детекто-
ров. Модели GP2D02 и GP2D12 выполняют измерение рас-
стояния соответственно в цифровом последовательном виде
(числа от 0 до 255) или в виде аналоговых значений (напря-
жения от 0 до 3 В).
Таблица 8.1. Детекторы приближения Sharp
Детек- тор Выход Радиус действия Вход Время изме- рения Потреб- ляемый ток Потреб- ляемый ток в де- журном режиме
GP2D02 Последо- вательный 10-80 см Синхрони- затор для чтения 70 мс 25 мА 2 мкА
GP2D05 Логический (0 или 1) соответст- вует уста- новленно- му порогу 10-80 см, регули- руется потенцио- метром Синхрони- затор для чтения 70 мс 25 мА 2 мкА
156 Глава И 8 Датчики и их интерфейсы
Таблица 8.1. Детекторы приближения Sharp (окончание)
Детек- тор Выход Радиус действия Вход Время изме- рения Потреб- Потреб- ляемый ляемый ток ток в де- журном режиме
GP2D12 Аналоговый 10-80 см (0-3 В) Нет: непре- рывное изме- рение 38 мс 25 мА
GP2D15 Логический Установ- (0 или 1) лен на заводе на 24 см Нет: непре- рывное измерение 38 мс 25 мА
Модели GP2D05 и GP2D15 вычисляют расстояния до пре-
пятствия в двоичной форме. Модели GP2D02 и GP2D05 упра-
вляются от внешнего тактового сигнала и потребляют всего
2 мкА в дежурном режиме. GP2D12 и GP2D15 не используют
внешних входных сигналов, а выполняют измерение в непре-
рывном режиме, постоянно потребляя ток 25 мА.
Рис. 8.19. Пример использования двух датчиков Sharp для исключения
«мертвой» зоны измерений расстояния
Оптические датчики 157
Vex
Vbwx
. °*2
70 мс или более
мс или менее 1.5 мс или более 1,5 мс или более
мс или более
:ЛЯЛЛП1Ш
Питание
ВЫКЛ
л
Младший двоичный
разряд (МДР) Младший двоичный
Старший двоичный
разряд (СДР)
разряд (МДР)
Пример результата измерения расстояния (8 бит)
Рис. 8.20. Эпюры напряжений при измерении сигналов с датчика Sharp
GP2D02 микроконтроллером
Выбор той или иной модели зависит от возможностей пла-
ты управления. Для правильного выбора необходимо знать о
наличии свободных аналоговых входов.
В качестве меры предосторожности рекомендуется создать
«мертвую» зону отсутствия измерений на расстоянии менее
10 см. Эту проблему можно решить, установив детекторы так,
чтобы их зоны наблюдения пересеклись (рис. 8.19) за «мерт-
вой» зоной, которая определяет границы робота.
Нижеприведенная программа диалога для модели GP2D02
была написана для микроконтроллера PIC16F84. Запуск нача-
ла измерения производится по первому заднему фронту на
линии передачи тактового сигнала компонента. После этого
следует либо ожидать, либо покинуть программу и регулярно
возвращаться в нее для тестирования линии передачи данных.
При переходе линии в единичное состояние проводится ос-
танов измерения, после чего можно считать выходные дан-
ные. По каждому заднему фронту, сгенерированному на линии
передачи тактового сигнала, микроконтроллер записывает
соответствующие 8-разрядные коды, начиная со старшего зна-
чащего бита (рис. 8.20).
//=======================================================
// Активация функции измерения расстояния
//=======================================================
// Значение увеличивается при уменьшении расстояния
void Sharp () // Датчик Sharp GP2D02
158 Глава И 8 Датчики и их интерфейсы
output_low(Sharp_Horl) // Запуск измерения
Sonar=0;
if (input(Sharp-Data))
{for (i=l;i<=8;i++)
{
output-high(Sharp_Horl);
delay_us(50);
output-low(Sharp-Синх1);
Sonar«=l ;
delay_us(4) ;
i f (input(Sharp_Data))
Sonar++;
output-high(Sharp_Horl);
delay_us(1500);
}
}
}
//=======================================================
Пироэлектрические датчики
Пироэлектричекие датчики способны обнаруживать тепло,
исходящее от человеческого тела или от огня. В самом деле,
живые существа - люди или теплокровные животные - излу-
чают инфракрасное излучение (в диапазоне от 8 до 10 мкм),
которое может быть обнаружено пироэлектрическими датчи-
ками. Эта особенность используется для обнаружения несанк-
ционированного движения человека в системах тревожной
сигнализации. Пироэлектрические датчики другого типа ис-
пользуются для обнаружения возгорания и подачи сигнала
срабатывания на систему пожарной сигнализации. Датчики
последнего типа представляют собой УФ-датчики, чувстви-
тельные к излучениям, исходящим от огня (от 185 до 260 нм)1.
Компания Hamatsu выпустила в продажу УФ-датчик TRON
R2868, способный обнаружить пламя зажигалки на расстоя-
нии 5 м. Устройство состоит из датчика и интерфейса, сопря-
гаемого с логическим входом, на который при обнаружении
пламени подаются импульсы. Документация об этом датчике
представлена на сайте фирмы.
В качестве пожарных извещателей (не датчиков - так терминологически неправиль*
но) используются и инфракрасные - для определения дыма, и ультрафиолетовые - для
определения пламени. У каждого своя «противопожарная ниша». - Прим. науч. ред.
Оптические датчики 159
Видеокамеры
В последнее время в связи с внедрением новых технологий
видеокамеры значительно подешевели и стали более доступ-
ны для пользователей. Но в зависимости от желаемой ин-
формации для обработки видеосигнала необходим более или
менее сложный электронный интерфейс.
Для любителя сложно самостоятельно разработать и со-
брать схему интерфейса, способную распознавать очертания
предметов. Несмотря на эти трудности, существует возмож-
ность оборудовать робота камерой с готовым интерфейсом.
Компания LEGO® предлагает камеру, которая подключается
непосредственно к компьютеру через USB-порт - порт универ-
сальной последовательной шины (USB - Universal Serial Bus).
Сопуствующий программный продукт является очень инте-
ресным: он обеспечивает распознавание цветов, движений и
отдельных зон в поле зрения видеокамеры (рис. фото 8.21).
Это хорошее начало для понимания того, как работают
органы зрения робота. Но данному программному продукту
присущ недостаток, который заключается в необходимости
НсМм • ldm»n w ₽аг»л»мм » Aid* *
| HP AM*i
Рис. 8.21. Среда распознавания видеокамеры LEGO®
160 Глава И 8 Датчики и их интерфейсы
поддержания двусторонней связи между роботом и компь-
ютером, например, через беспроводной высокочастотный
модуль. Не все могут сконструировать полностью автоном-
ного робота.
Тем не менее, можно использовать видеокамеру для полу-
чения простой информации, например наличия препятствия,
контрастно выделяющегося на фоне противоположного цве-
та. Технология заключается в считывании различных видео-
строк и в их сравнении с пороговым напряжением. Синхро-
низация измерений достигается при помощи разделителя по-
лукадра и строки. Программа управления и анализа должна
занимать малый интервал времени (быть достаточно быст-
рой), так как продолжительность видеостроки составляет
64 мкс. Для написания программы лучше всего использовать
Ассемблер или язык С при условии, что нужно выбрать квар-
цевый резонатор достаточно высокой частоты.
Звуковые датчики
Окружающие нас предметы могут передавать полезные зву-
ки, которыми даже лечат больных или проводят релаксацию
работников, подверженных стрессу. Но они могут издавать
и вредные звуки, которые называют источниками звуковых
«загрязнений» . Чем выше частота звука, тем с большей точ-
ностью можно определить направление на него. Звуки рас-
пространяются со скоростью 320 м/с, если их измерять на
уровне моря при температуре 25 °C. При других условиях
скорость может отличаться от приведенной. Звуки использу-
ются разными способами. С их помощью мы можем общать-
ся с нашим роботом или обнаруживать препятствия, на ко-
торых звуки образуют эхо1.
Микрофон
Мечта любого робототехника заключается в возможности об-
щения со своим творением. В более скромном представлении
Для ориентации слабовидящих разработан и используется эхолокатор-«поводырь*.
По высоте тона определяется направление и препятствие, встечающееся на пути. -
Прим. науч. ред.
Звуковые датчики *161
общение организуется изданием простых звуков, которые
робот будет в состоянии декодировать. Такими звуками мо-
гут быть, например, приказы о перемещении. Датчик пред-
ставляет собой классический микрофон, сигнал которого
усиливается до определенного уровня. Декодирование звуко-
вой команды для исполнения роботом может потребовать
значительных ресурсов, если речь идет о распознавании зву-
ков человеческого голоса. Но если для общения с роботом
довольствоваться выбором одной определенной частоты,
положение дел значительно упрощается. В этом заключает-
ся причина успеха небольших роботов, которые реагируют
на такие простые однотонные звуки, как хлопанье в ладоши
или свист.
В данном случае, как правило, используется два электрон-
ных устройства: частотный детектор, селектирующий из множе-
ства одну определенную частоту, и преобразователь «частота-
напряжение», генерирующий напряжение, пропорциональное
поступающей на его вход частоте. Частотный детектор можно
реализовать на базе интегральной схемы LM567. Такому реше-
нию селекции одной частоты можно добавить несложное уст-
ройство, выполняющее функцию преобразователя частоты в
напряжение.
Схема, показанная на рис. 8.22, подтверждает простоту
преобразователя частоты в напряжение.
Рис. 8.22. Схема преобразователя частоты в напряжение
6-7388
162 Глава И 8 Датчики и их интерфейсы
Сигнал, вырабатываемый микрофоном, усиливается ин-
тегральной схемой LM386. Она представляет собой усилитель
звуковых частот определяемых источником питания +5 В, ра-
ботающий в диапазоне низких напряжений. Интегральная
схема LM2917 - это преобразователь частота-напряжение.
Он работает в соответствии с линейной функцией Vs = Час-
тота / 1000.
Пример. Входной частоте 1 кГц будет соответствовать вы-
ходное напряжение 1 В, частоте 2 кГц - 2 В и т.д. вплоть до
предельного напряжения, установленного напряжением пи-
тания. Это напряжение должно быть не менее 10 В.
Для управления работой этого преобразователя необхо-
дим микроконтроллер, снабженный аналоговыми входами.
Ультразвук
Ультразвуковые частоты лежат выше диапазона звуковых час-
тот и обладают узкой направленностью. Это свойство ультра-
звуковых сигналов позволило использовать их для измерения
расстояний от нескольких сантиметров до 11 м. Ультразвуко-
вая система измерения расстояния излучает спектр частот в
полосе частот 40 кГц, а затем измеряет время возврата (откли-
ка) отраженного сигнала. Так как излученный сигнал прошел
расстояние от источника до препятствия дважды, измеренное
время должно быть разделено на 2. Для получения расстояния
остается умножить полученный результат на скорость звука.
Теоретически измерить расстояние с помощью ультразву-
ка может показаться простой задачей, но на практике возни-
кают проблемы с правильным приемом отраженного сигнала.
Первая проблема - паразитное взаимодействие передатчика
и приемника, когда часть сигнала передатчика «просачивает-
ся» на вход своего же приемника, в результате чего через не-
сколько секунд после излучения импульса генерируется лож-
ное эхо. Во-вторых, амплитуда отраженного сигнала уменьша-
ется пропорционально пройденному расстоянию.
Первой решение этих проблем предложила компания
Polaroid, которая уже 20 лет тому назад изобрела мгновен-
ный фотоаппарат со встроенной системой распечатки сним-
ков. С недавнего времени эта система продается во Франции
в магазинах Selectronic.
Звуковые датчики 163
Но Polaroid решила проблему, изменяя коэффициент уси-
ления в зависимости от времени (минимальный коэффици-
ент усиления в начале увеличивается с прошествием време-
ни), и блокируя в течение нескольких миллисекунд любой
принятый отраженный сигнал.
Polaroid предлагает полный комплект (рис. 8.23) из платы
управления с двумя преобразователями, сопрягаемый с тран-
зисторно-транзисторной логикой.
Рис. 8.23. Плата управления компании Polaroid с двумя преобразователями
Система (рис. 8.24) состоит из небольшой электронной
платы управления и одного преобразователя, предназначен-
ного для передачи и приема.
Система способна работать в двух режимах: одиночного
отраженного сигнала и множественных отраженных сигна-
лов. По включению питания запускается сигнал начала изме-
рения линией инициализации INIT. После начала действия
инициализации система посылает последовательность из
16 импульсов с частотой 50 кГц и напряжением 400 В на преоб-
разователь. Затем выполняется блокировка системы в течение
2,4 мс для запрета прохождения эхо-сигнала, возникающего
в результате прямой связи.
6
164 Глава И 8 Датчики и их интерфейсы
BLNK
BINK
Отраженный
сигнал
Г енератор
+V
Инициали-
зация
«Земля»
< Земля»
Рис. 8.24. Схема платы управления компании Polaroid
Звуковые датчики 165
В режиме одиночного отраженного сигнала интервал вре-
мени между активацией линии инициализации INIT и появле-
нием верхнего уровня на линии «Отраженный сигнал ECHO»
пропорционален расстоянию до препятствия (рис. 8.25).
Передача __ ....IIIIIIIIII 16 импульсов
(внутренняя)
BLNK (нижний) --------------------------------------------
BINH (верхний) ................ —...........
Максирование г<~ 2,38 мс —>|____________________
(внутреннее)
Отраженный I I
сигнал
Рис. 8.25. Последовательность в режиме одиночного отраженного сигнала
В режиме множественных отраженных сигналов можно
измерять расстояние до нескольких препятствий при помо-
щи линии BLINK (рис. 8.26) и сократить блокировку измере-
ния установкой линии BINH в «1». Минимальное расстояние
обнаружения в этом случае уменьшается с 40 до 15 см.
Ниже мы приводим небольшую программу управления и
сбора данных для модуля Polaroid. Она написана на языке С
Vcc +
Инициализация
L
Передача
(внутренняя)
IIIIIIIIIIIIIIII 16 импульсов
BLNK (нижний)
BINH (верхний)
Маскирование
(внутреннее)
2,38 мс
Отраженный
сигнал
Рис. 8.26. Последовательность в режиме множественных отраженных сигналов
166 Глава И 8 Датчики и их интерфейсы__________________
при помощи компилятора CCS и предназначена для микро-
контроллера PIC, имеющего вход учета событий (PIC16F627,
PIC16F87x). Этот особый вход обеспечивает запоминание
содержимого 16-битового таймера Timer 1. Измерение рассто-
яния проводится при скорости звука 340 м/с. Расстояние,
выраженное в сантиметрах с учетом поправки на коэффици-
ент 17/1000, будет заноситься в 16-битовую переменную Из-
мерение. При помощи этой программы можно измерять рас-
стояния до 11 м.
// = = = = = = =: = = = = = = = = = = = = = = = = = = = = = = =: = = = = = = = = = = = = = = = = = = = = = = = =: =
void INITO
{
setup_timer_l(Tl_INTERNAL); // включение таймера
// Timer 1
setup_ccpl(CCP_CAPTURE_RE); // включение по
// переднему фронту
enable-interrupts(INT_CCP1); II включение прерывания
// no ccpl
enable_interrupts(GLOBAL);
}
//===S=========S=SS=SSS========x==========S=S==S=========
11 Прерывание
//=======================================================
#int_ccpl
void isr()
{
Front_mont - CCP_1; // запоминает значение
Valid = 1;
}
//=======================================================
11 Измерение расстояния модулем Polaroid
// = = = = = = = = = = =: = = = = = = = = = = = = = =: = =:=: = = = = = = = = = = = = = = = = = = = = = = = = = = =
void Read ()
{
if (Valid)
{
Mesure = Front_mont;
Mesure = (Mesure/1000)*17;// измерение в см
output-low(INIT); // остановка измерения
Valid =0; // разрешение нового
11 измерения
}
else
Датчики положения *| g7
{
output-high(INIT); // пуск нового измерения
set_timerl(0); // сброс счетчика в 0
}
}
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ^ = = = = = = =: = = = = = = = =: = = = =
Датчики положения
Знание положения для выбора направления движения - это
одна из проблем для ориентации робота. Точное знание сво-
его положения и ориентация относительно отправной точ-
ки представляет собой непростую задачу, которая требует
привлечения значительных математических ресурсов. Но не
всегда требуется знать точное положение. Для некоторых
роботов достаточно простого указания для ориентации на-
правления их движения.
Для определения своего местоположения робот может
воспользоваться несколькими способами. Используемая ин-
формация бывает абсолютной или относительной.
Система глобального позиционирования (GPS - Global Posi-
tion System) позволяет определить местоположение любого
мобильного (сухопутного или водного) транспортного сред-
ства на земном шаре с точностью, достаточной для него, но
недостаточной для робота, установленного на предприятии.
Решение заключается в установке неподвижных маяков на мар-
шруте движения робота для передачи ему необходимой инфор-
мации. Для повышения точности определения местоположе-
ния в качестве возможного дополнительного навигационного
маяка можно использовать электронный компас, но магнитные
поля двигателей часто снижают достоверность его работы.
В некоторых случаях достаточно знать угол вращения от-
носительно оси. Робот-пылесос, направляясь к разъему заряд-
ного устройства, довольствуется изменением угла вращения
относительно источника света, установленного в устройстве.
Ориентиры
Ориентиры выполняют для роботов ту же роль, что и маяки
для морских судов. Они могут указывать на препятствия, от
168 Глава И 8 Датчики и их интерфейсы
которых следует уклониться, или передавать другую нужную
роботу информацию. В случае с роботами маяк может быть
пассивным или активным. Простейшие пассивные маяки
представляют собой отражающую ленту, а самые сложные -
штрих-коды. Они могут передавать простую или более слож-
ную информацию. Таким образом, несколько маяков, уста-
новленных на маршруте движения робота, передают ему ин-
формационные сообщения об относительном или абсолют-
ном положении (рис. 8.27).
Рис. 8.27. Робот-транспортер считывает штрих-коды на своем пути
Активные маяки дают возможность проводить измерения
на базе сигналов различных диапазонов частот. Для общения с
роботом используются инфракрасные, ультразвуковые или зву-
ковые сигналы. Ультразвуковые сигналы обеспечивают возмож-
ность измерения расстояний или курсовых углов между маяка-
ми и роботом. Задача робота заключается в идентификации
этих маяков. ИК-сигналы позволяют кодировать излучения для
различения маяков. Звуковые сигналы способны при необходи-
мости заменить ультразвуковые сигналы. Первый вариант вза-
имодействия сигналов различных частот - маяки передают ко-
дированные ИК-сигналы, которые робот получает, направля-
ясь к ним. Второй вариант взаимодействия - робот излучает
Датчики положения 169
Робот, оборудованный ИК-приемником
Рис. 8.28. Принцип использования маяков для определения положения робота
Робот, оборудованный ИК-передатчиком
и УФ-приемником
ИК-луч, активирующий маяки. В свою очередь, маяки излу-
чают спектр ультразвуковых сигналов, измеряемый роботом
(рис. 8.28).
Гироскоп
Гироскопы представляют собой датчики, позволяющие изме-
рять угол вращения робота относительно выбранной оси. Ги-
роскоп предназначен для двух следующих измерений: угла
поворота робота или его угловой скорости.
Компания Murata предлагает миниатюрную модель, пред-
ставленную на рис. 8.29. Это пьезо-электрический гироскоп.
Рис. 8.29. Гироскоп ENC-03J компании Murata
170 Глава 8 Датчики и их интерфейсы
Его характеристики указаны в каталоге компании Murata на
сайте: www.murata.jp. Этот гироскоп представляет собой дат-
чик угловой скорости, основанный на явлении кориолисовых
сил. Это явление возникает в результате передачи на гирос-
коп определенной угловой скорости вращения. Данный ком-
понент имеет превосходные характеристики: короткое вре-
мя срабатывания, небольшие размеры и вес, малые напряже-
ние питания и потребление тока. Однако самое важное -
выходное напряжение компонента пригодно для непосред-
ственной обработки. На рис. 8.30 представлен принцип ра-
боты датчика.
На рис. 8.31 изображена схема включения гироскопа.
Напряжение 5 В развязано резистором R4 и конденсато-
ром С4 для улучшения чувствительности схемы. Не следует
забывать о паразитных помехах от двигателей - источнике
высокочастотных помех напряжения питания. Выходное
напряжение гироскопа имеет малую величину и не может
Рис. 8.30. Принцип работы пьезоэлектрического гироскопа
Рис. 8.31. Схема включения гироскопа
Датчики положения 171
быть без усиления обработано микропроцессором. Операци-
онный усилитель TLC271 усиливает выходное напряжение
гироскопа с коэффициентом усиления 10. Цепь C1-R1 образу-
ет фильтр верхних частот (с частотой отсечки 0,3 Гц), кото-
рый исключает влияние температуры, удаляя из выходного на-
пряжения непрерывную составляющую. Фильтр нижних ча-
стот, образованный цепью R3-C3 (с частотой отсечки 1 кГц)
исключает шумы датчика, составляющие порядка 25 кГц. Во
избежание необходимости использования отрицательного
напряжения питания выполняется смещение выходного на-
пряжения путем прибавления опорного напряжения 1,35 В,
подаваемого датчиком. Конденсатор С2 предназначен для раз-
вязки напряжения питания в случае подключения устройства
к источнику питания переменного тока.
Разводка печатной платы (рис. 8.32) и чертеж размеще-
ния компонентов (рис. 8.33) в особых комментариях не нуж-
даются.
Плата крепится к пластине больших размеров. Операци-
онный усилитель CI2 рекомендуется устанавливать на опоре.
Список компонентов:
• R1 - 100 кОм (коричневый, черный, желтый);
• R2 - 10 кОм (коричневый, черный, оранжевый);
Рис. 8.32. Разводка печатной платы (со стороны проводников)
Рис. 8.33. Чертеж размещения компонентов на печатной плате (со стороны
установки компонентов)
"172 Глава И 8 Датчики и их интерфейсы
• R3 - 91 кОм (белый, коричневый, оранжевый);
• R4 - 100 Ом (коричневый, черный, коричневый);
• Cl, С2 - 4,7 мкФ /16 В полярный танталовый;
• СЗ- 1800 пФ;
• С4 - 10 мкФ / 16 В;
• СП - ENC-03J (ссылочный номер магазинов Farnell: 334-
9317);
• CI2-TLC271;
• JP1 - перемычки 2,54 мм с трехконтактными выводами.
Датчики внутреннего состояния робота
Датчики этого типа сообщают информацию о внутреннем
состоянии робота. Плата управления робота обрабатывает
информацию с датчиков - прежде всего, ток потребления
двигателей и напряжение питания батареи. Но внутренние
датчики могут также сообщать информацию о температуре
или выполнять тестирование внешних датчиков.
Для измерения напряжения батареи используется дели-
тель напряжения с активным сопротивлением, который обес-
печивает напряжение 5 В при полной зарядке батареи. Полу-
чаемые при измерениях значения напряжений меняются в
зависимости от того, работает ли робот, или он выключен.
В состоянии покоя напряжение всегда выше значения для ба-
тареи, подающей ток. О реальном состоянии батарей следует
судить по их напряжению при работе робота.
Измерение тока потребления двигателей также является
очень важной информацией. Оно может либо подтвердить
нормальную работу робота, либо указать блокировку одного
из двигателей. В случае блокировки робот должен вращаться
вокруг своей реи вместо движения по прямой. Если эта неис-
правность не буцет вовремя устранена, двигатель может вый-
ти из строя при повышении тока больше максимально допус-
тимого. Как правило, для определения тока, потребляемого
двигателями, используются резисторы небольшого номина-
ла, подключаемые последовательно с каждым из двигателей.
Чрезмерное увеличение температуры электронных ком-
понентов или двигателей представляет собой верный при-
знак неисправности в их работе. В этом случае достаточно
Датчики внутреннего состояния робота 173
использовать терморезистор с отрицательным, например CTN,
или положительным температурным коэффициентом сопро-
тивления, например СТР, совместно с каким-либо резисто-
ром для образования делителя напряжения, напряжение с
которого можно прочесть через аналоговый вход платы
управления. Существуют также датчики температуры, кото-
рые вырабатывают аналоговое напряжение, пропорциональ-
ное температуре.
Тестирование датчиков подразумевает дополнительный
уровень сложности, доступный только профессионалам, но
время от времени и любители могут выполнить тестирова-
ние такого рода, не внося значительных изменений в работу
датчика. Тестирование датчика заключается в проверке точ-
ности передаваемой им информации. Некоторые датчики
перед проведением каждого измерения выполняют так назы-
ваемую инициализацию (установку начальных условий).
Пример. Значения фоторезистора должны находиться в
пределах от 30 до 200, но если аналоговый вход, подключен-
ный к фоторезистору, указывает 240, это означает отсутствие
соединения между датчиком и платой управления (рис. 8.34).
+ Батарея
+5 В +5 В
Терморезистор
с отрицательным
температурным
коэффициентом
сопротивления
(ТКС)
Рис. 8.34. Схемы подключения датчиков внутреннего состояния робота
Глава
9
Приводы и их интерфейс
Под термином привод или исполнительное устройство подразу-
меваются все устройства, предназначенные для превраще-
ния электрической энергии в энергию механическую. Соот-
ветственно, классическими приводами считаются двигатели
и реле. Но сегодня можно встретить и новые типы приводов.
Поршни, представленные на рис. 9.1, изготовлены из спла-
вов с запоминанием формы. Эти совершенные компоненты,
увы, обладают слишком малой скоростью.
Рис. 9.1. Поршни, изготовленные из сплавов с запоминанием формы
Принцип работы интерфейса *175
Задача этой главы заключается в предоставлении вам не-
скольких рецептов правильного использования приводов в
мобильном роботе. Выбор того или иного двигателя зависит
от мощности двигателя и от действия, которое этот двига-
тель должен выполнять (см. главу 2). В этой главе мы не бу-
дем рассматривать принцип работы различных двигателей.
Наша цель - направить вас в выборе оптимально подходяще-
го для ваших целей двигателя и сопутствующего ему интер-
фейса.
Среди существующих двигателей особой популярностью
пользуются двигатели постоянного тока и шаговые двигате-
ли. Каждый из них имеет свои преимущества и недостатки.
Принцип работы интерфейса
Интерфейс двигателя представляет собой электронное устрой-
ство, устанавливаемое между блоком управления и приводом1.
Он позволяет восполнить недостаточную мощность управляю-
щих выходов интерфейса при управлении нагрузками, даже
небольшой мощности. Так как в нашем случае блок управления
использует двоичный код, программирование интерфейса дви-
гателя будет несложным. Напротив, следует помнить о том, что
двигатели представляют собой индуктивные устройства и, со-
ответственно, генерируют паразитные помехи, а их характери-
стики меняются в зависимости от нагрузки. Итак, интерфейс
предназначен для оптимального управления двигателем в соот-
ветствии с командами блока управления. Для этого необходи-
мо заранее определить функцию двигателя.
Рассмотрим пример двигателя постоянного тока с одно-
сторонним направлением вращения. Схема его очень про-
стого интерфейса представлена на рис. 9.2.
Такой простой интерфейс позволяет управлять этим дви-
гателем в нормальных условиях: осуществляет включение и
выключение двигателя и даже изменение скорости. Диод
предназначен для защиты транзистора от токов самоиндук-
ции двигателя. При запирании транзистора двигатель, будучи
В нашей технической литературе такое устройство называют контроллером двига-
теля. - Прим. науч. ред.
176 Глава И 9 Приводы и их интерфейс
Блок
управления
Рис. 9.2. Простейший интерфейс двигателя
индуктивным устройством, начинает генерировать ток самоин-
дукции, Диод включен в обратном к току самоиндукции напра-
влении и не пропускает ток на выход транзистора. Этот диод
называется обратным диодом При необходимости часто пере-
ключать направления вращения двигателя следует использо-
вать полупроводниковый Н-образный мост. На рис. 9.3 представ-
лена схема такого моста на основе биполярных транзисторов.
Рис. 9.3. Н-образный мост на биполярных транзисторах
На схеме легко узнается буква Н, в горизонтальной пере-
кладине которой находится двигатель. Эта структура совер-
шенна и обеспечивает управление двигателем в любых конфи-
гурациях: движение вперед, назад, торможение, генератор.
На рис. 9.4 показана схема, собранная на канальных полевых
униполярных МОП (Металл-оксид-полупроводниковых) тран-
зисторах (MOSFET).
Принцип работы интерфейса *| 77
Рис. 9.4. Н-образный мост на канальных полевых униполярных
МОП-транзисторах (MOSFET)
На схеме видно, что диодов не наблюдается, так как они ин-
тегрированы внутрь транзисторов. Выбор той или иной схемы
зависит от имеющихся напряжений. Для управления канальны-
ми полевыми униполярными МОП-транзисторами требуется
большее напряжение, чем для управления биполярными тран-
зисторами. Имеется еще одно остроумное решение, схема ко-
торого изображена на рис. 9.5. Оно состоит в использовании
одного реле для переключения напряжения двигателя.
Рис. 9.5. Н-образный мост на реле
Это чрезвычайно простое решение имеет один очень важ-
ный недостаток. Не рекомендуется резко переключать направ-
ление вращения двигателя, так как для безопасного переключе-
ния необходимо полное исчезновение тока в двигателе. В про-
тивном случае существует риск повреждения контактов реле.
178 Глава И 9 Приводы и их интерфейс
При необходимости изменить скорость вращения двигате-
ля применяется уже ставшая классической технология, осно-
ванная на использовании быстродействующих транзисторов:
технология контакта с высокой частотой замыканий и размы-
каний. Так как зачастую номинальное напряжение двигателя
отличается от напряжения контуров управления, интерфейс
обеспечивает разделение двух напряжений. В некоторых слу-
чаях желательна полная изоляция (гальваническая развязка)
выходных цепей интерфейса от силовых цепей. Эта задача
также возложена на интерфейс. Помимо этого, интерфейс
обеспечивает измерение токов потребления двигателей для
управления передаваемой мощностью.
Компоненты силовых цепей интерфейса
Многие производители силовых цепей предлагают компо-
ненты, интегрирующие различные типы интерфейсов. При
незначительной мощности двигателей эти компоненты до-
статочны и не требуют никаких дополнительных устройств.
Но для мощностей более 4 А они не подходят, их функция
должна выполняться дискретными или интегральными мощ-
ными компонентами.
Транзисторы
Основным компонентом интерфейса двигателя является тран-
зистор. Возможно использование транзисторов двух типов:
биполярных транзисторов и канальных полевых униполярных
МОП-транзисторов (MOSFET). Несмотря на то что общая со-
временная тенденция заключается в использовании транзисто-
ров MOSFET, последние имеют некоторые недостатки, застав-
ляющие делать выбор в пользу биполярных транзисторов.
Исторически сложилось так, что именно биполярный тран-
зистор стал первым ключевым элементом (прерывателем) в
системе управления двигателем. Его основное преимущество
заключается в низком напряжении, необходимом для его управ-
ления (0,6 В). Недостатки данного транзистора - управление
при помощи тока, что является причиной минимальной мощ-
ности источника управления, а также сложность параллельного
подключения к нему транзисторов для управления двигателями
Компоненты силовых цепей интерфейса 1 79
средней и большой мощностей. Несмотря на его известные
недостатки, биполярный транзистор остается самым распро-
страненным ключевым элементом для управления двигателя-
ми большой мощности.
МОП-транзистор обладает практически всеми преимуще-
ствами: он управляется не по току, а по напряжению, для его
управления требуется напряжение очень низкой мощности,
транзисторы можно объединять каскадно в параллель для уве-
личения тока в двигателе и сокращения рассеиваемой транзис-
торами мощности, в нем также имеется встроенный обратный
диод. Но для достижения наилучших характеристик работы
МОП-транзистора необходимо, чтобы управляющее напряже-
ние составляло не менее 10 В, что не всегда доступно (чаще для
питания применяется напряжение +5 В). Можно обойти эту
проблему, используя небольшие преобразователи, повышаю-
щие напряжение, например МАХ662 (с +5 до +12 В), или уста-
новив специальные МОП-транзисторы. С целью устранения
этого недостатка управления технология МОП-транзисторов
была улучшена1. Поскольку, как правило, цепи управления пи-
таются напряжением 5 В, МОП-транзисторы с логическим уп-
равлением обеспечивают достижение заявленных характерис-
тик уже при управляющем напряжении 2,5 В. Небольшой недо-
статок заключается в том, что такие транзисторы более не
способны управляться непосредственно микропроцессором из-
за относительно малых токов нагрузки выходов микропроцес-
сора. Им необходимо более мощное управление.
Интегральные схемы
Интегральные схемы являются очень удобными компонента-
ми, так как в них имеется все необходимое для реализации
Н-образного моста. Блок управления непосредственно со-
прягается с микропроцессором. В силовой блок в интеграль-
ном исполнении включена вся необходимая «обвязка», по-
этому он полностью закончен и не требует дополнительных
дискретных компонентов.
Разработаны транзисторы, совмещающие положительные качества биполярного и
МОП-транзисторов, называемые БИМОП-транзисторами. За ними будущее в управ-
лении силовыми цепями. - Прим. науч. ред.
180 Глава И 9 Приводы и их интерфейс
Силовой блок включает в себя один или два Н-образных
моста на биполярных транзисторах или МОП-транзисторах,
устройства защиты от чрезмерного тока или напряжения (за-
щита по току и напряжению) и устройства защиты, блокирую-
щие работу силового блока при чрезмерном увеличении его
температуры (защита от превышения температурного режи-
ма работы). Также имеются логические входы управления,
включения и (реже) два отдельных источника питания: для
логической и силовой части двигателей (рис. 9.6).
Рис. 9.6. Принцип работы интерфейса для микропроцессора и двигателя
Некоторые из таких интегральных схем имеют дополни-
тельный выход считывания тока потребления.
В табл. 9.1 представлены некоторые компоненты интер-
фейса управления двигателем известных компаний-произво-
дителей микросхем. Некоторые из них могут управлять как
двигателями постоянного тока, так и шаговыми двигателями.
Другие следует использовать только для управления шаговым
Таблица 9.1. Интегральные схемы интерфейса для двигателей
Ссылочное обозначение Изготовитель Наименование Ток Напряжение Корпус Применение
L293D SGS Thomson Двойной мост Двухполюсный 0,6 А 5-36 В Двухрядный с 16 выводами Двигатель постоянного тока и шаговый
L298 SGS Thomson Двойной мост Двухполюсный 2А 5-46 В Multi 15 Двигатель постоянного тока и шаговый
МС3479 SGS Thomson Motorola Двойной мост Двухполюсный 350 мА 16В Двухрядный с 16 выводами Двигатель шаговый
UDN 2916 Allegro Двойной мост Двухполюсный 750 мА 10-45 В Двухрядный с 24 выводами Двигатель шаговый
UCN 5804 Allegro Привод 1,25 А 35 В Двухрядный с 16 выводами Двигатель шаговый
PBL3717A SGS Thomson Двухполюсный мост 1 А 10-46 В Двухрядный с 16 выводами Двигатель шаговый двухполюсный
L6201 SGS Thomson Мост на МОП- транзисторах 1 А 12-48 В SO20 Двигатель шаговый
L6202 SGS Thomson Мост на МОП- транзисторах 1,5А 12-48 В Двухрядный с 18 выводами Двигатель постоянного тока и шаговый
L6203 SGS Thomson Мост на МОП- транзисторах 4А 12-48 В Multi 11 Двигатель постоянного тока и шаговый
L6221N SGS Thomson 4 Дарлингтон (Darlington) 1,8А 5-50 В Multi 15 Двигатель шаговый
LMD 18200Т National Semiconductor Мост DMOS ЗА 12-55 В Multi 11 Двигатель постоянного тока и шаговый
Компоненты силовых цепей интерфейса 1 8
Таблица 9.1. Интегральные схемы интерфейса для двигателей (окончание)
Ссылочное обозначение Изготовитель Наименование Tok Напряжение Корпус Применение
LMD 18201Т National Semiconductor Мост DMOS ЗА 12-55 В Multi 11 Двигатель постоянного тока и шаговый
LMD 18245Т National Semiconductor Мост DMOS ЗА 12-55 В Multi 15 Двигатель постоянного тока и шаговый
ULN 2003 SGS Thomson 7 Дарлингтон (Darlington) 500 мА <50 В Двухрядный (DIP) с 16 выводами Двигатель шаговый
ULN 2803 SGS Thomson 8 Darlington 500 мА <50 В Двухрядный (DIP) с 16 выводами Двигатель шаговый
ULN 2064 SGS Thomson 4 Darlington 1,5 А <50 В Двухрядный. (DIP) с 16 выводами Двигатель шаговый
182 Глею 9 Приводы и их интерфейс
Компоненты силовых цепей интерфейса *| 83
двигателем. Технические характеристики большинства из
этих компонентов указаны на прилагаемом компакт-диске1.
Ключевой элемент с высокой частотой
переключений
Классический метод управления скоростью вращения двигате-
ля заключается в изменении напряжения, подаваемого на клем-
мы двигателя. Однако при этом было замечено, что на низкой
скорости показатели работы двигателя непостоянны. Измене-
ние напряжения производится при помощи электронного ком-
понента, работающего в линейном режиме. Этот компонент
обеспечивает разницу между напряжением батареи и напряже-
нием, подаваемым на двигатель. Соответственно, он должен
рассеивать немалую мощность и обладать внушительными раз-
мерами. Переход с линейного на ключевой режим позволит
более надежно работать двигателю на низких скоростях.
Электронный ключ с высокой частотой переключений ис-
пользует принцип широтно-импульсной модуляции импуль-
сов, подаваемых на двигатель. Управление скоростью при по-
мощи широтно-импульсной модуляции наиболее эффективно
на низких скоростях. Электронный ключ, попеременно рабо-
тая в закрытом или открытом режиме, рассеивает на своем
корпусе малое количество мощности, в результате чего дос-
тигается экономия энергии и продлевается срок автоном-
ной работы аккумулятора.
Для этого на клеммы двигателя подается переменное на-
пряжение, характеристиками которого являются постоян-
ная амплитуда, фиксированная частота и переменный пара-
метр - ширина рабочего импульса подачи на двигатели на-
пряжения, которая может меняться от самых малых (0% -
полный останов) до самых больших (100% - максимальная
скорость вращения двигателя) значений. По отношению к
постоянному периоду повторения импульсы определяются
скважностью импульсов Q:
Q= период повторения / длительность (ширина) импульса
Компакт-диск прилагается к французскому изданию данной книги. Всю необходимую
информацию можно почерпнуть на сайтах, адреса которых даны в разделе «Адреса в
Интернете» и ссылках на русскоязычные сайты. - Прим. науч. ред.
184 Глава 9 Приводы и их интерфейс_______________________________
Длительность
Период
повторения
Рис. 9.7. Принцип широтно-импульсной модуляции (ШИМ)
или величиной обратной скважности, называемой коэффи-
циентом заполнения а (рис. 9.7):
а = длительность (ширина) импульса / период повторения.
По отношению к управлению двигателей с помощью ШИМ
коэффициент заполнения а также определяется как отноше-
ние длительности (ширины) импульса подачи на двигатели
полного напряжения к периоду повторения импульсов.
В зависимости от типа двигателей используемая частота
повторения импульсов находится в пределах от 1 до 20 кГц.
Коэффициент заполнения а может меняться от 0% (оста-
новка двигателя) до 100% (максимальная скорость) - для дви-
гателей одностороннего направления, или в некоторых слу-
чаях от 0% (максимальная скорость в одном направлении) до
100% (максимальная скорость в обратном направлении) -
для реверсивных двигателей. При этом значение 50% соот-
ветствует остановке двигателя.
Ниже приводится программа инициализации функции
широтно-импульсной модуляции для микроконтроллеров PIC,
в которых встроена данная функция. Программа написана на
языке С при помощи компилятора CCS и предназначена для
моделей PIC16F627 и PIC16F628 с одним выходом или серии
PIC16F87x с двумя выходами, служащими для этой цели.
Эти специальные регистры способны работать автоном-
но. При необходимости после установки параметров доста-
точно изменить только регистры, связанные с формирова-
нием коэффициента заполнения.
Инициализация начинается с выбора режима ШИМ двух
линий. После этого необходимо выбрать период повторения
ШИМ - в данном случае он равен 500 мкс, что соответствует
частоте повторения ШИМ 2 кГц. Нижеуказанное уравнение
Двигатели постоянного тока 185
позволяет определить коэффициент деления предваритель-
нрго делителя таймера TIMER2 (в данном случае 4) и значе-
ние периода PR2 (124) для кварцевого резонатора (Кв. рез.)
с частотой 4 МГц:
Т = 4 х (PR2 +1) х (предварительный делитель TMR2) х —-—
Кв. рез.
Следующая формула позволяет определить значение ко-
эффициента заполнения для каждого выхода:
/ВЫС01ю« = 4 х (CCPR1L) х (предварительный делитель TMR2) х —-—
Кв. рез.
//=======================================================
// Инициализация 2 функций ШИМ PIC 16F876
//=======================================================:
void INIT_MOTORS()
{
setup_ccpl(CCP_PWM); //Конфигурация CCP1 и CCP2 в ШИМ
setup_ccp2(CCP_PWM); //и линий на выход
// 4*(124+1)*4*(1/4000000) = 500 мкс
setup_timer_2(T2_DIV_BY_4, 124, 1);
И 4*CCPR1L*4*(1/4000000)
set_pwml_duty(0); // двигатели остановлены
set_pwm2_duty(0); // при выполнении инициализации
}
//=======================================================
Двигатели постоянного тока
Используемые двигатели постоянного тока состоят из непод-
вижного статора (каркаса) с постоянным магнитом и под-
вижного катушечного ротора. Статор и его магнит создают
неподвижное магнитное поле. Ротор приходит в движение
при подаче напряжения на его катушки через щетки трения
о коллектор. Находясь в состоянии покоя, данный тип дви-
гателя является эквивалентом резистора, последовательно
подключенного к катушке индуктивности. При вращающем-
ся двигателе эту цепь следует последовательно подключить к
источнику напряжения. Именно индуктивной природой дви-
гателя определяются его основные характеристики. Материал
*| 36 Глава 9 Приводы и их интерфейс
изготовления щеток (стальные пластины или уголь) по-раз-
ному влияет на характеристики двигателя. Угольные щетки
обеспечивают более длительный срок службы двигателя и
обладают меньшим контактным сопротивлением.
Интерфейсы для двигателя постоянного тока
Рассмотрим четыре схемы управления двигателями постоян-
ного тока: от простейшей до самой сложной. Они представ-
ляют собой классические решения с использованием диск-
ретных компонентов или интегральных схем. Тем не менее,
данные схемы не могут решить всех проблем интерфейса.
Первая схема, изображенная на рис. 9.8, представляет со-
бой схему на МОП-транзисторах. Логический сигнал управле-
ния поступает на три входа интегральной схемы 74LS05.
Скорость
Рис. 9.8. Простой интерфейс для одного направления вращения
Двигатели постоянного тока 187
На входе этой микросхемы установлены три инвертора с
открытыми коллекторами, через нагрузочный резистор выхо-
ды подключены к источнику напряжения +12 В. Таким обра-
зом происходит согласование логических сигналов на входе
инверторов (с уровнями напряжения 0 и +5 В) с выходными
сигналами (с уровнями напряжения 0 и +12 В). Инверторы
позволяют произвести параллельное соединение входов и
выходов, что приводит к увеличению мощности выходного
сигнала, а это необходимо для запирания МОП-транзистора.
При переключении входа Скорость на нижний уровень на зат-
вор данного транзистора после инвертирования поступает
напряжение, превышающее 10 В. Транзистор устанавливает-
ся в открытое состояние. При переключении входа Скорость
в нижний уровень интерфейс обеспечивает питание двигате-
ля током 10 А при напряжении 12 В. Интерфейс не предназ-
начен для переключения направления вращения двигателя.
Интерфейс дополняется стандартным блоком питания на ста-
билизаторе напряжения 7805 на 5 В для питания логических
схем. Если используется напряжение, превышающее 15 В, то
между затвором и истоком транзистора следует установить
стабилитрон (диод Зенера) на 15 В.
Интерфейс, представленный на рис. 9.9, обеспечивает
управление двумя двигателями током 600 мА от напряжения
7-36 В.
Несмотря на не слишком высокую общую мощность этот
интерфейс пользуется большой популярностью среди начина-
ющих робототехников. Он позволяет избежать трудностей
при конструировании первого робота на микроконтроллере.
Контроллер двигателя L293D легко доступен в продаже, его
стоимость не превышает восьми евро. Компонент включает в
себя два моста на биполярных транзисторах с. обратными
диодами. Он позволяет переключать направление вращения
двигателей и выполнять торможение. Во избежание повреж-
дения этой ценной интегральной схемы на нее не следует по-
давать команды, которые способны активировать одну и ту же
ветвь моста и стать причиной короткого замыкания. Эта зада-
ча выполняется двумя инверторами SN74C04. В соответст-
вии с классическим использованием данного устройства
сигналы скорости двигателей 1 и 2 соответственно подаются
188 Глова И 9 Приводы и их интерфейс
+5 В + UB
Ф Ф
16 8
Скорость вращения
двигателя 1
Направление
вращения
двигателя 1 1
Скорость вращения 74С04
двигателя 2
Направление
вращения
двигателя 2
Voo \/двиг
1,2EN 1Y
1А CI2
2д L293D 2Y
3Y
3.4EN
ЗА 4Y
4А
«Земля»
-О Х1-4
Двигатель 1
-О Х1-3
-о Х1-6
Двигатель 2
—О Х1-5
4 5 12 13
ов
Рис. 9.9. Интерфейс для двух двигателей выходным током 0,6-1 А
на входы 1 и 9 интегральной схемы, сигналы выбора направ-
ления вращения - на входы 2 и 10, сигналы переключения на-
правления вращения - на входы 7 и 15. Эту интегральную
схему можно заменить схемой SN754410N, что позволит уве-
личить выходной ток до 1 А.
Схема, представленная на рис. 9.10, является логическим
продолжением схемы рис. 9.9.
Все характеристики остаются неизменными, за исклю-
чением самой важной характеристики - выходного тока.
Двигатели постоянного тока 189
Рис. 9.10. Интерфейс для двух двигателей выходным током 2 А
Интегральная схема L298 способна непрерывно выдавать вы-
ходной ток 2 А с возможностью подачи 3 А в пиковых режи-
мах. Измерение тока, потребляемого каждым мостом, произ-
водится на резисторах, подключаемых к контактам 1 и 15, но
*| 90 Глава И 9 Приводы и их интерфейс
в представленной схеме эта функция не используется. Уста-
новлены дискретные обратные диоды D1-D8, т.к. не являют-
ся встроенными - их нет в составе микросхемы.
Инверторы с открытым коллектором включены по входам
интегральной схемой L298 таким образом, чтобы не допус-
тить включения одной ветви моста. Открытые коллекторы
инверторов через набор резисторов подключены к источни-
ку напряжения +5 В. Таким образом инверторы СП В и СПС
предохраняют интегральную схему L298 от ошибок програм-
мирования, как и в предыдущей схеме.
Последняя схема двигателя постоянного тока (рис. 9.11)
предназначена для управления более значительными нагруз-
ками.
Как только ток нагрузки двигателя превышает 4 А, стано-
вится сложно найти подходящую интегральную схему, а ее
цена значительно повышается. Решение заключается в изго-
товлении полного моста на транзисторах. Предлагаемая схе-
ма характеризуется достаточно большим током нагрузки -
10 А, и в ней используются полевые МОП-транзисторы. Для
Аккумулятор 1
+ Аккумулятор 2
Разъем 2-1
Разъем 2-3
Разъем 2-4
Разъем 2-2
0V
0V
011
ОВ
ов
Рис. 9.11. Интерфейс для двух двигателей током нагрузки 10 А (начало)
фототранзистора + Аккумулятор 2
ОВ ОВ
ОВ
Двигатели постоянного тока 191
192 Глава И 9 Приводы и их интерфейс
нормальной работы схемы необходимо соблюсти некоторые
предосторожности, в частности, располагать достаточным
напряжением для обеспечения проводимости нижних и, осо-
бенно, верхних транзисторов. Эта роль отведена интеграль-
ной схеме СП - МАХ622. Данный компонент представляет
собой преобразователь с генератором подкачки заряда, ко-
торый увеличивает входное напряжение на +11 В. Сигналы
управления изолируются при помощи оптоэлектронных пар.
В устройстве используется по два блока аккумуляторов на-
пряжением 7,2 В на каждый двигатель, но это необязатель-
но, обязательно лишь наличие аккумулятора Accul. Если вы
намереваетесь использовать другие напряжения, позаботь-
тесь р правильном подборе транзисторов и о защите напря-
жений затвор-исток верхних транзисторов при помощи ста-
билитронов на 15 В.
В табл. 9.2 представлены команды, выполняемые данным
интерфейсом.
Таблица 9.2. Различные команды платы интерфейса
Т1 (Т5) Т2 (Тб) ТЗ(Т7) Т4 (Т8) Действие
1 0 0 1 Движение вперед
0 1 1 0 Движение назад
0 0 0 0 Свободный ход
1 0 1 0 Тормоз
0 1 0 1 Тормоз
Чертежи двух сторон печатной платы для данного интер-
фейса изображены на рис. 9.12 и 9.13. Размещение компонен-
тов показано на рис. 9.14.
Список компонентов:
• Rl, R3, R6, R8, Rll, R13, R16, R18 - 470 Ом (желтый,
фиолетовый, коричневый);
• R2, R4, R7, R9, R12, R14, R17, R19 - 100 кОм (коричне-
вый, черный, желтый);
• R5, RIO, R15, R20 - 4,7 кОм (желтый, фиолетовый, крас-
ный);
• С1,С2-0,1 мкФ/25 В;
• СЗ-1мкФ/25В;
• DI, D2, D3, D4 - стабилитрон BZX55 на 15 В;
Двигатели постоянного тока 193
рбооо и1о
Рис. 9.12. Чертеж стороны печатной платы, вид со стороны медного покрытия
Рис. 9.13. Чертеж стороны печатной платы, вид со стороны размещения
компонентов
7-7388
"| 94 Глава и 9 Приводы и их интерфейс
Рис. 9.14. Чертеж размещения компонентов
• Т1.Т2, ТЗ, Т4.Т5, Тб, Т7, T8-BUZ11;
• ОР1, ОР2-РС847;
• СП - МАХ 622 СРА;
• CONN1 - НЕЮ;
• CONN2 - винтовые разъемы с шагом 5 мм.
Шаговые двигатели 195
Шаговые двигатели
Шаговые двигатели широко используются в робототехнике.
Они служат для преобразования цифровой информации в угло-
вое или линейное положение. Их синхронный характер, опре-
деляемый точным соответствием цифрового сигнала его угло-
вому или линейному положению обеспечивает работу без цепи
обратной связи, в отличие от двигателей постоянного тока, на
ось которых для позиционирования положения оси необходи-
мо устанавливать оптическое кодирующее устройство (энко-
дер). Естественно, что шаговые двигатели можно использовать
и для классического получения механической энергии.
По сравнению с двигателями постоянного тока, для кото-
рых требуется дополнительная установка тахометрического
динамо или оптического кодирующего устройства, стоимость
шаговых двигателей оказывается более привлекательной.
Шаговые двигатели используются в графопостроителях,
принтерах, дискетных (флоппи-) дисководах и, конечно же, в
роботах. Существует несколько типов шаговых двигателей, но
наиболее широко используемыми в робототехнике моделями
являются гибридные модели, сочетающие преимущества двига-
телей с переменным магнитным сопротивлением и постоян-
ными магнитами.
Шаговые двигатели состоят из центрального поляризо-
ванного ротора и образованного катушками статора. При
подаче питания на одну из катушек статора ротор занимает
положение, при котором магнитный поток, проходящий че-
рез ротор, достигает максимального значения. Это позволя-
ет, например, расположить северный полюс ротора напро-
тив южного полюса статора. Вращение достигается путем
последовательного возбуждения обмоток. Такое взаимное
необычное положение полюсов ротора и статора приводит
к тому, что, когда двигатель находится в состоянии покоя, в
нем имеется ненулевой удерживающий вращающий момент.
Количество шагов имеет большое значение, потому что
определяет точность угла поворота двигателя, увеличиваясь
с количеством шагов на один оборот, и может составлять от
24 до 400 шагов на один оборот. Если вместо подачи питания
7
196 Глава 9 Приводы и их интерфейс
одновременно на дне фазы подать последовательность, при
которой запитывается только одна фаза, количество шагов
удваивается (табл. 9.3). Но замечена нерегулярность этого
вращающего момента.
Таблица 9.3. Последовательность целых шагов и полушагов
Шаг S1 S2 S3 S4
1 0 1 0 1
2 0 1 1 0
3 1 0 1 0
4 1 0 0 1
1 0 1 0 1
Полушаг S1 S2 S3 S4
1 0 1 0 1
2 0 1 0 0
3 0 1 1 0
4 0 0 1 0
5 1 0 1 0
6 1 0 . 0 0
7 1 0 0 1
8 0 0 0 1
1 0 1 0 1
Шаговые двигатели также классифицируются по количе-
ству контактных проводов в разъемах. Однополюсные моде-
ли имеют четыре фазы и, соответственно, восемь проводов
(из которых два соединены между собой - в итоге 6), а двух-
полюсные имеют две фазы или четыре провода. Полученную
экономию проводов следует считать относительной, так как
двухполюсным двигателям необходимо восемь транзисторов
вместо четырех, требующихся для однополюсных.
Характеристика «вращающий момент - частота вращения»
дает возможность работы двигателя в двух режимах. В режи-
ме фиксированной нагрузки двигатель запускается на не-
большой частоте, после чего частота вращения двигателя
увеличивается до предельной, а затем уменьшается для оста-
новки двигателя. Другим режимом работы является режим с
фиксированной частотой вращения и переменной нагруз-
кой, но в начале работы в этом режиме нагрузка должна быть
незначительной. Первый режим следует использовать для
Шаговые двигатели 197
перемещения робота, а второй более подходит для приведе-
ния в движение руки робота, так как нагрузка, возникающая
при этом, постоянно меняется.
Интерфейс для однополюсного шагового
двигателя
На рис. 9.15 изображена несложная схема интерфейса, пред-
назначенного для однополюсного шагового двигателя.
Эта схема обеспечивает управление стандартным двигате-
лем типа 12 В, 72 Ом, 160 мА, 200 шагов по 1,8°. Для генери-
рования на двигателе четырех последовательностей исполь-
зуется четырехбитовый регистр сдвига CD 40194. Силовой
интерфейс ULN 2803 адаптирует сигналы логического упра-
вления 5 В для двигателя, запитанного от напряжения 12 В.
Генерируемая последовательность является последователь-
ностью с целым шагом и представлена выше в табл. 9.3.
Рис. 9.15. Интерфейс для однополюсного шагового двигателя с целыми шагами
1 98 Глава И 9 Приводы и их интерфейс
Начальная постоянная последовательность загружается в
регистр путем подачи 1 на входы выборки SO и S1 (подачи
верхнего уровня). Направление вращения по часовой стрел-
ке/против часовой стрелки устанавливается соответственно
путем подачи 01 или 10 на входы выборки S0 и S1. При уста-
новке S0 и S1 в 0 (в нулевой уровень) происходит блокиров-
ка двигателя вращающим моментом достаточной силы. Каж-
дая последовательность, сгенерированная регистром, посту-
пает на силовой интерфейс. У данного интерфейса восемь
входов, что позволяет подключить к нему в параллель два
усилителя, сократив общую выделяемую мощность, перехо-
дящую в тепло. Таким образом, параллельным соединением
на выходе выходной ток увеличивается до максимального
значения 1 А. Скорость вращения соответствует частоте син-
хронизации, составляющей от 0 до 300 Гц. Стандартный ста-
билизатор напряжения 78L05 вырабатывает напряжение +5 В,
получаемое из напряжения +12 В, необходимого для питания
двигателя.
Преимущество этого интерфейса заключается в том, что
для управления двигателем требуется всего три сигнала вме-
сто четырех, а также в значительном упрощении программы
управления. Для работы в режиме полушага необходимо до-
бавить один дополнительный компонент и одну линию.
Односторонняя разводка печатной платы (рис. 9.16) с раз-
мещением компонентов на другой стороне платы (рис. 9.17)
привела к узким местам и невозможности пройти их печатны-
ми проводниками, поэтому пришлось устанавливать три про-
водные перемычки со стороны компонентов, одна из которых
устанавливается под интегральной схемой СП.
Список компонентов:
• С1 - 2200 мкФ;
• С2 - 0,22 мкФ;
• СЗ - 0,1 мкФ;
• С4 - 47 мкФ;
• СП-CD 40194;
• CI2 - ULN 2803А;
• CI3-78L05;
• JP1, JP2, JP3 - разъединяемые перемычки с шагом 2,54 мм.
Шаговые двигатели “| 99
Рис. 9.16. Чертеж стороны платы с печатными проводниками
Рис. 9.17. Чертеж стороны платы для размещения компонентов
Интерфейс для двухполюсного шагового
двигателя
На рис. 9.18 представлена схема интерфейса для двухполюс-
ного шагового двигателя.
Эта схема очень известна и представляет собой приме-
нение двух связанных компонентов, предназначенных для
управления двигателями. Компоненты выпускаются компа-
нией SGS Thomson на протяжении более пятнадцати лет.
Одной из особенностей данной схемы является использова-
ние интерфейса на биполярных транзисторах (L298), для
которых требуется восемь дополнительных диодов. Макси-
мальный ток составляет 2 А в постоянном режиме и 3 А в
пиковом режиме. Ток в каждой фазе двигателя измеряется
при помощи двух резисторов R2 и R3 сопротивлением 0,5 Ом
и сравнивается с эталонным напряжением, подаваемым на
вход L297. Схема может работать как в режиме полушага,
так и в режиме целого шага. Напряжение питания состав-
ляет от 8 до 12 В, но L298 может работать при напряжении
до 46 В.
200 Глава 9 Приводы и их интерфейс
см
Рис. 9.18. Интерфейс для двухполюсного шагового двигателя
Серводвигатели
Серводвигатели, или сервоприводы, представляют собой дви-
гатели в микроминиатюрном исполнении и служат незамени-
мыми элементами уменьшенных моделей, собираемых люби-
телями-конструкторами. Они позволяют дистанционно управ-
лять макетами самолета, судна или автомобиля в их стихиях:
Серводвигатели 201
в воздухе, на воде и на суше. Серводвигатели дают возмож-
ность позиционировать ось под углом, заданным системой
постоянного регулирования угла при помощи контура регу-
лирования с обратной связью. Сервоприводы управляются
при помощи рабочих импульсов длительностью от 1 до 2 мс
и периодом следования 20 мс. Выходной угол прямо про-
порционален длительности импульсов.
Цифровые сигналы управления могут показаться слиш-
ком сложными по сравнению с реализуемой целью на анало-
говых элементах. Естественно, было бы проще отрегулиро-
вать угол при помощи выходного аналогового напряжения
от 0 до 5 В. Но в данном случае характеристики были выбра-
ны с учетом цифровых узлов радиоуправления, и они нас впол-
не устраивают для программируемого робота. Так как боль-
шинство микроконтроллеров не имеет аналогового выхода,
проще всего использовать существующий выход ШИМ или
создать импульс программным путем.
Серводвигатели как микромашины могут сослужить хоро-
шую службу в робототехнике: с их помощью легко проводить
ориентирование датчика или камеры, перемещение руки, за-
крытие зажима,... но это еще не все. Электронщикам, коими
являемся и мы с вами, всегда было любопытно узнать, что
скрывается внутри этого черного ящика. Удовлетворю ваше
любопытство. Там находится небольшой двигатель, его редук-
тор и маленькая электронная схема, предназначенная для ре-
гулирования. Рассмотрим теперь, каким образом после не-
скольких незначительных изменений серводвигатель может
превратиться в достаточно простой двигатель, легко управля-
емый при помощи микроконтроллера.
Сначала рассмотрим принцип действия серводвигателя.
В аналоговом варианте электронная схема регулирования
непрерывно стремится уровнять предписание команды с
информацией, полученной от переменного сопротивления
потенциометра. Если заменить потенциометр двумя резис-
торами одинакового номинала, электроника серводвигате-
ля будет считать, что выходного угла вращения не достигну-
то, и продолжит вращать двигатель. Следовательно, двига-
тель будет вращаться в одном направлении, если требуемый
угол меньше половины. Если же требуемый угол вращения
202 Глава И 9 Приводы и их интерфейс
больше половины, произойдет переключение направления
вращения двигателя. Остановка двигателя случится, если
требуемый угол вращения будет равен половине.
Модифицировать серводвигатель очень просто, располагая
минимумом слесарного инструмента. Необходимо полностью
разобрать серводвигатель, затем удалить следящий потенцио-
метр, входящий в его состав. Вместо следящего потенциомет-
ра следует установить два резистора одинакового номинала,
общее сопротивление которых должно составлять сопротивле-
ние удаленного потенциометра (как правило, устанавливается
два резистора сопротивлением 2,7 кОм каждый). Затем следует
аккуратно удалить блокирующий упор на последней шестерне
редуктора, препятствующий полному обороту выходной оси.
Реле и соленоиды
Реле и соленоиды широко используются в робототехнике.
При помощи реле микропроцессор активирует силовой при-
вод без какого-либо электрического соединения, которое на-
зывают гальванической развязкой, между маломощной управ-
ляющей схемой и мощным силовым приводом. Мы уже выпол-
няли развязку контура управления и силового контура. Эта
технология - гальванической развязки - широко использует-
ся в электрических установках. Например, между программи-
руемым автоматом и поточной линией. Любая проблема на
поточной линии может быть обнаружена и исправлена, при
этом автомат полностью защищен от любых неполадок, воз-
никающих на линии. Он от них просто «развязан».
Соленоиды, или силовые приводы, представляют собой
электромагниты, притягивающие металлические детали. Они
могут использоваться для освобождения детали, находящейся
под давлением, например спускового крючка огнестрельного
оружия, или для перемещения детали в горизонтальной плос-
кости, например, для перевода стрелки железнодорожного
подъездного пути.
Если реле представляют собой очень простые в приме-
нении компоненты, то соленоиды несколько более сложны.
Реле и соленоиды 203
Интерфейс для реле
На рис. 9.19 показан крайне простой принцип управления
реле при помощи логической схемы - электронного ключа
на транзисторе п-р-п-типа.
Рис. 9.19. Интерфейс для реле
Входным резистором в цепи базы ток базы ограничивается
до значения, необходимого для насыщения транзистора без
перенапряжения. Выбор транзистора определяется, во-первых,
его выходной мощностью и, во-вторых, выходной мощностью
выходного сигнала управляющей логики. Во многих случаях
используется каскад из двух транзисторов, встроенный в интег-
ральную схему. Такой каскад, называемый парой или составным
транзистором Дарлингтона (Darlington), с объединенными кол-
лекторами будет мощнее одинарного транзистора и подойдет
для управления реле. Диод защищает транзистор от тока само-
индукции нагрузки транзистора (обмотки реле), который воз-
никает на коллекторе транзистора при его запирании. На
рис. 9.20 представлена схема, обеспечивающая управление во-
семью реле по 500 мА (четыре реле условно не показаны) при
помощи логической схемы управления или микроконтроллера.
Заметна простота схемы. Она построена на основе одной
очень распространенной интегральной схемы - ULN 2803А
компании SGS Thomson. Восемь диодов встроено внутрь
204 Глава И 9 Приводы и их интерфейс
+ UB + UB
ов
Рис. 9.20. Логическая схема управления восемью реле
интегральной схемы, в которой находится восемь усилите-
лей тока на основе восьми транзисторов Дарлингтона (Dar-
lington) с токоограничивающими резисторами.
Соленоиды
При использования соленоида необходимо обращать особое
внимание на протекающий через него ток. В самом деле, соле-
ноиды представляют собой катушки индуктивности, которые
обладают малым последовательным сопротивлением, не спо-
собным ограничить ток в достаточной мере, как это происхо-
дит в реле. Принцип работы соленоида известен. Со временем
происходит увеличение тока в катушке индуктивности. Соот-
ветственно, возникает необходимость ограничить ток при
помощи электронного устройства и/или сгенерировать дос-
таточно короткий импульс для активации устройства, в составе
которого находится катушка индуктивности, и выключения тока.
Автоматическое регулирование скорости
и положения
Когда двигатель приводится в действие для вращения на опре-
деленной скорости или для совершения заданного количества
Автоматическое регулирование скорости и положения 205
оборотов перед остановкой, то им управляет следящая система
автоматического регулирования со следящим контуром.
По определению из теории автоматических систем управ-
ления следящая система автоматического регулирования
представляет собой систему, регулирующую определенную
величину (температуру, скорость, положение). В моделизме
сервопривод предназначен для автоматического регулирова-
ния положения.
В робототехнике простейшие роботы представляют собой
системы с открытым контуром, в которых скорость робота не
контролируется. Но при конструировании более серьезного
робота необходимо точно представлять его перемещения,
положение и ориентацию. Следящий контур, достойный сво-
его имени, способен управлять многими параметрами. На
рис. 9.21 представлена структурная схема системы, автомати-
чески регулирующей положение колеса робота.
Орган управления передает команду о текущем перемеще-
нии колеса. Ею задается команда скорости вращения, а затем
токовая команда, трансформируемая в импульсы ШИМ для
силового интерфейса двигателя. При этом считываются и
возвращаются в орган управления два вида информации.
Рис. 9.21. Структурная схема системы, автоматически регулирующей
положение колеса робота
Файл взят с сайта
www.kodges.ru,
на котором есть еще
много интересной
литературы
206 Глава 9 Приводы и их интерфейс
Вначале производится измерение тока для проверки отсут-
ствия блокировки двигателя, а затем энкодер в виде кодирую-
щего диска передает цифровую информацию о количестве им-
пульсов, переданных колесом, и направлении его вращения.
Чтобы максимально облегчить работу процессора, занято-
го решением более важных задач, команда, отправленная сис-
теме автоматического регулирования, может прервать основ-
ную программу процессора только после выполнения коман-
ды достижения запрошенного положения. Соответственно,
следует использовать процессор, специально предназначен-
ный для этой функции. Компанией National SemiConductor
выпускается специальный компонент LM629, сочетаемый с
шиной микропроцессора.
Компания Microchip предлагает версию микроконтролле-
ра PIC17C42, предназначенную для управления двигателем
(AN532).
Перемещение робота
Заставить робота двигаться может показаться несложной за-
дачей. Но задача уже не будет настолько простой, если необ-
ходимо, чтобы робот переместился по прямой на расстояние
1 м. Задача еще более усложнится, если необходимо, чтобы
робот прошел это расстояние на максимальной скорости.
В чем состоит проблема? На перемещение робота влияет не-
сколько важных факторов:
• двигатели не являются идентичными и обладают опре-
деленной погрешностью угловой скорости, в результа-
те чего при подаче на них одинакового напряжения
вращение происходит с разной скоростью, разница мо-
жет быть небольшой, но она есть;
• диаметр колес не всегда является строго одинаковым;
• напряжение источника питания изменяется по мере
разряда батарей;
• возможно, что по причине массы робота ему требует-
ся большая скорость, чтобы тронуться с места;
• в виду наличия кинетической энергии резкая останов-
ка робота не всегда возможна.
Автоматическое регулирование скорости и положения 207
Для всех этих проблем требуется найти решение или при
помощи других способов свести к минимуму вызываемые ими
погрешности. Проблемы симметрии (диаметр колес, межосе-
вое расстояние и т.д.) можно разрешить, внеся поправки тра-
ектории при программировании робота.
В зависимости от потребностей существует два возможных
способа решения перечисленных выше проблем. Первый -
грубый способ - заключается в подаче питания на двигатели,
работающие на номинальной скорости, на протяжении зара-
нее рассчитанного расстояния, после чего следует торможе-
ние. Скорость движения робота сокращается до полной оста-
новки, которая заранее (a priori) должна соответствовать же-
лаемому расстоянию. Этот способ позволяет наиболее быстро
достигнуть желаемого результата при условии отсутствия ка-
ких-либо умышленно или неумышленно создаваемых помех
(рис. 9.22).
Второй способ является более точным, но и более медлен-
ным. Он заключается в заранее составленной таблице движе-
ния, состоящей из трех различных фаз: ускорения в течение
определенного, всегда постоянного промежутка времени, вне
Скорость
А
->Время
Положение
Л
Желаемое положение
--------------------------------------> Время
Рис. 9.22. Движение с последующим торможением
208 Глава И 9 Приводы и их интерфейс
зависимости от покрываемого расстояния; горизонтального
участка, на протяжении которого скорость остается постоян-
ной, а длительность передвижения по времени зависит от дли-
ны покрываемого расстояния; и, наконец, фазы торможения,
по времени идентичной фазе ускорения (рис. 9.23).
Рис. 9.23. Три фазы движения робота: ускорение - горизонтальный участок -
торможение
На небольших расстояниях, не позволяющих достичь мак-
симальной скорости, горизонтальный участок отсутствует.
Этот способ обеспечивает поправку всех параметров в режи-
ме реального времени.
10
Роботы - борцы Сумо
Сражения роботов представляют собой новый вид развлече-
ний, который подобно поединкам мифических титанов под-
час выходит за рамки нашего воображения. Будь то в анима-
ционных или в художественных фильмах, сражения роботов
не оставляют безразличным никого. Авторы научно-фантас-
тических романов повествуют о схватках титанов, фильмы
из серии «Звездные Войны» переполнены сценами таких
сражений. Первые анимационные фильмы по этой теме по-
явились в 1975 году, а пионером стал «Голдорак» (Goldorak).
Но бои роботов существуют и в реальности. В Калифорнии
на протяжении последних нескольких лет ежегодно прово-
дятся состязания роботов. Но в этих состязаниях участвуют
не совсем такие роботы, которым посвящена наша книга, так
как они управляются владельцами при помощи дистанцион-
ного управления пр причине небезопасного вооружения (то-
поры, пилы, молотки и т.д.). Пока запрещено оснащать авто-
номного робота каким-либо оружием. Можно представить
всю возможную опасность для людей в случае неполадки ро-
ботов.
Конкурсы среди автономных роботов позволяют нам
иногда присутствовать на импровизированных боях двух
роботов, стремящихся достичь одной цели. Когда такие со-
стязания устраиваются специально, они называются боями
между борцами Сумо (рис. 10.1).
210 Глаю 10 Роботы - борцы Сумо
Рис. 10.1. Два робота - борца Сумо
Для участия в таких боях должны строго соблюдаться пра-
вила, касающиеся веса робота и его привода. Для проведе-
ния боя необходимо два физически идентичных робота (по
весу и одинаковой схеме управления на микропроцессоре),
запрограммированных двумя различными командами.
Принцип работы робота - борца Сумо
Робот - борец Сумо должен соблюдать основные правила
борьбы Сумо: не покидать круг и стараться самому вытолкнуть
противника за пределы круга. Для этого необходимо, чтобы
робот имел датчики обнаружения круга и своего противника.
В данном случае используются датчики соударения и принцип
передачи и приема отраженных ИК-сигналов. Это позволяет
избежать помех, связанных с окружающим освещением (про-
жекторы). Используются ИК-датчики двух различных типов
(рис. 10.2).
Для обнаружения круга датчик ориентирован в направле-
нии пола и установлен в безопасном для него месте под робо-
том. Этот датчик состоит из приемопередатчика, работающе-
го на одной длине волны и на прием, и на передачу. Датчик
настраивается на расстояние отражения 5 мм. Для обнаруже-
ния противника используется специальный, так называемый
Принцип работы робота - борца Сумо 211
Рис. 10.2. Инфракрасные датчики для роботов - борцов Сумо
интеллектуальный датчик со встроенным электронным бло-
ком обработки. Для получения информации о положении
противника необходимо два таких датчика.
Последний, наиболее простой датчик представляет со-
бой детектор соударений, установленный на бампере-амор-
тизаторе. По периметру робота закрепляется три концевых
выключателя. Два выключателя, установленные в передней
части, и один - в задней части робота, обнаруживают со-
ударения впереди, справа, слева и позади робота. Бампер-
амортизатор изготавливается из отрезка трубы достаточно-
го диаметра (рис. 10.3).
Цвет робота также имеет большое значение, так как необ-
ходимо, чтобы роботы могли видеть друг друга. Белый цйет
больше всего подходит для отражения ИК-сигналов.
Электронная часть собрана на специальной плате Mini-
Board НС 11 Массачусетского технологического института
(MIT) (см. главу 3). Так как на этой плате сгруппированы все
основные функции робота, на ней установлено множество
соединительных разъемов (рис. 10.4).
212 Глава И 10 Роботы - борцы Сумо
Рис. 10.3. Бампер-амортизатор робота
Рис. 10.4. Робот в собранном виде
Конструкция робота 213
Так как разъемы являются однотипными, при подключе-
нии датчиков легко ошибиться1. В данном случае видна про-
блема использования разъемов в робототехнике. Тем не ме-
нее, сложно придумать что-то лучшее, так как плата должна
оставаться доступной для настройки вне робота и в других
целях. Поместив плату на столе и подключив ее через удлини-
тельный разъем, можно более комфортно проводить настрой-
ку и предварительные испытания. В самом деле, на протяже-
нии всего конструирования робота необходимо постоянно
устанавливать и снимать датчики, двигатели. Однако наибо-
лее важно иметь доступ к выключателям начальной установ-
ки и выключателям программирования.
Конструкция робота
Первый этап заключается в изготовлении трех кругов одина-
кового диаметра. Размеры кругов зависят от размеров ваших
двигателей и покрывают их.
Первая пластина обрезается для установки колес (рис. 10.5
и 10.6).
Для фиксации пластин между собой устанавливаются рас-
порки. ИК-датчики также устанавливаются на первой пластине.
В средней пластине выполняется по два отверстия с каж-
дой стороны для установки батарей (рис. 10.7) и пропуска-
ния между ними соединительных проводов.
Верхняя пластина изготавливается аналогично средней.
Наиболее деликатным является изготовление бампера (в ви-
де юбки), который крепится ко второй (средней) пластине.
Бампер вырезается из трубы, которая опоясывает пластины
по диаметру, превышающему диаметр пластин. Лучше всего
сгибать бампер на сгибочном станке, а место соединения -
сварить на электросварочном аппарате заранее. По технике
безопасности сварку необходимо вести в очках во избежание
повреждения глаз.
Чтобы не перепутать, какие из однотипных разъемов куда подключаются, их марки-
руют с двух сторон подключения. Другой вариант - применить разнотипные разъе-
мы, ненамного отличающиеся друг от друга, например в несколько выводов, такие
разъемы даже при желании не перепутаешь. - Прим. науч. ред.
214 Глава 10 Роботы - борцы Сумо____________________________
Рис. 10.5. Первый этап конструирования робота
Рис. 10.6. Вид снизу на пластину для установки колес
Электронная часть робота 215
Рис. 10.7. Размещение батарей на второй пластине
Электронная часть робота
Описание платы приводится в главе 3, а ее внешний вид по-
казан на рис. 10.8.
Электронная часть состоит из двух плат для интеллекту-
альных датчиков. При этом необходимо соблюдать стандарт
разъемов. Для каждого робота необходимо изготовить три
платы. Для включения и выключения робота в его верхней
части устанавливается специальный датчик. Простым прове-
дением руки над роботом выполняется запуск или остановка
программы. Такая «ловкость рук» позволяет избежать уста-
новки отдельного выключателя.
Об этом датчике было рассказано в главе 8. В данном слу-
чае он интересен вдвойне. Во-первых, в него встроен выход-
ной интерфейс с открытым коллектором (для согласования
двух напряжений: 5 и 12 В), который идеально подходит для
платы Mini-Board. Во-вторых, этот датчик подает двоичную
информацию типа «включен/выключен», которая легко об-
рабатывается программой. Схема включения датчика пре-
пятствия очень проста (рис. 10.9).
216 Глава И 10 Роботы - борцы Сумо
Рис. 10.8. Плата Mini-Board НС11
Рис. 10.9. Датчик препятствия на интегральной схеме IS 471 F
В схеме используется излучающий светодиод с ограничи-
тельным переменным сопротивлением, который обеспечи-
вает регулировку расстояния обнаружения в пределах от 5 до
40 см. Схема дополняется небольшой емкостью фильтра пи-
тания. На рис. 10.10 и 10.11 изображена разводка печатной
платы и чертеж размещения компонентов на обратной сто-
роне платы.
Программирование робота - борца Сумо 217
Рис. 10.10. Разводка
печатной платы для
интегральной схемы
IS 471 F
Рис. 10.11. Чертеж размещения
компонентов для интегральной
схемы IS 471 F на обратной
стороне печатной платы
Список компонентов:
• RV1 - 220 Ом;
• С1 - 0.33 мкФ;
• D1-LD271;
• CI1-ISF471.
Не следует забывать об изготовлении датчика линии. Этот
датчик по причине простоты конструкции не требует разме-
щения на печатной плате. Подборное сопротивление номина-
лом в 330 Ом установлено последовательно с анодом излучаю-
щего светодиода (рис. 10.12).
Рис. 10.12. Схема датчика линии
Программирование робота - борца Сумо
Программа Sumo_3 написана на языке С для компилятора
ICC11 компании Imagecraft. Программа создана в соответствии
218 Глава 10 Роботы - борцы Сумо
с указаниями, представленными в главе, посвященной про-
граммированию робота. Работа программы управляется алго-
ритмом приоритетного взаимодействия. Программы Sumo_l
и Sumo_2 позволят вам проследить ее эволюцию от простой
Sumo_l, к более сложной - Sumo_2 и самой интеллектуальной
версии - Sumo_3.c.
Заключение
Программирование первого робота, предложенного вам в
этой книге, занимает значительную часть времени. Элект-
ронная плата отработана при конструировании, доступна в
готовом виде в продаже и не имеет проблем с надежностью.
Механическая часть робота не очень сложна.
Если вы решили изготовить двух роботов для проведения
поединков роботов - борцов Сумо, не забудьте ввести в них
две разные программы. Иначе, во-первых, будет неинтерес-
но (как игра с самим собой в шахматы), во-вторых, как про-
изошло из опыта с автором этой книги, вас удивит то, что в
этом поединке роботов нет победителя. Если не считать...
небольшой хитрости, которую мы вам предлагаем найти са-
мим...
Глава
Робот-муравей
Сконструировать робота из конструктора LEGO® - это, может
быть, вновь обрести душу ребенка и, как ребенку, заново позна-
вать мир, теперь уже мир роботов. Это также означает повтор-
ное изучение действия законов механики, которые не всегда
легко поддаются пониманию. Данная глава посвящена изготов-
лению и программированию робота-муравья (рис. 11.1).
Рис. 11.1. Робот-муравей из конструктора LEGO*
220 Глава 11 Робот-муравей______________________________
Даже если сходство неидеально, его достаточно для тести-
рования робота на шести лапах. Этот робот позволил мне изу-
чить концепцию построения роботов и после этого изготовить
второго, более реалистичного муравья, о котором рассказыва-
ется в другой моей книге, Construisons nos robots mobiles', вышед-
шей в издательстве Dunod.
Принцип работы робота-муравья
Конструкция изготовлена по техническому описанию из LEGO®.
Три серводвигателя обеспечивают движение и перемещения
всей конструкции. Голова подвижна и обнаруживает препят-
ствия, расположенные на расстоянии до 30 см (рис. 11.2) от
робота.
Рис. 11.2. На голове установлен датчик приближения и два двухцветных
светодиода - глаза
Заголовок книги переводится как «Конструируем мобильных роботов». - Прим. науч. ред.
Принцип работы робота-муравья 221
Используемый для этих целей датчик идентичен описан-
ному в предыдущей главе. Дополняют робота два глаза, кото-
рые придают ему больший реализм. Каждый из глаз способен
светиться одним из трех различных цветов: зеленым, крас-
ным и оранжевым при подаче на каждый «глаз»-светодиод
определенного напряжения, соответствующего цвету свече-
ния. В нашем случае будут использоваться только два первых
цвета, и не обязательно одинаковых: или оба зеленых, или
оба красных. Интереснее цветом задавать направление вра-
щения, например поворот - всегда в сторону свечения зеле-
ного светодиода. Так будет более информативно и, с другой
стороны, более загадочно.
Принцип перемещения достаточно прост. Центральные
лапы соединены между собой и обеспечивают подъем робота
с той или другой стороны. Крайние лапы с правой стороны,
также как и крайние лапы с левой стороны, перемещаются
вместе. Когда центральные лапы приподнимают робота с пра-
вой стороны, крайние лапы правой стороны становятся сво-
бодными, и их можно переместить вперед или назад. В это
время крайние лапы левой стороны опираются на поверх-
ность, обеспечивая перемещение робота вперед или назад.
Рис. 11.3 Поворот головы выполняется при помощи серводвигателя
222 Главо Д11 Робот-муровей
Общее перемещение робота достигается путем чередования
разных фаз движения ног каждой стороны.
Робот может перемещаться по прямой линии вперед и на-
зад, а также поворачивать направо и налево. Поворот напра-
во или налево выполняется при обнаружении препятствия
головой робота. Если препятствие расположено слишком
близко, робот возвращается назад. Итак, после выполнения
простого перемещения робот останавливается, его голова
поворачивается и «осматривает» пять направлений движения
в поисках возможного препятствия (рис. 11.3) и в направле-
нии препятствия не движется. В зависимости от полученного
результата меняется цвет глаз.
Конструкция робота-муравья
Для этого робота мы использовали конструктор под названи-
ем LEGO® Technic. Для обеспечения достаточной прочности
конструкции необходимо иметь минимальные знания конст-
руктора LEGO® этого типа (рис. 11.4).
Рисунки с разных ракурсов призваны помочь вам понять кон-
струкцию робота. Цель построения робота должна заключаться
Рис. 11.4. Вид на робота снизу
Электронная часть робота 225
Электронная часть робота
Этот робот также стоял у истоков разработки платы НС11.
На рис. 11.8 с левой стороны вы можете видеть первую вер-
сию этой платы. Плата, расположенная справа, представля-
ет собой последнюю версию, которая была представлена вам
в главе 3. Она более рационально скомпонована, чем преды-
дущая версия.
Рис. 11.8. Слева - первая плата НС11, изготовленная для муравья;
справа - новая, улучшенная, плата НС11
После сборки платы и робота вам остается подключить
серводвигатели, глаза и голову. Датчик, установленный на
голове, был рассмотрен нами в главе 8, а его печатная плата
была описана в предыдущей главе (рис. 10.10), посвященной
роботу - борцу Сумо.
Среди разъемов, предназначенных для управления сер-
водвигателями, мы используем разъем Кб для серводвигате-
ля головы, К7 - для серводвигателя, установленного в сред-
ней части, К8 - для серводвигателя лап, расположенных с
правой стороны, К9 - для серводвигателя лап, расположен-
ных с левой стороны. Глаза изготавливаются из двухцветных
светодиодов, соединенных с портом С. Для левого глаза анод
зеленого светодиода подключается к РС7, а анод красного
светодиода - к РСб. Для правого светодиода анод зеленого
светодиода подключается к РС5, а анод красного светодиода -
к РС4. Последовательно к этим анодам следует подключить
8-7388
224 Глава И11 Робот-муравей
Рис. 11.6. Вид сзади на конструкцию робота-муравья
Рис. 11.7. Центральный механизм должен иметь достаточный вращающий
момент для приподнимания всей конструкции
Конструкция робота-муравья 223
не в слепом его копировании, что может иметь место, а в по-
пытке создать что-то лично ваше. Блок из четырех аккумуля-
торов устанавливается в задней нижней части робота. В дан-
ном случае необходимо использовать аккумуляторы по 1,2 В
и сумме 4,8 В, так как напряжение четырех гальванических
батарей по 1,5 В составит 6 В, что превышает предельно до-
пустимое напряжение микроконтроллера.
Центральный механизм из серводвигателя с редуктором
является наиболее деликатной конструкцией, так как в цент-
ральном серводвигателе необходимо создать значительный
вращающий момент. При перемещениях весь вес робота бу-
дет приходиться именно на этот серводвигатель. Необходи-
мо правильно подобрать редуктор из трех зубчатых колес
(рис. 11.5).
На рис. 11.6 показана система треугольника для сочета-
ния крайних лап с каждой стороны.
Конечная конструкция тяжеловата для стандартных сер-
водвигателей. Необходимо создать достаточный вращающий
момент, чтобы приподнять лапы с одной стороны (рис. 11.7).
Рис. 11.5. Центральный механизм: серводвигатель и редуктор
из трех зубчатых колес
226 Глава И 11 Робот-муравей______________________
четыре токоограничительных резистора сопротивлением
1 кОм. Сигнал датчика головы подается на контакт РСО.
Список компонентов:
• R7, R8, R9, R10 -1 кОм (коричневый, черный, красный);
• DI, D2 - двухцветный светодиод 5 мм;
• плата с интегральной схемой ISF 471 (глава 10);
• три стандартных серводвигателя;
• один мини-серводвигатель.
Программирование робота
В этот раз программирование будет выполняться на языке
BASIC. Основная программа называется fourmi_4.bas. В фай-
ле fourmi.inc содержатся различные программы и конфигура-
ции микроконтроллера. Важно внимательно изучить этот
файл для правильного понимания работы робота и изменения
его параметров. Так как основная программа построена не на
принципе приоритетного взаимодействия, понять принцип
ее работы достаточно сложно.
Заключение
Благодаря знаниям, почерпнутым из книги, у вас в руках есть
все козыри, чтобы пересмотреть эту программу и переписать
ее в соответствии с программированием, построенным на
принципе приоритетного взаимодействия.
Конструкция, выполненная из деталей конструктора LEGO®,
позволила увидеть ее деликатные стороны. Вес конструкции
требует использования мощного центрального серводвигате-
ля. Достаточно устойчивая походка муравья достигается за
счет значительного расстояния между лапами. Изготовление
робота более похожего на настоящего муравья, может нару-
шить устойчивость его походки. Многие конструкции, пред-
лагаемые в продаже, представляют собой надежные реше-
ния. Не претендуя на реалистичность, они, по крайней мере,
могут считаться достаточно эстетичными.
Глава
12
Робот-насекомое
Конструируя роботов, мы стараемся копировать природу1.
В предыдущей главе был рассмотрен робот-муравей. В этой
главе мы расскажем, как сконструировать робота-насекомо-
го (рис. 12.1).
Рис. 12.1. Роботы-насекомые
Известно, что природа прошла долгий эволюционный путь в миллионы лет и созда-
ла совершенные конструкции фауны. И не грех у нее поучиться в создании подоб-
ных механических конструкций. Этим занимается наука: бионика. А представленные
в главах 11 и 12 конструкции - попытка хотя бы отдаленно сконструировать робота,
внешне похожего на его живой прототип. - Прим. науч. ред.
8
228 Глава И 12 Робот-насекомое
В данном случае мы сконструируем ползающего насекомо-
го с маленькими глазками и двумя большими усами. Насеко-
мое сможет огибать препятствия и двигаться в направлении
самого мощного источника света. Но этот робот сможет вы-
полнять и другие функции, так как в нем используется про-
граммируемый микроконтроллер.
Эта глава представляет собой пересмотренную версию ста-
тьи, опубликованной в № 2 журнала Micros & Robots (в ноябре
2001 года). Все первоначальные схемотехнические решения
из указанного журнала были кардинально переработаны. Ис-
пользование микроконтроллера повлекло за собой значитель-
ные изменения по сравнению с предыдущей версией:
• наличие микроконтроллера PIC16F84;
• новый интерфейс датчиков;
• учет программой уровня окружающей освещенности;
• регулируемая скорость движения робота;
• возможность более совершенного нейронного програм-
мирования;
• использование двигателей разных типов.
Принцип работы робота
Изготовление робота максимально упрощается благодаря от-
сутствию механической части - источника многих ошибок
электронщика. Электронная плата заменяет каркас. Оси дви-
гателей упираются в поверхность и выполняют функции ко-
лес. Конденсатор, расположенный в задней части, служит тре-
тьей точкой опоры. Корпус, изготовленный в виде насекомо-
го, завершает впечатление (рис. 12.2).
Датчики соударений играют роль усов-антенн, а фоторези-
сторы служат глазами робота. Источником питания являются
две батареи типа АА или ААА. Информация о внутреннем со-
стоянии робота передается двумя светодиодами, двигатели
обеспечивают перемещение робота. При необходимости мож-
но использовать пьезопреобразователь для генерирования
простых звуков.
Ограничения, которые следует соблюсти при изгото-
влении, кажутся простыми, но питание микроконтроллера
Конструкция робота 229
Рис. 12.2. Различные элементы робота-насекомого
и двигателей от одного источника может также стать причи-
ной определенных проблем.
Использование этого робота ведет нас от его сборки из
простого набора компонентов к нейронному программиро-
ванию. Электронные функции были переложены с аппарат-
ной схемотехники на микроконтроллер. Использование не-
дорогих двигателей не является важным критерием общей
надежности работы робота.
Конструкция робота
Основная часть конструкции заключается в выборе формы
печатной платы, отдаленно напоминающей брюшко насеко-
мого (рис. 12.3).
Два двигателя устанавливаются в строго определенном
положении под наклоном. На оси двигателей необходимо
надеть силиконовые трубки для обеспечения достаточного
сцепления, так как в работе нет зубчатых колес для уменьше-
ния скорости. Третья точка опоры обеспечивается конден-
сатором питания всей схемы больших размеров (рис. 12.4).
Усы-антенны улучшают внешний вид робота (какое насе-
комое без усов!) и служат датчиками соударений.
230 Глава Я 12 Робот-насекомое
Рис. 12.3. Особая форма печатной платы позволяет обойтись
без механической части
Рис. 12.4. Робот опирается на оси двух двигателей и конденсатор,
расположенный в его задней части
Электронная часть робота 233
очень малым напряжением насыщения (0,2 В), необходимым
для данной схемы.
В самом деле, так как напряжение питания мало (3 В), дви-
гатель должен получить наибольшее напряжение для разви-
тия максимального вращающего момента в начале движения.
Так как данные, передаваемые фоторезисторами, являют-
ся аналоговыми, выполняется преобразование «сопротивле-
ние-время». Зарядка емкости происходит в течение 250 мкс,
затем емкость разряжается через фоторезистор. Одновре-
менно с этим происходит приращение переменной до тех
пор, пока напряжение в емкости не достигнет логического
уровня 0.
Эта технология также используется для выбора скорости
движения робота. Выбор скорости производится в зависимо-
сти от типа двигателей и желаемого поведения робота.
Изготовление робота
Изготовление робота не представляет больших сложностей.
Две черты с каждой стороны печатной плать; обозначают
две перемычки, предназначенные для фиксации двигателей.
Также имеются две другие перемычки (рис. 12.6 и 12.7).
Рис. 12.6. Разводка печатной платы (вид со стороны медного покрытия
печатных проводников)
232 Глава 12 Робот-насекомое
О
ов
Рис. 12.5. Схема робота-насекомого (окончание)
Электронная часть робота 231
Электронная часть робота
На рис. 12.5 представлена совокупность элементов электрон-
ной схемы робота.
В центре схемы находится PIC16LF84. Эта модель являет-
ся версией классического микроконтроллера PIC16F84, пи-
таемого от низкого напряжения (L на маркировке контрол-
лера). В данном случае мы выбрали именно эту модель по
очевидной причине использования низкого напряжения в
схеме робота. Модель PIC16F84 не рекомендуется использо-
вать при напряжении меньше-3 В. Стандартная частота в та-
ких условиях составляет 2 МГц, но она прекрасно работает с
самым распространенным резонатором 4 МГц.
Выбранный интерфейс позволяет оптимизировать управле-
ние двигателями. Транзисторы, которые здесь используются,
распространенного типа (2N2222), кроме того, они обладают
+ ив
SR1
10 кОм
Левая
( антенна
4-UB
8R2
10 кОм
Правая
антенна
+ UB
СП
Vdd
ГЕН 1
ГЕН 2
MCLR
Vss
ОВ
Q1
4 МГц
RB7 #
RB6 Rt-
RB5
RB4
RB3
RB2
RB1
RBO
TOCKI/RA4
RA3
RA2
RA1
J RAO
PIC16LF84
13
12
11
10
9
8
18
17
Левый
Правый
глаз
R4
470 Ом
R3
470 Ом
LDRO3 LDR03
О О
ОВ ОВ
Правый
светодиод
ПН7
|| 1 кОм
D1 \03
Красный IV] Красный
светодиод к У светодиод
Пьезо
Левый двигател ь
Левый светодиод
Левый глаз
Левая антенна
Скорость
Правая антенна
Правый глаз
Правый светодиод
Правый двигатель
Левый
светодиод
&R10
1 кОм
6
3
2
Рис. 12.5. Схема робота-насекомого (начало)
234 Глава И 12 Робот-насекомое
Рис. 12.7. Чертеж размещения компонентов на печатной плате
Конденсаторы С6 и С7 устанавливаются и припаиваются в
последнюю очередь со стороны медного покрытия печатных
проводников. Конденсатор С7 емкостью 1000 мкФ, служащий
третьей точкой опоры, не должен образовывать короткого за-
мыкания с печатным контуром. Между ним и печатными про-
водниками должна быть изоляционная прокладка. С одной сто-
роны двигатели фиксируются печатной платой, а с другой -
перемычкой. К корпусу двигателей со стороны контактов сле-
дует припаять гайку М3. Она служит для фиксации двигателя
без необходимости его припайки к перемычке (рис. 12.8).
Список компонентов:
• Rl, R2 - 10 кОм (коричневый, черный, оранжевый);
• R3, R4, R5 - 470 Ом (желтый, фиолетовый, коричневый);
• R6, R7, R8, R10, R11 - 1 кОм (коричневый, черный,
красный);
Программирование робота 237
в виде двух штырей. Опора устанавливается внутри пружи-
ны, изготовленной из второй части, и припаивается к краю
печатного контура.
После установки всех компонентов необходимо выпол-
нить регулировку положения робота. Во-первых, нужно на-
клонить конденсатор, расположенный в задней части, чтобы
приблизить центр тяжести к осям двигателей. Это улучшит
сцепление робота с опорной поверхностью. Такое положение
придется регулировать достаточно часто, так как под действи-
ем веса робота и вибраций его каркас будет стремиться занять
горизонтальное положение. Этой регулировки можно избе-
жать, припаяв к проводам конденсатора С7 отрезки более тол-
стого провода.
Во-вторых, необходимо, чтобы антенны соприкасались с
опорной поверхностью. Это позволит сократить колебания ан-
тенн и избежать остановок робота при отсутствии препятствий.
Гибкость образуется при вытягивании выполненной пружины.
Третья, и последняя, регулировка касается положения глаз.
В зависимости от желаемого поведения робота глазам можно
придать особое положение: «вперед» - для следования за ис-
кусственным источником света, «вверх» - для следования за
источником окружающего освещения, «вниз» - для следова-
ния вдоль белой полосы, «назад» - при необходимости. Про-
грамма должна быть адаптирована в соответствии с желаемым
поведением робота.
Программирование робота
Программа для робота-насекОмого написана на языке С для
компилятора CCS. Ее можно легко изменить для адаптации к
компилятору HI TECH. Программа для данного робота назы-
вается robug.hex.
Файл программирования состоит из трех основных файлов.
Файл robog.c содержит программу, построенную на принципе
приоритетного взаимодействия. В файле robug.h собраны раз-
личные специальные функции. В файле interrup.c содержится
программа прерывания, которая генерирует переменную ско-
рость путем модуляции скважности импульсов (ШИМ-модуля-
ции).
236 Глава 12 Робот-насекомое
Прочие компоненты:
• два двигателя типа Mabushi 130 (ссылочный номер по
каталогу магазина Farnell: 599-104);
• две батареи напряжением 1,5 В типа ААА;
• отрезки жесткого провода для перемычек и антенн;
• одна соединительная ячейка для установки двух бата-
рей типа ААА;
• один пьезопреобразователь (устанавливается опцио-
нально);
• один ползунковый переключатель (ссылочный номер
по каталогу магазина Farnell: 674-357).
Батареи устанавливаются под каркасом и закрепляются
при помощи резинки или клейкой ленты.
Изготовление антенн требует особого внимания (рис. 12.9).
Для изготовления каждой антенны необходимо оголить
15 см тонкого жесткого провода и намотать оголенную часть
на отвертку диаметром 3 мм. Эта часть провода припаивает-
ся к печатному контуру. Вторая часть закрепляется на опоре
Рис. 12.9. Изготовление антенн для робота
Электронная часть робота 235
Рис. 12.8. Особое расположение двигателя
• R9, R12 - 100 Ом (коричневый, черный, коричневый);
• RV1 - 10 кОм (плоский горизонтальный);
• PHR1, PHR2-LDR03;
• С1,С2, СЗ, С7-0,1 мкФ;
• С4, С5 - 1000 пФ;
• С6 - 1000 мкФ/16 В;
• Т1,Т2,ТЗ, T4-2N2222;
• DI, D3 - светодиод со свечением красного цвета 3 мм;
• D2, D4 - 1N4004;
• СП - PIC16LF84 (ссылочный номер по каталогу мага-
зина Farnell: 111-818);
• Q1 - резонатор частотой 4 МГц;
• одна опора с 18 контактами.
238 Глава И 12 Робот-насекомое_____________________
Рекомендуется внимательно изучить исходную программу
для ее адаптации к новому поведению робота. Программиро-
вание методом приоритетного взаимодействия обеспечива-
ет простоту изменения первоначального поведения.
Заключение
Представьте, что ваш робот-насекомое скрывается в своей тем-
ной норе. Но достаточно направить на него любой источник
света, чтобы он выполз из норы. Вам придумывать продолже-
ние... Их огромное количество. Можно предложить близким
разработать интересный сценарий поведения и этим заинтере-
совать их конструированием роботов.
Конструкция робота 241
роботом и препятствием измеряется ИК-датчиком компании
Sharp. Если препятствие находится на близком расстоянии,
робот может решить повернуть, если препятствие достаточ-
но удалено, он может отойти назад или остановиться. Дина-
мическая головка издает высокий звук разной тональности в
зависимости от расстояния до препятствия, а глаза робота
могут менять цвет.
Робот может быть выключен в любой момент проведени-
ем рукой по его голове. При повторном проведении рукой по
голове робота он возобновляет свой цикл работы, приветству-
ет вас и продолжает идти. Датчик, используемый для этой
цели, представляет собой фототранзистор, который реагиру-
ет на изменение освещенности.
Конструкция робота
Робот прост в изготовлении. Необходимо иметь L-образный
алюминиевый профиль (или уголок) длиной не менее 50 см и
небольшой кусок органического стекла белого цвета (70x40 мм).
Для лучшего понимания следуйте фотографиям. Необходи-
мо изготовить деталь №1, которая образует голову робота,
две детали №2, которые станут руками, и две детали №3 -
стопы робота (рис. 13.3).
Рис. 13.3. Различные детали, изготовленные из алюминиевого уголка
240 Глава И 13 Шагающий робот
изучающими таких роботов, как Asimo компании Honda или
SDR-3X компании Sony. Наш робот приоткрывает дверь этих
исследований, позволяя понять принцип динамической по-
ходки (рис. 13.1).
Принцип работы робота
Динамическая походка - это походка двуногих животных, к
которым относимся и мы, - вспомним Чарльза Дарвина с
его знаменитой теорией эволюции... Центр тяжести пере-
мещается в направлении движения, тело теряет равнове-
сие, а нога, перенесенная вперед, не дает нам упасть. Для
четырех уровней свободы необходимо использовать четы-
ре серводвигателя. Стандартные модели являются вполне
подходящими (рис. 13.2).
После произнесения приветствия робот начинает двигать-
ся вперед. При появлении препятствия на его пути робот оста-
навливается. В зависимости от расстояния до препятствия ро-
бот выбирает соответствующее поведение. Расстояние между
Рис. 13.2. Робот и четыре его серводвигателя
Г лэвз
13
Шагающий робот
Для изготовления этого робота был использован микрокон-
троллер PIC в корпусе с 18-ю выводами. После рассмотрения
муравья с шестью ногами посмотрим, как устроен двуногий
робот. Конечно же, уровень свободы ограничен, но этого
робота сможет собрать любой любитель. Речь не идет о сопер-
ничестве с различными робототехническими лабораториями,
Рис. 13.1. Шагающий робот
242 Глеев И 13 Шагающий робот
Рис. 13.5. Голова с двумя глазами и датчиком Sharp
ив
+ ив
R1
100 кОм
СИ
Рис. 13.7. Схема шагающего робота
1в
Микро-
контрол-
лер
ГЕН 1
Q1
4 МГц
ГЕН 2
ОВ
ОВ
Vdd
Vsb
МК/ПРОГР
RB7
I RB6
J3J
12__
11
10
9
8
RB7
RB6
RB5 H2-
RB4 15-
|-
RB2 ~-
RB1
RBO —
6
RA4
RA3
RA2
3
2
RAO —
16LF628
OB
PT1
SFH309
OB
220 Ом
СЗ
0,1 мкФ
KI
47 мкФ
J??- , RB1
RAI
0.1 мкФ
CI2
LM385-1.2
OB
1 кОм
RB7
R7
47 кОм
RAO ,2*1
1 кОм
RB5
KB
+UB
OB
BZ1
Динамическая
головка_01
1 кОм
RB6
1 кОм
Электронная часть робота 245
244 Глава И 13 Шагающий робот______________________
Электронная часть робота
На рис. 13.7 представлены элементы электронной части ро-
бота.
В центре схемы находится микроконтроллер PIC16LF628,
который заменил PIC16F84. Из внутренних ресурсов этого
микроконтроллера мы воспользуемся компаратором и его эта-
лоном внутреннего опорного напряжения. Этот микроконт-
роллер также снабжен генератором сигналов ШИМ, который
позволит нам генерировать звуки.
Микроконтроллер используется с керамическим резона-
тором частотой 4 МГц, способным обрабатывать 1 млн ко-
манд в секунду. Разъем К13 и резистор R1 обеспечивают
программирование микроконтроллера без его демонтажа
из опоры. Эта технология называется внутрисхемным про-
граммированием (или последовательным внутрисхемным
программированием).
Основными элементами робота являются четыре серводви-
гателя, подключенные к разъемам К4 - К7 и ИК-датчик рассто-
яния. К дополнительным элементам робота относятся датчик
освещенности, датчик контроля напряжения батарей и трех-
цветные светодиоды, используемые в качестве глаз робота.
Так как эти виды информации относятся к логическому
типу, необходимо прибегать к хитростям программирования
или упрощениям измерений.
Микроконтроллер снабжен компаратором и программиру-
емым эталоном опорного напряжения. Но этот эталон про-
порционален напряжению питания, что не позволяет прово-
дить классического измерения. Соответственно, вводится
внешний эталон напряжения, который сравнивается с вну-
тренним эталоном. Аккумуляторы считаются разряженными,
если вырабатываемое ими напряжение составляет 4 В. Вне-
шний эталон напряжения представляет собой очень точную и
энергоемкую интегральную схему LM 385-1,2 с напряжением
1,25 В. Соответственно, необходимо запрограммировать вну-
тренний эталон 1,25 В для напряжения питания 4 В.
Для обнаружения изменения освещенности программой про-
изводится преобразование «освещенность-время». Это достига-
ется путем зарядки конденсатора СЗ через ограничительный
Конструкция робота 243
Выводы аккумуляторов спаяны попарно для увеличения тока
нагрузки и зафиксированы внутри стоп (деталь №3) - рис. 13.4.
Руки изготовлены из двух алюминиевых деталей (деталь
№2), которые фиксируют диски серводвигателей с каждой
стороны. 1олова робота состоит из двух серводвигателей, не-
подвижно закрепленных при помощи алюминиевой детали
(деталь №1). Для крепления датчика расстояния Sharp и двух
светодиодов-«глаз» необходимо изготовить деталь №4 из орга-
нического стекла белого цвета толщиной 2 мм (рис. 13.5).
Печатная плата закрепляется между двумя верхними сер-
водвигателями и деталью №1 (рис. 13.6) двумя небольшими
медными уголками.
Эти медные уголки припаиваются к печатной плате со
стороны медного покрытия печатных проводников в пред-
назначенном для этого месте. Над алюминиевой пластиной
(деталь №1) виден слегка выступающий фототранзистор.
Рис. 13.6. Печатная плата крепится между двумя серводвигателями
и деталью №1
246 Глава И 13 Шагающий робот
резистор R2, и последующей его разрядки через фототранзис-
тор. Вся последовательность заряда-разряда управляется микро-
контроллером.
В качестве глаз робота используются два трехцветных све-
тодиода 5 мм, каждый из которых состоит из двух светодио-
дов - красного и зеленого. При подаче напряжения на оба
светодиода образуется третий цвет - оранжевый.
Завершая рассмотрение схемы, остановимся на ИК-датчи-
ке расстояния. В данном случае речь идет о так называемом
интеллектуальном датчике компании Sharp. Принцип его ра-
боты и характеристики были рассмотрены в главе 8, посвя-
щенной датчикам. По практическим соображениям выбор пал
на модель GP2D02. Так как в нашем микроконтроллере отсут-
ствует аналогово-цифровой преобразователь, мы вынуждены
выбрать модель, снабженную последовательным опросом для
чтения расстояния.
Три электролитических конденсатора емкостью 47 мкФ
сглаживают пульсации напряжения питания серводвигате-
лей и интеллектуального датчика Sharp.
Вы можете заметить, что, несмотря на то, что схема доста-
точно «свободна», в ней использованы все физические ресур-
сы микроконтроллера. Управление ими требует особого под-
хода к программированию. Чтение исходных файлов помо-
жет вам понять искусство программирования робота.
Изготовление робота
На рис. 13.8 вы видите, что все разъемы установлены в один
ряд для упрощения подключения.
Источником напряжения являются аккумуляторы, сгруп-
пированные попарно. На плате предусмотрено два разъема,
К1 и К2, для подключения каждой пары аккумуляторов. Тре-
тий разъем КЗ предназначен для зарядки аккумуляторов без
необходимости их отсоединения.
Плата представляет собой модель с двусторонними печат-
ными проводниками. Соответственно, некоторые печатные
соединения выполняются со стороны установки компонен-
тов. Прочие разъемы являются необязательными. На плате
Изготовление робото 247
Рис. 13.8. Двусторонняя печатная плата робота
Рис. 13.9. Печатная плата (видео стороны медного покрытия печатных
проводников)
использованы разъемы модели Harwin с шагом 2 мм (рис. 13.9,
13.10 и 13.11).
Три небольшие печатные платы предназначены для мон-
тажа глаз и датчика освещения робота. В нашем роботе была
248 Глава И 13 Шагающий робот
Рис. 13.10. Печатная плата (вид со стороны размещения компонентов)
Рис. 13.11. Чертеж размещения компонентов на плате
Изготовление робота 249
изготовлена только плата датчика освещения, установленная
между двумя верхними серводвигателями.
Список компонентов:
• R1 - 100 кОм (коричневый, черный, желтый);
• R2 - 220 Ом (красный, красный, коричневый);
• R3, R4, R5, R6 - 1 кОм (коричневый, черный, красный);
• R7 - 47 кОм (коричневый, красный, красный);
• С1, С4, С5 - 47 мкФ/16 В;
• С2, СЗ-0,1 мкФ;
• D1-1N4148;
• D2,D3 - светодиоды с трехцветным свечением разме-
ром 5 мм;
• РТ1 - фототранзистор SFH 309;
• СП -PIC 16LF628;
• CI2 - LM385-1.2;
• Q1 - резонатор частотой 4 МГц;
• KI, К2, КЗ - вилочные двухвыводные разъемы типа КК
с дюймовым шагом 2,54 мм;
• К4, К5, Кб, К7 - вилочные трехвыводные разъемы;
• К8, К9 - вилочные трехвыводные разъемы типа Harwin
с шагом 2 мм;
• К10 - вилочный двухвыводной разъем типа Harwin с
шагом 2 мм;
• К11 — вилочный четырехвыводной разъем типа Harwin
с шагом 2 мм;
• К12 - вилочный пятивыводной разъем типа КК с ша-
гом 2,54 мм;
• одна опора интегральной схемы с 18-ю контактами;
• BZ1 - динамическая головка (буззер);
• S1 - ползунковый переключатель.
Прочие компоненты:
• один датчик Sharp GP2D02 (ссылочный номер по ката-
логу магазина Conrad: 185329);
• четыре серводвигателя;
250 Глава И 13 Шагающий робот_____________________
• четыре аккумулятора напряжением 1,2 В прямоугольной
формы (ссылочный номер магазина Conrad: 305-5954);
• провода, винты и гайки М3;
• алюминиевый уголок размером 15x25 мм, длиной 50 см.
Программирование робота
Четыре серводвигателя управляются программой прерыва-
ния, которой генерируются импульсы, под действием кото-
рых происходит управление серводвигателями. В отсутствие
прерывания программа следит за напряжением батареи и
внешним освещением.
Еще раз напоминаем, что в данном случае используется
программа с архитектурой приоритетного взаимодействия.
В PIC16LF628 следует загрузить файл marcheur.hex. Различные
исходные файлы имеются в папке Marcheur на сайте автора.
Программа обеспечивает движение робота, но только в
направлении вперед. Вы сами должны написать ее продолже-
ние. В данном случае речь идет не только о написании про-
граммы, но и о том, как оптимально использовать принцип
динамической походки для программы.
Для упрощения поиска различных последовательностей:
движение вправо, влево, назад - используйте интерфейс,
предназначенный для подключения серводвигателей к ПК.
Вы можете задействовать интерфейс, который помог найти
первую последовательность. Речь идет о статье, опубликован-
ной в журнале Micros & Robots №3 под названием Tete huma-
noid^. Для обеспечения большего комфорта был написан ин-
терфейс под Windows (более подробную информацию вы мо-
жете найти на сайте автора).
Заключение
Мы рассмотрели конструирование развлекательного и, одно-
временно, наиболее подобного человеку робота. Развлека-
тельность робота будет заключаться в его смешном движе-
нии по вашему столу, а амбициозность - в механизмах, ис-
пользованных в нем.
В переводе на русский язык - «Голова гуманоида». - Прим.науч.ред.
______________Умение правильно организовать свою роботу 253
Замеченные недостатки:
• студенты пренебрегают своими основными занятиями;
• установка у части студентов на выигрыш любым путем,
включая нечистоплотный, но только бы не проиграть;
• отрицательные эмоции, разногласия между членами
команды1.
Роботы позволяют студентам инженерных факультетов
узнать множество фундаментальных понятий из различных
областей и синтезировать свои знания для решения реаль-
ных задач.
Учебные заведения часто принимают участие в реализации
совместных проектов с промышленными предприятиями, но
промышленные проекты сложно вставить в рамки педагоги-
ческой программы. Сроки не могут соблюдаться, а необходи-
мость получения результата приводит к привлечению к про-
ектам преподавателей, что не согласуется с поставленной це-
лью научить студента (а не преподавателя).
Рамки робототехнического конкурса достаточно верно
повторяют процесс промышленного производства. Студенты
должны изготовить образец в рабочем состоянии, в соответ-
ствии с техническими спецификациями, бюджетом и ограни-
чениями по каждой части работ по изготовлению робота. Ра-
бота в команде показывает важность общения и сотрудниче-
ства. Перспектива встречи с роботами противника дает и
положительные - ощущение спортивного азарта, и отрица-
тельные эмоции - прессинга, присутствующего также в про-
мышленности, когда поджимают сроки и кажется, что можно
сделать лучше, а времени уже нет...
Умение правильно организовать свою
работу
Робототехник, конструирующий робота в одиночку, получа-
ет личное удовольствие, которое увеличивается по мере по-
стройки его «монстра», подобно моделисту, который испы-
тывает удовольствие от показа своего самолета или судна
Разногласия могут развалить команду, особенно когда чувствуется недостаток време-
ни для завершения работы над роботом. - Прим. науч. ред.
252 Глава И 14 Социальный подход к разработке робота
Конструирование робота представляет собой конкретный
пример удаления барьеров между различными инженерными
дисциплинами (механикой, электротехникой, информатикой,
математикой, физикой). Для студентов робот может стать пер-
вой возможностью применения на практике полученных
ими знаний. Интерес к роботу удваивается игровой сторо-
ной самого процесса конструирования, так как до сих пор
робот все еще рассматривается как любопытный предмет, а
не как часть производственного процесса.
Но если рассматривать процесс конструирования робота с
точки зрения педагогики, то можно заметить один метод, ко-
торый применяется нечасто. Чтобы вызвать у студента инте-
рес к какой-либо дисциплине и заставить его постепенно дви-
гаться вперед в ее освоении, необходимо вначале заинтересо-
вать его, заставить понять и, в конце концов, заставить
выучить. Очень часто происходит так, что вначале некоторые
преподаватели заставляют студента выучить или даже вызу-
брить, потом, может быть, понять, а для его заинтересованно-
сти... не хватает времени. Процесс познания необходимо на-
чинать именно с заинтересованности студента. А этому, в пер-
вую очередь, способствует конкурсный и игровой характер
разработки роботов. Немаловажно также обучение в команде
единомышленников...
Робототехнические конкурсы
Так как робототехнические конкурсы, как правило, проводят-
ся среди студентов лицеев и высших учебных заведений, ни-
жеследующие замечания адресованы им, а также ассоциатив-
ным командам, принимающим участие в независимых конкур-
сах, количество которых также неуклонно увеличивается и
будет увеличиваться в будущем.
Педагогические преимущества разработки робота для уча-
стия в конкурсе:
• имитация технических задач реального мира;
• мотивация студентов;
• поощрение работы в команде и коммуникации между
членами команды;
• возможность для студентов изучать, играя.
Социальный подход
к разработке робота
Разработка робота является настоящим испытанием для че-
ловека, решившего его построить. Если один разработчик
способен построить одного простого робота, то целая коман-
да способна решать более сложные задачи, например, когда
участвует в соревновании. Робототехнические конкурсы уде-
сятеряют мотивацию разработчика.
Наблюдая за группами студентов, удивляешься количеству
энергии, которое они затрачивают для таких разработок, -
оно сравнимо с работой, необходимой для прохождения клас-
сического университетского курса. Почему робототехника
вызывает такой выход энергии ради удовольствия?
Конечно же, студенты - народ, легко увлекающийся. Но
может ли это объяснить тот факт, что команда студентов, не
обращая внимания на затрачиваемое время, проводит сотни
часов для разработки, конструирования, программирования и
ремонта своего робота? К тому же, в соревнованиях по робо-
тотехнике участвуют высокотехнологичные модели роботов,
в то время как базовые знания студентов зачастую являются
неполными.
Может быть, отчасти объяснение заключается в исполь-
зовании многих учебных дисциплин для строительства робо-
та и в его игровом характере, который служит повышению
усвоения знаний. Замечено, что для конструирования робота
необходимо знание многих наук, дополняющих друг друга.
254 Глава 14 Социальный подход к разработке робота
после терпеливого ожидания завершения постройки, как ему
кажется, шедевра. Такой метод работы, достойный похвалы,
не может использоваться участниками конкурсов. Ограниче-
ния по времени и регламенту заставляют многих участников
попадать в очевидные ловушки.
Пример педагогического подхода, реализуемого органи-
заторами конкурса:
• изучение регламента, распределение задач, составле-
ние плана работы;
• выбор оптимальной стратегии и технических решений;
• разработка и изготовление материальной и математи-
ческой частей;
• поиск партнеров и контакт со средствами массовой ин-
формации;
• управление экономикой и людьми;
• презентация итогов работы.
Работа в команде
Отдельные этапы разработки могут иногда выполняться од-
ним человеком, но, как правило, в учебных заведениях или
ассоциациях образуются команды.
Обобщая полученный опыт, можно сказать, что команда
добивается лучших результатов, чем отдельный человек. Груп-
па оказывается более эффективной, чем одиночка, так как
способна оперативнее реагировать в сложной ситуации.
В некоторых конкурсах ежегодно применяется одна и та
же техническая платформа. Такой подход устраняет пробле-
мы, связанные с реализацией механической части, и концен-
трирует внимание конкурсантов на реализации электронной
части, написании программ, размещении датчиков, выборе
стратегии и работе в команде.
Большинство команд конструируют своих роботов по от-
дельности и встречаются только на соревнованиях. В школе
или университете всегда можно обратиться за советом к пре-
подавателям, но ассоциации должны самостоятельно нахо-
дить решения своих проблем. В некоторых странах, напри-
мер США, найдены другие решения.
Некоторые конкурсы проходят в рамках ограниченно-
го промежутка времени: одна неделя, один или два месяца.
Умение правильно организовать свою работу 255
Ограничение по времени концентрирует работу команды. Уча-
стники представляют свою школу или самих себя и освобожда-
ются от занятий в школе на время участия в конкурсе. Регла-
мент конкурса заранее неизвестен.
Знакомясь с представленными роботами, организаторы
могут давать рекомендации командам в зависимости от их
стратегии. При этом создается дух взаимопомощи и диалога
между командами, участвующими в конкурсе.
Технические решения
Одна из самых больших проблем, которую должны решать
робототехники, состоит в механической части робота. Если
для перемещения робота используются колеса, то его механи-
ческая часть, скорее всего, не будет слишком сложной. Ситуа-
ция осложняется, когда речь идет о шагающем роботе или
роботе, оборудованном подвижной рукой.
Для мобильного робота на колесах первые сложности по-
являются в момент интерпретации датчиков. Классический
подход студента заключается в составлении стратегии и
стремлении перенести ее на робота. Но такая стратегия свя-
зана с человеческим пониманием проблемы. Человеческая
психология очень сложна, поэтому непросто перенести все
ее оттенки на поведение робота.
Легко забыть о том, что человек обладает очень сложными
органами-«датчиками», которые исправляются мозгом в слу-
чае какого-либо отклонения. В отличие от органов человека
датчики робота чрезвычайно просты, и зачастую передавае-
мая ими информация меняется во времени. Соответственно,
возникает необходимость исправления ошибок, переданных
датчиками.
Но, прежде всего, необходимо подумать о выборе исполь-
зуемых датчиков и убедиться в том, что они способны соби-
рать искомую информацию. Использование нескольких дат-
чиков для сбора информации одного типа может еще боль-
ше осложнить задачу. Правильное расположение датчика,
применение фильтров для световых датчиков или хитроум-
ное программирование, напротив, позволяет улучшить рабо-
ту робота.
256 Глава И 14 Социальный подход к разработке робота
Планирование
Регламенты робототехнических конкурсов призваны заинте-
ресовать, развлечь и привлечь новых участников. Часто в рам-
ках таких конкурсов проводятся бои двух роботов, в которых
могут разворачиваться стратегии нападения и обороны.
Студенты всегда сначала предлагают стратегии нападения,
ставя перед собой цель полного уничтожения робота против-
ника. В начальной стадии такие стратегии являются положи-
тельными, их следует задействовать для поддержания интере-
са и мотивации. Необходимо воспользоваться хорошим нача-
лом, чтобы создать команду и распределить обязанности
между ее членами.
Следует составить план выполнения каждой отдельной
задачи и соблюдать этапы диалога между членами команды,
в котором будут решаться вопросы, связанные с необходимо-
стью сохранения или пересмотра изначально принятых ре-
шений по механической и электронной частям. Первая зада-
ча должна заключаться в надежном перемещении робота.
В небольшой команде (из двух человек) необходимо опре-
делить конструктора и программиста (механической и элект-
ронной частей). Эти два человека должны работать над со-
зданием робота одновременно. Программист нуждается в ме-
ханической части робота для проверки правильности его
движения, конструктор - в электронной (например, каким
образом робот сможет обойти препятствия).
Необходимо достаточно быстро изготовить прототип буду-
щего робота (механическая и электронная части), чтобы про-
тестировать первые программы и избранные решения в обеих
частях. Очень важно отнестись к этому этапу с достаточным
вниманием. Иногда можно констатировать наличие слишком
сложной программы, призванной компенсировать недостатки
механической части, законченной слишком поздно.
Результаты
Создание робота само по себе доставляет удовольствие, и ред-
ко случается так, что команда, как создатель робота, не несет
на себе отпечатка своего творения. Достигнутые результаты
Результаты 257
не всегда можно сравнить с затраченными усилиями. Но ка-
ким бы ни был результат, в нем всегда есть что-то положитель-
ное, а за любое обучение необходимо платить.
Конкурсы по робототехнике, открытые для всех, дают сво-
бодный выход фантазиям и демонстрируют самые различные
решения. Каким бы сложным ни был конкурс, на нем всегда
можно увидеть оригинальные идеи. В некоторых случаях даже
оказывается необходимым уточнять регламент конкурса для
улучшения эффективности робота, подобно конструкторскому
бюро, уточняющему технические условия со своим заказчиком.
Поэтому происходит постоянная «подпитка» конкурсов новы-
ми идеями, которые меняют регламент конкурсов, которые раз
от раза становятся более сложными и захватывающими.
9-7388
Заключение
Искусственный интеллект
Добро пожаловать в мир роботов-гуманоидов, разумных на-
секомых и виртуальных созданий, призванных сделать нашу
жизнь более приятной.
Исследователи искусственного интеллекта и искусствен-
ной жизни моделируют, копируют или адаптируют системы на
базе природы. При помощи все более мощных компьютеров
инженеры создают творения, которые опираются на челове-
ческий интеллект, генетическое развитие или эмоции.
Теория искусственного интеллекта был впервые разработа-
на во время Второй мировой войны для расшифровки посла-
ний противника, закодированных шифровальной машиной
«Энигма». Ее целью было понимание человеческого интеллек-
та при помощи списков правил, запрограммированных в ком-
пьютере. В наше время этот подход получил известность бла-
годаря созданному на его основе компьютеру Deep Blue, по-
бившему в 1997 году в шахматном поединке между человеком
и машиной чемпиона мира по шахматам Г. Каспарова.
Но такая стратегия имеет серьезные ограничения, так как
она не способна создать что-то, реально похожее на челове-
ческий интеллект. В настоящее время начинает появляться
еще один подход к проблеме создания искусственного интел-
лекта. Его цель - создание сложных типов поведения на ос-
нове взаимодействия совокупности простых типов поведе-
ния. Таким образом, сети искусственных нейронов способны
запоминать и распознавать простые типы поведения.
Но искусственная жизнь не должна концентрироваться
исключительно вокруг человека. Необходимо учитывать все
Заключение 259
формы биологической жизни. Такой подход породил робо-
тов, которые развиваются, работая в командах, и виртуаль-
ных существ, которые познают, развиваются, размножаются
и умирают.
Будьте готовы к тому, что реальность превзойдет фантас-
тику. Но для этого нужно, чтобы коллективный разум чело-
вечества шел все далее в познании окружающего нас мира.
9
Приложение
Ссылочные данные компонентов
В табл. Ш приводятся ссылочные данные некоторых особых
компонентов, необходимых при конструировании роботов.
Таблица П1. Ссылочные данные компонентов
Ссылки по каталогам торгующих организаций
PIC16LF84 Микроконтроллер Microchip (ссылка Farnell: 111-818)
PIC16LF628 Микроконтроллер Microchip (ссылка Farnell: 332-3006)
PIC16F876 Микроконтроллер Microchip (ссылка Farnell: 300-2597)
М68НС811Е2 Микроконтроллер Motorola (ссылка Conrad: 7225 218)
L293D Интерфейс для двигателей (ссылка Farnell: 323-6079)
L298 Интерфейс для двигателей (ссылка Farnell: 403-295)
UCN5804 Интерфейс для шаговых двигателей (ссылка Farnell: 572-469)
ИК-детектор GP2D02 (ссылка Conrad: 185329)
ИК-детектор GP2D12 (ссылка Conrad: 185309)
Модуль управления CDE 6500 Polaroid (ссылка Selectronic: 22 2235)
Магнитный усилитель 600 Polaroid (ссылка Selectronic: 22 2095)
Магнитный усилитель 7000 Polaroid (ссылка Selectronic: 22 2121)
PIC26043S (ссылка Farnell: 139-877)
ENC-03J Гироскоп Maruta (ссылка Farnell: 334-9317)
Приложение 261
Таблица П1. Ссылочные данные компонентов (окончание)
Ссылки по каталогам торгующих организаций
TLC271 Операционный усилитель общего назначения
Двигатели Mabushi 130 (ссылка Farnell: 599-104)
Двигатели Mabushi 260 (ссылка Farnell: 559-116)
Аккумуляторы 1,2 В прямо- угольные (ссылка Farnell: 305-5954)
Ползунковый выключатель (ссылка Farnell: 674-357)
Код ASCII
В табл. П2 приводятся значения некоторых базовых символов
в шестнадцатеричном коде ASCII (American Standard Code for
Information Interchange - Американском стандартном коде
обмена информацией).
Таблица П2. Значения символов в коде ASCII
Символ Шестнадцатеричный код
NUL $00
АСК $06
CR $13
0 $30
1 $31
2 $32
3 $33
4 $34
5 $35
6 $36
7 $37
8 $38
9 $39
$ЗА
; $ЗВ
< $ЗС
262 Приложение
Таблица П2. Значения символов в коде ASCII (окончание)
Символ Шестнадцатеричный код
= $3D
> $ЗЕ
? $3F
@ $40
А $41
В $42
С $43
D $44
Е $45
F $46
G $47
н $48
1 $49
J $4А
к $4В
L $4С
М $4D
N $4Е
О $4F
Технические характеристики гироскопа
ENC-O3J
В табл. ПЗ перечисляются основные технические характери-
стики гироскопа ENC-03J.
Таблица ПЗ. Технические характеристики гироскопа ENC-03J
Напряжение питания___________________2,7-5,5 В_______
Потребляемый ток 5 мА
Максимальная угловая скорость ±300 7с
Выходное напряжение (в состоянии покоя) 1,37 ±0,7 В
Масштабный коэффициент 0,67 мВ/7с
Температурный коэффициент ±20% при температуре от -5 до +75 ‘С
Линейность ±5%
Чувствительность 50 Гц макс.
Вес 1 г макс.
________________________________________Приложение 263
Содержание необходимой дополнительной
документации
Датчики: файлы, касающиеся датчиков, изученных и исполь-
зованных в данной книге.
Печатные платы: рисунки в формате EPS.
Интерфейсы двигателей: технические данные компонен-
тов интерфейса для двигателей. Motors.pdf - гид по подбору
интерфейса Allegro.
Документация по М68НС11:
• руководство по М68НС11;
• Miniboard;
• Handyboard и руководство;
• Controlord (демонстрационная программа Ассембле-
ра, BASIC и компилятора С);
• бесплатный компилятор С компании Imagecraft для НС11
и демонстрационная программа;
• Sb_ide - бесплатный компилятор BASIC;
• Pcbugll.
Документация по Р1С-микроконтроллерам:
• технические данные микроконтроллеров компании
Microchip;
• Icprog.exe - программный продукт;
• Мр151102.exe - среда разработки;
• Manuel.pdf - руководство по использованию MPLAB;
• Tutoriel_2.pdf - руководство по установке HI TECH на
MPLAB;
• Carte_876.pdf - руководство» по изготовлению;
• hitech_demo.zip - компилятор HI TECH, предназначен-
ный для 16F84;
• piccdemo.exe - последняя версия компилятора HI TECH
(не тестированная).
Программы (файлы для чтения lisez_moi):
• Сумо - sumo_x.c., рр.с;
• муравей - fourmi.inc, fourmi_x.c;
• шагающий робот - marcheur.c, marcheur.h, int_marc.c,
marcheur.hex;
• насекомое - robug.c, robug.h, interrupt.c, robug.hex;
• Rp500fra.exe.
• Acrobat reader 5.0.
Список литературы
1. Giamarchi Е Petits robots mobiles - 6tude et construction.
Dunod, 2000.
2. Giamarchi E Constructions nos robots mobiles. Dunod,
2001.
3. Jones J. L. et Flynn A. M. Les Robots Mobiles. Diderot,
1997.
4. Martin F. G. Introduction to 6811 Programming. MIT,
1994.
5. Martin F. G. The Mini Board Technical Reference. MIT,
1998.
6. Martin F. G. The handy Board Technical Reference. MIT,
1997.
7. Mayeux P. Apprendre la programmation des PIC. Dunod,
2002.
8. Nigel Gardner. PIC C, Introduction. Bluebird Electronics,
1998.
9. Oguic P. Moteurs pas & pas et PC. Dunod, 2001.
10. Reboux A. S’initier & la programmation des PIC. Dunod,
2002.
11. Datasheet MC68HC11F1 (MC68HC11FTS/D). Motorola
Embedded Control Application. Intel.
12. IEE Micromouse. Chassis design & Sensor strategies.
Loughborough Univ.
13. Manuel de гёйгепсе du 68HC11. Motorola.
14. Power Mosfer Transistor data. Motorola.
15. Servo Control of DC-Brush Motor (AN 532). Microchip.
Л J* J® J* J® Л «Л J® Л J8 Л J® J* Л J* Л J8 J* Л Л Л J® J* J® J* J* J® J* Л J® J® Л
i к в ж ft i ш % % i в % it % в i ш в ш i % & % $-w S1I3
Адреса в Интернете
Интернет представляет собой неиссякаемый источник ин-
формации по робототехнике. Университеты, а также умель-
цы-индивидуалы рассказывают о своих идеях и изобретениях,
обо всех этапах строительства оригинальных роботов. Невоз-
можно составить полный список сайтов по данной теме, но
некоторые адреса позволят вам «путешествовать» по Сети,
используя их связи.
Не бойтесь следовать предложенным связям и сохранять
адреса интересных сайтов для возвращения на них по мере
надобности.
Адреса представленных сайтов могут исчезать или менять-
ся. Не забывайте при необходимости обновлять связи.
Сайты, посвященные робототехнике
Сайт автора книги, различные постройки в области робото-
техники:
http: //www.geii.iut-nimes.fr/fg/.
Сайт продавца робота Airat2:
http: //www.lextronic.fr.
Сайт компании КТеат, посвященный робототехнике:
http: //www.k-team.com.
Информационный сайт по робототехнике и искусствен-
ному интеллекту:
http://www.automatesintelligents.com.
Сайт Массачусетского технологического института (MIT)
о роботе Kismet:
http://www.ai.mit.edu/projects/humanoid-robotrcs-group/
kismet/kismet.html.
266 Адреса в Интернете_______________________________
Сайт, посвященный экспериментам по взаимодействию
людей и роботов:
http: //talking-heads.csl.sony.fr/InfoIndex.htmL
Сайт Массачусетского технологического института (MIT)
о роботе-динозавре:
http://www.ai.mit.edu/people/chunks/chunks.html.
Сайты, посвященные робототехнике:
http: //www.pekee.com;
http: //www/vieartificielle.com.
Сайты, посвященные микроконтроллерам
PIC
Сайт компании Microchip, посвященный микроконтролле-
рам PIC16F84, PIC16F873 и т.д.:
http: / / www.microchip.com1.
Сайт Паскаля Мэйо, автора книги по начальному курсу
обучения программированию микроконтроллеров PIC:
http://perso.libertysurf.fr/p.may.
Сайт компании, работающей над разработкой компилято-
ра С (CCS):
http://www.ccsinfo.com.
Сайт компании, работающей над разработкой компилято-
ра С (HI TECH):
http: //www.htsoft.com.
Сайт, посвященный разработчикам микроконтроллеров
PIC на языке С:
http: //www.wworkingtex.com/htpic.
Сайты, посвященные микроконтроллеру
М68НС11
Сайт пользователям сети, использующих микроконтроллеры
М68НС11 для своих робототехнических конструкций:
http: //www.rdrop.com/users/marvin/.
Русскоязычный сайт - http://www.microchip.ru. - Прим. науч. ред.
Адреса в Интернете 267
Сайт, посвященный плате Handy-Board:
http://www.handyboard.com.
Сайт, посвященный компилятору basic и С для микрокон-
троллера М68НС11 и плате Робота F1:
http://www.controlord.fr.
Сайт компании Motorola, посвященный микроконтролле-
ру М68НС11:
http: //www.mcu.motsps.com.
Доступ на сайт Массачусетского технологического инсти-
тута - архив документов по НС11, Mini-Board, Handy-Board,
Ассемблер Motorola, бесплатный компилятор ICC11, библио-
тека программ:
ftp://cher.media.mitledu./pub/projects/.
Сайт компании Douglas, на страницах которого представ-
лена разводка печатной платы Mini-Board:
http: //www.douglas.com.
Сайт компании Imagecraft, разработавшей компилятор С
для микроконтроллера М68НС11:
http: //imagecraft.com.
Другие интересные сайты
Сайт компании Lego, посвященный программируемому кир-
пичу:
http://www.legomindstorms.com.
Сайт компании National Semiconductor, касающийся ком-
понентов силового интерфейса для двигателей:
http: //www.national.com.
Сайт компании SGS Thomson, посвященный интерфей-
сам для двигателей:
http://www.st.com.
Связь с производителями различных компонентов:
http: //www.bgs.nu/sdw/a.html.
Сайт магазина Farnell для приобретения большинства ком-
понентов, упомянутых в данной книге:
http://www.farnell.com.
Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л Л J* л л
Предметный указатель
А
Адрес памяти 100
младший 97
старший 97
Адресация
индексная 102
непосредственная 101
прямая 102
расширенная 102
Адресное пространство
памяти 102
Аккумулятор
литий-ионный 43
литий-полимерный 43
никель-кадмиевый 43
никель-металлогидридный 43
свинцовый 43
герметичный 45
Арбитраж 131
Архитектура
Гарвардская. 79
приоритетных
взаимодействий 129
Фон-неймановская 79
Б
База транзистора 203
Байт смещения 102
Батарея 21
щелочная 43
щелочно-марганцевая 45
Биомеханика 19
Бит
значащий старший 157
переноса 86
Блок силовой 179
В
Вектор
прерываний 53, 109
Взаимодействие
приоритетное 130, 218
Видеокамера 143
Видеострока 160
Вход.
аналоговый 51
логический 51
учета событий 166
Выключатель
концевого типа 140
Выход
логический 51
Г
Генератор
подкачки заряда 192
Гироскоп 169
пьезоэлектрический 169
Графопостроитель 195
Предметный указатель 269
Данные литеральные 84
Датчик 13
аналоговый 62
внутреннего состояния
робота 172
звуковой 160
интеллектуальный 211
инфракрасный 23, 38, 145
линейный 146
линии 217
наклона 142
оптический 142
отражения 146
пироэлектрический 142
положения 167
абсолютный 150
препятствия 216
световой 23
скорости угловой 170
соударений 140
телеметричесикй
ультразвуковой 131
телеметрический
инфракрасный 131, 153
лазерный 153
ультразвуковой 38
ультрафиолетовый 158
цифровой
двухпозиционный 62
Двигатель
двухполюсный 196
однополюсный 196
постоянного тока 33, 63, 175
шаговый 33, 63, 175
гибридный 195
Делитель
напряжения 144, 155
предварительный
программируемый 90
Детектор
приближения 151
в интегральном
исполнении 153
столкновения 139
фазочувствительный 154
частотный 161
Динамо тахометрическое 195
Диод
обратный 176
фиксации уровня 155
Диск кодирующий 206
Длина волны оптического
спектра излучения 143
Дребезг контакта 141
Е
Емкость батареи 41
ж
Жизнь искусственная 19
3
Зависимость нелинейная 154
Задача фоновая 116
Затвор транзистора 187
Знак числа 105
И
Излучатель фотонов 146
Излучение
инфракрасное
импульсное 151
непрерывное 151
паразитное 151
Инвертор с открытом
коллектором 187
Индикатор жидко-
кристаллический 67
Интеллект искусственный 16
Интерпретатор 121
Интерфейс
графический 66
двигателя 13
270 Предметный указатель
инфракрасный 66
связной
последовательный 118
силовой 132
двигателя 38
согласования 38
Исток транзистора 187
Источник
звуковых загрязнений 160
питания 40
пульсации напряжения 42
Кабель
питания 17
сигнальный 17
Камера
цветного изображения 38
черно-белого
изображения 38
Каркас 25
Катушка индуктивности
блокировочная 63
Код
Грея 150
двоичный
циклический 150
команды 101
машинный 100
объектный 101
шестнадцатеричный 96
Кодирование двоичное 94
Колесо
ведущее 28
дифференциальное 26
разрезное 149
свободное 28
Коллектор транзистора 203
Команда
аналоговая 68
включения 86
возврата 86
перехода 107
пропуска 86
токовая 205
условного
пропуска 87
Компаратор гистерезисный 148
Компилятор 121
Компонент
теплочувствительный 39
Контур следящий 205
Коробка скоростей 34
Корпус интегральной схемы 76
Коэффициент зацепления 34
Л
Линия питания 41
Логика транзисторно-
транзисторная 163
Локатор 131
звуковой 23
Луч инфракрасный 149
м
Магнит постоянный 195
Манипулятор 17
Механизм исполнительный 21
Микроконтроллер 39, 51
Микропроцессор 39, 51
Микроробот 16
Микрофон 160
Модуль 23
высокочастотный 160
интегральный 13
тактового генатора 56
Модулятор широтно-
импульсный 62
Модуляция широтно-
импульсная 80, 183
Момент
вращающий 33, 223
удерживающий 195
инерции 35
Предметный указатель 271
МОП-транзистор
канальный полевой
униполярный 38
полевой униполярный 176
Мост Н-образный 176
Мультиметр 21, 22, 59
н
Набор резисторов 190
Напряжение
насыщения 233
полное 184
пороговое 160
эталонное 171
Нейрон искусственный 19
О
Область спектра излучения
инфракрасная 145
красная 146
Оборудование
периферийное 51
Одометр 149
Оперативное запоминающее
устройство 51
Опора
рапперная 237
шаровая 28
Оптокоммутатор 146
Оптопара 151
Орган робота
сенсорный 38, 139
Осциллограф 22
п
Падение напряжения
малое 41, 63
Память
адресуемая 96
внешняя 51
данных 51
оперативная 51
программная 51, 52
хранения
команд 81
данных 83
Пара оптоэлектронная 21, 192
Передатчик
инфракрасный 67, 132
Передача зубчатая 34
Переключатель поворотный
10-позиционный 69
Переменная глобальная 133
Перемычка
короткозамыкающая 56
разделяемая
гнездовая 58
штырьковая 58
Период
повторения импульсов 184
сигнала 117
Плата
дочерняя 37
материнская 37
преобразователя уровней
RS232/TTJ1 57
управления 28
Плотность энергетическая 44
Поле магнитное
неподвижное 185
Положение
динамическое 30
статическое 30
Помехи паразитные 41, 175
Порог переключения
компаратора 149
Порт
восьмибитовый 111
двунаправленный 111
общего
назначения 112
однонаправленный 111
последовательный 61
Потенциометр 67
следящий 202
272 Предметный указатель
Походка динамическая 240
ППЗУ с ультрафиолетовым
стиранием 92
Предохранитель плавкий 21
Преобразование аналогово-
цифровое 114
Преобразователь
аналогово-цифровой 114
положения вала 149
частота-напряжение 161
Прерывание 108
программы 90
Прерыватель 38
Прибор измерительный 22
Привод 174
механический 22
тяговый 18
Приемник
инфракрасный 67
управления
дистанционного 152
Признак состояний 106
Программа
диалоговая 39
исходная 121
объектная 121
прерывания 90
Программатор 76
Программирование
нейронное 228
Процессор 39
восьмиразрядный 51
Пульт дистанционного
управления 69, 146
Р
Радиатор 39
Развязка гальваническая 202
Разделитель полукадра 160
Разъем
передачи сигналов 21
питания 21
Реакция
поведенческая 131
Регистр
данных 118
индексный 98
конфигурирования опций 114
накапливающий 98
общего назначения 81
сдвига 197
скорости передачи 118
состояния 82
специального назначения 81
управления
интерфейсом 118
преобразователем 114
Редуктор скорости 33
Режим
асинхронной
приемопередачи 80
измерения
сопротивления 22
тока 22
измерения напряжения 22
нормальной
работы 56
пиковый 189
последовательного
периферийного
интерфейса 80
самозагрузки 56
синхронной
приемопередачи 80
шины между интегральными
схемами 12С 80
энергосбережения 91
Резистор
измерительный 48
нагрузочный 63
подтягивающий 63
токоограничивающий 204
Резонатор
кварцевый 56
добротность 56
керамический 56, 63
Реле 38, 174
Предметный указатель 273
Робот 12
автономный 17
с управлением от ПК 18
биомеханический 28
военный 32
мобильный 17
программируемый 13
начального уровня 50
неавтономный 17
неподвижный 17
пневматический 18
подвижный 17
разумный 13
стационарный 17
человекоподобный 18
Роботизированное
насекомое 16
Робототехника 12
мобильная 13
Ротор катушечный
подвижный 185
С
Светодиод 21, 146
Семейства микроконтроллеров
PIC 80
Серводвигатель 28, 53, 200
Сервопривод 200
Сигнал
аналоговый 41
отраженный
множественный 163
одиночный 163
прямоугольный 116
Сигнализация
пожарная 158
тревожная 158
Сила тяжести 35
Символ мнемонический 101
Синхронизация 88
Система
автоматического
регулирования 205
декодирования адресов 69
многозадачная
взаимодействующая 133
позиционирования
глобального 167
управления двигателем 22
экспертная 18
электрохимическая
аккумуляторов 43
счисления
двоичная 94
десятичная 94
троичная 94
шестнадцатеричная 95
Скважность импульсов 183
Скорость считывания показаний
датчика 143
Смещение напряжения 171
Создание прототипа
ускоренное 127
Соленоид 202
Сообщение инфракрасное 68
Сопротивление
магнитное переменное 195
нагрузки 147
Составляющая непрерывная
напряжения 171
Способ
адресации 101
зарядки
быстрый 46
медленный 46
Среда
программирования 126
профессиональная
разработки 39
Средство
программирования 40
разработки 40
управления питанием 49
Срез 117
Срок автономной работы 41
Стабилизатор
напряжения 21, 41, 63
274 Предметный указатель
с ограничением по
напряжению 41
Статор неподвижный 185
Стек 107
Схема
интегральная 39
сброса 56
Счетчик
команд 81
сторожевого таймера 91
Таймер 21
встроенный
восьмиразрядный 80
сторожевой 91
Таймер-счетчик 62
Терморезистор 173
Ток самоиндукции 176
Точки подключения
к общей шине 23
технологические
к опорным сигналам 23
Транзистор 39
р-п-р-типа 203
биполярный 176
быстродействующий 178
Дарлингтона составной 203
Триангуляция 153
У
Увеличивающая лупа 22
Узел
радиоуправления
цифровой 201
реального времени 142
Указатель стека 99
Упор ограничительный 140
Уровни ТТЛ 57
Усилитель
звуковых частот 162
мостовой 63
операционный 171
тока 204
Ускорение угловое 35
Устройство
зарядное 21, 45
индуктивное 175
исполнительное 174
кодирующее оптическое 195
памяти периферийное 39
Учет события 131
ф
Фильтр частот
верхних 171
нижних 171
Флаг 134
состояний 106
Флэш-память 81
Фотодиод 142
Фоторезистор 139
Фототранзистор 142
Фронт 117
задний 117, 157
импульса
задний 90
передний 90
передний 117
Функция линейная 162
X
Характеристики ходовые
робота 29
ц
Центр
командный 126
тяжести 30
управления 38
Цепь
выходная интерфейса 178
связи обратной 195
силовая 178
Цикл
машинный 100
тактирования 86
Предметный указатель 275
ч
Частота
вращения двигателя 35
несущая 151
отсечки 171
ультразвуковая 162
Часть
механическая робота 25
электронная робота 37
Число
двоичное 94
передаточное 34
ш
ШИМ-модуляция 237
Шина
данных 68
последовательная
универсальная 159
Шов тороидальный 30
щ
Щетка трения 185
э
Электромагнит 202
Электроника эволюционного
развития 19
Элемент стековой памяти 108
Эталон напряжения
внешний 244
внутренний 244
Эффект
запоминания 43
парниковый 16
Эхо ложное 162
Эхо-сигнал прямой связи 163
Я
Явление кориолисовых сил 170
Язык
машинный 100
объектно-
ориентированный 121
программирования 121
программирования
высокого уровня 122
графический 124
Ячейка памяти 96, 100
с
СОМ-порт 61
Издательство «НТ Пресс» представляет
Программируемый робот, управляемый с КПК
Серия «Робот - своими руками»
Автор:
Формат:
Объем:
ISBN:
Вильямс Д.
70x100 ‘/ifi
224 с.
5-477-00180-1
Вашему вниманию предлагается книга ведущего
специалиста в области компьютерной и робототехники
из Канады Дугласа Вильямса (Douglas Н. Williams), по-
священная новой теме - управлению роботами с помо-
щью карманных персональных компьютеров (КПК) с
установлением беспроводной связи по ИК-каналу меж-
ду ними.
Автор систематизировал сведения по стандартам
связи IrDA элементной базе электроники роботов, не-
обходимому прикладному программному обеспечению
КПК. Книга позволит читателю провести все этапы ра-
боты по сборке, программированию и наладке дистан-
ционно управляемого от КПК робота, созданного свои-
ми руками.
Книга будет полезна большой армии радиолюбите-
лей и роботостроителей, студентам радиотехнических
факультетов, факультетов вычислительной техники,
робототехники, механотроники.
Секреты радиолюбителя-конструктора
Серия «В помощь радиолюбителю»
Автор: Николаенко М. Н.
Формат: 84x108 ‘/32
Объем: 320 с.
ISBN: 5-477-00004-Х
В книге представлены схемы и чертежи простых и не-
дорогих устройств, значительно облегчающих работу ра-
диомонтажника; дается множество полезных рекоменда-
ций, которые сопровождаются необходимыми расчетами и
теоретическими сведениями, что позволит незамедлитель-
но перейти к самостоятельной работе.
Издание предназначено для широкого круга читате-
лей - не только начинающих, но и опытных радиолюбите-
лей, занимающихся проектированием и изготовлением ра-
диоэлектронной аппаратуры и приборов. Также оно будет
полезно работникам ремонтных мастерских.
Самоучитель по радиоэлектронике
Серия «В помощь радиолюбителю»
Автор: Николаенко М. Н.
Формат: 84x108 ’/32
Объем: 224 с.
ISBN: 5-477-00054-6
Всем известно, что проектирование и создание электрон-
ных устройств требует хотя бы минимальных знаний основ
электроники. Но когда дело доходит до практической реали-
зации, оказывается, что каких-то тонкостей вы не знаете. Ведь
в процессе изучения теории мало кто обращает внимание на
все нюансы использования радиоэлементов и схем.
Как правильно выбрать Нужный компонент? Как подо-
брать оптимальное схемотехническое решение? Как самому
разработать и изготовить печатную плату? Как грамотно ис-
пользовать измерительные приборы при тестировании схе-
мы? Как быстро устранить неисправность? Ответы на эти и
другие вопросы вы найдете на страницах книги, представля-
ющей собой самоучитель с практическими рекомендациями
и советами по проектированию, изготовлению и наладке ана-
логовых и цифровых электронных устройств различного на-
значения.
Книга рассчитана на читателя с техническим складом
ума и адресована всем тем, кто хочет научиться паять, читать
схемы, конструировать и ремонтировать различные элект-
ронные устройства.
Книга начинающего радиолюбителя
Серия «В помощь радиолюбителю»
Автор: Никитин В. А.
Формат: 84x108
Объем: 384 с.
ISBN: 5-477-00078-3
Популярное описание основ элементарной электротех-
ники, радиотехники и электроники, с самых азов и до совре-
менного состояния техники.
Для начинающих радиолюбителей, желающих понять,
что происходит в схеме аппарата, который они хотят собрать
или пытаются отремонтировать. Большую помощь книга
может оказать учащимся школ, техникумов и училищ в про-
цессе изучения соответствующих разделов физики.
Современные усилители
Серия «В помощь радиолюбителю»
Автор: Баширов С. Р.
Формат: 84x108 ‘/32
Объем: 112 с.
ISBN: 5-477-00045-7
Данный справочник содержит основные электрические
параметры, а также стандартные и модифицированные схе-
мы включения интегральных схем тракта современного уси-
лителя: блоки коммутации и индикации, активные фильтры
и аудиопроцессоры, регуляторы громкости, эквалайзеры и
усилители мощности НЧ. Для всех схем приведены чертежи
печатных плат и внешний вид собранных устройств.
Книга будет полезна как радиолюбителям, так и специа-
листам по ремонту бытовой радиоаппаратуры.
Зарядные устройства
Серия «Автовлектронико». Выпуск 1
Автор: Ходасевич А. Г., Ходасевич Т. И.
Формат: 60x88 716
Объем: 192 с.
ISBN: 5-477-00101-1
В первом выпуске справочника по зарядным устрой-
ствам представлено огромное количество схем ЗУ, собран-
ных как частным образом, так и в заводских условиях.
В книге приведен материал, позволяющий не только дора-
ботать простые зарядные устройства, уже находящиеся в
эксплуатации, но и изготовить их самостоятельно.
Зарядные и пуско-зарядные устройства
Серия «Автоэлектроника». Выпуск 2
Автор: Ходасевич А. Г., Ходасевич Т. И.
Формат: 60x88 ’/1б
Объем: 192 с.
ISBN: 5-477-00102-Х
Во втором выпуске справочника этой серии собраны
более сложные схемы ЗУ, позволяющих производить за-
рядку аккумуляторов батарей автомобилей и мотоциклов
в автоматическом режиме.
Здесь также приведены схемы пуско-зарядных уст-
ройств, предназначенных для облегчения пуска двигателя
в зимних условиях.
Устройства и приборы
Серия «Автоэлектроника». Выпуск 3
Автор: Ходасевич А. Г.,
Ходасевич Т. И.
Формат: 60x88 ‘/1б
Объем: 208 с.
ISBN: 5-477-00103-8
Третий выпуск справочника посвящен вопросам уст-
ройства переносных приборов для контроля и проверки
электрооборудования автомобилей, а также методике вы-
полнения работ по поиску неисправностей с помощью этих
приборов.
В книге приведено большое количество схем и монтаж-
ных плат приборов заводского изготовления, что позволя-
ет отремонтировать находящееся в эксплуатации устрой-
ство или собрать его самостоятельно.
PHP 5
Серия «Самоучитель»
РНР5
Автор: Зольников Д. С.
Формат: 70x90 ‘/16
Объем: 260 с.
ISBN: 5-477-00044-9
В книге приведены основные сведения по языку
Web-программирования РНР, который позволяет ре-
шать задачи любой сложности и формировать динами-
ческие разделы сайта: форумы, гостевые книги, каталоги
продукции и многое другое. Помимо синтаксиса и воз-
можностей языка, рассматривается установка и настрой-
ка Web-сервера Apache, на котором, как правило, выпол-
няются РНР-программы.
Изложение отличается от традиционных учебников
тем, что оно имеет не справочный характер, а обучаю-
щий. Прочтя эту небольшую книгу, вы узнаете все необ-
ходимое, чтобы самостоятельно создавать Web-приложе-
ния.
Издание рассчитано на начинающего пользователя,
имеющего базовые знания о программировании.
Visual Basic.NET
Серия «Просто о сложном»
Автор:
Формат:
Объем:
ISBN:
Трусов М. А.
84x108 ‘4
176 с.
5-477-00238’7
Эта книга посвящена одному из наиболее популярных
языков программирования - Visual Basic .NET. Прочитав
ее, вы научитесь «с нуля» создавать разнообразные про-
граммы, формы и Web-страницы, добавлять на них различ-
ные элементы управления, текст, графику и т.д.
Издание будет полезно тем читателям, кто хочет само-
стоятельно изучить Visual Basic .NET, студентам специали-
зированных вузов, а также всем, кто интересуется новин-
ками в области программирования.
Турбо Паскаль 7.0
Серия «Самоучитель»
Авторы: Алексеев Е. Р., Чеснокова О. В.
Формат: 70x90 !/|6
Объем: 320 с.
ISBN: 5-477-00003-1
Книга адресована изучающим алгоритмизацию и
программирование. Прочитав ее, вы научитесь состав-
лять алгоритмы и программы. Книга посвящена язы-
ку программирования Турбо Паскаль версии 7.0.
Приведено большое количество практических приме-
ров программирования. Подробно описаны такие эта-
пы программирования, как работа с подпрограммами,
модулями, файлами, экраном дисплея в текстовом и
графическом режимах.
Издание предназначено для школьников и студен-
тов, начинающих изучать программирование, а также
для всех желающих познакомиться с языком Турбо
Паскаль.