Text
                    М. Предко
123
эксперимента
по робототехнике
Гего генУ^

Муке Predko 123 Robotics experiments mi mi mi mi mi for the €vil Genius McGraw-Hill New York Chicago San Francisco Lisbon London Madrid Mexico City Milan New Delhi Sanjuan Seoul Singapore Sydney Toronto
Электроника для начинающего гения Майк Предка 123 эксперимента по робототехнике NT Press Москва, 2007
УДК 621.37 ББК 32.84 П71 Подписано в печать 28.06.2006. Формат 70x100 1 /и\. Гарнитура «Баскервиль». Печать офсет- ная. Уел. печ. л. 44,2. Тираж 3000 экз. Зак. № 7()Х7 Предко М. П71 123 эксперимента по робототехнике / М. Предко ; пер. с англ. В. П. По- пова. - М.: НТ Пресс. .'<>07. 544 с.: ил.- (Электроника для начинающего гения) ISBN 5-477-00216-6 Предлагаемая вашему вниманию книга в занимательной форме знакомит с основами робототехники, радиоэлектроники и программирования микроконтроллеров для роботов шаг за шагом, практически с нуля. При этом автор, избегая сложных математических фор- мул, на практике поясняет физику процессов, происходящих в роботах, включая электрон- ные схемы, двигатели, датчики, источники питания и микроконтроллеры. Описаны спосо- бы механической сборки и монтажа электронных схем. К книге прилагается чертеж печатной платы, на которой удобно смонтировать схемы приведенных экспериментов, каж- дый эксперимент сопровож.(эется перечнем необходимых деталей, которые легко найти в магазинах радиоэлектроники, а также перечнем нужных инструментов. Приведены листин- ги программ управления роботами с подробными комментариями. Материал книги дает возможность самостоятельно построить робот, находящий выход из лабиринта, робот, ори- ентирующийся на источник света й звука, ультразвуковой дальномер и компас. Книга не только поможет организовать занимательный и интересный досуг подро- стка, реализовать его творческие способности, но и лучше усвоить школьный курс физики и информатики. Предназначена для старшеклассников, учащихся колледжей и ПТУ. УДК 621.37 ББК 32.84 Original Edition copyright © by the McGraw-Hill Companies, Inc. All Rights Reserved. Russian edition copyright © 2006 by NT Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владель- ца авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероят- ность технических ошибок все равно остается, издательство не может гарантировать абсо- лютную точность и правильность приводимых сведений. В связи с этим издательство не не- сет ответственности за возможный ущерб любого вида, связанный с применением содержащихся здесь сведений. Все торговые знаки, упомянутые в настоящем издании, зарегистрированы. Случайное неправильное использование или пропуск торгового знака или названия его законного вла- дельца не должно рассматриваться как нарушение прав собственности. ISBN 0-07-141358-8 (англ.) Copyright © McGraw Hill Companies, 2004, 2006 ISBN 5-477-00216-6 (рус.) © Издание, перевод, оформление. «НТ Пресс», 2006
Оглавление Введение...........................................................xiii Глава 1. Введение в робототехнику..................................1 Эксперимент 1. Человекоподобный робот из рулонов туалетной бумаги.4 Эксперимент 2. Насекомое из ершиков для чистки трубок...........7 Эксперимент 3. Мобильные роботы на основе ЛЕГО....................10 Эксперимент 4. Картонный манипулятор...........................13 К размышлению..................................................16 Глава 2. Конструкция роботов....................................19 Эксперимент 5. Распиливание фанеры.............................22 Эксперимент 6. Повышение прочности конструкции.................27 Эксперимент 7. Отделка древесины............................. 30 Эксперимент 8. Типы клея.......................................33 Эксперимент 9. Гайки и болты...................................35 Эксперимент 10. Пайка и скручивание проводов...................39 Эксперимент 11. Монтаж печатной платы (Приложение 3)...........43 Глава 3. Теоретические основы электротехники................... 48 Эксперимент 12. Электрические цепи и переключатели.............50 Эксперимент 13. Электрические схемы и переключатели............55 Эксперимент 14. Измерение напряжения...........................57 Эксперимент 15. Резисторы и падение напряжения.................61 Эксперимент 16. Измерение тока и закон Ома.....................64 Эксперимент 17. Закон Кирхгофа для напряжений и последовательные нагрузки....................................67 Эксперимент 18. Переменные резисторы..............................71 Эксперимент 19. Закон Кирхгофа для токов и параллельные нагрузки..76
wi 123 эксперименте no робототехнике Эксперимент 20. Теорема Тевинина.......................................78 Эксперимент 21. Мощность...............................................81 Эксперимент 22. Батареи................................................84 К размышлению......................................................... 89 Глава 4. Магнитные приборы..............................................91 Эксперимент 23. Электромагниты.........................................95 Эксперимент 24. Реле...................................................97 Эксперимент 25. Измерение магнитного поля Земли......................... 100 Эксперимент 26. Двигатель постоянного тока............................103 Глава 5. Трансмиссия...................................................108 Эксперимент 27. Электрический подъемный кран..........................111 Эксперимент 28. Подъемный кран в сочетании с блоками...................114 Эксперимент 29. Переключение двигателя постоянного тока Н-образным мостом.....................................................116 Эксперимент 30. Шасси для роботов с дифференциальным управлением......119 Эксперимент 31. Шаговые двигатели.....................................124 Эксперимент 32. Биметаллическая проволока.............................127 Глава 6. Полупроводниковые приборы......................................132 Эксперимент 33. Диоды.................................................134 Эксперимент 34. Светоизлучающие диоды.................................138 Эксперимент 35. Транзистор типа п-р-п и управление двумя светодиодами.141 Эксперимент 36. Управление двигателем с помощью транзистора...........144 Эксперимент 37. Управление двигателем с помощью биполярного р-п-р-транзистора.....................................................148 Эксперимент 38. Транзисторный Н-образный мост для управления двигателем.............................................150 Глава 7. Микросхема таймера 555.........................................154 Эксперимент 39. Мигающие светодиоды...................................158 Эксперимент 40. Кнопка с противодребезговой защитой на основе чипа 555. 162 Эксперимент 41. Автоматическое регулирование с радиоуправлением.......166 Эксперимент 42. Робот, ориентирующийся на свет.........................171 Глава 8. Оптоэлектроника................................. ..............175 Эксперимент 43. Светодиоды различных цветов............................178 Эксперимент 44. Изменение яркости свечения светодиода.................181 Эксперимент 45. Многосегментные светодиоды.............................185 Эксперимент 46. Оптронная пара.........................................188 Эксперимент 47. Датчик белой и черной поверхности......................192 Эксперимент 48. Робот, отслеживающий траекторию........................195
Оглавление «Н Глава 9. Звуковая электроника.................................200 Эксперимент 49. Зуммеры......................................203 Эксперимент 50. Учебная схема генератора кода на основе транзисторов.207 Эксперимент 51. Электронный стетоскоп........................210 Эксперимент 52. Измеритель уровня звука..............................213 Глава 10. Цифровые логические микросхемы......................218 Эксперимент 53. Работа основных логических схем..............221 Эксперимент 54. Сенсорный переключатель КМОП.................226 Эксперимент 55. ТТЛ-элемент НЕ на биполярных транзисторах.. 230 Эксперимент 56. Схемы вычисления суммы произведений..........234 Эксперймент 57. Простые логические схемы, построенные на элементах ИЛИ-НЕ..........................................237 Эксперимент 58. Логические элементы Исключающее ИЛИ и сумматоры......242 Эксперимент 59. Схемы задания режима.........................245 Эксперимент 60. Логика Микки-Мауса...........................248 К размышлению................................................250 Глава 11. Источники электропитания............................253 Эксперимент 61. Стабилитроны.................................256 Эксперимент 62. Линейный источник электропитания.............259 Эксперимент 63. Импульсный источник питания..................263 Глава 12. Последовательностные логические схемы...............268 Эксперимент 64. Триггеры RS..................................271 Эксперимент 65. Триггеры, синхронизируемые фронтом...........276 Эксперимент 66. Полный D-триггер.............................279 Эксперимент 67. Сброс триггере...............................282 Эксперимент 68. Параллельная пересылка данных................285 Эксперимент 69. Светофор.....................................288 Эксперимент 70. Сдвиговые регистры......................... 293 Эксперимент 71. Новогоднее украшение.........................297 Эксперимент 72. Хаотически движущийся робот..................301 Эксперимент 73. Счетчики.....................................303 Эксперимент 74. Триггеры Шмитта на входах и устранение дребезга кнопочного переключателя............................306 Эксперимент 75. Генерация ШИМ........................................310 Глава 13. Изучение программирования на языке Parallax BASIC Stamp 2...............................315 Эксперимент 76. Загрузка программы оконного редактора BASIC Stamp Windows Editor на ваш компьютер........317
viii 123 эксперимента по робототехнике Эксперимент 77. Соединение печатной платы и BS2 с ПК и работа вашего первого приложения.............................320 Эксперимент 78. Сохранение ваших приложений в памяти ПК........323 Эксперимент 79. Пояснения по приложению «Hello World!».........326 Эксперимент 80. Переменные и типы данных.......................329 Эксперимент 81. Форматы числовых данных........................331 Эксперимент 82. Символы ASCII................................. 334 Эксперимент 83. Переменные типа массив...........................337 Эксперимент 84. Использование математических операторов в операторе присваивания.......................................340 Эксперимент 85. Создание простых программных циклов............343 Эксперимент 86. Циклы с условиями..............................345 Эксперимент 87. Приложение выключения питания..................348 Эксперимент 88. Программный код, исполняемый по условию........350 Эксперимент 89. Усовершенствованное исполнение по условию........353 Эксперимент 90. Использование цикла for в приложениях..........356 Эксперимент 91. Сохранение отрезков текста с помощью подпрограмм.359 К размышлению..................................................362 Глава 14. Оборудование интерфейса для BASIC Stamp 2.............367 Эксперимент 92. Управление светодиодом.........................369 Эксперимент 93. Силоновый глаз.................................372 Эксперимент 94. Жидкокристаллический дисплей с управлением от микросхемы Hitachi 44780....................................375 Эксперимент 95. Вывод музыкальной мелодии......................378 Эксперимент 96. Электронная игральная кость....................381 Эксперимент 97. Вход с клавиатуры..............................384 Эксперимент 98. Измерение сопротивления........................387 Эксперимент 99. Вывод аналогового напряжения ШИМ...............390 Эксперимент 100. Цифро-аналоговый преобразователь R-2R.........392 Глава 15. Датчики...............................................396 Эксперимент 101. Компьютер Снарк, bLiza........................398 Эксперимент 102. Несколько семисегментных дисплеев.............404 Эксперимент 103. Датчик света RCtime...........................408 Эксперимент 104. Различные датчики света.........................411 Эксперимент 105. Управление с помощью звука......................415 Эксперимент 106. Датчики робота в форме усиков...................418 Эксперимент 107. Инфракрасные датчики объектов.................422 Глава 16. Мобильные роботы......................................426 Эксперимент 108. Основание для двигателей постоянного тока со схемой управления на Н-образном мосте..................... 429 Эксперимент 109. Программирование автомата состояний......... 434
Оглавление ix Эксперимент 110. Пример робот-мотылек........................437 Эксперимент 111. Объяснение хаотического движения............440 Эксперимент 112. Основание робота-автомобиля с радиоуправлением......443 Эксперимент 113. Установка сервомеханизма с радиоуправлением.........446 Эксперимент 114. Управление несколькими сервомеханизмами.............451 Эксперимент 115. Робот-художник......................................455 Эксперимент 116. Программный интерфейс GUI-Bot компании Parallax.....460 Эксперимент 117. Управление шаговым двигателем.......................464 Эксперимент 118. Двухсторонняя связь на основе инфракрасных приборов.469 Глава 17. Ориентирование......................................475 Эксперимент 119. Робот, отслеживающий траекторию.............479 Эксперимент 120. Робот, отслеживающий стену..................482 Эксперимент 121. Ультразвуковое измерение дальности..........486 Эксперимент 122. Компас на основе эффекта Холла......................491 Эксперимент 123. Интерфейс NMEA GPS..........................494 Приложение 1. Российские аналоги применяемых в экспериментах электронных компонентов, материалов и приборов.........................................499 Приложение 2. Справочная информация о PBASIC..................501 Приложение 3. Печатная плата для экспериментов................512 Предметный указатель..........................................516
Об авторе Майк Предко (Муке Predko) - специалист по тестированию новой техники ком- пании Celestia (Торонто, Канада). Он автор выпущенной издательством McGrow- Hill книги «Programming and Customizing PICMicro Microcontrollers» и главный конструктор робота Sumo-Bot фирмы TAB Electronics.
Благодарности Если кто-нибудь предложит вам написать книгу, состоящую из множества не- больших проектов и экспериментов, бегите от него со всех ног. Хотя эта книга принесла большое удовлетворение и много радости, она стоила мне огромного труда. Я ни за что не закончил бы ее без помощи и поддержки следующих лю- дей и коллективов (а также некоторых других, о которых я позабыл). Я очень активно работаю с информацией справочных серверов Tabrobotkit, Basicstamp и PICList. Я провел там немало времени - и прятался, и учился. Эти три группы - вероятно, лучшие ресурсы, где эксперты, как и новички, могут получить информацию о роботах, программировании и электронике. Кен Грейси (Ken Gracey) и другие сотрудники компании Parallax вдохнови- ли меня на написание книги и помогли работать. Продукция Parallax настоль- ко хороша, что, присмотревшись, вы найдете BASIC Stamp 1 в фильме «Полет в будущее» (Flight the Future) из сериала «Секретные материалы» («X-Files»). Компания Celestia. По сути не робототехническая, она является компанией выдающегося уровня по технологии с лучшими специалистами. Я пребываю в постоянном смущении от того, что очень многого не знаю, и от того, какого рода ресурсами Celestia обладает. Блэр Кларксон (Blair Clarkson) и другие сотрудники Научного Центра Онта- рио (Ontario Science Centre), Торонто. Центр начинал работу как семинар по робототехнике для компании Celestia, и большим удовольствием было обсуж- дать и проектировать там роботов для учащихся. Надеюсь, наши отношения будут продолжаться еще длительное время. Бен Уирц (Ben Wirz) - источник идей относительно борьбы с дребезгом, а также понимания того, что мои великие идеи вовсе не уникальны (а часто и не работоспособны). Несколько лет мы с Беном работали над тремя любитель- скими роботами, и я надеюсь в будущем сделать с ним много больше. Джуди Басс (Judy Bass) - мой терпеливый редактор. Я высоко оцениваю ее работу над уникальным форматом этой книги, а также ее терпение: ведь я за- кончил рукопись много позже предельного срока. Я задолжал Вам обед с боль- шим омаром за все, что Вы для меня сделали. Моя жена Пейшенс (Patience) всегда соответствует своему имени*, а моя дочь Мария (Marya) может гордиться своим отцом. Невозможно ожидать боль- шей поддержки, чем я получил от вас обеих. Даже когда я курю и из подвала, * Patience - терпение (англ.). - Прим, перев.
xii 123 эксперимента по робототехнике где я работаю, несутся проклятия, я знаю, что получу от вас улыбку и крепкое объятие. И наконец, все, кто участвовал в создании очень и очень многих телешоу и фильмов, которые я смотрел для развлечения, вдохновения и разрядки в тече- ние значительной части моей жизни. Вы редко давали правильное изображе- ние техники, но я не прочь обогатиться как личность, задаваясь вопросами, насмехаясь и пытаясь воспроизвести то, что вы создали.
^ataHaus,^. Введение Правила робототехники В этой книге я буду придерживаться десяти правил робототехники: • начинайте с малого; • продумывайте конструкцию всего робота в целом; • резкие движения не являются достоинством робота; • оберегайте ходовую часть от воздействий окружающей среды; • центр масс вашего робота должен совпадать с его геометрическим цен- тром; • чем быстрее работает робот, тем он выразительней; • датчики должны обнаруживать объект на достаточном удалении от робо- та, чтобы он мог остановиться до того, как нанесет ущерб объекту или себе самому; • чем сложнее робот, тем больше он весит; • увеличение веса обременительно; • если в данный момент робот ничего не делает, то и энергию он потреб- лять не должен.

^aiattaus,^. Глава 1 Впадение п робототехнику Что приходит в голову, когда мы вспоминаем сам термин робот? Ниже приведе- ны определения, в которых сделаны попытки объяснить, что это такое. Настоящий робот - это машина, которую можно подобно компьютеру запро- граммировать, «обучить» делать разнообразные виды движений и выполнять множество работ... Машины, которые выполняют только одну работу и не мо- гут быть «переобучены», настоящими роботами не являются. The New Book of Knowledge, 1998 Робототехника - область техники, связанная с разработкой и применением ро- ботов, а также компьютерных систем для управления ими, сенсорной обратной связи и обработки информации. Существует много типов робототехнических устройств, в том числе роботы-манипуляторы, мобильные роботы, шагающие роботы, средства помощи инвалидам, телеуправляемые роботы и миниатюрные электромеханические системы. The McGraw-Hill Encyclopedia of Science & Technology, Edition Робот - механическое устройство, которое работает автоматически. Роботы способны выполнять множество различных заданий. Они особенно удобны при выполнении работ, слишком монотонных, сложных или опасных для лю- дей. Термин робот происходит от чешского слова robota, что значит тяжелая монотонная работа. Роботы успешно выполняют такие рутинные задания, как сварка, сверление и покраска деталей автомобильного кузова. The World Book Encyclopedia, 1995 Робот - машина, выполняющая задание автоматически. Действиями робота управляет микропроцессор, запрограммированный в соответствии с заданием.
2 ГЛЯВЯ1. Введение в робототехнику Робот следует набору инструкций, которые предписывают ему, что в точности необходимо делать, чтобы выполнить задание. World Book’s Young Scientist, 2000 robot /’ro:bot/ n. 1. Машина, имеющая внешний вид, как у человека, или функционирующая подобно человеку. 2. Машина, способная автоматически вы- полнять сложную последовательность действий. 3. Человек, который работает механически и рационально, но неосмысленно. The Canadian Oxford Dictionary, 1998 Люди - в высшей степени универсальные существа, имеющие форму, вырабо- танную миллионами лет эволюции с тем, чтобы соответствовать очень широ- кому диапазону условий. Наука и техника, относящиеся к роботам, обычно на- целены на построение машин для выполнения гораздо меньшего числа заданий в пределах конкретного круга проблем, таких как технический контроль или сборка на конвейерах. Как правило, у таких роботов гораздо более простая форма. Зачастую они состоят из рычагов на шарнирах, оснащенных зажимами или другими приспособлениями, работающими подобно руке, и из микропро- цессора, функционирующего, как мозг. Encyclopedia of Technology and Applied Sciences, 1994 Робот - перепрограммируемый многофункциональный манипулятор, предна- значенный для того, чтобы совершать с материалами, деталями, инструмента- ми и различными специальными приспособлениями разнообразные запро- граммированные движения с целью выполнения множества заданий. Robot Institute of America, 1979 Теперь перейдем к более детальному рассмотрению и объяснению понятия «роботы», которые, если дать им определение, представляют собой полностью автоматические машины, способные отвечать как на внешние воздействия, так и на внутренние, предварительно записанные команды. Важно отметить, что здесь мы имеем дело с термином робот, который отличается от термина андро- ид либо, кратко, - дроид или же от термина гуманоид - другого термина, связан- ного с такими машинами. The Complete Handbook of Robotics, 1984 Робот - любое механическое устройство, которое можно запрограммировать для выполнения некоторого числа заданий, включая манипуляцию и переме- щение при автоматическом управлении. Вследствие использования в научной фантастике термин робот предполагает, что он имеет человекоподобный вне- шний вид или при работе обладает возможностями, похожими на возможно- сти человека; в действительности современные промышленные роботы физи- чески очень мало похожи на людей. АР Dictionary of Science and Technology
NaiaHausfisk Что такое робот 3 Робот: 1. Устройство, которое реагирует на сигнал с сенсорного входа. 2. Программа, выполняемая автоматически, без вмешательства человека. Обычно робот наделен некоторым искусственным интеллектом, так что он может реагировать на различные ситуации, которые могут случайно сложиться. Распространенные типы роботов - исполнительные устройства и транспортные роботы. Webopedia Робот - это машина, предназначенная для того, чтобы выполнять одно или несколько заданий многократно, быстро и точно. Существует столько же раз- новидностей роботов, сколько есть для них видов заданий. what is ? сот У робота есть три важнейших характеристики: • он обладает мобильностью в той или иной форме; • его можно запрограммировать для выполнения широкого выбора зада- ний; • после программирования он работает автоматически. Australian Robotics and Automation Association 1. Роботу запрещается причинять вред человеку или своим бездействием допустить, чтобы человеку был нанесен вред. 2. Робот обязан повиноваться приказам людей за исключением тех случа- ев, когда такие приказы противоречат Первому Закону робототехники. 3. Робот должен защищать свою жизнь до тех пор, пока такая защита не вступает в противоречие с Первым или Вторым Законами робототех- ники. Айзек Азимов Ясно, что ни одно определение, взятое в отдельности, не объясняет, что такое робот и как он предположительно работает. Разные люди имеют различ- ные и зачастую противоречащие друг другу представления о том, что есть ро- бот, а что таковым не является. Существует множество типов роботов, и каж- дый из них удовлетворяет некоторым из приведенных выше определений. Ниже я исследую некоторые типы роботов, представлю вам многие из их возможностей и дам основные знания для того, чтобы вы могли создать своих собственных роботов. Однако помните, что если вы создадите робот для завоевания мира, а ваша затея потерпит неудачу и к вам явятся официальные лица, то вы никогда не слышали ни обо мне, ни об этой книге.
4 ГЛАВА 1. Введение а робототехнику Эксперимент 1. Человекоподобный робот из рулонов туалетной бумаги В 1950-х годах ученые определили, что наиболее вероятная форма тела для иных космических миров - это форма двуногого существа, подобного челове- ку. Двуногое состоит из двух рук и двух ног, расположенных симметрично отно- сительно вертикальной осевой линии. Причины такого вывода в большой мере базировались на знакомстве ученых с их собственными телами: признавая, что люди как результат сотен миллионов лет эволюции способны выполнять на удивление разнообразные задания. Следуя этой логике, пришли к гипотезе, что инопланетяне, пройдя эволюцию до момента, когда они смогли создать маши- ны, подобные нашим, должны иметь тела, похожие на наши. Такая последовательность рассуждений - это по сути то, через что проходят люди, размышляя о том, как должны выглядеть роботы. Если бы вас спросили, как должен выглядеть робот, то вы, вероятно, в первую очередь подумали о дву- ногом роботе, таком как Терминатор или Робби-робот. Пользуясь логикой уче- ных 1950-х, построение роботов, для которых применяется тот же тип тела, что и у нас, не лишено здравого смысла, поскольку нам удобно использовать наши тела, чтобы двигаться и манипулировать объектами. Так как эта книга посвящена роботам, я уверен, что вы захотите сконструи- ровать роботы и работать с ними. Давайте начнем делать простой двуногий робот из картонных цилиндров, на которые наматывается туалетная бумага, ершиков для чистки курительных трубок и клея, потом}' что у нас есть вполне подходящая форма, которой стоит следовать (наша собственная). Как только робот будет построен, вы сможете выполнить для себя первый эксперимент этой книги - посмотреть, как двуногий робот будет переходить из положения стоя в состояние ходьбы. Как только мы сделаем это, мы сможем начать экспе- риментировать с другими действиями, которые производят люди. Двуногий робот для этого эксперимента состоит из скелета, сделанного из картонных цилиндров, на которые наматывается туалетная бумага, соединен- ных кусочками ершика для чистки трубки, которые приклеены изнутри к этим цилиндрам. Если цилиндры являются аналогами костей в вашем теле, то ерши- ки для чистки трубок - это соединительные ткани и ваши суставы. На рис. 1.1 обратите внимание, что я указал места установки ершиков для чистки трубок, так что скелет может двигаться (или соединяется) таким же образом, как наше тело. Поскольку мы очень точно следуем модели человеческого тела, можно ожидать, что мы достигнем успеха и будем иметь возможность продолжить эк- сперименты с этим роботом, например, заставить его подойти к объекту и по- добрать его. Заметьте: для различных сочленений на основе ершиков я принял во вни- мание их расположение, чтобы робот мог двигаться так же, как человек.
Vilallaus^l Эксперимент 1. Человекоподобный робот из рулонов туалетной бумаги «Торс» и «Таз» вырезаны из одного рулона. «Таз» по длине равен 2,5 см. «Голова» вырезана из отдельного рулона и составляет в длину 3 см. Рис. 1.1. Вид сверху роботе из цилиндров, на которые наматывается туалетная бумага Чтобы построить робот, я отрезал 10 кусочков ершиков для чистки трубок длиной 2,5 дюйма (6,4 см) и собрал 10 старых цилиндров от рулонов туалетной бумаги. Я резал ершики кусачками - не используйте ножницы (особенно, те, что дороги другим людям). Мне не следовало бы говорить об этом, но вы долж- ны подождать, пока картонные цилиндры станут доступны; не ускоряйте про- цесс их добычи! Я не хочу получать по электронной почте гневные послания от ваших родителей о том, что в один прекрасный день они обнаружили в туа- лете кучу совершенно чистой туалетной бумаги. Когда вы отрезали ершики для чистки трубок по размеру острым ножом, отрежьте от одного из рулонов два цилиндра меньшего размера, каждый дли- ной 1 дюйм (2,5 см). Кусок большего размера станет «спиной» робота, а малень- кий цилиндр - его «тазом». От другого цилиндра отрежьте кольцо размером примерно 0,75 дюйма (2 см) - это «голова». Вместе с оставшимися восемью цилиндрами от туалетной бумаги у вас все готово, чтобы начать собирать робот, используя любой клей для бумаги или дерева. Клей для авиамоделей, эпоксидные смолы для этого не подходят. Вам, может быть, захочется попробовать цианоакрилатный клей, такой, как «Крей- зи Глю», чтобы закрепить кусочки ершика для чистки трубок, прежде чем ис- пользовать клей для бумаги или дерева. Лично я этого не советую, так как все может кончиться тем, что вы приклеите себя к кусочкам ершика и цилиндрам от туалетной бумаги. Увидев это, люди вряд ли будут думать, что вы действи- тельно Гений Техники. Вдоль внутренней части каждого рулона от туалетной бумаги нанесите каплю клея величиной 1 дюйм (2,5 см), чтобы закрепить ко- нец кусочка ершика. Поместите 1 дюйм (2,5 см) ершика в клей, оставив осталь- ные 1,5 дюйма (3,8 см) снаружи рулона. После того как вы погрузили ершик для чистки трубок в клей, нанесите немного клея сверху, чтобы быть уверенным
ГЛАВА 1. Введение в робототехнику в надежности соединения. Сделав это, оставьте цйлиндры от туалетной бумаги с ершиками для чистки трубок для просушки в течение суток. Затем повторите процесс вклеивания 1 дюйма (2,5 см) от свободного конца ершика для чистки трубок в другой цилиндр по точно такой же технологии и оставьте сборку сохнуть еще на сутки. Между двумя цилиндрами образуется сочленение из ершика для чистки трубок размером 0,5 дюймов (1,25 см). Когда детали высохнут, приклейте их к торсу, причем клейте в несколько приемов, по одной стороне за один прием, чтобы клей не потек. Когда вы закончите (понадобится приблизительно пара дней от начала работы), у вас получится показанная выше модель робота (см. рис. 1.1). Как я уже говорил, мне хотелось бы поэкспериментировать, попытавшись заставить робот изменить положение стоя на ходьбу. При высохшем клее на вашем роботе попытайтесь заставить его встать. Есть шанс, что все закончится кучей пустых рулонов от туалетной бумаги, по виду соединенных случайным образом, подобно той куче, что получилась у меня (рис. 1.2). У вас также будет неприятная проблема - определить, как под- держивать робот так, чтобы можно было заставить его ходить. Рис. 1.2. Неудачное начало построения ваших собстаеюкхх роботов Глядя на эту кучу картона, клея и ершиков для чистки трубок, вы можете сде- лать несколько умозаключений. Например, ершики для чистки трубок не обла- дают достаточной жесткостью, чтобы поддерживать набор цилиндров от туа- летной бумаги в фиксированном положении. Вы могли бы поразмыслить о материалах, которыми можно заменить ершики для чистки трубок, но я хочу сказать вам, чтобы вы не тратили на это силы.. Даже если бы у вас был робот, способный поддержать себя в положении стоя, очень трудно справиться с дви- жениями, которые необходимы, чтобы робот шагал и не падал. Вспомните о том, что целый год или около того потребовалось вам, чтобы запограммировать
Эксперимент 2. Носекомое из ершиков для чистки трубок 7 себя самого, чтобы стоять прямо и шагать, а в вашем случае имелось все необхо- димо оборудование, чтобы начать. Шагать - это только один аспект проблемы, наряду с этим вам придется додуматься, как поворачивать и ходить по неров- ной поверхности земли. В частности, лестницы являются очень неприятным препятствием для шагающих роботов. Создание конструкции мобильного двуногого робота, способного стоять прямо и шагать, как человек, считается многими специалистами по роботам «Святым Граалем» робототехники - это задача, обещающая невероятно много, в решении которой большие и хорошо финансируемые компании и лаборато- рии только сейчас начинают достигать цервых успехов. Имея это в виду, я хо- тел бы, чтобы вы смотрели на роботы снизу вверх, приобретая необходимые навыки для построения различных компонентов, которые применяются в ро- ботах. Может быть, в один прекрасный день вы построите робот, который выглядит и действует, как человек, но прямо сейчас давайте рассматривать роботы снизу, начиная с элементов. Эксперимент 2. Носекомое из ершиков для чистки трубок В первом эксперименте я дал вам некоторое представление о том, насколько трудно создать робот, основанный на форме человеческого тела. Я упоминал о том, что заставить его ходить будет нелегко, но не вдавался в детали, потому что не знал, как добиться, чтобы робот надежно ровно стоял. Я думаю, что прежде, чем начать работать над реальными роботами, важно предложить ста- бильное основание, а затем выяснить, как робот может двигаться и манипули- ровать объектами. Когда вы будете искать подходящую идею или стараться лучше понять, как ре- шить проблему, то вы часто будете находить ответ, наблюдая природу и рассма- тривая, как животные (и даже растения) справляются с аналогичными задачами. Если мы хотим увидеть устойчивое основание, способное двигаться и передви- гать объекты, то мы, вероятно, обратим внимание на многоногих животных. Это было бы очевидным упрощением для основания робота. Так же точно вы, когда были младенцем, гораздо скорее научились ползать на четвереньках, чем ходить. Рассматривая животных, которые могут поворачиваться на четырех ногах и манипулировать объектами подобно человеку, я в первую очередь вспомню такое животное, как слон. Он может поворачиваться на своих четырех ногах и манипулировать объектами при помощи хобота. Проблема со слоном и други- ми четвероногими животными состоит в их динамичном и нестабильном дви- жении. Когда слон идет, он перераспределяет свою массу так, что никогда не переворачивается. Реализовать такое движение робота не очень трудно, одна- ко возникнет проблема переворачивания робота, если ему придется внезапно остановиться или остановиться с поднятой ногой.
8 ГЛАВА 1. Введение в робототехнику В качестве простого теста, иллюстрирующего данное утверждение, опусти- тесь на четвереньки (опираясь на руки и колени) и ползите по полу, внезапно останавливаясь с одной поднятой рукой или ногой. В зависимости от того, ка- кую часть тела вы поднимете, вы либо свалитесь набок, либо ткнетесь лицом вперед. Поначалу вам, возможно, будет трудно перевернуться при падении; вы будете автоматически компенсировать поднятую конечность и двигать центр тяжести тела так, чтобы оказаться в стабильном положении, опираясь на три конечности. Может быть, вы захотите провести этот эксперимент на гимна- стическом мате, чтобы быть уверенным в том, что не ушибетесь. Обратившись к четвероногим, мдо решили проблему нестабильности тела в положении стоя, но проблема движения все еще остается. Давайте поищем су- щества, способные двигаться на нескольких ногах, оставаясь при этом устой- чивыми. Этому требованию удовлетворяют насекомые. Приглядевшись к движе- ниям муравья (тараканы слишком проворны), вы увидите, что во всех случаях по крайней мере три лапки муравья находятся на земле. Когда муравей движет- ся вперед, две лапки с одного бока и одна лапка с другого толкают его вперед, в то время как остальные три лапки переходят в положение, при котором иници- атива перейдет к ним и они будут двигать насекомое вперед (рис. 1.3). Заштрихованные лапки на плоскости, двигают насекомое вперед. Белые лапки вне плоскости движутся вперед, чтобы двигать его в следующей фазе. Лапки, которые раньше были вне плоскости, опустились на плоскость и передвигают насекомое вперед. Лапки, которые раньше были на плоскости, подняты и переместились назад из одного положения в другое, чтобы двигать насекомое. Рис. 1.3. Движение насекомого Лапки должны быть прикреплены и управляться так, чтобы они могли дви- гаться вверх и вниз, назад и вперед. Движение нижней лапки вверх и вниз от- талкивает насекомое от земли, а движение назад и вперед применяется или для ускорения робота или для перемещения лапки в положение, из которого она будет ускорять насекомое. Взгляните на механический аналог лапки насекомо- го с движениями из стороны в сторону, обеспечиваемыми шарнирным соеди- нением на боку насекомого, и движениями вверх и вниз, осуществляемыми за счет движения нижней лапки вверх и вниз (рис. 1.4).
^alaHausiek Эксперимент 2. Носекомое из ершиков для чистки трубок Рис. 1.4. Лапка носекомого Говоря о руках и ногах робота, каждое направление, в котором может дви- гаться конечность, называют степенью свободы (degree of freedom). Хотя у этой простой лапки насекомого только две степени свободы (вверх-вниз и вперед- назад), вы узнаете, что у других роботов конечности имеют восемь степеней свободы, чтобы дать им возможность выполнять сложные задания. Насекомое всегда устойчиво (его центр тяжести всегда находится в цен- тральной точке между по меньшей мере тремя лапками), и, если почему-либо ему нужно остановиться, оно никогда не переворачивается, так как оно устой- чиво в противоположность четвероногому животному. Изменить направление движения насекомого тоже довольно просто. Вот почему роботы на основе строения насекомого (иногда их называют инсектоиды) более популярны, чем роботы, созданные на основе строения кошек, собак или слонов. Вы легко исследуете свойства инсектоида, самостоятельно построив про- стую модель. Я взял половину донышка от картонной упаковки для яиц и с по- мощью белого клея* приделал «лапки» из ершиков для чистки трубок. Чтобы сделать лапки, я наметил отверстия по бокам картонки от яиц (в ячейках для хранения яиц) и протянул ершики для чистки трубок через отверстия. Когда у меня получилось шесть лапок (сделанных из трех ершиков), я выровнял длину отрезков ершика с каждой стороны и приклеил лапки изнутри к ячейкам кар- тонки. «Усики» я сделал просто для украшения (рис. 1.5). Рис. 1.5. Собранный робот-насекомое Примером может служить ПВА. - Прим, перев.
10 СЛАВЯ 1. Введение в робототехнику Клей сохнет примерно сутки. После этого можно начинать эксперименти- ровать с движением лапок (см. рис. 1.3 и рис. 1.6). Поворот насекомого выполняется за счет движения лапок примерно таким же образом, как и перемещение вперед, но вместо перемещения всех трех лапок в одном направлении одна лапка с одного бока движется в противоположном направлении, что вызывает приложение к насекомому дифференциальной силы и его поворот. Это легко показать на муравье, сделайном из ершиков для чистки трубок и упаковки от яиц. Построив модель робота, вы увидите два направления поиска решений. Первое: роботу необходимо поддерживать себя самого. Это может оказаться главной проблемой, так как вес робота может быть больше, чем тот, с которым лапки (и управляющий ими механизм) в состоянии справиться. Второе (и это очевидная сложность робота): вам, вероятно, хотелось, чтобы нашелся более простой путь разработки мобильного робота. Заштрихованные лапки с левой стороны тянут назад, в то время как заштрихованная лапка справа тянет вперед. Белые лапки подняты над поверхностью, готовясь продолжить поворот. Рис. 1.6. Поворот носекомого Эксперимент 3. Мобильные роботы но основе Л£ГО Выше я рассмотрел некоторые типы мобильных роботов, перемещающихся с помощью ног. Их главный недостаток - сложность. Поэтому вы, вероятно, ре- шите, что копировать формы живой природьг- не лучший путь при конструи- ровании роботов и, возможно, стоит поискать вдохновение где-то еще. В современном мире форма движущихся механизмов обычно не следует ни людям, на животным, ни насекомым. Так, фактически 100% автомобилей на
Эксперимент 3. Мобильные роботы но основе ЛЕГО 11 дорогах построены с использованием одной и той же платформы, состоящей из четырех колес, два из которых - движущиеся, ведомые, а другие два - руле- вые, ведущие. Рулевые колеса большинства современных автомобилей (с перед- ним приводом) также являются движущимися. В формат робота можно преобразовать автомобиль с дистанционным управ- лением (remote control, R/C). При создании автомобильной платформы с нуля вы столкнетесь с двумя проблемами. Первая - рулевые колеса (рис. 1.7): «правым» колесам (ближай- шим к оси, вокруг которой совершается поворот) придется разворачиваться под большим углом, чем «левым». (Действительно, все четыре колеса реаль- но описывают при повороте кривые разных радиусов.) У большинства авто- мобилей имеется ответвление, встроенное в рулевое управление, - сцепление (linkages), которое автоматически поворачивает колеса на требуемый угол. Оно может быть встроено в робот, но для достижения успеха вам придется изучить углы сцепления. Следы передних колес Угол поворота Следы задних колес _ Угол поворота правого колеса(15*) Рис. 1.7. Поворот автомобиля Конструкторы роботов решают эту проблему двумя способами. Во-первых, просто используют единственное рулевое колесо. Такое основание робота на- зывают трехколесным. Во-вторых, устанавливают оба рулевых колеса на одной оси, как у игрушечной тележки. Используя несколько деталей конструктора ЛЕГО, вы можете построить модель робота в форме тележки с таким рулевым управлением (рис. 1.8). Мне понадобились четыре колеса с осями, прикрепленными к блокам ЛЕГО, вертикальный стержень (его могут заменить небольшие цилиндрические дета- ли ЛЕГО, из которых можно собрать штырь) и несколько блоков ЛЕГО, чтобы собрать модель робота воедино. Этот метод работает довольно хорошо, но при резком повороте робот мо- жет опрокинуться; могут быть затруднения и при работе на неровной поверх- ности. Вторая проблема мобильного робота на основе автомобиля - это разни- ца скоростей между движущимися колесами при повороте робота: внутренние
12 ГЛАВА 1. Введение в робототехнику Рис. 1.8. Конструкция робота в форме тележки из деталей ЛЕГО колеса поворачивают с меньшим радиусом, чем внешние (см. рис. 1.7), т. е. внутренние колеса проходят меньшее расстояние за то же время, что внешние. В автомобиле эту проблему решает дифференциал - коробка передач специаль- ного типа, изменяющая скорость разных движущихся колес в зависимости от угла поворота. Дифференциал можно встроить в робот, но лучше просто дви- гать одно колесо. Трехколесную платформу с управляемым рулевым колесом (оставшиеся два колеса поворачиваются свободно) выбирают многие конструкторы управляе- мых роботов. Другие же конструкторы задаются вопросом, нужны ли рулевые колеса во- обще. Взгляните на построенный мной ЛЕГО-робот, имеющий всего два коле- са (рис. 1.9): Вид сверху о о о о о о Три плоских шасси 10x2 Рис. 1.9. Двухколесный, управляемый дифференциально робот ЛЕГО
Эксперимент 4. Картонный манипулятор 13 ^atalfaus^. Это простейший управляемый дифференциально робот. Вы можете положить пальцы на колеса и посмотреть, как робот двигается, когда оба колеса идут в одном направлении, а также повернуть робот, вращая колеса с разными скоро- стями или даже в разных направлениях. Едва ли не больше 90% самодельных роботов, представленных в Интерне- те, построены именно так. Этот тип корпуса наиболее прост и дешев; един- ственная проблема в том, что такой робот не умеет хорошо справляться с пере- ключением скорости или неровными поверхностями. Очень просто разработать схемы и программное обеспечение (ПО) для уп- равления двумя колесами этого робота, и я буду постоянно использовать диф- ференциально управляемый робот как основу реальных мобильных роботов, о которых буду рассказывать. Эволюционным шагом в развитии дифференциально управляемых роботов стал гусеничный дифференциально управляемый робот. Роботы этого типа отлично справляются с неровными поверхностями (именно поэтому танки и бульдозе- ры передвигаются на гусеницах), но у него может оказаться повышенное сопро- тивление движению, особенно при повороте. Минимизировать сопротивление робота при повороте помогут два движу- щихся колеса на каждой стороне робота (оба должны быть связаны между со- бой). Вы можете собрать такой робот из ЛЕГО (рис. 1.10). Вид сверху Плоские «Шасси» 10 х 2 Рис.1.10. Конструкция четырехколесной тележки из детолей ЛЕГО Эксперимент 4. Картонный манипулятор Роботы-манипуляторы обычно работают с некоторого основания (способного перемещаться) и предназначены для того, чтобы взять что-нибудь и перенести в другое место. Давайте построим простую модель, похожую на манипулятор Canadarm космического челнока. Сказать, что манипулятор может только брать и перемещать объекты, - это, может быть, дать излишне упрощенное определение. Если вы бывали на
14 Г/IRBR1. Введение в роботетеднику автоматизированном производстве, то знаете, что там роботы занимаются ок- раской, сваркой, завинчиванием болтов и сборкой. Ни одна из этих операций не сводится к тому, чтобы просто брать и перемещать объекты. Каждый робот на сборочном конвейере выполняет специфические задачи. Сварочный робот сконструирован так, что его «рука» [илй эффектор (effector) либо зажимное уст- ройство (gripper)] представляет собой набор сварочных щипцов. А зажимное устройство малярного робота в действительности является пульверизатором для краски. Концевой эффектор сборочного робота выполнен в виде пневма- тического гайковерта. В каждом из этих случаев робот снабжается специализи- рованным аппаратным обеспечением. Приспособления робота, выполняющего несколько заданий, сконструиро- ваны так, что робот берет их, используя зажимное устройство манипулятора, а затем перемещает приспособления в рабочую область. Следующая модель манипулятора робота создана способом, который во многом схож с тем, как вы делали двуногого робота в первом эксперименте (рис. 1.11). Но в этом случае я взял оправку от рулона бумаги для факса, разре- зал ее надвое и, используя четыре отрезка ершика для чистки трубок длиной по 2,5 дюйма (6,4 см), склеил их с соединением с основанием, локтевым соеди- нением и двумя U-образными кусочками в качестве зажима. Рис. 1.11. Модель манипулятора робота Я нанес капли клея длиной 1 дюйм (2,5 см) внутрь цилиндров, поместил туда отрезки ершика для чистки трубок и дал высохнуть приблизительно в течение суток. Когда клей высох, я стал, удерживая соединение с основанием, выполненное из ершика, двигать манипулятор по кругу (рис. 1.12), и попытался перемещать объекты, наблюдая, какие части манипулятора участвуют в этом процессе. Это похоже на процесс, используемый для записи программы движения манипуляторов многих реальных роботов. Человек ведет такие манипулято- ры (либо непосредственно, либо применяя дистанционное управление)
Эксперимент 4. Кортонный монипулятор 15 Z Рис. 1.12. Манипулятор робота, движущийся в трех измерениях к различным точкам, где нужен манипулятор. Это довольно быстрый и весь- ма точный метод. Проблема этого метода в том, что он практически неосуществим для мно- гих приложений робототехники. Классический пример того, что не может быть запрограммировано таким образом, - манипулятор Canadarm, применяв- шийся на космическом челноке. Этот манипулятор не может поддерживать себя под действием гравитации Земли, не говоря уже о том, чтобы нести ка- кой-либо груз. В этом случае движение манипулятора должно быть разработа- но математическими методами, обычно при помощи компьютера. Давайте рассмотрим движущийся в двух измерениях манипулятор робота, который состоит из длинного плеча и короткого предплечья (рис. 1.13). Соглас- но тому, как я нарисовал манипулятор, плечо может поворачиваться примерно на 45° относительно надплечья, в то время как оно способно поворачиваться штифт Рис. 1.13. Движение манипулятора робота в горизонтальной плоскости
16 ГЛАВА 1. Введение в робототехнику на 180е относительно локтя. Указанные пределы движения нашли свое выраже- ние в необычной форме зоны.сервиса робота (work envelope). При описании манипуляторов каждое направление,, в котором может двигать- ся деталь, называют степенью свободы. У нашего манипулятора (см. рис. 1.13) две степени свободы: одна в плечевом и другая в локтевом суставах. У вашей руки - семь степеней свободы (три в плече, одна в локте, две в запястье и одна в кисти при сжимании и разжимании кулака). Увеличение числа степеней свободы ма- нипулятора робота означает повышение сложности соединений и требует более мощных силовых приводов (actuators) (механизмов, которые двигают части мани- пулятора). Понятие зона сервиса робота означает все места, до которых может достать конец его манипулятора. Указать положение «X» в пределах зоны сервиса ро- бота при двух степенях свободы позволяет формула: ArmX = Lj х cos/3t + L2x cos(/3t +fi2), где ArmX - координата по оси X; Lt - длина плеча; Ц- длина предплечья; угол поворота плеча; Р2- угол поворота предплечья. Вычисление положения «АгтУ» производится точно так же за исключени- ем того, что вместо косинусов используют синусы. Заметьте: чтобы получить правильное положение конца манипулятора, угол, под которым находится предплечье, нужно также уточнить на величину угла, под которым находится плечо. Надеюсь, эта формула не испугала вас, - я дал ее, так как хотел пока- зать, что положение конца манипулятора довольно легко рассчитать, зная основы тригонометрии. Я уверен, что мое определение манипулятора робота разочаровало вас - осо- бенно в сравнении с тем, что может делать ваша собственная рука и ее кисть. Это хорошая возможность подумать, какие поразительные механизмы - ваши рука и кисть. Ваш мозг способен дать руке и кисти команду переместиться в конкрет- ное положение в пространстве, сделать это определенным образом и без всякой видимой обратной связи. К размышлению Когда меня спрашивают, как разработать собственные эксперименты, я удив;- ляюсь, как плохо люди понимают, что результаты хорошо поставленного экс- перимента редко бывают неожиданными. Стереотипный таинственный уче- ный, смешивающий химикаты случайным образом, пока не получит что-нибудь интересное, - просто миф. Эксперименты служат для проверки теории или ги- потезы, а не для того, чтобы посмотреть, что получается, если что-либо сдела- но произвольно. К примеру, обдумайте эксперименты 150-летней давности, выполненные уважаемыми учеными, пытавшимися выяснить, из чего состоит воздух.,Как вы, вероятно, знаете, воздух чуть больше, чем на три четверти состоит из азота, примерно на 20% из кислорода и 1-2% примесей прочих газов.
К размышлению 17 Эксперименты ставились с целью понять, какие именно примеси содержат- ся в воздухе. Способ выделения газов был довольно остроумным. Воздух является раство- ром (как соленая вода), так что газы в нем распределены по всему объему и не могут быть удалены методами типа центрифугирования или нагревания. Потре- бовалось сто лет работы, прежде чем был продемонстрирован метод выделе- ния различных газов из воздуха. Вы, вероятно, знаете, что если газ сжать, то он превратится в очень холод- ную жидкость. Исходя из этого, газ сжали до точки перехода в жидкое состоя- ние, а затем его держали при разных температурах, чтобы дать различным га- зам испариться, что позволило ученым собрать то, что испарилось, или то, что осталость после того, как все остальное было удалено. Например, азот кипит при -195,8 °C, кислород - при -182,8 °C, углекислый газ - при -78,5 °C, хлор - при -34,5 °C, водород - при -252,7 °C, а гелий - при -268,6 °C. Кстати, темпера- тура абсолютного нуля составляет -273 °C. Проблема состояла в том, что ученые не думали о том, какое вещество полу- чат в результате эксперимента, а поэтому при проверке открывали контейнер, в котором находились газы, и вдыхали их, полагая, что, поскольку вдыхать воздух безопасно для здоровья, то различные газы, из которых он состоит, дол- жны также быть безопасны. Увы, это предположение неверно. Газы в виде смеси в составе воздуха впол- не приемлемы, однако сами по себе они могут быть очень опасны. Теперь мы знаем, что хлор является смертоносным отравляющим веществом, водород взрывается при соприкосновении с пламенем (вспомните, что электрические лампочки тогда еще не были изобретены), чистый кислород будет вызывать более интенсивное горение небольших источников огня, большие концентра- ции углекислого газа вызовут у человека удушье. Неудивительно, что многие экспериментаторы умерли (зачастую ужасной смертью), так и не осмыслив, что же с ними случилось. Состав атмосферы Земли и свойства газов, которые привели к этому, не понимали до тех пор, пока экспе- рименты не рассмотрели повторно и не догалались, что составные части воздуха могут быть опасны. Эта догадка (которая называется гипотеза или теория) дала ученым возможность поставить такие эксперименты, в ходе которых они (и их лаборатории) были защищены, и позволила лучше изучить различные газы. Во избежание попадания в ловушку эксперимент должен включать шесть компонентов: 1. Формулировка цели эксперимента - простое определение, более по- дробное, чем заголовок, но и не полное описание того, что вы собира- етесь сделать. 2. Теоретическое обоснование эксперимента - определение ожидаемых результатов и почему они должны быть такими. 3. Спецификация материалов (оснащение и аппаратура, которую вы найде- те в разделах «Детали» и «Инструменты») - список оснащения, необхо- димого для эксперимента.
18 ГЛАВА 1. Введение в робототехнику 4. Процедуры - задания, необходимые для выполнения эксперимента; сюда я включу сборочные чертежи и принципиальные схемы для экспе- римента. 5. Результаты (или наблюдения) - это несколько упрощенно то, что я уви- дел (и, надеюсь, увидите вы): я включу сюда фотографии законченного эксперимента, а также количественные результаты измерений того, что наблюдалось. 6. Выводы - обсуждение некоторых полученных знаний и предложения по поводу того, что можно сделать далее. Эти шесть компонентов помогут вам точно понять, что вы хотите получить от эксперимента, а другим людям - повторить эксперимент и проверить резуль- таты. Наконец, результаты должны поддержать выводы. Очень важно при проведении любого эксперимента вести аккуратные и подробные записи. Ваши учителя, вероятно, твердили о важности тетрадей годами. Тетради неоценимы для хранения мыслей, схем, формул или планов на будущее. Я рекомендую вам по мере проработки этой книги параллельно вести тетрадь и использовать ее для записи важных моментов, наблюдений по вашим собственным экспериментам или идей, которые вы сможете ис- пользовать позднее. Эксперименты этой главы до некоторой степени были вынужденными, и я уверен, что они не оправдывают надежд, которые вы возлагаете на эту книгу. Мне было бы удобнее называть их скорее проверками моделей, чем экспери- ментами, потому что они не подходят к моим мыслям о том, что такое экспери- мент и как он проводится. Слово «модель» - это отличный термин для того, что было сделано в данной главе, так как модели демонстрируют вещи, относящи- еся к различным типам роботов. Цель данной главы состоит в том, чтобы пока- зать, как просто и дешево проверить ваши собственные идеи в робототехнике. По мере дальнейшего изложения я постараюсь сделать эксперименты более строгими и сложными. Хотя проведение экспериментов этой главы требовало минимального усилия мысли, эксперименты в остальной части книги потребу- ют гораздо больше предварительной работы над ними, чтобы убедиться в их достоверности и в том, что их можно использовать как основу для дальнейших экспериментов или проектов по робототехнике.
^aiaHaus,^. Глава 2 Конструкции роботов В начале главы 1 я показал, что трудно было создать робот, исходя из формы человека (говоря инженерным языком, это «нетривиальная* задача). Мы нача- ли с некой скелетоподобной конструкции, связанной с гибкими сочленениями. Поставленный на ноги, робот тут же рухнул. Эта форма робота неустойчива и требует наличия системы мускулов, чтобы поддерживать его в вертикальном положении вместе со скелетом и сочленениями. Затем мы познакомились с разными формами, подходящими для робота больше, и остановились на фор- ме, похожей на небольшую тележку, не имевшую подвижных элементов, кроме колес. Вы также узнали, почему роботы отслеживают путь, по которому движут- ся, но я не объяснил, как они были изготовлены. В главе. 1 для создания формы робота я использовал подручные материа- лы. И не самые лучшие: они были не особенно прочны, да и времени требова- лась много, чтобы они затвердели. В этой главе мне бы хотелось исследовать разные материалы для построения роботов, а некоторые научные обоснова- ния для разработки конструкции роботов. Когда вы прочитаете ее, у вас бу- дет основа для создания роботов из прежних экспериментов, а также общее понимание того, какие материалы и детали больше подходят для ваших соб- ственных роботов. Чтобы не тратить время на споры о том, что первично: курица или яйцо, мы возьмем существующую конструкцию, годную для моделирования наших роботов - скажем, тело человека. Хотя вы, возможно, из-за результатов перво- го эксперимента, неохотно будете рассматривать его в этой роли, вам следует осознать, что строение мелких частей тела (если хотите, называйте их подси- стемами) может служить руководящим принципом для построения робота. Для конструкторов роботов (или робототехников) наибольший интерес пред- ставляют части человеческого тела, способные двигаться. Заглянув в анатомиче- ский атлас, вы увидите, что основной сустав пальца построен, как сочленение, показанное на рис. 2.1. Я упростил это изображение с целью показать наиболее важные части сустава, чтобы лучше пояснить, что они делают.
20 ГЛАВА 2. Конструкция робстсе, Рис. 2.1. Анатомия сустава пальца Сустав дает мускулам возможность изменять угол, под которым соединяют- ся две кости, образующие палец. Мускулы могут только укорачиваться (сокра- щаться), и, таким образом, чтобы изменить угол между костями, один из них должен сократиться (рис. 2.2). Чтобы распрямить соединение двух костей, мус- кул на другой стороне сочленения должен получить команду сжаться, а друго- му мускулу обеспечить возможность расслабиться. Чтобы воспроизвести эти действия, вы могли бы подумать о чем-то вроде соленоида, о котором я расска- жу позже. Нижний мускул сжался Рис. 2.2. Нижний мускул, сокращающийся в согнутом пальце Мускулы не связаны с костями непосредственно. Вместо этого как мускулы, так и кости связаны между собой при помощи тонких отрезков соединитель- ной ткани - тяжей. Тяж очень тонок и прочен, что позволяет силе мускула про- ходить через сгибающийся сустав, не требуя много места. Изменение угла между двумя костями, связанными между собой, - это толь- ко половина проблемы. Вторая половина проявляется при соединении между костями, которое обеспечивает движение. Сустав состоит из четырех частей (см. рис. 2.1). Первая - это хрящ, который имеет гладкую твердую поверхность и составляет с костью единое целое, что позволяет костям легко тереться друг о друга. Хрящи не соприкасаются - они разделены тонкой пленкой синовиаль- ной жидкости (sinovial fluid). Связки притягивают одну кость к другой и поддер- живают хрящи обеих костей в выровненном положении. Наконец, «ограничи- тели кости» - это особенности кости, которые предохраняют кости от движения под углом, на который они не рассчитаны. Эти части сустава пальца являются аналогом механического шарнира. Хрящ служит поверхностью, передающей усилие, приложенное к суставу, как это делает ось шарнира, и поэтому он известен под названием подшипника
Конструкция роботов 21 (bearing). Чтобы резко сократить трение в подшипнике, сустав пальца смазы- вается синовиальной жидкостью, тогда как в шарнире для этого служит машин- ное масло. Сустав пальца собран воедино связками, а изогнутые металлические полосы, обрамляющие ось шарнира, выполняют ту же функцию. Наконец, ме- таллические детали шарнира сформованы так, что он может двигаться только в одном направлении, что в точности аналогично действию ограничителей костей, «встроенных» в сустав пальца. Используя аналог шарнира из пары кусков дерева, рыболовной лески и двух приспособлений, способных сжиматься, мы могли бы создать механическое устройство - робототехнический эквивалент сустава пальца (рис. 2.3). Угол сустава меняется (иначе говоря, сустав движется), когда одно из сжимающих приспособлений [известных также как силовой привод (actuator) или соленоид (solenoid)] натягивает рыболовную леску, соединенную с этими приспособле- ниями. Рис. 2.3. Механический аналог сустава пальца В этом механическом сочленении может также применяться устройство, способное толкать или тянуть, например плунжер* гидравлического двигате- ля. В этом сочленении силовой привод (аналог мускула) соединен с деревян- ными брусками (кости) неподвижно закрепленными шарнирными соединени- ями - толкателями (push rods), способными растягиваться или сжиматься в зависимости от того, в какую из их частей нагнетается жидкость. Создать со- членение с одним силовым приводом, может быть, несколько проще и дешев- ле, чем с двумя. После того, как продумаешь все это, немедленно приходят в голову два во- проса. Первый: в реальном суставе, чтобы указывать текущее положение суста- ва, нужен механизм обратной связи (или рефлекс). Когда я представлю вам ра- диоуправляемые следящие системы, вы поймете, как работает обратная связь по положению. Второй вопрос затрагивает материал главы 1. Вместо того чтобы рекомен- довать вам робот с ногами (как у нас, людей), я выдвинул идею робота, пере- двигающегося на колесах. Механические аналоги, которые я дал различным частям сустава пальца, видимо, не покажутся вам вполне подходящими для ро- бота на колесах, но вы сможете найти массу сходных черт с представленной ’ Плунжером называют поршень, длина которого значительно превышает диаметр. - Прим, перев.
22 ГЛАВА 2. Конор^ция здесь моделью сустава пальца. Двигатель является силовым приводом, а буксо- вый подшипник позволяет деталям двигаться мягко, как хрящ и синовиальная жидкость в реальном суставе (рис. 2.4). Шестерни, колеса и механические дета- ли, скрепляющие конструкцию в целом, представляют собой аналог сухожилий. Шестерни Подшипник (хрящ и си- Конструкция робота(кость) Рис 2.4. Система калесмошестеремного привода с теми же функциями составных частей, что и у идентифицированного сустава пальца В табл. 2.1 приведен список разных частей структуры сустава пальца с меха- ническими аналогами и аналогом на колесах. Таблица 2.1. Материалы основания робота Сустав пальца Механический аналог Аналог на колесах Кость Соединяемые детали Основание Мускул Силовой привод Двигатель Сухожилия Рыболовная леска с натяжением Рычажный привод/колеса Связки Центральная часть шарнира Монтажные детали Хрящ Ось Подшипник Синовиальная жидкость Смазочное масло Смазка подшипника Эксперимент 5. Распиливание фанеры Детали Лист авиационной фане- ры размером 30 х 30 см и толщиной 0,5 см Пила для распиливания фа- неры Рассматривая различные материалы, обычно используемые для корпусов роботов, я составил табл. 2.2. Первые два критерия - доступность и стоимость - пояснений
Natafiaus^ Эксперимент 5. Рослиливоние фанеры 23 не требуют. Прочность - это относительная прочность материала и его сопро- тивление повреждениям. Легкость распиливания показывает, насколько про- сто выпилить из куска материала деталь нужной формы; чем тверже материал (чем выше его прочность), тем труднее его пилить. Стабильность показывает, насколько хорошо материал сохраняет свою форму (и точность этой формы) во времени и по мере использования. Вибрационная устойчивость - это коли- чественная мера способности материала выполнять свои функции при работе робота. Не треснет ли он и не потеряет ли свою форму, когда робот будет дви- гаться по неровному полу? Таблица 2.2. Характеристики материалов Матери- ал Доступ- ность Стои- мость Прочность Легкость распи- ливания Стабиль- ность Вибраци- онная устойчи- вость Дерево Отлично Хорошо Плохо - отлично Плохо - отлично Плохо - отлично Хорошо Фанера Отлично Удовлетво- рительно Отлично Удовлетворительно Хорошо - отлично Отлично Сталь Хорошо Хорошо Отлично Плохо - удовлетво- рительно Отлично Хорошо Алюминий Хорошо Удовлетво- рительно Хорошо Удовлетворительно - хорошо Отлично Удовлетво- рительно G10FR4 Удовлетво- рительно Плохо Отлично Плохо Отлично Отлично дсп Отлично Хорошо Удовлетвори- тельно - хорошо Удовлетворительно - хорошо Плохо - удовлетво- рительно Плохо Картон Отлично Отлично Плохо - удовлетвори- тельно Отлично Плохо Плохо Пенопласт Хорошо Хорошо Удовлетвори- тельно Отлично Плохо Отлично Оргстекло Хорошо Хорошо Удовлетвори- тельно Плохо - удовлетво- рительно Хорошо Плохо Полисти- рол Хорошо Удовлетво- рительно Плохо - удовлетвори- тельно Хорошо - отлично Хорошо Плохо Посетив местный хозяйственный магазин, вы, вероятно обнаружите, что мо- жете выбирать буквально из нескольких сотен различных материалов*. Рассмо- трев табл. 2.2, вы увидите, что во многих оценочных категориях я присвоил де- реву самый широкий из возможных диапазонов оценок. Различие в оценках обусловлено различием пород древесины, имеющихся в продаже, и различием в свойствах, которые могут проявлять разные породы в зависимости от типа режу- щего инструмента, а также от того, из какой части ствола был взят данный кусок древесины. Выбор соответствующей древесины для конкретного применения * В России, конечно, выбор поскромнее, но где-нибудь на строительном рынке тоже наберется'не- сколько десятков. - Прим, перев.
24 ГЛАВА 2. Конструкция роботов требует серьезных знаний и, по моему мнению, делает дерево почти оптималь- ным материалом для изготовления корпуса робота. Фанера состоит из нескольких тонких древесных слоев с перекрестным рас- положением волокон древесины, которые склеены вместе под давлением с целью создания прочного и долговечного материала (рис. 2.5). Для изготовле- ния фанеры выбираются различные виды направлений распила древесины. Самая прочная и долговечная фанера - авиационная, и ее можно найти в хо- зяйственных магазинах. Рис. 2.5. Структура фанеры G10FR4 - это марка стеклотекстолита, материала, обычно применяемого для изготовления печатных плат (printed circuit boards, PCBs). Он получен путем прессования стеклянного волокна, пропитанного связующей эпоксид- ной смолой. Кодировка G10 указывает на компаунд из стеклянного волокна и эпоксидной смолы и на устойчивость его размеров при воздействии измене- ний температуры. Код FR4 означает, что в материал встроена огнеупорная (fire- resistant, FR) композиция 4. Найти большие куски G10FR4 сложно, да и цена кусается. Многие используют для своих роботов старые печатные платы, по- скольку их можно купить за гроши в магазинах, торгующих излишками мате- риалов*. Вы можете подумать о целом ряде материалов на основе целлюлозы, вклю- чая древесно-стружечную плиту, ДСП (это древесная стружка и древесное во- локно, подвергнутые горячему прессованию вместе со связующим веществом), картон, пенопласт (пена из полистирола, армированная картоном). Что каса- ется указанных материалов, я хотел бы порекомендовать только пенопласт, так как он долговечен и ему легко придать нужную форму, хотя его трудно сверлить или подвергать точной механической обработке. Можно также подумать о пластмассах. Из плексигласа (особенно из про- зрачного) можно сделать очень симпатичный робот. Полистирол обычно В Приложении 1 приведены российские аналоги упомянутых в этой книге иностранных марок материалов, а также типов оборудования и компонентов. - Прим, перев.
ftatafiausfisk Эксперимент 5. Распиливание фанеры 2 5 поставляется в виде тонких листов, из которых при помощи вакуумного фор- мования можно получить интересующую вас форму. Он отлично подходит для изготовления крышек и корпусов для роботов. Я склонен отказаться от пласт- масс, поскольку у них обычно низкая вибрационная устойчивость. Вы убеди- тесь, что по мере использования вашего робота вероятность появления тре- щин в пластике возрастает. Вероятно, фанера - наилучший материал для создания основания робота из доступных для непрофессионала материалов. Именно ее я и использую в экс- периментах этой книги. Прежде чем приступить к эксперименту, я хотел изло- жить историю происхождения фанеры... Но, проведя небольшое исследова- ние, я установил, что фанера - довольно скучная вещь, как и многое другое, что имеется на этой планете. Для этого эксперимента распилите кусок авиационной фанеры размером 30 х 30 см и толщиной 0,5 см на 10 частей (рис. 2.6). Три больших прямоуголь- ника будут служить основаниями подвижных роботов, представленных в этой книге, тогда как четыре узких планки понадобятся для испытания фанеры на прочность в следующем эксперименте. Рис. 2.6. Роспилиаоние для экспериментов фанеры толщиной 0.5 см Этот эксперимент состоит в том, чтобы понять, как наилучшим образом распилить фанеру на части (см. рис. 2.6 и 2.7). Вначале пилите на расстоянии 12 см от кромки фанеры. При этом получится планка, ширина которой равна длине печатной платы (Приложение 3). Попробуйте .разные виды пил (например, ножовку, лучковую пилу, лобзик, многофункциональный инструмент Dremel, пилу-наградку, отрезной станок, ленточную пилу, прямую циркулярную пилу или циркулярную пилу с установ- кой уклона). Определите, с какой из них вам удобнее работать. Я распиливаю
26 ГЛАВА 2. Конструкция роботов Рис. 2.7. Порядок распиливания фанеры толщиной 0,5 см фанеру циркулярной пилой с установкой уклона с 12-дюймовым дисковым но- жом*. Это дорогой инструмент, но я могу точно указать нужные мне при распи- ливании углы. Часть фанеры превращается в отходы - опилки (рис. 2.8), а значит, при- дется пилить по внешней стороне намеченной линии распила, чтобы конеч- ный размер образца не оказался меньше требуемого (на величину, равную толщине лезвия). Поэтому вы должны отмерять и размечать линии распила после того, как отпилите предыдущий образец. Если разметить распилы за- благовременно, то почти все образцы, кроме самого первого, будут отпилены неправильно. Приобретя некоторый опыт, вы научитесь компенсировать потери материала при распиливании, но теперь измеряйте и размечайте ли- нии распилов прямо перед тем, как сделаете их, чтобы обеспечить максималь- но возможную точность. Рис 2.8. Учет предполагаемых потерь материала от предыдущих пропилов при разметке рисок для рослыгмеания То есть, с диаметром вращающегося дискового ножа, равным 30 см. - Прим, перев.
^alallaus^k Эксперимент 6. Повышение прочности конструкции 27 Эксперимент 6. Повышение прочности конструкции Детали Четыре планки из авиаци- онной фанеры размером 30 х 2,5 см и толщиной 0,5 см, отпиленные в пре- дыдущем эксперименте Инструменты Столярный клей; Струбци- ны для дерена Теперь рассмотрим физические свойства фанеры и определим, какие из них пригодятся для наших целей. В данном эксперименте я хочу увидеть, насколько прочна фанера в действительности и как повысить ее прочность. Это экспери- мент несколько иронический, поскольку, хотя я и собираюсь показать, как повы- сить прочность куска фанеры на два или три порядка (от 100 до 1000 раз), я ре- комендую вам так конструировать свои роботы, чтобы этого делать не пришлось. К объекту могут быть приложены четыре разных силы (рис. 2.9). Растяжение стремится разорвать образец; попытки сделать кусок древесины меньше по раз- меру, надавливая на него, называют сжатием, а поворот - кручением*. Наконец, вы можете сами попробовать изогнуть'планку в середине. Чтобы рассмотреть первые три из указанных воздействий, попробуйте следующие варианты. • Растяжение куска фанеры. Может быть, вы захотите, чтобы кто-нибудь вам помог. Каждый должен захватить конец планки и потянуть на себя. • Сжатие фанеры. Вы и ваш помощник должны попытаться отталкивать планку от себя. Это следует делать, не изгибая планку. Идея эксперимен- та состоит в том, чтобы проверить на планку только для одного вида де- формирующих усилий. • Кручение фанеры. Это могут сделать либо два человека, либо вы одни с помощью чего-нибудь вроде верстачных тисков. Остановитесь, если услы- шите треск (правда, для этого нужно приложить существенное усилие). Изгиб Растяжение Сила Сила х-4- -4—»- Сила । г •.........1 Сжатие Сила---к- -ч-----------Сила Кручение ।---------1 f А Крутящая 1 ---- 1 у сила Рис. 1.9. Деформирующие силы ’ Строго говоря, кручением называется взаимный поворот поперечных сечений тела. - Прим, перев.
28 ГЛАВА 2. Конструкция роботов Чтобы измерить прочность фанерной планки на изгиб, соберите такое при- способление: положите два бруска (или куска дерева размером 5x10 см) на напольные весы, а между брусками положите фанерную планку (рис. 2.10). За- пишите массу брусков вместе с планкой. Сила Материал образца Бруски 5 х 10 см Напольные весы Рис. 2.10. Измерение изгибающего усилия с помощью напольных весов Теперь медленно надавите ногой на середину планки, следя за значением массы, которое показывают весы. У меня значение массы двух брусков и фа- нерной планки оказалось равным 5 фунтам (2,3 кг). По мере того как я ме- дленно увеличивал усилие, приложенное к планке, показание весов дошло до 9 фунтов (4,1 кг), прежде чем планка начала издавать треск и сломалась. При- ложение усилия всего в 4 фунта - это на удивление мало и намного меньше, чем требовалось бы, чтобы сломать планку при любом виде воздействия. Подводя итоги, мы можем сказать, что фанерная планка исключительно ус- тойчива к растяжению и сжатию, устойчива к кручению и не очень устойчива по отношению к изгибу. Помня это, поэкспериментируем с созданием фанер- ных образцов различной формы, чтобы посмотреть, можно ли повысить ее ус- тойчивость к изгибающему усилию. Вас могли смутить результаты эксперимента. Обдумывая это, вы могли бы рассмотреть прогибающуюся фанерную планку, используя как аналогию ка- бель (рис. 2.11). Поскольку воздействующая сила тянет кабель вниз, то неко- торые части кабеля испытывают большее растяжение. В действительности, когда фанера подвергается изгибу, то на различные волокна (или частицы ма- териала), составляющие ее структуру, воздействует асимметрично приложен- ная к ним сила. Эта сила разрушает волокна на микроскопическом уровне, разрезая их, что приводит к разрушению планки. Запомните: чем большая свобода движения предоставляется планке при изгибе, тем большее разрыва- ющее усилие прикладывается к отдельным волокнам и тем легче они разру- шаются. Сила гравитации преобразованная в растяжение Рис. 2.11. Кобель, прогибающийся при подвешивании между двумя точкалАи
Эксперимент 6. Повышение прочности конструкции 29 Что же делать? Давайте создадим форму, которая использует отличную ус- тойчивость фанеры к растяжению и сжатию, чтобы преодолеть ее низкую ус- тойчивость к изгибу. Я предлагаю выбрать форму двутавровой балки (рис. 2.12) - она будет пре- образовывать входящее изгибающее усилие в сжатие (наверху) и в растяжение (внизу) в большей степени, чем в разрывающее усилие (рис. 2.13). Рис. £.12. Двутавровая балка, вид с торца Рис. 2.13. Pcvпределение сгибающей силы в двутавровом балке Вы можете сделать простую двутавровую балку для проверки, использовав для этого три фанерных планки и склеив их вместе в форме двутавровой балки столярным клеем. Когда я строил свою двутавровую балку, то вначале прикле- ил нижнюю планку к вертикальной опоре и закрепил эту конструкцию в струб- цинах на концах и в середине. Дав клею высохнуть в течение дня, я приклеил к сборке верхнюю планку, вновь закрепил сборку в струбцинах и оставил на ночь, чтобы клей застыл. Повторив эксперимент с двумя брусками и весами, я убедился, что не могу сломать двутавровую балку даже если становлюсь на нее (а вешу я 200 фунтов, или 91 кг, что в 50 раз превышает усилие, которое потребовалось, чтобы сломать отдельный кусок фанеры). Я был поражен. Может быть, вам интересно, что будет, если просто склеить вместе три ку- ска фанеры плоскими сторонами друг к другу, по сути дела создав более толстый кусок фанеры. Вы можете ожидать, что получите такой же выигрыш в устойчи- вости к изгибу, как и при создании двутавровой балки. Если бы вы попытались
30 ГЛАВА 2. Конструкция роботов это сделать, то установили бы, что устойчивость к изгибу увеличится, но увели- чение будет всего лишь линейным. Вы установите, что у двух кусков фанеры устойчивость к изгибу будет по сути вдвое больше устойчивости отдельного куска, у трех кусков - втрое и т. д. Несмотря на феноменальный выигрыш в прочности на изгиб, который дает форма двутавровой балки, и на то, что изготовить ее несложно, я не собираюсь использовать преимущества этой конструкции ни в одном из роботов, представ- ленных в этой книге, просто потому, что в этом нет нужды. Когда вы посмотрите на конструкцию роботов, которых я создал для этой книги, то заметите, что все они довольно короткие, так как чем больше свобода движения деревянной дета- ли, тем больше разрывающее усилие, действующее на волокна древесины. Вы убедитесь, что, выбирая отрезки фанеры сравнительно короткими (а также ши- рокими, чтобы усилие распределялось по большей площади), можно заметно повысить устойчивость древесины к изгибающим усилиям. Благодаря тому, что я придерживаюсь правила о коротких и широких кусках фанеры, мне не нужно беспокоиться о повышении прочности кусков фанеры, которая используется как конструкционный материал для роботов. Эксперимент 7. Отделке древесины Детали Две планки из авиацион- ной фанеры размером 30 х 2,5 см и толщиной 0,5 см, выпиленные в ходе предшествующего эксперимента 5. Три кус- ка авиационной фанеры , Шкурка для алажного/сухо го шлифования на бумаж- ной основе зернистостью 220. Крышки от бутылок. Старые газеты. Старая тряпка. Грунтовочная крас- ка для автомобильных кузо- вов в аэрозольной упаковке. Акриловая краска для ра- бот в условиях морского судна в аэрозольной упаковке размером 12 х 9 см и толщиной 0,5 см, выпиленные в ходе предшествующе- го эксперимента Ничто так не портит впечатления от робота, созданного в домашних услови- ях, как вид некрашеной фанеры или другого дерева на его корпусе. На выстав- ках по робототехнике я видел технически совершенные роботы, о которых го- ворили, что они выглядят так, будто их только что «слепили». Другие же роботы, довольно плохого качества, получали немало хороших отзывов за свой внешний вид, хотя их единственное преимущество состояло в хорошо об- работанном куске дерева! В данном эксперименте я покажу вам, как быстро и просто отделывать куски древесины, не только чтобы робот лучше выглядел,
Эксперимент 7. Отделко древесины 31 но и чтобы обеспечить некоторые преимущества по сравнению с конструкци- ей из некрашеной древесины. Процесс отделки фанеры потребует по несколько минут на протяжении нескольких дней. Это позволит вам: • удалить пыль с поверхности фанеры (что обеспечит хорошую поверх- ность для наложения и снятия двусторонней липкой ленты) и волокна древесины (что также обеспечит более эффективное связывание клея и липкой ленты); • сгладить поверхность древесины и уменьшить пузыри, появляющиеся по прошествии времени, когда древесина отсыревает; • устранить заусенцы и минимизировать площадь поверхности заусенцев при сверлении; • легко стирать маркировку, нанесенную карандашом или чернилами, если ее нужно исправить. В конце этого эксперимента у вас будут две окрашенные фанерные планки и три куска фанеры, которые нам потом понадобятся. Я предпочитаю краску в аэрозольной упаковке; если пользоваться ею пра- вильно, то почти совсем не образуется грязи, и не нужно мыть кисти. В автома- газине купите баллончик грунтовки (обычно я выбираю серую), а в хозяйствен- ном магазине - баллончик акриловой краски для внутренних и наружных работ (или для использования на морских судах) своего любимого цвета (я исполь- зую краску KrylonT). Лично я люблю красйый цвет, так как он привлекает вни- мание и создает жизнерадостное настроение. Кроме того, он хорошо маскиру- ет дефекты на древесине или изготовленных вами деталях. Покраску производите в гараже или другом хорошо вентилируемом поме- щении. Застелите пол газетами и завесьте ими вертикальные поверхности. Положите на газету крышки от бутылок - они будут подставками для материа- лов, которые вы собираетесь красить. Применять крышки от бутылок вам со- всем не обязательно: сгодятся, например, и кусочки дерева или другие облом- ки. Убедитесь только, что, когда вы красите, ваши подставки меньше, чем периметр отделываемого объекта. Вам же не захочется, чтобы над подставкой фанера осталась неокрашенной! Слегка потрите шкуркой поверхность фанеры. Отделывая две планки, я просто окрасил их с одного конца на длину 6 дюймов (15 см). Возможно, вы захотите зачистить кромки планок более энергично, чтобы снять всю лишнюю древесину, которая может превратиться в заусенцы. Как только вы закончите с этим, смочите тряпку и протрите поверхность, которую вы обработали шкур- кой, чтобы удалить пыль. Потрясите баллончик с грунтовкой. Обычно внутри баллончика имеется стальной шарик, а в инструкции вам посоветуют трясти баллончик до тех пор, пока шарик не станет двигаться внутри, не встречая сопротивления, легко. Нач- ните с двух фанерных планок и поместите одну из них на крышки от бутылок,
32 ГЛАВА 2. Конструкция роботов служащие опорой для подлежащей окраске поверхности. Покрасьте примерно 6 дюймов (15 см) от всей длины планки, начиная с конца, опирающегося на крышки от бутылок. Для высыхания большинства грунтовочных красок требует- ся примерно 30 мин. Проверьте инструкции на баллончике, прежде чем перехо- дить к следующему этапу по зачистке детали и наложению новых слоев краски или грунтовки. После первого применения грунтовки вы, вероятно, обнаружите, что по- верхность дерева очень неровная. Дело в том, что поднимаются вверх концы обрезанных волокон древесины, когда их смачивает грунтовка. Повторите операцию зачистки шкуркой (вместе с зачисткой краев деревянной детали и протиркой влажной тряпкой), прежде чем нанести новый слой грунтовки. После того как нанесен второй слой, дайте ему высохнуть, слегка обработай- те шкуркой и снова протрите. Теперь все готово к покраске. Потрясите баллончик и распылите краску на фанерные планки тонким, ровным слоем. Скорее всего поверхность блестеть не будет. Это нормально. Когда краска высохнет, слегка зачистите поверхность шкуркой, протрите влажной тканью и нанесите более толстый слой краски. Когда покрытие просохнет, вы убедитесь, что поверхность фанеры стала гладкой и блестящей. Некоторые неровности древесины будут все еще видны, но на это не стоит обращать внимания. Вам не нужно снова зачищать краску шкуркой - фанера теперь готова для использования в моделях роботов. Сделав две планки, можете обработать три прямоугольных куска фанеры таким же образом. Разница будет только в том, что после каждого этапа вместо того чтобы продолжать процесс и зачищать поверхность шкуркой, вы должны перевернуть кусок фанеры и нанести покрытие из грунтовки или краски на другую сторону. Зачистите обе стороны, а затем нанесите следующий слой. Когда я крашу такие куски фанеры, я обычно распыляю краску дважды в день (чтобы гарантировать полное высыхание грунтовки или краски). Это значит, что для отделки древесины мне требуется четыре дня. Советую вам заранее спланировать, сколько кусков потребуется одновременно. Кохда вы красите прямоугольные куски фанеры, не забудьте покрасить кромки. Акриловая крас- ка поможет вам соединять куски фанеры, минимизировав вероятность полу- чить на древесине заусенцы. Две частично окрашенные деревянные планки будут использоваться в сле- дующем эксперименте, а три полностью окрашенных прямоугольных куска - в качестве основы для мобильных роботов, представленных в книге далее.
ftaldHausiik Эксперимент 8. Типы клея 3 3 Эксперимент 8. Типы клеп Детали Два куска частично отде- ланной авиационной фа- неры размером 30 х 2,5 см и толщиной 0,5 см Инструменты е Небольшая струбцина для дерева. Клей, расплавляе- мый перед употреблением. Растворители. Клей Krazy GlueT/LoctiteT. Столярный клей. Быстро отверждаемая эпоксидная смола. Контак- тная паста. Двухсторонний клейкая лента. Пистолет для склеивания горячим клеем Как вы думаете, какая самая главная проблема возникает, когда робот показы- вают на соревнованиях? Большинство подумает о таких вещах, как севшие ба- тареи или кодирование, которое не может работать в условиях реальной окру- жающей среды (что порождает проблемы с шумами светлого поля или рабочей поверхности). Однако обычно это роботы, которые разваливаются из-за того, что их элементы не очень хорошо скреплены между собой. Часть проблемы со- стоит в применении неподходящих конструкционных материалов (например, разрушающихся в процессе использования). Особая же проблема - примене- ние в роботах неподходящих связывающих веществ и крепежа. И это понятно, потому что имеется громадное множество видов клея и ме- ханического крепежа (о последнем речь пойдет чуть ниже). Перечень, приве- денный выше под пиктограммой Инструменты, представляет собой лишь ма- лую часть от массы имеющихся в продаже видов клея. В этом эксперименте я хотел бы проверить, как действуют некоторые виды клея, используя для этого две частично отделанные фанерные планки из предыдущих экспериментов. Этот эксперимент содержит краткое и неполное объяснение, касающееся раз- личных типов клея. Прежде всего я должен сделать несколько предварительных замечаний. • Клеи лучше действуют, когда ими соединяют две детали из одного мате- риала. Когда соединяются неодинаковые материалы, используйте меха- ническое крепление (например, болт с гайкой), как это описано в следу- ющем эксперименте. • Клеи являются химикатами и требуют осторожного обращения. Необхо- дима гарантия того, что ни вы, ни другие люди не получат химического отравления и не приклеятся к деталям робота. Обязательно прочитайте и тщательно изучите инструкции и предостерегающие надписи. • Клей можно также называть связывающим веществом. • Слой клея между двумя объектами называется швом.
34 ГЛЙВЯ 2. Конструкция роботов • Растворители служат для разжижения клеев, чтобы увеличить время их отверждения или смыть клей с поверхности. • Клеи не высыхают; правильно говорить, что они отверждаются или твер- деют. • Невозможно повторно активировать клей, намочив шов водой или ра- створителем для клея. • Наилучшая проверка для клея состоит в том, чтобы использовать его для соединения двух типичных объектов, подождать, пока клей затвердеет, а затем оторвать объекты друг от друга. Клей считают подходящим для данного применения, если при этом разрушится не шов, а материал скле- иваемых объектов. Иначе говоря, клей и его соединение с материалом должны быть прочнее, чем сам материал. Чтобы помочь вам понять, какой тип клея (из перечисленных под пикто- граммой Инструменты) и в каком случае вы должны применять, я составил табл. 2.3, в которой перечислены типы клеев и материалы, для которых они наиболее подходят. Эти клеи можно найти практически в любом хозяйствен- ном магазине. Таблица 2.3. Клеи и материалы, для которых они наиболее подходят Клей Материалы Комментарии Weldbond Дерево/Печатные платы Отлично скрепляет оборванные провода и изолирует печатные платы Растворители Пластмассы Сплавляют оба пластика вместе Krazy Glue / Loctite Металл/ Пластмасса Лучше всего для стопорения гаек Столярный клей Дерево Неокрашенная древесина Пятиминутная эпоксидная смола Все Очень прочный шов Контактный цемент Плоские детали, пористые материалы Хорош для соединения бумаги/ ламината с древесиной Двухсторонняя лента Гладкие поверхности Хороша для того, чтобы крепить компоненты конструкции робота Пистолет с горячим клеем Все Не рекомендуется Я использую только клей Krazy Glue для предотвращения самопроизвольно- го отвинчивания гаек от болтов*. Двухсторонняя липкая лента отлично подхо- дит для закрепления на основании робота батарейных источников питания и сервомеханизмов. Я рекомендую применять клейкую ленту для наружных ра- бот сверхсильной фиксации (5 фунтов, или 2,25 кг) марки ЗМ Scotch Super Strength. Я хочу предостеречь вас от применения горячего клея (его наносят при помощи пистолета для склеивания), потому что он держит не так хорошо, как другие клеи. Кроме того, он Не очень хорошо выдерживает вибрацию и может оставлять длинные липкие потеки. В технической документацигГдля такой операции применяют термин «контрить». Контрить гайки можно как клеем, например, типа «Момент», так и любой нитрокраской. Есть и механический спо- соб, при котором на стержень болта навинчивают дополнительную гайку (называемую контргай- кой), которая вместе с основной гайкой создает натяг, предотвращая отвинчивание. - Прим, rupee.
Уа1а11аи$цЬ Эксперимент 9. (ойки и болты 3 5 Этот эксперимент довольно прост: используя две планки из частично окра- шенной фанеры, проверьте, насколько подходят разные виды клеев как для окрашенных, так и для неокрашенных участков древесины. Результаты провер- ки сведите в таблицу. Мысль о том, чтобы приклеить самого себя (или кого-то еще) к чему-нибудь вроде стула может показаться смешной, но имеется реальная опасность нанести вред, если применяется ядовитый клей или попытки удалить клей производят, не прочитав предупреждающих надписей на его упаковке или не проконсуль- тировавшись с врачом. Следуйте инструкциям на упаковке, чтобы быть уверен- ным в правильности применения клеев и в том, что любые нужные для удале- ния клея растворители находятся под рукой. Выполнив этот эксперимент, я установил, что столярный клей является наи- лучшим для неокрашенной древесины, а двусторонняя липкая лента лучше все- го годится для отделанной древесины. Возможно, вы установите, что эпоксид- ная смола быстрого отверждения способна приклеить что угодно к чему угодно. Вас удивит, насколько неэффективны другие виды клеев при склеивании дере- вянных планок. Эксперимент 9. Пайки и болты Детали Колода игральных карт Плоская рабочая поверх- ность В этом эксперименте мне хотелось бы рассказать об основных деталях разъем- ного крепления - гайках и болтах. Вероятно, вы уже не раз использовали их и можете посчитать ненужным много разговаривать на эту тему, однако пока вы не понимаете принципов, на которых основаны эти детали. Когда я говорю крепежная деталь, я имею в виду деталь, которая будет соеди- нять два куска материала. В предыдущем эксперименте вы испробовали на от- деланной и необработанной древесине целый ряд различных клеев, чтобы луч- ше понять, как действуют клеи, и для каких целей они наилучшим образом подходят. В этом эксперименте я хотел бы объяснить, как гайка и болт скреп- ляют между собой два куска материала, позволяя вам с легкостью разобрать это соединение. Вы можете обратить внимание на другие механические крепеж- ные детали (включая заклепки, скобы, шурупы и гвозди (рис. 2.14). Однако я хотел бы, чтобы вы сосредоточились именно на болте с гайкой. Другие крепеж- ные детали можно использовать только единожды (разборка соединения
36 ГЛЙВЙ 2. Конструкция оботоа может повредить крепежную деталь или материал), и большинство из них со временем расшатываются из-за вибрации и нагрузок. Взгляните: на Схематическом изображении болта нарисованы горизонталь- ные черточки, показывающие резьбу - металлическую заостренную кромку, про- водящую вокруг стержня болта, которая ввинчивается в гайку (рис. 2.15). Длину болта нужно выбирать так, чтобы она превышала суммарную толщину соединяе- мых деталей, шайб и, наконец, гайки хотя бы на полтора витка резьбы. Рис 2.15. Различные части крепления при помощи болта и гайки Шайбы представляют собой круглые плоские кусочки металла, используе- мые для того, чтобы распределять усилие, которое прикладывают гайка и болт к материалу, с целью уменьшить риск повреждения материала. Ниже я еще объясню, чем шайбы могут быть для вас полезны. При скреплении материалов болтом с гайкой вначале гайка наворачивает- ся легко, но по мере того, как вы их завинчиваете, й материал подвергается сжатию, повернуть гайку становится труднее. А.вот когда гайку отвинчивают, некоторая изначальная жесткость постепенно ослабевает, так как гайка пере- стает находиться в контакте с соединяемыми материалами. Причина того, что гайку становится труднее повернуть, состоит в соединяемых материалах и в воздействии растяжения на стержень болта. Технический термин
flatallaus^l!. Эксперимент 9.1ойки и болты 37 для этого явления - предварительный натяг (pretension). Поскольку болт подверга- ется действию предварительного натяга’ то сила, с которой он воздействует на резьбу, возрастает, вызывая усиление трения, испытываемого гайкой (рис. 2.16). Силы, действующие на гайку Крутящая сила РисХ16. Трение и направление сил, действующих на болт и гайку Воздействие предварительного натяга на резьбу имеет направление, отли- чающееся от направления крутящей силы от гайки. По мере того как сила пред- варительного натяга возрастает, трение, противодействующее повороту гайки, усиливается. Тем самым образуется порочный круг; чем сильнее завернута гай- ка, тем больше предварительный натяг, а чем больше предварительный натяг, тем труднее повернуть гайку из-за трения. Так будет продолжаться, пока воз- можность повернуть гайку не исчезнет совсем. Сила, обусловленная трением, определяется формулой: Jnchon fntienaon Fpretendon(сила предварительного натяга), умноженная на постоянную величи- ну, дает силу трения гайки. Помните, что это трение действует в обоих направ- лениях, как при затягиваний гайки, так и при ее отворачивании. Чтобы продемонстрировать, как действует эта сила, я мог бы привести экс- перимент по измерению предварительного натяга болта, а также величины силы, необходимой, чтобы повернуть гайку, но я хотел дать вам что-нибудь более простое и в то же время забавное. Давайте построим карточный домик (рис. 2.17). Поверхность игральной карты довольно скользкая. Когда вы ставите на нее другую карту под очень малым острым углом к вертикали (близко к положению, когда карты взаимно перпендикулярны), трение карты, являющееся функцией силы гравитации, будет удерживать карту, хотя нижнее ребро карты будет пы- таться скользить (рис. 2.18). Взгляните, что случится, если карту поставить под острым углом большей величины. Для случая, показанного в’ левой части ри- сунка, значение силы трения бокового скольжения, обусловленного гравитаци- ей, больше силы бокового скольжения. Увеличение трения благодаря повышенной силе гравитации у игральной карты в левой части рисунка аналогично увеличению трения на поверхности
38 ГЛАВЙ 2» Конструкция роботов Рис. £.17. Карточный домик, показывающий, как сила гравитации может увеличить силу трения Рис. 2.18. Трение, удерживающее карту в вертикальном положении, когда сила трения, обусловленная силой тяжести, которая направлено вертикально вниз, превышает силу бокового скольжения, обусловленную гравитацией резьбы гайки. Простое навинчивание на болт зачастую вызывает достаточное трение, чтобы гайка самопроизвольно не отвернулась. Однако бывают случаи, когда этому процессу нужно помочь. Ниже показаны три наиболее простых вида шайб, с которыми вы будете работать (рис. 2.19). Плоская шайба - это простое металлическое кольцо, позволяющее распределить силу между болтом и гайкой, а также защитить материал от повреждения этими крепежными деталями (особенно при затягивании болта с гайкой). Остальные два вида шайб выполняют ту же функцию, что и плоская шай- ба, но еще и помогают удерживать гайку на месте. Поэтому они известны как Вид сбоку Вид сверху Шайба с отверстием Шайба в виде звездочки Гровера с отгибающимися концами Рис. 2.19. Типы шайб
ftataHausiiik Эксперимент 10. Пойко и скручивание проводов 39 «пружинящие» шайбы. Шайба с отверстием в виде звездочки с отгибающими- ся концами имеет по внутреннему диаметру несколько фигурных зубцов, кото- рые будут поворачиваться при затягивании гайки и «вгрызаться» в материал, обеспечивая большее трение. Шайбы такого типа хороши для древесины, пла- стика и ламинатов (таких, как материалы, из которых делают печатные платы). Шайба Гровера действует, как небольшая пружина, и оказывает давление на гайку по мере ее завинчивания, в дополнение к предварительному натягу си- стемы и повышая взаимное трение гайки и болта. Шайба Гровера должна при- меняться только с металлами. Если вы не хотите задействовать пружинящую шайбу, вы всегда можете использовать что-нибудь вроде капли клея Krazy Glue, нанесенной на резьбу, чтобы удерживать гайку на месте (сохраняя в то же вре- мя возможность удалить ее при необходимости). В последующих экспериментах я буду указывать некоторые гайки и болты, а в других случаях предоставлю вам возможность выбрать крепеж самим. Для большинства самодельных роботов типы гайки, болта и шайбы не так уж важ- ны; в наихудшем случае, когда робот перевернется, вам придется снова затяги- вать гайки. Если вы работаете над мощным и очень тяжелым роботом, то дол- жны проконсультироваться с экспертом или обратиться к справочнику по механике, чтобы определить, какие гайки, болты и шайбы следует применять. Эксперимент 10. Пайке и скручивание проводов Детали Отрезки проводя. Термо- усаживаюарясм изоляци- онная трубка диаметром Змм Плоская рабочая поверх- ность. Паяльник с подстав- кой. Пруток припоя 40/60 с сердцевиной из флюса. Спички. Кусачки, инстру- мент для зачистки проводов Если вы хотите создавать собственные роботы, научитесь паять. Пайка мягким припоем (soldering) - это процесс соединения двух кусков металла с присадо- чным материалом. Этот присадочный материал для электронных цепей обычно представляет собой сплав олова со свинцом, или припой, и для его применения нужен нагрев. Пайка мягким припоем отличается от сварки и пайки твердым припоем, при которых материалы, подлежащие соединению, нагреваются до температуры их точки плавления, а затем соединяются под давлением в при- сутствии присадочного материала или без него. В результате сварки или пайки твердым припоем получается прочный сварной шов, а место соединения при пайке мягким припоем имеет хорошие электрические характеристики. Взгляните на соединенные куски меди (рис. 2.20). Температура кромок двух кусков меди была доведена до точки плавления припоя, который натек между ними сверху, формируя электрическое и механическое соединение. Чтобы
40 ГЛЙВЯ 2. Конструкция роботов «Ямка в припое» «Интерметаллические» зоны Рис 2.20. Полное соединение в разрезе разрушить такое соединение, просто расплавьте припой. Вы должны усвоить несколько специальных терминов, касающихся пайки мягким припоем, преж- де чем пытаться соединять пайкой провода в этом эксперименте. Хотя идея, лежащая в основе пайки мягким припоем, в данном случае состо- ит в создании связи за счет плавления припоя между двумя кусками меди, полу- чается также смесь меди с припоем, известная как интерметаллическая зона (рис. 2.20). Эта смесь припоя с медью фактически представляет собой сплав (смесь металлов), зачастую более прочный и с более высокой температурой плавления, чем медь или припой. Задачами при пайке является приложение тепла в течение времени, минимально возможного для создания качественно- го соединения, а также поддержание минимально узкой интерметаллической зоны. Лужение выполняется путем нагревания куска меди и нанесения на медь тон- кого слоя припоя с тем, чтобы препятствовать коррозии. Во многих случаях провода и электронные компоненты подвергаются предварительному луже- нию, чтобы минимизировать возможность окисления меди, что сильно затруд- нило бы пайку. Определить, что провод или вывод компонента подвергался лужению, легко: он будет иметь серый или серебристый цвет в отличие от ожи- даемого медного цвета. Припой изготавливают из смеси олова и свинца с различным процентным соотношением этих металлов. Когда указывают марку припоя, то первым запи- сывают содержание олова (припой 40/60 состоит из 40% олова и 60% свин- ца). В составе некоторых припоев имеется серебро, однако оно не улучшает способность паяного соединения проводить электрические сигналы; его добав- ляют, чтобы улучшить механические параметры соединения. Такой припой нам не понадобится. Эвтектический припой, имеющий низкую температуру плавления и применяемый в электронных устройствах с поверхностным мон- тажом, - тоже. Имеются также припои, не содержащие свинца, и электронная промышлен- ность находится в процессе перехода к монтажу всех электронных устройств такими припоями к 2010 году. В настоящее время припой, не содержащий свин- ца, трудно найти и использовать с соответствующими электронными деталя- ми. Я рекомендую работать со стандартными электронными компонентами
Эксперимент 10. Пойко и скручивание гроеодов 41 припоями 37/63 или 40/60 (пруток с сердцевиной из флюса на основе кани- фоли) до тех пор, пока вы не убедитесь, что компоненты, с которыми вы рабо- таете, предназначены для пайки припоем, не содержащим свинца. На момент написания этой книги очень немногие компоненты были предназначены для пайки такими припоями. Свинец в составе припоев не повлияет на здоровье, если вы: • будете паять в хорошо проветриваемом помещении; • не будете курить во время пайки (сигаретный дым с парами свинца могут образовать газ из группы цианидов); • будете мыть руки после пайки. Медь должна быть хорошо очищена, чтобы припой прилип к ней. Это не должно оказаться серьезной проблемой, потому что новые радиодетали будут иметь чистые выводы; если же вы соединяете провода, то они были защищены пластиковой оболочкой (ее называют изоляция}. Чтобы и в дальнейшем обеспе- чить прилипание припоя к меди, в большинстве случае припой для электрон- ных схем поставляется вместе с сильно разведенной, активируемой путем на- гревания кислотой. Ее называют флюс, и она очищает медь от окислов и пыли. Продается много разных типов флюсов, мы же будем использовать канифоль. Кислотные флюсы применяются для сантехнических работ, а неочищенных флюсов следует избегать, так как грязь с одного соединения может повлиять на качество пайки другого (флюс на основе канифоли очищен с помощью воды или изопропилового спирта). Чтобы нанести припой, вам понадобится паяльник. Удобный паяльник для цифровой электроники стоит около 20 долларов. Маломощная установка для пайки состоит из небольшого легкого паяльника, соединенного с базой, кото- рая контролирует как мощность паяльника, так и степень нагрева его жала. При пайке жало паяльника следует периодически вытирать влажной губкой, чтобы очистить его от горелых частиц или излишков припоя. Внутри изолированного держателя паяльника находятся нагревательный элемент и съемное предварительно облуженное жало (рис. 2.21). Если полуда на конце съемного жала со временем будет утрачена, либо если вы не сможете его очистить, смените жало. Не пытайтесь самостоятельно затачивать жало напильником и повторно лудить его. Затачивая жало напильником, вы будете воздействовать на медь жала, оно будет загрязнять припой, и в результате об- разуются сплавы, о которых я вас предупреждал*. * В наших условиях вам придется делать все не так. Новый паяльник российского производства вначале нужно прокалить в течение трех часов, чтобы выгорели остатки технологических мате- риалов из обмотки нагревательного элемента. При этом выделяется очень едкий дым, поэтому не делайте этого в закрытом помещении, а лучше всего включенный паяльник вывесить за окно. Затем паяльник выключают, остужают и напильником придают кончику жала нужную форму. Форма, которую вы видите на рисунке, подходит для точечной пайки (выводы микросхем), а для деталей с более толстыми выводами (конденсаторы, резисторы и т. д.) лучше заточить жало дву- мя фасками, чтобы образовалась кромка шириной 3-4 мм, так что лучше иметь два паяльника. Далее облудите жало - у нас они выпускаются необработанными. - Прим, перев.
42 ГЛЙЙЙ 2. Конструкция роботов Держатель Нагревательный элемент Съемное жало Кончик жала, покрытый припоем Рис. 2.21. Жало паяльника Убедитесь, что покупаете паяльник, предназначенный Для монтажа электро- ники. Его мощность должна составлять примерно 30 Вт. Более высокий уро- вень мощности вовсе не лучше, он может привести к случайному повреэвдению электронной схемы. Если же уровень мощности меньше, то может не получить- ся паяное соединение удовлетворительного качества. Паяльник на 30 Вт или установка для пайки - идеальный вариант. Чтобы жало не коснулось поверхно- сти рабочего места, позаботьтесь о металлической подставке для паяльника. Паяльники нагреваются, поэтому всегда работайте с ними аккуратно. Не проверяйте степень нагрева жала пальцем или другими частями тела. Проверь- те, расплавит ли он кусочек припоя или прикоснитесь им к губке для чистки паяльника, чтобы услышать шипение. Помните: шрамы, полученные в сраже- ниях, могут поведать, что вы герой, а шрамы, которые вы получили во время пайки, говорят лишь о том, что вы бестолковы. Ну-с, поэкспериментируем: попытаемся спаять два отрезка провода (рис. 2.22). Это отличный, дешевый способ приобрести основные навыки пайки, он также поможет сохранить от порчи печатную плату (Приложение 3). На шаге 1 мы соединим зачищенные жилы двух отрезков стандартного про- вода (см. рис. 2.22). Зачистка проводов или удаление изоляции выполняет- ся инструментом для зачистки проводов либо острым ножом. Снимите изо- ляцию с пройодов на длину 6 мм и попытайтесь скрутить их вместе, как попытался это сделать я. На кусочке припоя проверьте, нагрелся ли паяльник. Подождите, пока при- пой расплавится от соприкосновения с паяльником. Вы также можете увидеть облачко дымка, когда прижимаете припой к паяльнику. Это под воздействием тепла испаряется флюс. Когда паяльник нагреется, подержите его несколько секунд на соединении проводов и нанесите на него припой. Результат должен выглядеть примерно, как шаг 2 (см. рис. 2.22), поверхность пайки должна быть
Эксперимент 11. Монтаж печатной плоты (Приложение 3) 43 Шаг1 Механическое соединение проводов Шаг 2 Соединение проводов пайкой ШагЗ Натягивание изоляционной трубки Шаг 4 Готовое соединение проводов Рис. 2.22. Соединение двух проводов с помощью пойки блестящей, а не тусклой. Когда провода будут спаяны, вы можете заизолировать соединение при помощи термоусаживающейся изоляционной трубки диаме- тром 3 мм (см. рис. 2.22: шаги 3 и 4). Как подразумевает ее название, термоуса- живающаяся изоляционная трубка сжимается, когда на нее воздействует тепло (например, тепло горящей спички). Эксперимент 11. Монтаж печатной платы (Приложение 3) Детали Печатная плата из Прило- жения 3. Д ве резисторных сборки 220 Ом с 16 выво- дами в/irp.'Kiu*'* корпу- сах (корпусах DIP). Д ва кон- денсатора любого типа емкостью 0,01 мкФ. Кно- Инструменты Паяльник или установка для пайки. Пруток припоя 40/60 с сердцевиной из флюса. Спички. Кусачки, инструмент для зачистки проводов. Отвертка , под винты 4-40* почный переключатель с кратковременным срабатыванием типа CKN9009. Устано- «л№я панель шириной 15 мм с 24 выводами. Одноряд- ный 32-контактный разъем под печатный монтаж. Гнез- довой 9-контактный разъем D-Shell для печатного монтажа. Соединитель 9-вольтоеой батареи Keystone 1294. Кодовая (длиной 82 мм) мквткы плата. Два винта с плоской головкой длиной 6,5 мм типа 4-40 и гайки к ним Российские аналоги деталей, материалов и оборудования приведены в Приложении 1. - Прим, перев.
44 ГЛАВА 2, Конструкция роботов Печатная плата из Приложения 3 послужит основой для монтажа электронной схемы управления вашим роботом» После монтажа печатной платы (что озна- чает установку на нее электронных компонентов, перечисленных под пиктог- раммой Детали в начале данного эксперимента), печатная плата обеспечит: • соединитель батареи напряжением 9 В, для электропитания в процессе ваших экспериментов; • макетную плату для временного монтажа цепей; • установочную панель для микросхемы Parallax BASIC Stamp 2 (BS2), контроллера, применяемого в экспериментах, которые представлены в книге; • набор токоограничивающих резисторов для защиты цепей ввода/вывода (I/O) микросхемы BS2; • программный интерфейс для BS2. Отдельные термины в списке деталей и функций, присущих печатной пла- те, могут оказаться для вас незнакомыми. Не беспокойтесь: в ходе эксперимен- тов вы разберетесь с ними и поймете, как их использовать при разработке соб- ственного робота. Описания компонентов, приведенного под пиктограммой Детали, достаточно, чтобы купить их, даже если вы никогда не работали с элек- троникой прежде. Попросите совета у продавца, но не забудьте захватить кни- гу и печатную плату. В предыдущем эксперименте я представил вам основы пайки, а в данном экс- перименте я расширю эти знания, и на печатную плату вы установите методом пайки компоненты с выводами под печатный монтаж через сквозные металлизиро- ванные отверстия. Как видно из названия, вывод проходит сквозь отверстие в печатной плате. Стенки отверстия покрыты медью (или медью с тонким слоем полуцы из припоя), и после того, как вывод вставляют в отверстие, их соединя- ют пайкой (рис. 2.23). Сделайте паяное соединение. Выполнив его поперечный разрез, вы увидели бы примерно следующее (рис. 2.24). Припой не только запол- няет отверстие, но вместо того, чтобы принять форму шара, образует кониче- ский ободок (см. рис. 2.24), который должен быть блестящим. Когда вы впервые будете паять компоненты с выводами для печатного монтажа через сквозные ме- таллизированные отверстия, то установите, что форма может быть более округ- лой, чем коническая, а кончик пайки тусклый и сморщенный. Собираясь паять, я грею паяльник в течение 15 минут (если следить за постав- ленным на огонь чайником, то он не закипит никогда; так же и здесь - паяльник, за которым наблюдают, нагревается бесконечно долго). Чтобы сделать паяное соединение в сквозном металлизированном отверстии, я прикладываю горячий паяльник к выводу элемента и плате примерно на 1 .с (вы увидите, как немного остаточного припоя стекает с кончика жала на вывод и плату). Затем я прикаса- юсь к нему прутком припоя. Ваши первые попытки могут привести к не таким уж великолепным результатам, но вы всегда можете подправить их, прикоснув- шись к соединению паяльником на несколько секунд без припоя. Я уверен, что, сделав первые несколько соединений в ходе этого эксперимента, вы станете профессионалом.
Эксперимент 11. Монтаж печатной плоты (Приложение 3) 45 Рис. 2.23. Создание паяного соединемш в сквозном мвгтатизфоеаннам отверстии Рис. 2.24. КочвстввьмзЮ паяные соединения Для начала установите сверху на печатную плату две 16-контактные рези- сторные сборки в DIP-корпусах (рис. 2.25). Верхней стороной платы считается та сторона, на которую белой краской нанесены маркировочные надписи. Мар- кировка компонентов будет в дальнейшем скрываться под возрастающим коли- чеством деталей, но эти два корпуса с двухрядным расположением выводов имеют на одном из концов метку в виде кружочка или квадратика, напечатан- ного на корпусе около одного из выводов в углу. Установите DIP-корпуса в пози- ции на плате, обозначенные RP1 220 и RP2 220, так чтобы маркировка совпала с вырезом, нарисованным на плате. Вы можете решить, что вам нужно вставить выводы чуть пониже, чтобы они прошли через отверстие с обеих сторон. Установив резисторы на верхней стороне платы, переверните ее и начинай- те паять выводы, как описано выше. Может быть, вам захочется вначале при- паять два угловых вывода, чтобы DIP-корпус стоял ровно. Если DIP-корпус при- поднялся, то, надавив на него в то время, как с другой стороны вы греете его паяльником, можно опустить его пониже на плату. Когда DIP-корпуса будут вставлены в плату и припаяны по углам, вы можете двигаться дальше и припа- ять остальные выводы (рис. 2.26).
46 ГЛЯВЯ 2. Конструкция роботов Рис. 2.25. Резисторные сборки в DIP-корпусох, установленные на печатной плоте Рис. 2.26. Резисторные сборки в DIP-корпусох, впаянные в плату Закончив с резисторными сборками, вы можете впаять в плату установо- чную панель шириной 15 мм с 24 выводами и кнопочный переключатель крат- ковременного срабатывания. Впаивая панель, помните о совпадении любых меток или маркировок на конце панели с меткой, изображенной на плате. Что же касается переключателя, то вы должны заметить, что с одной стороны он длиннее, чем с другой; если вы учтете это, то его будет легко вставить в отвер- стия платы, и он будет правильно ориентирован. Установите на плату два конденсатора емкостью 0,01 мкФ. Выводы конден- саторов должны отстоять друг от друга на 2,5 мм и легко входить в отверстия с маркировками СП и С12 на печатной плате. Вставив выводы конденсато- ров в плату, переверните ее, так чтобы компоненты находились на поверхно- сти стола (они будут той же высоты, что и резисторные сборки) и припаяйте выводы. После пайки укоротите их на ту же длину, что имеют концы выводов DIP-корпусов. Если вы установили компоненты в указанном порядке, вы обнаружите, что я объединил все компоненты небольшой высоты, а теперь вам придется впаи- вать более высокие компоненты. Начните с однорядного разъема. Вначале уко- ротите кусачками восемь выводов с одного конца разъема, а затем впаяйте их в печатную плату. Удерживая одной рукой печатную плату и соединитель, при- коснитесь паяльником к запаянным выводам, чтобы убедиться, что разъем в точности перпендикулярен плате. Как только вы будете удовлетворены резуль- татом, припаяйте остальные выводы. Весьма просто впаять последние два компонента, 9-контактный гнездовой разъем D-Shell и соединитель 9-вольтовой батареи. Соединитель D-Shell должен
Эксперимент 11. Монтаж печатной плоты (Приложение 3) 47 иметь металлические направляющие, которые вставляются в большие отвер- стия с обеих сторон соединителя J3 и фиксируют его. Эти направляющие сле- дует впаять в печатную плату наряду с выводами соединителя. У соединителя 9-вольтовой батареи имеются две направляющие, которые впаиваются в отверстия печатной платы, а кроме того, положение соедините- ля фиксируется двумя винтами 4-40 с гайками. В идеале винты должны быть потайными, что позволяет вставить 9-вольтовую батарею в соединитель и не вынимать ее. Хотя я предусмотрел четыре отверстия для установки соедините- ля батареи, вам придется использовать только два отверстия, находящиеся дальше от контактов батареи. У вас почти все готово! Осталось лишь добавить макетную плату. На ее об- ратной стороне должен быть кусочек двухсторонней липкой ленты, чтобы вы могли прикрепить ее к печатной плате (рис. 2.27). Когда я устанавливал макет- ную плату, я развернул ее так, чтобы ее сторона с красной полосой снаружи находилась напротив черного однорядного разъема. Рис. 2.27. Смонтир* печатная плата с установленной на место макетной платой Глядя на печатную плату, вы должны заметить два обстоятельства. Первое: плата как будто немного тяжелее, чем вы, вероятно, ожидали. Вы добавили к печатной плате совсем немного олова в виде припоя, и в каждом из нескольких отверстий его совсем мало (по сравнению со многими другими печатными пла- тами), но масса все же возросла. Второе: нижняя сторона (та, на которой нет белых маркировочных надписей) теперь стала довольно «колючей» от множе- ства маленьких выводов. Поэтому не работайте с ней на чьем-нибудь дорогом столе или даже на собственном колене. Выводы на нижней стороне печатной платы очень быстро искромсают поверхность. Работайте с электрическими схемами на куске антистатической циновки или кладите плату на одно из фа- нерных оснований для робота, которые вы отпилили и обработали в экспери- ментах этой главы, используя стойки длиной 25 мм, которые продаются в мага- зинах электроники*. Скорее, в хозяйственных магазинах или на радиорынке. - Прим, перев.
Глава 3 Теоретические основы электротехники В пору моего детства были популярны телевизионные шоу, в которых два ге- роя (либо один герой и забавный испуганный наблюдатель) обезвреживают бомбу. Обезвреживали ее непрофессионалы, нашедшие боевую бомбу там, где ожидалось обнаружить ее имитацию. Действующие с большой неохотой непро- фессиональные эксперты по ликвидации боеприпасов осторожно, тщательно избегая ловушек, вскрывали бомбу, чтобы отыскать два провода. Эти провода соединяют взрыватель (та часть бомбы, которая включает в себя таймер, нео- бязательный элемент - приемник дистанционного управления и какие-либо чувствительные элементы ловушки) и детонатор (та часть бомбы, действие ко- торой вызывает взрыв). Обычно бомба выглядит так, как показано на рис. 3.1. Герои всегда сталкивались с дилеммой: какой из двух проводов, идущих к детонатору, перерезать. Волнение нарастает, и как раз перед тем, как они принимают решение и перерезают провод, шоу прерывается на рекламу. Рис. 3.1. Структурная сеемо цепи управления бомбой
Теоретические основы электротехники 49 Они откуда-то узнают что если перерезать не тот провод, произойдет взрыв, а если перерезать правильный провод, бомба будет обезврежена. Похоже, что почему-то никто, включая группы специалистов по спецэффек- там, ответственных за взрывчатые вещества, не сказал голливудским сценари- стам, что герои могут перерезать любой из проводов, ведущих от взрывателя к детонатору, и бомба стала бы безопасной. Как я покажу в этой главе, электри- чество должно течь в замкнутой цепи. Поэтому в телевизионных шоу, как толь- ко один из проводов перерезали, ток терял возможность течь от взрывателя к детонатору и обратно, чтобы активировать его*. Взрыватель бомбы состоит из . переключателя и батареи. Электричество вырабатывается источником электропитания (как правило, батареей). И когда переключатель замкнут, электричество течет по проводам к детонатору, а за- тем обратно к батарее. Детонатор можно считать «нагрузкой»; его назначение в том, чтобы преоб- разовывать электрйческую энергию во что-нибудь полезное. В реальном дето- наторе проходящее через него электричество вызывает нагрев провода, и в детонаторе взрывается небольшой заряд, активированный нагревом. Когда взрывается заряд детонатора, сотрясение от этого взрыва вызывает взрыв бри- зантного** взрывчатого вещества бомбы. Это не так хорошо известно большин- ству людей, но бризантные взрывчатые вещества не взрываются при сильном нагревании - они могут интенсивно гореть, но не взорвутся. Они взрываются именно от сотрясения, вызванного взрывом заряда детонатора. Нечего и говорить о том, что бросать в огонь пачку динамита или какого- либо другого вещества, на этикетке которого написано «Взрывчатое веще- ство», с целью посмотреть, что из этого получится, - неудачная идея. Многие взрывчатые вещества, а также многие изделия (скажем, лак для волос в аэро- зольной упаковке) взрываются и/или выделяют продукты горения, если их подвергнуть действию высокой температуры. Когда в этой главе я рассуждаю о взрывчатых веществах, то делаю это с целью расширения вашего кругозора, а не побуждая вас к экспериментам с ними. Итак, на тот случай, если с первого раза вы этого не усвоили: не подвер- гайте предметы с этикеткой «Взрывчатое вещество» (либо имеющие предуп- реждающий символ взрывчатого вещества) действию огня или другого исто- чника тепла. По мнению Бенджамина Франклина, электричество течет от положитель- ной клеммы источника электропитания к отрицательной, если имеется путь, по которому оно может двигаться. Черные линии на схеме обозначают про- вода - путь для электричества между компонентами бомбы. Заметьте: разные части «структурной схемы управления бомбой» соединены, образуя замкну- тый контур, - это замкнутая электрическая цепь, обеспечивающая движение Автор намеренно употребляет здесь некорректный термин. Конечно же, в цепи течет электри- ческий ток, а не «электричество». Все разъяснится в Эксперименте 14. - Прим, перев. Бризантность (от франц, brisant - дробящий) - способность взрывчатого вещества производить при взрыве местное дробление среды, соприкасающейся с зарядом. - Прим, перев.
50 ГЛЙВЙ 3. Теоретические скмоеы электротехники электричества от батареи взрывателя к детонатору с целью активизации бом- бы (см. рис. 3.1). Говоря, что переключатель разомкнут, имеют в виду, что контакты внутри переключателя не касаются друг друга и электричество по цепи течь не может. Это то же самое, что и два обособленных провода. Когда контакты приходят в соприкосновение (как два провода, которые скрутили вместе), то о переклю- чателе, находящемся в таком положении, и о соответствующей цепи говорят, что они замкнуты. По такой цепи электричество протекать может. Необходимость в замкнутой цепи для движения электричества - это осно- вополагающее правило электротехники, которого не знают голливудские сце- наристы. Я расширю ваше знакомство с этим основным правилом и дам вам более полное представление о том, что такое электричество, и как измерить или рассчитать его количество в цепи. В начале данной главы я отметил, что эпизоды обезвреживания бомбы в разных шоу и фильмах очень похожи и, как правило, в них можно отметить одни и те же этапы. Практически каждый раз перерезают не тот провод, и это влечет за собой несколько мгновений паники. Ну, а потом все кончается хоро- шо, и все весело смеются, потому что бомба оказалась бракованным боеприпа- сом, либо она была подсоединена неправильно, либо это была бомба такого типа, который не предназначен для взрывных работ. Эксперимент 12. Электрические цепи и переключатели Детали Инструменты Смонтированная печатная плата. Резистор с кори- чневой, черной и красной полосками. Светодиод любого цвета. Однопо- люсный переключатель на два направления Начиная эту главу, я в довольно-таки взрывной манере (извините за каламбур) представил концепцию электрических цепей. Электричество должно идти по замкнутой цепи. Я продемонстрирую сущность разомкнутой и замкнутой цепи: с помощью электричества, вырабатываемого батареей, будет включаться свет. Каждая электрическая цепь состоит из трех частей. Электричество выраба- тывается источником электропитания и проходит по проводникам (проводам) к нагрузке. Нагрузка преобразует электрическую энергию в какую-либо дру- гую форму и осуществляет с ней некоторую работу. Нагрузкой может служить Минимальный набор таких инструментов включает в себя медицинский пинцет, бокорезы (не- большие кусачки) и утконосы (маленькие пассатижи с заостренными «губками»). - Прим, перев.
4\atattaus^i Эксперимент 12. Электрические цели и переключатели 51 просто источник света, микроконтроллер (например, микросхема BS2, пред- ставленная далее), электрический двигатель или сочетание элементов. В данном эксперименте я использую печатную плату из Приложения 3. На нее напаяны (смонтированы, как мы говорили в главе 2) батарея и несколько электронных приборов с тем, чтобы создать источник света, который можно включать и выключать (рис. 3.2). Электрический _ Электрический ток Переключатель ТОк Батарея 9 В Резистор с коричневой, черной и крас- ной полосками Черта, указывающая полярность Светодиод Электрический ток Рис. 3.2. Первой цепь, дохэалякхцая электричеством при помощи переключателя На рисунке параллельными отрезками прямых разной длины изображен источник электропитания в виде 9-вольтовой батареи, которая помещена в держатель, встроенный в печатную плату. На принципиальных схемах* я обычно помечаю положительную клемму источника питания символом +, что- бы не ошибиться, но, если вы смотрите на схему, помните, что более длин- ный отрезок показывает положительный вывод батареи. На плате положи- тельный вывод батареи подключен к соединению с маркировкой Vin, а другой (отрицательный) - к соединению с маркировкой Vss. В дальнейших экспери- ментах я объясню, как термины «положительный» и «отрицательный» соот- носятся с электроникой, а также что означают маркировки Vin, Vdd и Vss на печатной плате. Электричество с батареи идет от соединителя по проводам к компонентам на макетной плате. Через эти провода электричество поступает через переклю- чатель (рис. 3.3) к резистору (рис. 3.4), затем на светодиод (рис. 3.5) и, нако- нец, возвращается к батарее. Провода обычно делают из меди, и они могут иметь покрытие из другого металла, чтобы противостоять коррозии. Чтобы предотвратить соприкосновение проводов разных электрических цепей (или разных частей одной и той же цепи), неиспользуемые для соединения участки провода заключены в оболочку (или покрытие) из пластика, которую называют изоляцией. Переключатель - это устройство, соединяющее два провода, обеспечивая про- хождение электричества из одного провода в другой. Выше показан однополюс- ный переключатель на два направления (см. рис. 3.3). Число полюсов означает чи- сло цепей, которые с его помощью можно переключать, а число направлений-это Принципиальная электрическая схема в отличие от структурной, которая показывает связи меж- ду узлами сложного устройства, отображает строение устройства очень подробно, с точностью до отдельного компонента. В принципиальных схемах применяются общепринятые стандарт- ные условные обозначения электронных компонентов. - Прим, перев.
52 ГЛАВА 3. Теоретические основы электротехники „ _ Внутреннее устройство Внешний вид Корпус Выводы Контакты переключателя переключателя выводов Рис. 3.3. Внешний вид и устройство переключателя Вывод резистора Корпус Вывод указывающие указывающая номинал допуск Полоски, указывающие номинал, должны быть коричневой, черной и красной, считая от конца резистора к его центру Рис. 3.4. Внешний вид резистора Выводы, соединяющие светодиод со схемой «Лыска» на одной из сторон диода показывает полярность и направление тока Рис. 3.5. Внешний вид светодиода количество связей, которые можно при этом замкнуть/разомкнуть в цепи. Я предлагаю использовать однополюсный переключатель на два направления просто для удобства: такой переключатель, предназначенный для установки на макетную плату, гораздо проще найти, чем однополюсный переключатель на
Waiattausj^ Эксперимент 12. Электрические цепи и переключатели 53 одно направление, который можно установить на макетную плату и который в виде условного обозначения изображен на схеме (см. рис. 3.2). Чтобы исполь- зовать переключатель на два направления в качестве переключателя на одно направление, соедините выводы, расположенные посредине (они называются общими выводами) с одним из выходных выводов. Резистор (см. рис. 3.4) - вероятно, самый распространенный электронный прибор, с которым вы будете работать. Ниже я еще подробно объясняю, как работают резисторы, как указываются в технической документации их величи- ны (номиналы), как они используются в электрических цепях, а пока просто выберите резистор с коричневым, черным и красным ободками (или цветны- ми полосками). Светодиод (см. рис. 3.4) - это аббревиатура наименования светоизлучающий диод (light-emitting diode, LED). Светодиоды являются полупроводниковыми приборами - диодами, которые излучают свет, когда через них в одном опреде- ленном направлении проходит электричество. Мы еще обсудим диоды позже. ТеперЪ же я хочу просто представить их как очень дешевые и надежные прибо- ры, альтернативные по отношению к стандартным электрическим лампочкам. Макетная плата предназначена для опытных образцов и позволяет быстро и легко монтировать электрические цепи (рис. 3.6). Она состоит из матрицы от- верстий, причем на плате отверстия соединены между собой по рядам или ко- лонкам. Чтобы смонтировать цепь, вам придется вставить вывод компонента или провод в одно из отверстий макетной платы, а затем вставить либо провод, либо вывод другого компонента в другое отверстие, соединенное с первым. Внутренние соединения Внешний вид Рис 3.6. Макетная плата; показаны внутренние соединения Элементы схемы смонтированы на макетной плате (рис. 3.7). Полярность или ориентация (направление, в котором включается элемент) не имеет значе- ния для резистора или переключателя, но важна для светодиода. Полярность батареи тоже имеет значение, однако установленный на печатной плате соеди- нитель обеспечивает правильное подключение батареи. Вывод светодиода, расположенный на стороне с «лыской», соединен с отверстиями Vss на соеди- нителе печатной платы. Собирая схемы на макетной плате, хорошо сделать
54 ГЛАВА 3. Теоретические основы электротехники & s J3 D-9/F Vdd Vin[ Vss □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ P15 P14 P13 P12 P11 РЮ P9 P8 P7 P6 P5 P4 P3 P2 P1 PO □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ CL®, т □ □ dW □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ □ □ о □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ lac □ □ □ □ □ I П г □ Переклю- □ чатель в по- □ ложении О «Выключено- □ □ □ □ □ □ □ □ □ □ □ □□on <]□□□□ □ □ □ □ □ □ □ □ £ Обратите внима- с ние, что свето- с диод устанавли- с вается плоской С кромкой С от р-"--— □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ о □ □ □ □ □ □□□□ □ □□□□ □ □□ □ □ □ □ □ □ □ □ □□□□ □ □□□□ □ □□□□ резистора □ □ □ bi □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ о □ □ □ □ Рис. 3.7. Монтажная схема первого эксперимента выводы компонентов как можно короче и опустить элементы как можно ниже над платой, слегка нажав на них. Для простых целей, таких как цепь для этого эксперимента, это требование не обязательно, но оно станет решающим для более сложных экспериментов, представленных в книге далее. Собранная цепь должна выглядеть так, как показано на рис. 3.8. Рис. 3.8. Ток выглядит монтаж первого эксперимента на макетной плате Двигая ползун переключателя назад и вперед, вы увидите, что светодиод горит при одном положении переключателя и не горит при другом. Он горит, когда внутри переключателя создано соединение, а о цепи в таком случае гово- рят, что она замкнута и по ней идет электричество. Когда переключатель нахо- дится в другом положении, соединение разорвано и электричество не может проходить по цепи. В таком случае цепь называют разомкнутой. Если светодиод не загорается, проверьте монтаж (особенно ориентацию светодиода) и попробуйте вставить в соединитель другую батарею.
^aiaHauSt^i Эксперимент 13. Электрические схемы и переключатели 5 5 Продемонстрировать работу переключателя более наглядно можно, вынув переключатель и используя отрезок провода, который вы можете вытаскивать из отверстия макетной платы, а затем вставлять обратно. Тем самым вы пока- жете, что происходит, когда цепь разомкнута или замкнута. Добившись, чтобы светодиод загорался при замыкании переключателя и выключался при его раз- мыкании, можете переходить к следующему эксперименту. Я буду использую ту же цепь (или построю на ее основе новую) для нескольких следующих экспери- ментов. Эксперимент 13. Электрические схемы и переключатели Детали Инструменты Смонтированная печатная плата с батареей. Два од- нополюсных переключате- ля на два направления,ус- танивленные на макетной плате. Резистор с кори- чневой, черной и красной полосками. Три светодио- да любого цвета Набор инструментов для радиомонтажа В эксперименте 12 я рассматривал простую электрическую схему, которая включает и выключает свет (на практике - светодиод) при щелчке переключа- теля. Прежде чем продолжить и объяснять, что такое электричество и как оно действует, я хочу объяснить, как работает переключатель в вашем доме. Возможно, у вас дома (может быть, в прихожей) имеется один источник света, управляемый двумя переключателями. Если вы находитесь в одном кон- це холла и хотите включить свет, то вы меняете положение ближайшего пере- ключателя. Когда вы дошли до другого конца холла, свет вам уже не нужен, и поэтому вы выключаете свет, изменяя положение другого переключателя. Два переключателя очень удобно использовать, и похоже, что при этом потребует- ся лишь немногим более сложная схема управления. На самом деле требуются лишь два однополюсных переключателя на два направления - таких же, как в эксперименте 12. Центральные контакты соеди- няют переключатели с остальной схемой, а внешние контакты соединяют их друг с другом (рис. 3.9). Электричество течет, только если переключатели замыкают цепь между одним из двух соединительных проводов и связью между их центральными контактами (см. рис. 3.9). Когда переключатели порознь замыкают цепи с раз- ными соединительными проводами, цепь оказывается разомкнутой и движе- ния электричества в схеме нет.
56 ГЛАВА 3.Теоретические основы электротехники |г-;ы Электрического тока нет Электричество течет по верхней цепи Электричество течет по нижней цепи Рис. 3.9. Роботе схемы управления освещением с помощью однополюсных переключателей но два направления Прохождение электричества в цепи с двумя однополюсными переключате- лями на два направления можно рассмотреть с помощью схемы, показанной на рис. 3.10. Один из двух светодиодов, включенный в цепь, соединяющую пере- ключатели, будет гореть, когда переключатели дают электричеству возмож- ность течь по проводам, к которым он подсоединен. Когда один светодиод го- рит, то другой, связанный с резистором, также будет гореть, показывая, что через него проходит электричество. На рис. 3.11 изображена монтажная схема такой цепи. Вам следует некоторое время пощелкать переключателями, ставя их в раз- ные положения, чтобы увидеть, как они работают. Кроме того, вы можете за- хотеть сравнить Их работу с управлением светом на двух переключателях у себя дома, чтобы убедиться в том, что схема работает так же. Рис. 3.10. Управление двумя путями движения электричества на однополосных переключателях на два направления
ftalaHausfi Эксперимент 14. Измерение напряжения 57 1 □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□ □ □ □ □ □ □ □ □□□ □ □ □ □ □ □ □□ □□ □ □ □ □ □ □ □□ □□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□ □□ □ □ □ □□ □ □ □ □ □ □ □ □ □ □ □ □ □ □□ □ □□ □□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□ □□ □ □ □ □ □ □ □ □ □ □ □ □□ □□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□ □ □□□а □ □□□ □ □ □ □□ □ □ □□□ □ □ □ □ □ □ □ □ а □ □ □ □ □ □ □ □ □ □ □ □ □ а □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ Рис. 3.11. Монтажная схема однополюсных переключателей на два направления, используемых для выбора розных путей для электричества Вероятно, вам нелегко будет «увидеть» принципиальную схему (см. рис. 3.10) на монтажной схеме (см. рис. 3.11). Дело в том, что я предложил способ монта- жа, при котором светодиоды включены в схему так, чтобы не требовалось допол- нительных проводов. Разрабатывая собственные схемы на монтажной плате, вы убедитесь, что некоторые способы соединения облегчают монтаж, но делают неясной работу схемы. Если вы не уверены в монтажной схеме, прорисуйте фло- мастером связи на плате или попробуйте смонтировать схему7 самостоятельно, не следуя иллюстрации. Несмотря на простоту, эта схема действительно выполняет довольно слож- ные функции: она позволяет управлять освещением из двух физически удален- ных друг от друга мест. Это можно осуществить многими способами, но метод, показанный здесь, вероятно, самый элегантный. Эксперимент 14. Измерение напряжения Детали Смонтированная печатная плата с батареей. Рези- стор с коричневой, чер- ной и красной полосками. Светодиод любого цвета Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр
58 ГЛЯВЙ 3. Т&ог «гтичесхие основы электротехники В предыдущем эксперименте я говорил, что светодиод зажигается при прохож- дении через него электричества. Это не совсем точное выражение, но я ста- рался сократить количество новых понятий до минимума. Вы должны были понять главное для работы электрической цепи: через нее должно проходить электричество. В этом эксперименте я собираюсь глубже проанализировать природу эле- ктричества. Электричество - это форма энергии, способная совершать «работу». Если вы знакомы с физикой, эти два слова вызовут у вас удивление, ведь энергия и работа подразумевают силу, оказывающую действие на массу. Возможно, это собьет вас с толку, потому что электричество не имеет формы (за исключением света), то есть оно не имеет и массы. Хотя вы, возможно, знаете, что с помощью электричества создается сила магнитного поля, у него нет ощутимой или подле- жащей измерению силы. В выпускных классах школы щя, возможно, читали об эксперименте Бенджамина Франклина с запуском воздушного змея во время лив- ня с ураганом. Когда в змей попала молния, Франклин дотронулся до металли- ческого ключа, привязанного к веревке, и его ударило током. Это был удар, сход- ный с ударом статического электричества, как если пошаркав ногами по ковру, взяться за металлическую дверную ручку. В те времена наличие электричества проверяли, дотрагиваясь до предмета рукой. Ударило - значит, есть. Кроме доказательства того, что молнии являются электрическими разряда- ми, одно из важнейших открытий Франклина состоит в том, что электричество в замкнутой системе течет как вода (если перегородить реку плотиной или пере- крыть трубу, система «разомкнется», и вода в ней течь перестанет). Двигаясь в цепи, электричество используется многократно; если же дать всей воде в систе- ме вытечь, система перестанет работать. Чтобы заставить воду двигаться, нужно приложить к ней некую силу. Так как вода обладает свойствами жидкости, сила должна распределяться на определенную площадь - создавать давление (сила на единицу площади). Эта модель позволила понять, что электричество не сдвинет- ся с места без какого-то давления на него. Электрическое давление называется напряжением применительно к электри- ческой цепи с источником питания. Это похоже на применение насоса для создания давления на воду в бассейне, чтобы она могла двигаться вверх по тру- бе (рис. 3.12). Поднявшись до верхнего уровня бассейна, вода падает вниз, где насос снова толкает ее, чтобы процесс был непрерывен. Вид сбоку Уровень половины глубины бассейна, разница давлений составляет половину максимальной разница давлении Поверхность воды: максимальная разница давлений Рис. 3.12. Система водоснабжения бассейна Выход насоса: максимальная разница давлений
^alaHaus^k Эксперимент 14. Измерение напряжения 59 В верхней части бассейна вода обладает самым высоким уровнем энергии (см. рис. 3.12). Эта энергия является потенциальной, вода может производить работу, падая вниз, в водосбор, где уровень ее энергии самый низкий. Трещина в водосборе - то же самое, что разрыв в электрической цепи. Мы не можем измерить энергию воды в разных точках, но можем измерить ее давление. Я разместил манометры на разных уровнях глубины бассейна (см. рис. 3.12). Чтобы произвести эти измерения, я сравниваю давление воды в раз- ных точках с давлением на дне бассейна. Давление вверху несколько отличает- ся от давления внизу, а по мере спуска с поверхности его показатели приближа- ются к показателям давления на дне бассейна. Бассейн в самом деле очень похож на электрическую цепь, которая создава- лась в эксперименте 13. Для измерения «электрического давления» (напряже- ния) служит вольтметр. Можно купить обычный вольтметр, однако я бы попро- сил вас приобрести универсальный цифровой электроизмерительный прибор, мультиметр (рис. 3.13). Жидкокристаллический дисплей (liquid crystal display. LCD) Розетка для проверки транзисторов Переключатель выбора функции Гнезда для под- ключения щупов Рис. 3.13. Недорогой цифровой мультиметр, вид лицевой панели Для этого эксперимента нужно собрать на макетной плате простую цепь (рис. 3.14), состоящую из резистора и светодиода. Когда это сделано и све- тодиод зажжен, установите свой мультиметр на измерение напряжения в пределах 20 В постоянного тока (см. инструкцию к мультиметру). Присое- дините черный щуп мультиметра к минусу цепи (шина Vss на рис. 3.14), а затем мультиметром измерьте напряжение в двух разных точках цепи (см. рис. 3.14 и 3.15). В табл. 3.1 даны величины напряжения, полученные мной в опытной цепи. Таблица 3.1. Измерение напряжения батареи и напряжения на светодиоде в цепи (см. рис. 3.14) Точка измерения Измеренное напряжение Комментарий Батарея 9,25 Одинаковые показания как на батарее, так и на резисторе вместе со светодиодом_ Светодиод 2,01
60 ГЛАВА 3. Теоретические основы электротехники □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ О □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ Поставьте щупы цифрового мультиметра, как показано («положительный» - красный, а «отрицательный» - черный) <0 □ □ □ □ ясс Дп □ □ □ □ □ р □ р □ а □ □ □ р □ □ □ о □ □ □ р □ □ □ □ □ □ □□ □ □ □ □ □ □ □ □ □ □ о □□ □ □ □ □□□□ □ □□□ □ □ □ □□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ D □ □ □ □ □ □ □ □ □□□□ □ □ □□□ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□ О □□□ □ □ □ □ □ □ □ □ □ □ □ □ □□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ] □ □ □ □ □ □ □ □ □ □ Q S С □ □ □ □ □ □ 4 Рис. 3.14. Измерение напряжения на светодиоде □ □ □ □ с □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ а □ □ □ □ □ □ □ □□□□ □ а □ □ □ □ □ □ □ а с □ □ □ □ □ □ □ □ а □ □ □ □ □[ □ □ □ □ □□ □ Положительный □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □СПО □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ п □ □ □ □ □ □ □ □ с □ □ □ □ □□ □□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□ □□ □ □□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□ □ □ □ □ □ □ □□□□ □ □ □ □□ □ □ □ □ □ -□ □□□□ □ □□□ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ а □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ о □ □ □ □ □ □ □ □ □ □ □ □ Рис. 3.15. Измерение напряжения батареи Приведенные результаты сходны с теми, что могли быть получены при из- мерении давления воды в разных точках по отношению к ее давлению на дне бассейна. При измерениях давления воды или напряжения должен иметься некий нижний уровень, чтобы было с чем сравнивать полученные данные. В электрической цепи в качестве такового обычно используется напряжение на отрицательном выводе источника питания. Вместо термина «нижний уровень»
^aiaHaus,^. Эксперимент 15. Резисторы и подение напряжения 61 в электричестве используется термин «земля» (сокращенно Gnd. или Vss, как на нашей печатной плате). Земля - это такая точка электрической схемы, в ко- торой нет электрического давления (она имеет напряжение, равное нулю). Если что-то соединено с землей (заземлено), то оно не сможет выполнять ни- какую работу. Эксперимент 15. Резисторы и падение напряжения Детали Смонтированная печатная плата с макетной платой. Три резистора с коричне- вой, черной и оранжевой полосками Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр Вернемся к аналогии с водой и отметим, что вода течет в трубе отнюдь не без усилий. Труба незаметно препятствует протеканию через нее воды. Измерив давление в начале и в конце трубы, вы заметите, что препятствия на пути пото- ка воды вызывают уменьшение давления. Это падение давления вызвано трением воды о трубу. Сила трения оказыва- ет сопротивление, преобразуя энергию текущей воды в тепло. Первый закон термодинамики гласит, что энергия не может ни возникнуть ниоткуда, ни ис- чезнуть*. Если часть энергии исчезла в трубе, то, должно быть, она преобразо- валась в какую-то другую форму. Когда энергия теряется, она почти всегда пре- вращается в тепло. Когда мы имеем дело с электричеством, мы полагаем, что проводники идеаль- ны, что в них отсутствует «трение» в отношении текущего по ним электричества (которое называют сопротивлением). На самом деле это не так; за исключением материалов, называемых сверхпроводниками, все вещества оказывают сопротив- ление текущему по ним электричеству. Проводники обычно имеют очень низкое сопротивление, поэтому, как приближение, их считают идеальными. Во многих электрических цепях электрическую энергию для большего удоб- ства приходится изменять. Наиболее распространенный компонент, который это делает, называется резистор. Единица измерения сопротивления - Ом, обо- значаемый символом £Г*. Сами по себе резисторы довольно маленькие, поэтому для обозначения номинала сопротивления на них наносятся цветные полоски. Первый закон (как его еще называют, первое начало) термодинамики - частный случай (для тер- модинамических систем) более общего закона природы, закона сохранения энергии: «Сумма кинетической, потенциальной и тепловой энергии любой замкнутой системы есть величина по- стоянная». Автор приводит здесь одну из популярных формулировок закона сохранения энер- гии. - Прим, перев. " £2- международное обозначение сопротивления величиной 1 Ом. - Прим, перев.
62 ГЛЙВЙ 3. Теоретические основы электротехники Полоски обозначают сопротивление в соответствии с приведенной ниже формулой, а обозначение цветов дано в табл. 3.2. Сопротивление = [(Цифровое значение цвета полоски 1 х 10) + (Цифровое зна- чение цвета полоски 2)] х Юии&т“* мачтие *вепа помски 3, Ом Таблица 3.2. Цветовое кодирование полосок на резисторе Цвет Цифровое значение для цвета полоски Допуск Черный 0 Не применяется Коричневый 1 1% Красный 2 2% Оранжевый 3 Не применяется Желтый 4 Не применяется Зеленый 5 0,5% Синий 6 0,25% Фиолетовый 7 0,1% Серый 8 0,05% Белый 9 Не применяется Золотистый Не применяется 5% Серебристый Не применяется 10% Пользуясь этой формулой и табл. 3.2, вы рассчитаете номинал резисторов для данного эксперимента, который должен быть равен: Сопротивление = [(Коричневыйх 10) + Черный]х lOPt***"™, Ом = (Ю + 0)х 103 = 10 000 Ом. Обычно резисторы имеют 5-процентный допуск - этого более чем достато- чно для цепей, представленных в этой книге. Большинство резисторов на прак- тике имеют допуск в 1% или менее, но они маркированы как 5-процентные, что является наихудшим возможным случаем у производителя. Для демонстрации работы электрической цепи и ее влияния на электрическое давление, то есть напряжение, соберите цепь, показанную на рис. 3.16, и измерьте напряжение на резисторах. В первом тесте установите цифровой мультиметр в положение Напряжение (диапазон от 0 до 20 В) и подключите его черный щуп к минусу или гнезду Vss, а красный щуп последовательно подключайте к четырем разным точкам (см. рис. 3.16). Запишите измеренные значения напряжения. Записав значения напряжения, вы увидите, что оно равномерно изменяется от 0 до напряжения используемой батареи с каждым резистором. Это аналоги- чно измерению давления воды, текущей вниз по трубе. Каждый резистор ведет себя, как участок трубы, в котором давление воды падает. Подобно тому, как уменьшение давления на участке трубы называют падением, уменьшение электри- ческого напряжения также называется падением напряжения. Вы, наверное, заме- тили, что ни одно из измеренных в схеме напряжений не превышает напряже- ния используемой батареи; они или меньше, или равны этому напряжению, То, что напряжения меньше или равны напряжению питающей батареи, не должно вас удивлять. Если бы напряжение увеличивалось, то увеличивалась бы
Mausi^l Эксперимент 15. Резисторы и падение нопряжения 63 Рис. 3.16. Измерение напряжений в цепи относительно земли электрическая энергия, что невозможно по первому закону термодинамики. А чтобы энергия увеличивалась, следовало бы включить в цепь ее источник, например батарею. Измерив напряжение на резисторах, используя щупы мультиметра, как по- казано на рис. 3.17, вы обнаружите, что напряжение на каждом резисторе при- близительно одинаково и составляет треть от напряжения батареи. Так вы из- меряете падение напряжения на каждом резисторе. И последнее. Измерьте напряжение на двух резисторах вместе (рис. 3.18). Оно должно составлять две трети от суммарного напряжения, приложенного к цепи. Как я покажу ниже, напряжение на резисторе пропорционально его доле в общем сопротивлении цепи. Эти два резистора составляют две трети общего сопротивления цепи, и вполне логично, что на них приходится две трети паде- ния напряжения в цепи. Рис. 3.17. Измерение падения напряжения на отдельных резисторах
64 ГЛАВА 3. Теоретические основы электротехники Рис. 3.18. Измерение падения напряжения на нескольких резисторах Эксперимент 16. Измерение тока и закон Ома Детали Смонтированная печатная плата с макелюй платой. Резистор сопротивлением 1000 Ом (с коричневой, черной и красной полоска- ми). Резистор сопротив- лением 10 000 Ом (с ко- ричневой, черной и оранжевой полосками) Инструменты Набор инструментов для ^тдиомс+гтажа. Цифровой мультиметр Надеюсь, теперь вы ближе познакомились с электрическим давлением (напря- жением) и с тем, в чем оно аналогично давлению, действующему на воду. В ча- стности, вы должны быть знакомы с различием в падении напряжения на раз- ных устройствах электрической цепи. Когда обсуждались примеры с водой, было сказано, что сила действует на молекулы воды; теперь пришло время рас- смотреть, что именно движет электрическая сила (напряжение), порождая электричество. Возможно, вы знаете, что электроны - отрицательно заряженные частицы атома - составляют электрический ток. Когда мы говорим о размере атомов, сложно понять, насколько они малы, и как много их в каждом объекте. Основ- ная единица измерения электрического заряда - кулон, такой заряд содержит 160 219х 1019 электронов. Этот показатель степени не должен показаться вам слишком большим (ваш калькулятор наверняка может возвести основание 10 в степень 99 и более). Чтобы получить представление, насколько это число
^alaHausf^ Эксперимент 16. Измерение токо и зокон Омо 65 велико, учтите, что в Млечном Пути примерно 2 триллиона (2 х 1015) планет. Один кулон содержит в 8000 раз больше электронов, чем количество планет в нашей галактике. Чтобы свободные электроны двигались в металле, на них действуют отрица- тельным электрическим давлением (его называют напряжением), и они движут- ся от источника воздействия в направлении к более положительному потенциа- лу. Такое перемещение электронов называется отрицательным электрическим токам. Когда электричество только начинали понимать и объяснять, природа ато- ма была еще совсем не понятна. Господствовавшая тогда теория электричества говорила, что электричество - это некая жидкость, флюид, присутствующая в не- которых материалах, которую можно заставить двигаться, приложив опреде- ленное электрическое давление (которое мы называем напряжением). Чтобы помочь объяснить поведение электричества, Бенджамин Франклин предполо- жил, что эта жидкость двигается от положительной клеммы источника энергии к отрицательной. При этом термины «положительный» и «отрицательный» были выбраны совершенно произвольно. К сожалению, это было ошибкой. Ре- ально электрический ток течет от отрицательных клемм к положительным, но поскольку была принята теория Франклина о движении электричества от плю- са к минусу, мы продолжаем пользоваться этим как определением направления электрического тока. Использовать в работе это традиционное соглашение не так уж обременительно, просто потому что электроны чересчур малы и движут- ся чересчур быстро, чтобы мы могли проследить их движение. Наиболее положительной точкой в электрической схеме является положи- тельная клемма источника электропитания. Если положительной клеммы ис- точника электропитания нет (цепь разомкнута), электроны будут группиро- ваться в проводнике до тех пор, пока их суммарное напряжение не станет равным напряжению, приложенному к цепи. Движение электрического тока можно наблюдать и количественно изме- рить с помощью цифрового мультиметра, подключаемого к электрической цепи (рис. 3.19). Вначале измерьте напряжение на резисторе 1000 Ом и запи- шите его (мой результат - 8,89 В). Затем, установив мультиметр в режим изме- рения тока в диапазоне от 0 до 20 миллиампер (мА) (см. инструкцию к прибо- ру), разорвите электрическую цепь и измерьте протекающий через прибор ток. Мой результат - 8,93 мА. Повторите эксперимент, используя резистор 10 000 Ом. У меня получилось при измерениях напряжение 8,84 В и ток через резистор - 0,90 мА. Итак, ток в цепи резистора номиналом 10 000 Ом составляет одну десятую часть от тока в цепи резистора 1000 Ом. Это значит, что между напряжением, током и сопротивлением существует такое соотношение: Ток = Постоянная х Напряжение/ Сопротивление. Это один из основных законов природы, известный как закон Ома, который можно сформулировать так: «Сила тока в электрической цепи пропорциональ- на приложенному напряжению и обратно пропорциональна внутреннему сопро- тивлению этой цепи». Георг Ом открыл это соотношение между напряжением,
66 ГЛЯВЯ 3. Теоретические основы электротехники Цифровой мультиметр в режиме Рис 3.19. Измерение напряжения и тока в простейшей цепи током и сопротивлением в 1826 году, и в знак признания этого достижения еди- ница сопротивления была названа в его честь. Чтобы упростить Применение этого закона, в Международной системе еди- ниц СИ (Systeme International, SI) были выбраны такие единицы измерения для напряжения, сопротивления и тока, чтобы в формуле не нужна была постоян- ная величина. Заменив напряжение символом V, сопротивление - символом R, а ток - символом i, закон Ома можно записать так: V~ixR Понимать и помнить эту формулу крайне необходимо, если вы собираетесь работать с электрическими цепями. Запомнить ее поможет такой стишок: Ярче, звездочка, сияй! Ай и Эр перемножай - Напряженье получай. Другой способ для запоминания закона Ома - «треугольник закона Ома». Это средство даст вам формулу для любой из трех величин, если вы закроете пальцем один из трех символов (рис. 3.20). Закрывая символ тока в треуголь- нике, я вижу, что сила тока равна напряжению, деленному на сопротивление. Пока я писал о резисторах с сопротивлением, выраженным в единицах Ом. Но большинство сопротивлений, с которыми-вы будете работать, будут иметь сопротивление в тысячи или миллионы Ом, и станет утомительно записывать их номиналы с множителем 1000 Ом или 1 000 000 Ом. Чтобы упростить запись, для обозначения тысяч Ом используется символ к, а для миллионов Ом - М.
ftalattausqfc. Эксперимент 17. Зоной Кирхгофа для напряжений и последовотельные нагрузки 67 Это означает, что 4700 0м пишется, как 4,7k, а 2 200 000 Ом - 2,2М. В некото- рых книгах и на принципиальных схемах вы можете встретить значения, напи- санные, как 4к7 и 2М2. Они имеют тот же смысл, но вместо запятой, разделяю- щей целую и дробную части, ставится значок тысяч или миллионов. Эксперимент 17. Зенон Кирхгофа дня напряжений и яоследояатенпиые иагрувни Детали Собранная печатная пла- та с 9-вольтовой батаре- ей. Один резистор с со- противлением 2,2 кОм Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр Понимая закон Ома, вы можете представить себе, что происходит, когда эле- ктрический ток проходит по цепи. Вроде бы очевидно, что с увеличением на- пряжения (электрического давления) возрастет ток. Точно так же, увеличив сопротивление в цепи, вы уменьшите силу тока. Я подталкиваю вас к пониманию этой концепции, потому что она должна быть вам абсолютно ясна, когда я начну исследовать, что происходит в цепи с несколькими нагрузками. Как я покажу в этом и следующих экспериментах, поведение электрической цепи под нагрузкой достаточно предсказуемо, но только если вы ясно понимание, что такое напряжение, электрический ток, сопротивления (нагрузки) и закон Ома. Вы можете добавить электрическую нагрузку в цепи двумя способами (рис. 3.21). Первый - последовательное подключение нагрузок друг к другу, второй - параллельное, при котором все нагрузки подсоединены к одному и тому же источнику электропитания. Электрические цепи состоят из некоторой комбинации цепей этих двух типов. К счастью, работая с простыми компонен- тами и цепями, как в этой главе, мы можем посмотреть, как работает цепь каж- дого типа, не беспокоясь об усложнениях, которые вносят другие компоненты.
68 ГЛЯВЯ 3. Теоретические основы электротехники Последовательное соединение Нагрузка 1 Нагрузка 2 Параллельное соединение Нагрузка 1 Нагрузка л Нагрузка 2 Рис 3.21. Различные методы добавления нагрузок в электрическую цепь Давайте исследуем, что происходит, когда вы включаете резисторы после- довательно. Последовательное включение резисторов аналогично системе, где насос подает воду через трубу на колесо работающей гидротурбины (рис. 3.22). Рис. 3.22. Увеличение сопротивления в электрической цепи Увеличение длины трубы - один из путей добавления сопротивления в си- стеме; добавление сопротивления приведет к уменьшению потока воды во всей системе и падению давления воды на выходе (на нагрузке, представляющей собой колесо гидротурбины). Добавление длины трубы (сопротивления) в этой системе аналогично добавлению дополнительного резистора в электрическую цепь, работающую под нагрузкой (см. рис. 3.22). Чем длиннее труба, тем боль- ше сопротивление, и тем меньше напряжение на нагрузке и протекающий че- рез нее ток. Вероятно, вы думаете, что добавление дополнительного сопротив- ления к цепи уменьшит количество имеющейся в системе электрической энергии на величину, пропорциональную сопротивлению. Это должно быть ин- туитивно понятно: если вы добавите небольшое сопротивление, влияние на цепь будет небольшим. Добавление большого сопротивления будет оказывать на цепь существенное влияние. Вам также должно быть ясно, что «эквивалентное» сопротивление цепи, работающей под нагрузкой, равно исходному сопротивлению плюс добавочное сопротивление: R =Д • яквивалентное исходное добавочное
^ataHaus^k Эксперимент 17. Закон Кирхгофа для непряжений и последовательные нагрузки 69 Таким образом, эквивалентное сопротивление всегда будет больше, чем любое из одиночных суммируемых сопротивлений. Это важно помнить, когда вы вычисляете последовательное сопротивление (как в нашем тесте). Влияние каждого из последовательно включенных сопротивлений пропор- ционально его величине, деленной на суммарное сопротивление всей цепи. Взгляните на цепь с тремя резисторами (рис. 3.23). Под рисунком приведены формулы для расчета падения напряжения на каждом резисторе. Падение на- пряжения определяется долей данного резистора в суммарном сопротивлении цепи. v----------1 <R1 R2 R3 Рис 3.23. Падение напряжения на отдельных резисторах последовательной цепи у VxR} * ' Л1 + Л2 + ЛЗ у VxR2 * 2 Л1 + Л2 + ЛЗ у _ V*R3 * J Я1 + Я2 + ЯЗ Ток во всех точках цепи будет одинаков, потому что нет никакой другой цепи, кроме данной, через которую он мог бы течь.,Используя значения напря- жения на каждом резисторе, рассчитанные по приведенным выше формулам, можно найти суммарное напряжение, приложенное к цепи из трех резисторов: у = у + у + у = гобща R1 R2 R3 = Ух R1/(R1 + R2 + R3) + V* R2/(R1 + R2 + R3) + V* R3/(R1 + R2 + R3) = = Vx(Rl+R2 + R3)/(R1 + R2 + R3) = = V. Говоря проще, сумма напряжений на каждой резистивной нагрузке равна напряжению, приложенному к цепи в целом. Это выражение известно как за- кон Кирхгофа для напряжении. В данном эксперименте мы протестируем этот закон, используя цепь, состоящую из двух последовательно соединенных рези- сторов (рис. 3.24). * В отечественной научно-технической литературе этот фундаментальный закон электротехники обычно называют вторым законом Кирхгофа. - Прим, перев.
70 ГЛЯВЯ 3. Теоретические ооювы электротехники Разорвите соединение с 9-вольтовой /батареей в этом месте, чтобы измерить ток через резисторы 1 кОм и 2,2 кОм Н-------1 \ iK Измерьте напряжение < на резисторе 1 кОм Положительный Измерьте напряжение на резисторе 2.2 кОм Отрицательный Рис. 3.24. Последовательная цепь с точками измерения Для этого эксперимента заполните табл. 3.3. Помните: измеряя напряжение на резисторе, вы должны подсоединить щупы к концам резистора. Измеряя ток в схеме, вы должны разорвать цепь и установить мультиметр на измерение в диапазоне 0-20 мА. Тоблицо 33. Измерения в цепи Измеряемый параметр Результат измерения Напряжение батареи 8,77 В Напряжение на резисторе номиналом 1,1 крм 2,74 В Напряжение на резисторе номиналом 2,2 кОм 6,02 В Ток 2,74 мА Рассматривая эти результаты, я могу использовать закон Ома для подтвер- ждения того факта, что суммарное сопротивление нагрузки составляет 3,2 кОм (1 кОм плюс 2,2 кОм). = V/I= 8,77 В/2,74 мА = 3,201 Ом ~ 3,2кОм Проверяя падение напряжения на двух резисторах, вы увидите, что отно- шение напряжений на каждом из них может быть выражено как приложенное напряжение, умноженное на номинал резистора и деленное на суммарное со- противление R . г нагрузки
^alattausj^l Эксперимент 18. Переменные резисторы 71 Эксперимент 18. Переменные резисторы Детали Смой1ированная печатная плата с 9-еальтоеой батаре- ей. Соединитель для бата- реи 9 В. Стандартный мед- ный провод длиной 60 см и сечением 0,2 или 0,3 мм2. Резистор 100 Ом. Потенци- ометр для печатного монта- жа номиналом 10 кОм Стандартный простой ка- рандаш твердости ТМ (у импортных карандашей - НВ). Набор инструментов для радиомонтажа. Перо- чинный нож. Цифровой мультиметр Второй после механического переключателя наиболее важный элемент электри- ческого управления - переменный резистор, или потенциометр. Вам должно быть ясно, как работает резистор, и термин «переменный резистор» не должен вас сильно удивить, так как они широко применяются в электронных устрой- ствах. В то время как переключатель дает вам возможность управлять цепью с состояниями «включено»/«выключено» (так называемое бинарное управление), потенциометр позволяет установить произвольное положение органа управле- ния между полным «включено» и окончательным «выключено». Такой метод управления обычно называют аналоговым управлением. Переменный резистор, или потенциометр (на схемах часто сокращенно обо- значают его как Pot), - один из немногих электронных компонентов, который можно сделать самостоятельно (рис. 3.25). Медный подвижный контакт («дви- жок») перемещается по резистивному материалу под управлением оператора или какого-то устройства. Обозначение потенциометра на схемах дает доста- точно точное представление о потенциометре с резистивным материалом и подсоединенным к нему подвижным контактом (рис. 3.26). Резистивный материал Рис 3.85. Кок устроен потенциометр
;.?и. 72 ГЛЙВЙ 3. Теоретические основы электротехники Подвижный контакт Резистор I Рис 3.26. Условное обозначение потенциометра (переменного резистора) Потенциометры определяются тремя характеристиками: • сопротивление материала между двумя контактами: сопротивление движ- ка обычно считают незначительным и используют его только как «отвод» в резистивном материале; • по какому закону увеличивается сопротивление резистивного материала потенциометра: по линейному (сопротивление изменяется равномерно в зависимости от длины) или по логарифмическому (сопротивление из- меняется в соответствии с функцией типа IO4™*13 или 2А'шна); логарифми- ческие потенциометры применяют в цепях, где требуются значительные изменения сопротивления, чтобы немного изменить работу схемы; • какую мощность может выдержать потенциометр*. Потенциометры мало подходят для управления мощностью, передаваемой на нагрузку. Почему так происходит, я покажу в этом эксперименте. По этой причине, а так- же потому, что небольшие потенциометры намного дешевле, чем потен- циометры большой мощности, я использую только такие, что могут вы- держать очень небольшую мощность. Вы можете сделать собственный потенциометр, удалив деревянную оболоч- ку с одной стороны простого (не цветного) карандаша средней твердости (ТМ) и раскрыв грифель (рис. 3.27). Грифель карандаша сделан из графита (модифи- кация чистого углерода). Это тот же материал, который используется в рези- сторах и потенциометрах. Вы можете продемонстрировать работу переменно- го резистора, который сделан из карандашного грифеля, прикладывая два щупа мультиметра к грифелю и, установив мультиметр в режим измерения сопротив- ления, перемещая щупы вдоль грифеля. Как видите, сопротивление растет по мере удаления щупов друг от друга, что и ожидалось, при этом больше рези- стивного материала оказывается между щупами. В отечественной научно-технической литературе этот параметр применительно ко всем элек- тронным компонентам, а не только к резисторам, называется максимальной мощностью рассея- ния. - Прим, перев.
Эксперимент 1 б. Переменные ревисторы 71 Если сопротивление грифеля карандаша возрастает очень сильно, значит, в нем есть трещина. В этом случае очистите грифель другого карандаша. Я до- стиг нужного результата с третьей попытки (рис. 3.28). Карандаш для эксперимента Дерево удалено, чтобы показать грифель, находящийся внутри Реальные результаты: виден грифель Рис 3.27. Потенциометр, сделанный из карандаша Карандаш для эксперимента ев угор......I) Чтобы изменить сопротивление, двигайте отрица- тельный щуп назад и вперед Эквивалентная схема Положительный Отрицательный Рис 3.28. Измерение сопротивления грифеля карандаша при изменении его длины Потенциометр можно использовать и для изменения выходного напряже- ния, что можно продемонстрировать путем соединения 9-вольтовой батареи нашей печатной платы (с помощью не подключенного к плате соединителя батареи) с концами карандашного грифеля. Затем переключите мультиметр в режим измерения напряжения и поместите черный щуп на отрицательный зажим батареи, а красный - на грифель карандаша (рис. 3.29). Передвигая крас- ный щуп по карандашному грифелю, вы увидите, что напряжение меняется в пределах от приложенного напряжения батареи до нуля (на отрицательном зажиме батареи). Потенциометр в таком включении можно назвать делителем напряжения, (рис. 3.30). Вместо одного резистора с «вставленным» в него движком, вы можете рассматривать потенциометр как два резистора, включенных последовательно,
74 ГЛЙВЙ 3. Те^рстичхкие основы электротехники Эквивалентная схема Отрицательный Подсоедините зажимы батареи к противоположным концам грифеля карандаша Положительный Двигайте положительный щуп назад и вперед, чтобы наблюдать изменение напряжения в разных точках грифеля карандаша Чтобы изменить сопротивление, двигайте отрицательный щуп назад и вперед Рис. 3.29. Измерение меняющегося напряжения но потенциометре из карандашного грифеля Рис. ЗЛО. Разбиение потенциометра на два резистора для создания делителя напряжения причем напряжение в точке их соединения подается на выход для использова- ния в схеме. Выходное напряжение делителя напряжения Vout определяется формулой: Vout = Vinx R2/(R1 + R2). Вы можете проверить работу реального потенциометра, собрав три цепи (рис. 3.31, 3.32 и 3.33). Схемы монтируются с помощью печатной и макетной плат. Включите потенциометр как переменный резистор (рис. 3.31). Хотя схе- ма справа похожа на потенциометр, преобразованный в делитель напряжения, она эквивалентна левой схеме, поскольку движок ведет себя, как замкнутый накоротко (с нулевым сопротивлением). Ток проходит прямо через движок и не проходит через другой контакт (см. рис. 3.31). Вход сигнала Выход сигнала Отсоединено Эквивалентная схема Вход сигнала Выход сигнала Рис. 331. Подключение потенциометра в качестве переменного резистора
Эксперимент 18. Переменные резисторы 7 5 Выход напряжения Рис 3.32. Получение изменяющегося напряжения с помощью потенциометра Рис 3.33. Измерение меняющегося напряжения но потенциометре с нагрузкой Применение потенциометра в качестве делителя напряжения аналогично применению делителя напряжения на карандашном грифеле (см. рис. 3.32). Чем ближе физически движок к контакту, соединенному с положительным по- люсом питания на входе, тем выше напряжение. Поворачивая вал потенцио- метра, вы получите возможность выставить бесконечное количество значений напряжения в пределах между землей (отрицательным полюсом источника питания) и приложенным на входе напряжением. В заключение этого эксперимента я хотел показать, что произойдет при добавлении нагрузки между движком и землей. Подсоединив резистор 100 Ом к движку потенциометра и одному из его выводов, вы увидите, что напряже- ние на движке больше не изменяется линейно, а будет или очень большим или очень маленьким. Промежуточные значения напряжения гораздо труднее уста- новить, когда резистор 100 Ом подключен, чем когда его нет. Резистор 100 Ом, подобно нагрузке с эквивалентным сопротивлением 100 Ом, становится частью схемы и частью пути, по которому электричество проходит через потенцио- метр. Таким образом, вместо цепи, состоявшей из одного пути через потенци- ометр, цепь теперь состоит из двух ветвей, причем резистор 100 Ом включен параллельно потенциометру 10 кОм, что меняет его способность точно изме- нять выходное напряжение. Для таких приложений на практике требуется ста- билизатор напряжения вместо делителя напряжения на основе потенциометра или на основе двух резисторов.
76 ГЛАВА 3. Теоретические основы электротехники Эксперимент 19. Зенон Кирхгофа для тонов и параллельные нагрузки Детали Смонтированная печатная плата. Резистор величи- ной 1 кОм. Резистор ве- личиной 2,2 кОм Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр При рассмотрении нагрузки, включенной последовательно, суммирование от- дельных сопротивлений для получения общего сопротивления кажется впол- не интуитивно понятным. Если использовать пример с увеличением длины трубы, то дополнительное сопротивление, содержащееся в добавочной длине трубы, вполне естественно прибавляется к сопротивлению, уже существующе- му в системе, и общее сопротивление растет. Имея это в виду, вы можете поду- мать о том, что эквивалентное сопротивление двух резисторов, включенных в параллель, оценивается так же интуитивно (рис. 3.34). i = ? 20м Рис 3.34. Экспериментальная цепь из двух резисторов Вначале, когда вы попытаетесь понять, какое эквивалентное сопротивление при этом получится, вы, вероятно, столкнетесь с преградой, пытаясь предста- вить себе, что происходит в схеме. Аналогия с водой поможет, рассмотреть два резистора как две параллельные трубы, передающие воду на большей площа- ди; это уменьшает сопротивление, но эквивалентное сопротивление не на- столько очевидно. Для вычисления эквивалентного сопротивления двух резисторов (см. рис. 3.34), зная, что падение напряжения на каждом из них одинаково, мы мо- жем найти ток, текущий от 10-вольтового источника питания, по закону Ома: iJOM = 10В/5 Ом = 2А i2OM = 10В/20м = 5 А i, - = i.n + i9n = 2А+ 5А = 7А omguu 5 Ом 2 Ом
Эксперимент 19. Закон Кирхгофа для токов и параллельные нагрузки 77 Проделав это, вы должны освоиться с мыслью, что сумма токов через от- дельные ветви параллельной цепи равна суммарному току, который подается в схему. По закону Ома можно вычислить эквивалентное сопротивление: R =V/K . = 10В/7А= 1,43 Ом. Вместо того, чтобы сразу смотреть на десятичное значение эквивалентного сопротивления, взгляните на дробное значение сопротивления. Числитель этой дроби - произведение двух сопротивлений, а знаменатель - их сумма. С учетом этого можно вывести общую формулу для эквивалента двух параллельных сопро- тивлений (А и В): R = (R xR )/(R +RJ твивамнтное ' Л В'' ' А В7 Рассматривая цепь из трех или более резисторов, соединенных параллель- но (рис. 3.35), и проделав такой же анализ (начав с тока через каждый рези- стор, суммировать их и вычислить эквивалентное сопротивление), вы увиди- те, что общая формула для эквивалентного сопротивления такова: = 1/lU/R,)+ (1/RJ + •••- (i/R.)]- Рис. 3.35. Эквивалентной схема для нескольких параллельных резисторов В ходе этого эксперимента мне бы хотелось проверить этот анализ, используя схему, изображенную ниже (рис. 3.36), и результаты записать в табл. 3.4. Используя результаты эксперимента, следует произвести расчет эквивалентного сопротивления и установить, насколько точно совпадает полученный результат с рассчитанным ранее значением эквивалентного со- противления. Рис. 3.36. Схема для зшлериментальном проверки с двумя резисторами
78 ГЛЯВЯ 3. Теорстумесила основы электротехники Таблица 3.4. Результаты анализа Измеряемая величина Результат измерения V 9,25 В 13,19 мА >А. 9,02 мА —!_В2 4,18 мА Табл. 3.4 содержит значения, которые я измерил в рассматриваемой мной электрической цепи. Как и ожидалось, сумма токов, проходящих через два ре- зистора, равна суммарному току, который обеспечивает батарея. Это позволя- ет мне вычислить эквивалентное сопротивление; оно равно 701,3 Ом. По приведенной выше формуле я могу рассчитать ожидаемое значение эк- вивалентного сопротивления электрической цепи из двух параллельных рези- сторов с номиналами 1 кОм и 2,2 кОм: R = (R. х R )/ (R + R ) = (1 кОм х 2,2 кОм)/(1 кОм + 2,2 кОм) = = 2,2 (1(f)/3,2 (1(f) Ом = 687,5 Ом. Есть вероятность, что когда вы проведете этот эксперимент, то рассчитан- ное эквивалентное сопротивление будет на 1-2% отличаться от теоретическо- го значения, как у меня. Разница в значениях появляется из-за фактических значений сопротивления резисторов, которые вы используете, а также из-за некоторых систематических погрешностей цифрового мультиметра Заметьте: эквивалентное сопротивление параллельного соединения рези- сторов всегда меньше наименьшего из них. Данное наблюдение полезно по- мнить при расчете значения сопротивления в параллельной электрической цепи, чтобы узнать, правильный ли ответ вы получили. Утверждение, что сумма токов в параллельных ветвях электрической цепи равна значению тока в неразветвленной части цепи, известно как закон Кирхго- фа для токов*. Этот закон, как и закон Кирхгофа для напряжений и закон Ома, нужно помнить и понимать. Эксперимент 20. Теорема Тевинина Детали Смонтированная печатная плата. Четыре резистора номиналом 1 кОм Инструменты Набор инструментов для радиомонтажа. Цифр**** мультиметр * В отечественной научно-технической литературе именуЬтся Первым законом Кирхгофа. — Прим, перев.
Эксперимент 20. Теорема Тевинина 79 Имея дело с комбинацией последовательных соединений и параллельных со- противлений, можно увидеть нечто удивительное. В учебных курсах по осно- вам электроники вам дают цепь, похожую на описанную здесь, и просят рас- считать эквивалентное сопротивление цепи, напряжение на различных резисторах и силу тока в разных ее частях. Сделать это несложно, если со- блюдать правила объединения последовательных й параллельных сопротив- лений. Процесс преобразования группы (или совокупности) сопротивлений в одно называется теоремой Тевинина (Thevinin’s equivalency), согласно которой все нагрузки цепи могут быть сведены к одной эквивалентной*. Первый шаг в уп- рощении цепи состоит в объединении всех последовательных сопротивлений (рис. 3.37 - шаг 1). После этого объединяются параллельные сопротивления (шаг 2). Эти два действия повторяются, пока не будет получено единое сопро- тивление. Вычисляя эквивалентное сопротивление, я записывал результаты в виде смешанных дробей, не переводя в десятичные, чтобы упростить последу- ющую работу с этими величинами и иметь возможность проверить результаты в уме и убедится, что они имеют смысл. Например, подсчитывая величину VI (рис. 3.38), я уверен, что она будет составлять меньше половины напряжения источника питания, потому что падение напряжения на резисторе 1 кОм в верх- ней части принципиальной схемы цепи будет больше, чем падение на осталь- ных трех резисторах. Расчетное значение 2/5V составляет менее половины приложенного напряжения, поэтому интуитивно ясно, что вычисления идут в правильном направлении. Рис ЗЛ7. Упрощение сложной электрической нагрузки до одного эквивалентного сопротивления Автор несколько упрощает теорему, сводя ее только к расчету эквивалентного сопротивления. В полной формулировке любой сколь угодно сложный активный двухполюсник, содержащий в своем составе источник напряжения V, может быть преобразован в эквивалентную схему, состо- ящую из одного источника напряжения V|h и включенного последовательно с ним эквивалентно- го сопротивления Rlh, причем V(h рассчитывается путем пересчета величины V к выходу при об- рыве цепи нагрузки (на холостом ходу), a Rlh- путем пересчета к выходу соединения всех сопротивлений цепи при закороченном источнике V. Метод широко применяется на практике для расчетов и экспериментов и в отечественной литературе называется «Метод холостого хода и короткого замыкания». - Прим, перев.
80 ГЛЯВЯ 3. То'к>стичет*г основы электротехники Рис бЗв-Эпектричесмоя цепь со сложной нагрузкой для проверки эквивалентного сопротивления Вычислив эквивалентное сопротивление, можно рассчитывать разные па- раметры цепи (см. рис. 3.38). Провести этот анализ помогут закон Ома и зако- ны Кирхгофа для напряжений и токов. Для проверки моих подсчетов соберите описанную цепь. Сделав это, под- ключите ее к источнику питания, нарисуйте табл. 3.5 и записывайте получен- ные результаты в соответствующие ячейки. Таблица 33. Сравнение вычисленных и измеренных величин в эквивалентной схеме с источником напряжения Измерение Расчетная формула Ожидаемое значение Измеренное значение у^ 8.85 В И V«_/(1kOmx5/3) 5,31 мА 5,29 мА VI 2/5xV«.~— 3,54 В 3,52 В i2 2/5хУЯтмм/1кОм 3,54 мА 3,52 мА Сравните эти величины с расчетными значениями, полученными путем ум- ножения реального напряжения батареи (V) на 1кОм (см. рис. 3.38). Вы може- те расширить область проверки, чтобы убедиться в том, что каждая величина (напряжение на разных резисторах и ток i3) совпадают с расчетными показа- телями с точностью до долей процента. Когда я начал разрабатывать схему для проведения этого эксперимента, я собрал мост Уитстона (рис. 3.39). Мост Уитстона - очень полезная схема для измерения незначительных из- менений сопротивления. Резисторы в плечах моста играют роль делителей напряжения, и когда отношения резисторов в двух делителях равны, ток в ди- агонали моста будет отсутствовать. Я установил между двумя делителями напря- жения амперметр. Показание амперметра будет равно 0, когда резисторы в двух половинах схемы сбалансированы.
^ataHausi^k Эксперимент 21. Мощность 81 Рис 3.39. Мост Уитстона Если амперметр не показывает 0, вам придется регулировать R1 до тех пор, пока не будет получен нулевой показатель. Затем извлеките Rl, R2 и R3 из цепи, измерьте их сопротивление, а полученные величины используйте для опреде- ления неизвестного сопротивления (Ru) по следующей формуле. Если ток че- рез амперметр отсутствует, то: Ru = R1 х R3/R2. Мост Уитстона ведет себя как умножитель сопротивления. Если бы у вас был датчик нагрузки, который связан с системой и реагирует на нагрузку, под кото- рой он находится, изменяя свое сопротивление, с сопротивлением от 10 до 20 Ом, вы могли бы увеличить разницу в сопротивлении в 50 000 раз благодаря мосту Уитстона при R1 и R2, равных 1 МОм. В этом случае величина R3 соста- вила бы 10 Ом. Регулируя R1 до нулевого уровня тока через амперметр, вы можете косвенно измерить сопротивление датчика нагрузки. Эксперимент 21. Мощность Детали Смонтированная печатная плата с макетной платой. Резистор 100 Ом, 0,25 Вт. Резистор 1 кОм, 0,25 Вт Набор инструментов для радиомонтажа. Кроссовки. Секундомер Приобретая навыки в построении электрических схем, вы будете все больше и больше обращать внимание на мощность, используемую в конкретном прило- жении. В большинстве основных схем вам не придется отслеживать величину мощности, но раз вы начинаете работать со все более сложными схемами (осо- бенно с роботами), то следить за мощностью в схеме становится более важно. Единицы измерения как в области электричества, так и в области физических процессов в системе СИ определены очень рационально, что позволяет легко переводить единицы, свойственные одной области знания, в единицы другой области, чтобы понять и сравнить уровни мощности.
82 ГЛАВА 3. Теоретические основы электротехники Мощность - это произведение силы и скорости. Ее можно выразить следу- ющей формулой: Мощность = F х v гце сила измеряется в ньютонах (кг X м/с2), а скорость - в м/с. Сила определя- ется так: F= тх а где т - это масса объекта, а - ускорение, которое он испытывает. Если вам зна- кома английская система измерений, то вы скорее всего собственный вес выра- жаете в фунтах. Это не совсем правильно, но правда несколько смущает. Фунт - это мера массы (количества вещества, содержащегося в объекте), и его сокра- щение - Ibm. Смущает то, что 1 фунт массы в стандартном гравитационном поде (ускорение 32 ft/s2 или 9,807 м/с2) оказывает действие, которое называют 1 фунт-сила (Ibf). В системе СИ нет единицы «килограмм-сила», единица измере- ния силы в системе СИ называется ньютон (Н). Чтобы перевести вес в фунтах в силу, измеренную в ньютонах, нужно сделать следующее преобразование: llbf=4,45N Когда вы передвинули массу на некоторое расстояние, можно сказать, что вы произвели над объектом некоторую работу или сообщили ему определенное количество энергии. В системе СИ единица измерения работы или энергии называется джоуль и выражается в ньютонах на метр (буквально: сила х рассто- яние). Скорость, с которой энергия подается в систему, называется мощностью и измеряется в ваттах (Вт: кг х м2/с5). Я уверен, что вы слышали слово «ватт», однако, может быть, вам трудно представить, что он собой представляет на самом деле. Джеймс Ватт, один из созздателей парового двигателя, ввел опре- деление «лошадиная сила» (л.с.), как стандартное количество мощности, кото- рое развивает лошадь, выкачивая воду из шахты. В настоящее время 1 л.с. оп- ределяется как 746 Вт. Чтобы было проще понять, что такое лошадиная сила, проведите простой эксперимент. Измерьте время, за которое вы преодолеете один лестничный пролет. После этого подставьте полученные результаты в одну из приведенных ниже формул, и подсчитайте, какую мощность вы развили при подъеме по сту- пенькам. Мощность = Вес (фунт-сила) х Высота (фут) х 1,356 / Время на подъем (с) = Вес (Н) х Высота (м) / Время на подъем (с) Моя масса примерно 200 фунтов (или 90 кг, что создает вес в 890 Н), я смог преодолеть 10 футов (3 метра) ступенек за 7 секунд. Подставив значения в фор- мулы, я посчитал, что на подъем было истрачено 378 Вт или 0,51 л.с. Я уверен, что вы тоже сможете выдать не менее 0,25 л.с., а это на удивление много. Загад- ка - в вашем представлении о лошади: вам видится большое, сильное живот- ное. Когда Ватт вводил свое определение лошадиной силы-, он использовал
Эксперимент 21. Мощность 83 ^aiaHaus,^. тощих рабочих кляч того времени. Они были стары, больны и могли выдавать лишь малую часть мощности по сравнению с молодой, здоровой и упитанной лошадью. Используя терминологию цепей постоянного электрического тока, мощ- ность можно определить по формуле: Р= Vx i Напряжение (V) измеряется в джоулях/кулонах, а ток (i) - в кулонах в се- кунду. Перемножение двух единиц измерения дает размерность джоуль в секун- ду или кг х м2/с\ что идентично введенным ранее единицам - ваттам. Чтобы испытать возможности батареи как источника питания электриче- ской цепи, используйте макетную плату на печатной плате, показанной в При- ложении 3. Соберите схему (рис. 3.40). Смонтируйте ее сначала с резистором величиной 1 кОм, а затем с резистором 100 Ом. Я не рекомендую вам укорачи- вать выводы резисторов настолько, чтобы они касались макетной платы, - ско- ро вы поймете почему. Источник-------Q Д электропитания а ° Выход энергии R > из резистора виде тепла Рис. 3.40. Цепь для проверки /мощности но резисторе После присоединения резистора к макету подождите около 30 с, а затем потрогайте его внешней стороной пальца. Резистор 100 Ом заметно нагреется. Вот поэтому я и предложил дотронуться обратной стороной пальца - она чув- ствительнее к теплу, чем кончик или подушечки пальца, а если вы случайно обожжетесь, вы все же сможете держать ручку или карандаш. На самом деле оба резистора нагреваются, так как через них проходит оп- ределенная мощность, просто резистор 1 кОм не так сильно рассеивает мощ- ность, как резистор 100 Ом. Когда говорят о рассеиваемой мощности, имеют в виду количество мощности, которое резистор превращает в тепло. Возвратим- ся к формуле мощности. Можно использовать закон Ома, чтобы выразить мощ- ность разными способами: Р= Ух/ = V2/R = PxR Можно подсчитать мощность, потребляемую двумя резисторами, зная прило- женное напряжение: резистор 1 кОм рассеивает 0,081 Вт, а резистор 100 Ом - 0,81 Вт. Таким образом, второй резистор рассеивает в 10 раз больше мощности, чем первый, поэтому он заметно теплее. В такой ситуации я бы порекомендовал применять резистор, способный рассеивать 1 Вт мощности, а не стандартный резистор на 0,25 Вт из тех, что в основном используется в этой книге. Резистор
84 ГЛАВА 3. Теоретические основы электротехники на 1 Вт по размерам значительно больше, чем на 0,25 Вт, у него большая поверх- ность для рассеяния мощности и соответственно ниже температура поверхно- сти. Увеличение площади поверхности элемента, выделяющего значительное количество тепла (0,5 Вт или более), называется теплоотводом и часто использу- ется в микропроцессорах, как в вашем компьютере. Эксперимент 22. Батареи Детали Смонтированная печатная плата с макетной платой. Резистор 100 Ом, 1 Вт. Недорогая угольная бата- рейка на 9 В. Щелочная батарейка на 9 В. Никель- металлогидридная бата- рейка на 9 В Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр. Секундомер Питание для роботов почти всегда поступает от бортового источника питания. В некоторых роботах используются фотогальванические элементы, однако такие роботы хранят энергию в конденсаторах или батареях до того, как пере- дать ее двигателю или электронным устройствам. Другие роботы питаются извне и имеют силовые кабели. Я бы не советовал применять такие способы питания, так как кабель может запутаться, к тому же такой робот выглядит как картинка из комиксов. Незначительная часть роботов питается от топливных элементов и встроенных двигателей внутреннего сгорания. Вы должны решить, как будет питаться двигатель и электроника системы управления и периферийных устройств вашего робота. У многих роботов два комплекта батарей: для двигателя и электроники. Цель использования двух комплектов батарей - минимизировать колебания напряжения питания при включении/выключении двигателей. Единый комплект батарей делает робот дешевле и легче. Уменьшая сто- имость и вес робота, вы откроете удивительную закономерность. Применение одного комплекта батарей снижает общий вес робота, что позволяет использо- вать двигатель меньшего размера и мощности. Маленькие двигатели обычно дешевле и требуют меньше мощности, а значит, и меньшего размера батареи. Меньшая батарея стоит и весит меньше, чем большая, позволяя применять меньший по величине двигатель... Цикл снижения цены и веса, известный как супер-эффект, позволяет создать самый маленький, легкий и дешевый робот с заранее установленным набором технических характеристик. Но не увлекайтесь уменьшением модели, а то дой- дет до того, что она не сможет выполнять тех функций для которых была пред- назначена.
Эксперимент 22. Ботореи 85 В качестве источника питания подойдут щелочные радиобатареи, никель- металлогидридные (NiMH) и никель-кадмиевые (NiCad) аккумуляторные бата- реи и кислотно-свинцовые автомобильные или мотоциклетные аккумуляторы. Для вашего робота я рекомендую никель-металлогидридные батареи, так как они менее вредны для окружающей среды, чем никель-кадмиевые*. От правиль- ного выбора источника питания зависят: • размер и вес робота; • напряжение батареи; • срок службы робота; • скорость движения; • стоимость; • время работы без подзарядки. Разные типы батарей выдают разное выходное напряжение и разряжаются с разными скоростями. Литиевые выдают относительно большее напряжение, но обычно малую силу тока. От угольных и щелочных можно ожидать 1,5 В и более на элемент. Аккумуляторные батареи (NiCad и NiMH) дают на выходе 1,2 В на элемент. Аккумуляторные обычно выдают постоянное напряжение, тогда как выходное напряжение одноразовых элементов (угольных и щело- чных) линейно уменьшается по мере использования (рис. 3.41). Рис. 3.41. Робота батарей разных типов Критическим параметром при выборе типа батареи является ее внутреннее сопротивление. Чем выше внутреннее сопротивление, тем меньше сила тока, которую могут получить от нее двигатели. Кроме того, при этом в батарее будет непропорциональная потеря энергии. Часто при нагреве батарей (из-за вну- треннего рассеяния энергии) их способность вырабатывать электрический ток снижается. Чем выше внутреннее сопротивление батареи, тем больше влияют на выходные параметры переходные процессы, что приводит к увеличению Никель-металлогидридные батареи имеют перед никель-кадмиевыми еще одно важное преиму- щество: в отличие от последних для их подзарядки не требуется, чтобы батарея была предвари- тельно полностью разряжена. - Прим, перев.
86 ГЛАВА 3. Теоретические основы электротехники необходимости фильтрации питания, подводимого к контроллеру. Как и супер- эффект, проявляющийся при использовании единственного элемента питания и самого маленького мотора из всех возможных, минимизация внутреннего со- противления батареи позволит уменьшить габариты, массу и стоимость робота. Зачастую люди, изображающие себя «экспертами», будут говорить, что сле- дует покупать только дешевые угольные батареи вместо дорогих щелочных (или перезаряжаемых), потому что их рейтинг по электрическому заряду, вы- раженному в ампер-часах, очень близок. Так-то оно так, но я хотел бы предо- стеречь вас от использования таких батарей в роботах, потому что у недорогих батарей есть тенденция иметь более высокое внутреннее сопротивление. Обычно данные о внутреннем сопротивлении батареи производители поме- щают в Интернете или в каталогах. Большинство батарей, используемых в ро- ботах, состоит из нескольких элементов, включенных последовательно. Хотя обычно вы представляете схему как идеализированную, на практике существу- ет реальная схема, в которой каждая батарея представлена символом батареи и резистором. В эквивалентной схеме я объединил внутренние сопротивления элементов в одно, с целью ясно показать, что при увеличении тока, отбираемо- го от батареи, падение напряжения на внутреннем сопротивлении батареи тоже увеличивается (рис. 3.42). Согласно закону Ома падение напряжения на нагрузке обратно пропорционально силе тока через нее. Это значит, что по мере увеличения силы тока внутреннее сопротивление батареи растет, а выход эквивалентного напряжения падает. Идеализированная схема Схема робота, состоящая из многоэлементной батареи, контроллера и мотора Сопротивление многоэлемент- ной батареи представлено в виде суммарной величины, чтобы показать падение напряжения, внешнее по отношению к контроллеру и мотору (ам) Уточненная модель многоэлементной батареи, с учетом внутренних сопротивлений Рис 3.42. Воздействие сопротивления батареи на робот
^alaHausiSk. Эксперимент 22. Батареи 87 Познакомившись с предлагаемыми образцами, вы поймете, что самое низ- кое внутреннее сопротивление у высококачественных щелочных радиобатарей или у аккумуляторов, предназначенных для сильноточных схем. В качестве потенциального источника питания для робота можно взять никель-кадмиевые батареи на 9,6 В. Они применяются в электромоделях гоночных автомобилей с дистанционным управлением, обладают очень низким внутренним сопротив- лением, продаются вместе с зарядным устройством и относительно недороги. Я хочу предложить довольно простой эксперимент: посмотрите, сможете ли вы воспроизвести рис. 3.41, используя недорогую угольную батарею, сред- нюю по цене щелочную батарею и никель-металлогидридный аккумулятор. Эти батареи будут использоваться с печатной платой из Приложения 3 в схе- ме (рис. 3.43). Рис. 3.43. Схема для испытания выходного напряжения батареи Для проверки своих предположений я записал выходное напряжение в за- висимости от времени для угольной, щелочной и перезаряжаемой никель-ме- таллогидридной (NiMH) батарей, а затем результаты свел в таблицу (табл. 3.6) и построил график в Microsoft Excel (рис. 3.44). Результаты в основном подтвер- дили мои предположения, однако у угольной батареи оказалась большая на- чальная потеря напряжения. После недолгого исследования я понял причи- ну - это химическое видоизменение близких к электродам материалов внутри батареи, приводящее к увеличению ее внутреннего сопротивления. Как види- те, лучшим вариантом будет никель-металлогидридная (NiMH) батарея, так как ее выходное напряжение остается близким к 9 В в течение большего периода времени (рис. 3.44). Затем напряжение батареи падает резко, а не остается на очень низком уровне (что практически является преимуществом в большин- стве случаев). Таблица 3.6. Реальное выходное напряжение батарей разных типов Время, мин Никель-металлогидридная батарея Щелочная батарея Угольная батарея 0 9.02 9,08 8,24 5 8,69 8,44 7,02 10 8,62 8,32 6,57 15 8,61 8,22 6,37 20 8,62 8,12 6,3 25 8,61 8,04 6,28
88 ГЛЙВЙ 3. Теоретуг-к»; ие основы электротехники Таблице 3.6. (окончание) Время, мин Никель-металлогидридная батарея Щелочная батарея Угольная батарея 30 8,61 7,96 6,25 35 8,6 7,9 6,23 40 8,59 7,83 6,19 45 8,55 7.78 6,16 50 8,53 7,73 6,09 55 8,5, 7,67 6,05 60 8,46 7,62 5,98 65 8,4 7,58 5,93 70 8,34 7,52 5,86 75 8,27 7,46 5,79 80 8,18 7,43 5,73 85 8,05 7,39 5,67 90 7,86 7,36 5,61 95 7,63 7,33 5,56 100 7,22 7,3 5,49 105 6,3 7,28 5,43 110 з.з 7,25 5,37 115 1,88 7,22 5,31 120 7,19 5,25 Рис. 3.44. Сравнение срока службы батарей разных типов
^ataHaus,^. К размышлению 89 К размышлению Математические приемы для расчета разных величин в этой главе не должны были оказаться для вас ни новыми, ни слишком сложными. Новым может быть понимание физического смысла величин и степени корректности результата расчета. В конце этой главы я еще расскажу о разных величинах и тех преде- лах, в которых должны быть их значения. Все измерения в электротехнике производятся в единицах системы СИ. Это общепринятый стандарт измерений различных величин. Большинство стран по всему миру применяют единицы СИ во всех отраслях знаний. Следует отме- тить, что некоторые страны (США, Канада, Великобритания и Австралия) по- прежнему используют британскую систему измерений длины, объема, массы и силы. Несмотря на такие отличия, для электротехнических измерений в этих странах используется система СИ. Единицы СИ позволяют легко производить расчеты с разнородными вели- чинами. Они основаны на десятичной системе счисления, что облегчает рас- четы. Помню, как в детстве я пытался запомнить, что в футе 12 дюймов, в ярде 3 фута, в чейне 22 ярда, а 10 чейнов составляют восьмую часть мили. По бри- танской системе измерений веса, в 1 кварте 2 пинты, в 1 галлоне 4 кварты, а в бушеле 8 галлонов. Меры веса еще более странные: в фунте 16 унций, 14 фун- тов дают 1 стоун, в центнере 8 стоунов, 20 центнеров в тонне (британская тон- на весит 2400, а не 2200 фунтов, как думают многие). После такого выучить де- нежные единицы в книгах про Гарри Поттера (29 кнутов = 1 сикль, 17 сиклей = 1 галлеон) - сущий пустяк! Для перевода единиц СИ в более удобную форму нужно просто умножить или разделить число на 10 или какую-то другую степень десяти и добавить под- ходящую приставку в наименовании единицы. Если у вас 1000 чего-то метрического (табл. 3.7.), значит у вас 1 кило-что-то. Большинство приставок из табл. 3.7 делятся на 10 (например, 10 в степени 1 - дека), но я не поместил всю эту информацию в табл. 3.7, так как она редко ис- пользуется в электронике. Таблица 3.7. Перевод единиц системы СИ Множитель Приставка Символ Множитель Приставка Символ 10» кило К IO'3 милли м 10” мега м 10 е микро мк 10е гига г IO9 нано н 10” тера т 1012 ПИКО п 10” пета п 10 ,S фемто ф Секунда- это единица измерения времени системы СИ, определяемая как ча- стота выходного микроволнового сигнала атома цезия (9 192 631 770 колебаний в секунду). Секунды обычно не употребляются с префиксами более единицы,
90 ГЛАВЙ 3. Теоретические основы электротехники зато часто встречаются в виде тысячных (миллисекунды, мс) и миллионных долей (микросекунды, мкс). В большинстве проектов из этой книги вы столк- нетесь с миллисекундами и иногда с секундами. Если в ходе расчетов при про- ведении экспериментов у вас получится число, выраженное в миллиардных частях секунды (наносекундах, нс), значит, вы, вероятно, где-то ошиблись. Частота сигнала определяется как величина, обратная его периоду (рис. 3.45). На иллюстрацйи вы видите сигнал, повторяющийся каждые п секунд. Промежу- ток времени, необходимый, чтобы сигнал повторился, называется период. Сигнал -----Период--• Частота = ——-— Период Рис. 3.45. Повторяющийся сигнал, его период и частота Таким образом, если период вашего сигнала равен 2 мс (0,002 с), то его ча- стоту можно посчитать по формуле: Частота = 1/Период = 1/2мс - 1/2 (103) с = 500 1/с- 500 Гц. Единица измерения частоты в системе СИ - герц (Hz, Гц), который имеет размерность «единица, деленная на секунды». Большинство звуковых сигналов находятся в диапазоне от 100 до 2500 Гц (или 2,5 кГц). Возможно, вы можете слы- шать частоту от 12 кГц и выше, но устная речь передается на частотах от 100 до 2500 Гц. В этой книге вам встретятся сигналы частотой от нескольких сотен до миллиона герц (Гц, кГц и Мгц). Вы не увидите долей герца (если при расчетах у вас получится частота в миллигерцах, знайте: вы совершили ошибку).
5>alaWaus;«i' Глава 4 Магнитные приборы Когда мы говорим о чем-то сложном или непонятном (о том, что неочевидно), мы как-то показываем, что «тормозим». При этом мы употребляем такие выра- жения, как «голова кругом», «вверх дном» и «сдвиг по фазе» (то есть, на 180°), чтобы описать вещи, которые трудно усвоить, но мы не говорим о таких вещах, употребляя термин «сбоку» (как в понятии перпендикуляра или сдвига по фазе на 90°). По-моему, это удивительно, потому что наибольшие трудности из тех, что я испытывал, пытаясь что-либо себе представить, будучи студентом, отно- сились к магнитным полям и тому, как они взаимодействуют с проводниками, по которым протекает электрический ток. Основы магнетизма понять довольно просто. На рис. 4.1 показан намагни- ченный кусок металла (он называется постоянный магнит или просто магнит). У него имеются силовые линии, направленные от «северного» полюса (или конца) к «южному». Силовые линии (их также называют магнитным полем) можно изменить, если на их пути разместить кусок намагниченного металла (обычно железа). Совсем как электрический ток, который течет по тому пути, где испытыва- ет наименьшее сопротивление, магнитные поля наиболее эффективны, когда распространяются в магнитных материалах (обычно в железе) или же на ми- нимальных расстояниях, когда распространяются в немагнитных материалах. Если близко к магниту находится кусок железа, это железо обеспечивает маг- нитному полю путь для прохождения. Магнитное поле проходит через железо и притягивает его, так что поле становится меньше по размеру (и действует сильнее). Вот почему, если кусок железа лежит вблизи от магнита, можно обнаружить магнитное поле, но при этом его можно легко нейтрализовать. По мере того как железо подносят ближе к магниту, притягивающая его сила нарастает, пока железо не придет в соприкосновение с магнитом, и потребуется значительное усилие, чтобы оттянуть его от магнита. Когда вы были помладше, возможно, вы пользовались преимуществами та- ких свойств магнита, как отталкивание одноименных полюсов магнитов и
92 ГЛЙВЯ 4. Магнитные приборы притягивание разноименных полюсов, чтобы изготовить для себя простейший компас (рис. 4.2). Его можно сделать, если потереть несколько раз в одном на- правлении стальную иглу (или стальной гвоздь) о магнит, а затем положить ее на пробку, плавающую в воде, которая налита в неметаллическую посуду. Рис. 4.1. Магнит в виде бруска и силовые линии между полюсами Притяжение разноименных полюсов Отталкивание одноименных полюсов Магнитные силовые линии, отталкивающие магниты друг от друга Магнитные силовые линии, притягивающие магниты друг к другу Рис. 4.2. Взаимодействие двух намагниченных брусков Натирание иглы магнитом в одном направлении установит атомы в игле в одном направлении, то есть намагнитит ее. Многие люди намагничивают от- вертки, натирая их магнитом, чтобы ими можно было подбирать и удерживать винты, чтобы они не упали. Когда намагниченную иглу компаса помещают на пробку, ее северный полюс будет притягиваться к Северному полюсу Земли (и наоборот). Магнит, плавающий на поверхности воды (иди спирта), веками слу- жил компасом. Магнитные поля кольцевой формы образуются вокруг проводников, по кото- рым протекает ток. (рис. 4.3). Направление магнитного поля здесь определяет- ся по правилу Максвелла (правилу буравчика): если ввинчивать воображаемый
^ataHaus^. Магнитные приборы 93 буравчик по направлению тока в проводнике, то движение рукоятки буравчика покажет направление силовых линий магнитного поля. Магнитное поле, порожденное Ток, текущий по проводнику Рис. 4.3. Магнитное поле, порожденное проводником с током Когда изображают ток в проводнике, то по существующему соглашению ста- вят крест на том конце проводника, куда ток входит (как оперение стрелы), и точку - на том конце проводника, откуда ток выходит (как острие стрелы). Магнитное поле можно сконцентрировать и усилить за счет катушки - не- скольких витков провода (рис. 4.4). Направление магнитного поля катушки определяется по правилу буравчика так же, как у одиночного проводника. Направление тока в проводнике / Источник тока Гь— Рис. 4.4. Магнитное поле катушки с током Сила магнитного поля в катушке возрастет, если поместить в нее стер- жень из магнитного материала (например, железа). Такая мера концентри- рует магнитное поле, что приводит к гораздо более сильному воздействию на магнитные объекты. Катушка, намотанная на металлический стержень, называется электромагнит и может создавать электрические поля значитель- ной силы. Действие постоянного магнита и электромагнита кажется вполне ясным. Труднее понять, что происходит, когда используется их комбинация. Если по- местить проводник с током в магнитное поле, то два магнитных поля будут вза- имодействовать и вызовут появление силы, которая прилагается к проводни- ку: ток, текущий через проводник, направлен за плоскость рисунка, на что указывает крест в маленьком кружке в центре рис. 4.5. На рисунке вы видите силовые линии магнитного поля как для постоянного магнита, так и для проводника. Линии магнитного поля постоянного магнита пытаются следовать своему исходному направлению с севера на юг, но провод- ник вызывает искривление линий магнитного поля, так что линии, исходящие
94 ГЛЯВЯ 4. Москитные приборы Ij г Магнитные силовые линии Рис. 4.5. Могнитные поля и проводник с током между ними из северного полюса постоянного магнита, нарисованы смещенными к правой стороне проводника. Это изменение линий поля вызывает силу, действующую на проводник, которая перемещает его отнюдь не в сторону какого-нибудь из полюсов постоянного магнита, а между полюсами. Направление силы удивляет, но причина этого явления должна сейчас стать очевидной. Кольцевые магнитные поля, приходящие от несущего в себе ток проводника, имеют как северный, так и южный полюсы, которые будут сталки- ваться с полюсами постоянного магнита. Одноименные полюсы будут отталки- ваться, а разноименные - притягиваться. Вертикальные составляющие этих сил сведут друг друга на нет, а горизонтальные станут преобладающими. Пред- сказать направление результирующей силы вам поможет левая рука. Если ла- донь левой руки расположить так, чтобы в нее входили линии магнитного поля, а четыре вытянутых пальца указывали бы направление тока, то отстав- ленный большой палец укажет направление силы, действующей со стороны поля на проводник. Это «правило левой руки». Вас не должно удивлять, что действующая на проводник сила окажется очень небольшой. Силу можно увеличить за счет увеличения тока, проходяще- го через проводник или силы магнитного поля (последнего можно достичь, сдвинув полюсы ближе). Другой способ увеличения силы состоит в добавлении дополнительных проводников. В традиционном (роторном) электрическом двигателе нелегко использо- вать преимущества этого явления - движения в сторону при воздействии маг- нитного поля на проводник, потому что при этом один полюс магнита должен находиться в центре двигателя, а другой - снаружи. Более практичная реализа- ция этого явления известна как линейный индукционный двигатель и многократ- но предлагалась в прошлом для поездов, свободных от трения (левитационных поездов).
Эксперимент 23. Электромогниты 95 Эксперимент 23. Электромагниты Детали Стальной гвоздь длиной 8 см. Шесть метров стан- дартного медного прово- да сечением 0.3 мм2. Эластичная повязка Инструменты Две батареи типа С с дер- жателем. Гвозди, гайки, болты и шайбы; монеты Вероятно, самая замечательная вещь, которую когда-либо делали с электромаг- нитом, произошла в фильме «Голдфингер». Главный герой, Орик Голдфингер, спланировал ограбление хранилища золота в Форт-Нокс, штат Кентукки. Но один из бандитов отказался участвовать в предприятии, считая его выполне- ние невозможным, требует свое вознаграждение и уезжает. В то время, как он ехал в аэропорт, телохранитель Голдфингера убил его. И труп, и автомобиль, в котором был убит бандит (марки «Линкольн Континенталь Марк II», в багаж- нике которого находится вознаграждение золотом) были спрессованы в куб величиной 1 м в поперечнике. Куб подцепили с помощью электромагнита, за- тем сбросили в кузов проезжающего грузовика и возвратили 1олдфингеру, что- бы можно было взять золото из автомобиля. Великолепная сцена, хоть и алогичная. И почти до неприличия расточи- тельная. Мне всегда нравились машины «Континенталь Марк II», и, когда я вижу, как ломают совершенно новый экземпляр (даже если это кино 40-летней давности), на мои глаза наворачиваются слезы. А вот что эта сцена демонстрирует, так это разносторонность электромаг- нита. У автомобиля, спрессованного в куб небольшого размера, множество ост- рых кромок, и его трудно захватить. Электромагнит, который может создать магнитное поле по команде, будет прикладывать силу, чтобы захватить все ме- таллические предметы в сломанном автомобиле, независимо от формы конеч- ного изделия и от того, имеются ли в наличии детали, поддерживающие вес куба. Поднять сломанный автомобиль электромагнитом - это довольно элегант- ное решение практической задачи. Чтобы начать эксперимент, намотайте 6 м провода на стальной гвоздь. При помощи постоянного магнита убедитесь, что гвоздь сделан из обычной стали. Хотя большинство гвоздей сделаны из стали, вам может попасться гвоздь из нержавеющей стали или латуни. Ни один из этих материалов не является маг- нитным и не концентрирует магнитное поле, как это делает обычная сталь. Я рекомендую использовать стандартный многожильный провод, а не одно- жильный, потому что его легче наматывать на гвоздь. Не беспокойтесь об акку- ратности намотки или о том, чтобы витки провода шли в каком-то определен- ном порядке. У меня толью. одно требование: два конца провода после намотки
96 ГЛЙВЙ 4» Магнитные приборы должны выходить с одной стороны. Я обезопасил себя от соскакивания обмот- ки с гвоздя при помощи небольшой эластичной повязки (рис. 4.6 и 4.7). Рис 4.6. (отовый электромагнит Магнитные силовые линии, входящие в «Южный» полюс электромагнита Металлический гвоздь, обмотанный проводом Направление намотки провода, показывающее направление тока внутри него Магнитные силовые линии, выходящие из «Северного» полюса электромагнита Рис 4.7. Электромагнит в разрезе Электромагнит готов! Когда на провод, намотанный на гвоздь, подается электропитание, ток вызовет появление магнитного поля вокруг каждого вит- ка на гвозде, причем это поле объединяется с магнитными полями-других вит- ков, и образуется результирующее поле, которое проходит через гвоздь и по- зволяет ему захватывать стальные предметы (рис. 4.8). Магнитное поле, создаваемое электромагнитом, окажется удивительно сильным. Подсоедините два элемента электропитания типа С к электромаг- ниту и проверьте его в действии. Электромагнит легко подхватит стандарт- ные шайбы, гайки и болты, но не будет действовать на большинство монет.
Эксперимент 24. Реле 97 Гауки, болты и шайбы, как правило, сделаны из стали, тогда как монеты, из- готовленные из латуни, меди и серебра, не подвержены действию магнитно- го поля. Рис 4.8. Роботающий электромагнит Эксперимент 24. Реле Детали Три стальных гвоздя дли- ной 8 см. 6 метров стан- дартного медного прово- да сечением 0,3 мм2. Эластичная повязка. 30,5 см стандартного медного проасдз сечением от 0,1 до 0,2 мм2. Однополюсный переключатель на одно или два направления. Свето- диод. Резистор номиналом 1 кОм. Две батареи типа С с держателем Инструменты Батарея 9 В с держателем. Паяльник. Припой Сейчас мы обсудим работу реле, и я покажу, как сделать реле с помощью эле- ктромагнита на основе гвоздя из предыдущего эксперимента. Условное обозначение реле на схемах (рис. 4.9) хорошо поясняет, как оно устроено. Реле состоит из электромагнита, двигающего подвижный контакт, у которого имеется связанный с ним кусок стали. Подвижный контакт пред- ставляет собой соединение меди и стали, которое катушка притягивает к себе и обеспечивает порядок прохождения тока между подвижным контактом и «Соединением при неактивной катушке» либо «Соединением при активной катушке». В нормальном, исходном состоянии, когда тока в электромагните нет, подвижный контакт притянут к «Соединению при неактивной катушке». Когда через электромагнит проходит ток, подвижный контакт притягивает- ся «вниз» (по схеме), создавая связь с «Соединением при активной катушке».
98 ГЛАВА 4. Магнитные приборы При помощи одного и того же реле с несколькими подвижными контактами можно управлять несколькими устройством электрической схемы. Подвижный контакт (положение меняется под действием электромагнита) Катушка, вход Соединение / при неактивной катушке ,_____Общий (соединен с подвижным контактом) \ Соединение при активной катушке Электромагнит (со стальным сердечником) Рис. 4.9. Условное обозначение реле Действие подвижного контакта реле, соединяющегося Попеременно с дву- мя контактами, аналогично действию однополюсного переключателя на два направ- ления. Реле позволяет установить электрическое соединение, если электромаг- нит реле активен или, наоборот, если он неактивен. Когда электромагнит выключен, подвижный контакт соединен с одним контактом. Когда электро- магнит включен и актйвен, подвижный контакт отталкивается от этого контак- та и приходит в соприкосновение с другим контактом. Используя электромагнит, сделанный в эксперименте 23, вы можете собрать простую схему для проверки работы реле (рис. 4.10). Эта схема состоит из эле- ктромагнита, который питается от двух батарей типа С и управляется простым выключателем, соединенным с ним последовательно. Рис 4.10. Простая схема модели реле Подвижным контактом в этой схеме фактически является другой гвоздь, соединенный со светодиодом, резистором номиналом 1 кОм и положительной клеммой 9-вольтовой батареи. Чтобы упростить построение схемы, стальной гвоздь - сердечник электромагнита - играет роль контакта, который создает- ся, когда электромагнит активен и притягивает подвижный контакт.
^latattaus^k Эксперимент 24. Реле 99 На основе этой схемы можно создать довольно впечатляющий научно-фан- тастического проект. Установив электромагнит в деревянную рамку (и поэтому я предлагаю вам использовать в качестве сердечника электромагнита стальной гвоздь или болт), укрепите под ним подвижный контакт. Вместо второго гво- здя подойдет медный шарнир со стальным болтом, который будет притягивать- ся электромагнитом. А контактами для подвижного контакта на медном шар- нире будут служить медные болты. Реле привносят в схему два важных свойства: изоляция (1) и способность управлять схемой высокого напряжения или сильного тока при помощи цепи слабого напряжения/тока (2). Первое означает, что управляющая цепь полно- стью отделена от управляемой цепи. Это важно для тех приложений, где управ- ляемое устройство представляет собой предмет бытовой техники или другую схему высокого переменного напряжения. Изоляция цепей позволяет цепям с низким напряжением и током управлять цепями высокого напряжения или сильного тока, что полезно при создании роботов. Цифровые логические (и аналоговые) схемы, представленные далее в этой книге, работают при гораздо более низких уровнях напряжения и тока и даже от маленьких моторчиков для игрушек. Приборы, позволяющие сигналам пи- тания управлять устройствами высокой мощности, необходимы для робототе- хники. Две другие характеристики реле редко обсуждаются, но вы оцените их, ко- гда будете конструировать собственные полупроводниковые электронные схе- мы управления двигателями: очень малые падение напряжения и сопротивле- ние контактов реле. Когда я буду представлять вам транзисторы, вы увидите, что они действительно дают определенное падение напряжения и сопротивле- ние, что будет влиять на работу двигателей. Взгляните на транзисторную схему управления реле с выхода простой логи- ческой микросхемы (рис. 4.11). Такая же схема служит для управления двигате- лем сигалами с логических микросхем. Переключаемый сигнал Диод для защиты - от броска обратного: i напряжения - Соединение при неактивной катушке _ Общий (соединен с подвижным контактом) Соединение при активной катушке Логическое управление Рис. 4.11. Робота сеемы управления реле
100 ГЛАВА 4. Магнитные приборы Эксперимент 25. Измерение магнитного поля Земли Детали Смонтированная печатная плата с макетной платой. Компас. 30-50 см стан- дартного провода площа- дью сечения 0,12-0,3 мм2 (диаметром 0,4-0,6 мм) Инструменты Набор инструментов для радиомонтажа. Кусачки. Нож Цифровой мультиметр - это плод буквально миллионов человеко-лет экспери- ментов и теоретических исследований электричества и способов его измере- ния. Во времена Бенджамена Франклина проверка на наличие электричества состояла в том, чтобы коснуться схемы и посмотреть, вспыхнет ли искра. Та- кой тест «методом касания» для электричества позволял обнаружить только довольно высокие уровни электричества (чтобы возникла искра, нужен потен- циал не менее 1500 В). Очевидно, что такой тест не очень точен и весьма опа- сен. Европейский ученый, повторяя эксперимент Франклина с воздушным змеем, был убит электрическим током, когда коснулся змея. По прошествии времени были разработаны различные теории как по при- роде электричества, так и по экспериментальному подтверждению этих тео- рий. Было выполнено множество экспериментов, при которых использовались устройства, в настоящее время ставшие инструментами для лучшего понима- ния природы происходящих процессов. Весьма старинный пример такого ус- тройства - электроскоп (рис. 4.12): медная пластина, включенная в электриче- скую цепь и связанная с листом золотой фольги или тонкого листового золота. Когда медная пластина включается в электрическую цепь, пластина и золотой лист будут отталкиваться друг от друга из-за того, что на неподвижной пласти- не и закрепленном только вверху золотом листе образуются одноименные за- ряды. Поскольку золотой лист очень легкий, он будет отклоняться благодаря этому заряду. на золотом и медном листах отталкивают золотой лист Рис. 4.12. Старинный электроскоп
ftalaHausi Эксперимент 25. Измерение магнитного поля Земли 101 Золотой лист сделал долгую и блестящую карьеру в науке (он занимал цен- тральное место в эксперименте Резерфорда по природе материи), потому что у золота есть некоторые полезные свойства. Во-первых, это великолепный про- водник. Во-вторых, оно вступает в реакцию с другими элементами с большим трудом; вы, может быть, слышали, что его называют благородным металлом. Это название возникло не потому, что из него делают королевские короны, а потому, что другие элементы не способны образовывать соединения с золотом, кроме реакций, проходящих в особых условиях. И третье свойство золота, де- лающее его идеальным для экспериментов такого типа, - его ковкость. Из зо- лота можно изготовить способом ковки очень тонкие листы толщиной всего в несколько атомов. Современному любителю трудно сделать и использовать электроскоп. Как вы, очевидно, и предполагаете, подходящий золотой лист трудно найти, но вас должно удивить, насколько трудно найти другие материалы, которые можно было бы использовать вместо него. Обычная хозяйственная алюминиевая фольга не годится - она слишком толста и тяжела. Мне приходилось видеть несколько образцов электроскопов, сделанных на основе пузырчатой пласти- ковой пленки «арахис», которую применяют для защиты изделий при тран- спортировке. Вы могли бы попробовать сделать электроскоп из пузырчатой пленки, но она имеет «склонность» накапливать статическое электричество и на практике создает заметный риск пробоя для различных электронных дета- лей, используемых в дальнейших экспериментах этой книги. После экспери- ментов с электроскопом на основе пузырчатой пленки убедитесь, что пленка удалена и не представляет опасности для электронных приборов. Гораздо полезнее поэкспериментировать с амперметром на основе компа- са. Чтобы сделать такой прибор, возьмите стандартный провод и оберните его два-три раза вокруг компаса (рис. 4.13). Затем ориентируйте компас так, чтобы направление на север было параллельно направлению намотки провода, и под- соедините 9-вольтовую батарею к зачищенным концам провода. Рис. 4.13. Амперметр, сделанный из компаса, обмотанного проводом
102 ГЛЯДЯ 4. Могнитные приборы Стрелка компаса быстро меняет свое положение, становясь перпендикуляр- но виткам провода, намотанным на компас, поскольку она ориентируется в соответствии с магнитным полем, возникшим в обмотке. Меня удивило, как быстро двигалась стрелка компаса под действием магнитного поля, показывая наличие магнитного поля, созданного всего-навсего двумя или тремя витками провода. Элемент питания, питающий обмотку, оказывается гораздо сильнее магнитного поля Земли. Многие ученые в прежние времена использовал амперметр для обнаружения электричества в цепи, благодаря его простоте и невысокой стоимости. Проде- лав небольшую работу, а именно, измерив величину отклонения стрелки компа- са для известных значений тока, можно определить силу магнитного поля Зем- ли по конкретному положению стрелки. Это потребует некоторых усилий, но сделать это довольно легко, добавив к цепи потенциометр (рис. 4.14). Потенци- ометр ограничивает суммарный ток, протекающий через обмотку из провода, намотанного на компас. Для этого эксперимента я пользовался прилагаемой к книге печатной платой. При этом мне пришлось следить за тем, чтобы обмотка и компас были как можно дальше от 9-вольтовой батареи, чтобы металл, содер- жащийся в корпусе батареи, не расстроил компас. Батарея 9 В Двух или трех витков проволоки вполне достаточно для работы компаса Рис. 4.14. Схема для измерения силы магнитного поля Земли Магнитное поле, созданное обмоткой, обозначается символом В, измеряет- ся в «теслах»’ и определяется по формуле: B=fioxNx i/(rx 11,8) где р0- магнитная проницаемость вакуума, равная 1,257(10“7) N/Az, N - число витков провода, i - ток в амперах через провод, г - радиус обмотки в метрах. Установив компас, находящийся внутри обмотки из провода, так, чтобы на- правление на север было параллельно направлению намотки, поместите 9-вольтовую батарею в держатель на печатной плате и регулируйте потенци- ометр, пока стрелка компаса не отклонится на 20°. Затем я измерял напряже- ние на 9-вольтовой батарее (в моем эксперименте получилось 9,25 В) и сопро- тивление потенциометра и провода (12 Ом). Применив закон Ома, я получил значение тока 770 мА. Зная ток, зная, что я использовал.три витка провода и что диаметр обмотки составляет 5,08 см, я определил магнитное поле внутри обмотки: 1,039 х 10"5 Тл. Эта характеристика магнитного поля называется магнитной индукцией. - Прим, перев.
Эксперимент 26. Двигатель постоянного тока 103 Начав с положения, когда север компаса перпендикулярен направлению маг- нитного поля обмотки, я смог применить правила тригонометрии для вычисле- ния силы магнитного поля Земли. Ниже я изобразил магнитное поле Земли вме- сте с магнитным полем обмотки и результирующее направление стрелки компаса (рис. 4.15). Преобразовав формулу тангенса угла (и зная значение tg 20°), я могу рассчитать магнитное поле Земли, воздействующее на стрелку компаса: Магнитное поле Земли = Магнитное поле обмотки/ tg 20° = 1,039 х 10~5 Тл/ 0,364 = 2,86 х МТ5 Тл Магнитное поле обмотки Магнитное поле обмотки —---------------------- tg 20 Магнитное поле Земли 20° Магнитное поле Земли Рис. 4.15. Тригонометрическое соотношение взаимно перпендикулярных магнитных полей Общепринятое значение индукции магнитного поля Земли составляет при- мерно 5 х 105 Тл, так что мои расчетное и экспериментальное значения состав- ляют чуть больше половины истинного значения. Может показаться, что это большая ошибка, но я уверен, что получил ту точность, какую должен был по- лучить в грубом эксперименте. Я выполнял этот эксперимент у себя дома, на кухне; я мог бы получить более точный результат, если бы повторил его на от- крытом воздухе, чтобы вокруг не было металлических предметов и линий эле- ктропередачи. Разумеется, я мог получить менее точный результат из-за места намотки провода вокруг компаса, из-за заряда батареи или массы других факто- ров. Было бы интересно измерить магнитное поле Земли в разных местах и по возможности одним и тем же оборудованием, чтобы исследовать величину имеющихся отклонений результата. Эксперимент 26. Двигатель постоянного тока Детали Небольшой двигатель по- стоянного тока. Батарея Инструменты Набор инструментов для редиомонтажа. Ножницы
104 ГЛАВА 4. Могнитные приборы Я стремлюсь познакомить вас с экспериментами, которые вы можете прове- сти самостоятельно и результаты которых можно будет использовать в дальней- ших экспериментах. Думаю, в большинстве случаев я достиг своей цели. Исклю- чение только одно - электрический двигатель. Я не могу предложить такую конструкцию этого устройства, которую было бы легко реализовать и приме- нять в последующих экспериментах. Это удивительно, особенно если учесть, что в двигателе постоянного тока всего несколько составных частей (рис. 4.16). Рис. 4.16. Детали двигателя постоянного тока Якорь электрического двигателя состоит из вала и установленных на нем деталей. Я разобрал двигатель, чтобы легче было идентифицировать детали, но в реальном якоре они скомпонованы чрезвычайно близко друг к другу - для экономии места (рис. 4.17). Установка магнитных деталей насколько возможно близко друг к другу позволяет двигателю работать более эффективно. Корпус батареи с передним подшипником Постоянные магниты Якорь двигателя Наконечник с задним подшипником Вал Обмотки двигателя Коллектор Щетки Рис. 4.17. Разобронный игрушечный электрический двигатель Можно считать, что электрический двигатель состоит из нескольких эле- ктромагнитов, способных включаться/выключаться в соответствии с положени- ем ротора электромагнита (рис. 4.18). Я изобразил двигатель с тремя электро- магнитами (это обычно для большинства двигателей постоянного тока). В левой части рисунка электромагнит 1 направлен вверх и притягивается к «северному» полюсу постоянного магнита с помощью электромагнита 2, образующего
^atatiaus^k Эксперимент 26. Двигатель постоянного токо 105 «южный» полюс (см. рис. 4.18). Электромагнит 3 образует «северный» полюс, отталкивается от «северного» полюса постоянного магнита и притягивается к «южному» полюсу постоянного магнита. Начальное положение, показаны действующие силы Положение после поворота на 60°, показано изменение электромагнитных сил Рис. 4.18. Робото двигателя постоянного токо с тремя обмотками ротора В правой части рисунка ось двигателя повернулась на 60°, а электромагнит 1 повернулся и образует «южный» полюс. Электромагнит 2 находится против северного полюса постоянного магнита и выключен. Электромагнит 3 все еще образует северный полюс и продолжает притягиваться к южному полюсу по- стоянного магнита. Поскольку ось двигателя повернулась на 60е, электромаг- ниты 1 и 2 изменили свое действие, чтобы обеспечить продолжение притяги- вания электромагнитов к полюсам постоянного магнита и наличие крутящего момента у оси. Движение оси вместе с крутящим моментом, создаваемым эле- ктромагнитами, выводится из двигателя наружу приводит в движение любые соединенные с ним механизмы. Я пометил положение контактов коммутатора относительно оси, а также относительно двух щеток двигателя. Заметьте: в этом примере только два из коммутаторных контактов касаются щеток. Так бывает не всегда. Для значений угла поворота, находящихся между представленными на рисунке, все три кон- такта будут касаться щеток. Мы еще не выяснили, что обусловливает поворот двигателя только в одном направлении, в соответствии с направлением, в котором течет ток. Чтобы по- казать, как будет вращаться двигатель, как это видно со стороны наконечника, двигатель маркирован символом + около одного из выводов обмотки, а также плоской площадкой на оси подшипника (рис. 4.19). Большинство небольших двигателей рассчитаны приблизительно на 2000- 4000 об/мин, и сложно визуально определить, в каком направлении вращает- ся ротор двигателя. Чтобы легче было наблюдать направление вращения, я использовал картонный дисковый пропеллер (рис. 4.20). Диск нужно делать,
г 106 ГЛАВА 4. Магнитные приборы используя циркуль и транспортир, и точно определить его центр. Восемь лопа- стей пропеллера выгнуты из разрезов в картоне. Такой пропеллер позволяет определить, в каком направлении вращается двигатель, судя по тому, в каком направлении движется воздух от этого двигателя. Рис. 4.19. Маркировка полярности но наконечнике двигателя Восемь прорезей на расстоянии 45° друг от друга Рис. 4.20. Картонный пропеллер для проверки работы двигателя Прежде чем проверять двигатель с батареей, измерьте цифровым мульти- метром его сопротивление и запишите результат (у моего двигателя сопро- тивление оказалось равным 0,9 Ом). Затем наденьте пропеллер на ось двига- теля и проверьте его (рис. 4.21). Измерьте напряжение на двигателе, а также ток через него. Вычислите сопротивление по закону Ома. В случае приложен- ного напряжения 7,2 В и при протекающем токе 0,3 А вы получите 24,3 Ом. Это расчетное значение намного выше сопротивления двигателя в режиме останова. Причина проявления более высокого эквивалентного сопротивле- ния - в «реактивности» переключающихся электромагнитов. Когда обмотка включается/выключается, ее эквивалентное сопротивление становится очень высоким и остается таким, пока ток через двигатель не достигнет уста- новившегося значения.
^aiaHaus,^. Эксперимент 26. Двигатель постоянного токо 107 Двигатель с подсоединенным к нему картонным пропеллером Рис. 4.21. Схема для проверки электрического двигателя постоянного токо И последнее. Впервые простой электрический двигатель был показан в те- левизионном шоу «Beakman’s World». Это была машина, которую я буду назы- вать одиночным электромагнитным двигателем, так как электромагнит мо- жет быть приведен в действие только одним способом. Этот двигатель прост в исполнении, но его довольно трудно заставить работать, и обычно он рабо- тает лишь в течение нескольких секунд (в одном направлении), прежде чем «выпрыгнуть» из своей рамы. Сделать его вам помогут инструкции на сайте http://electronics.howstaffworks.com/framed/htm?parent=motor/htm&url= http: //fly.hiwaay.net/~palmer/motor.html.
Глапа 5 Трансмиссия Чаще всего роботы приводят в движение с помощью электрических двигате- лей, хотя работают они не слишком эффективно, а порой их трудно использо- вать, особенно если сравнивать их с такими устройствами, как: • двигатели внутреннего сгорания (газовые и дизельные); • двигатели внешнего сгорания (струйные); • пневматические устройства; • движители на основе биметаллической проволоки. Чтобы электрические двигатели могли выполнять те же задачи, что и пере- численные устройства, приходится оснащать их механическими приспособле- ниями, которые состоят из таких деталей, как оси, муфты, шестерни и колеса. Вместо громоздкого термина двигатели с механическими приспособлениями для обозначения двигателя и механизмов, заставляющих робот двигаться или вы- полнять какие-либо действия, я буду использовать термин трансмиссия . Простейшая трансмиссия для робота, какую я только могу вообразить, состо- ит из двух двигателей, снабженных некоторыми шишечками или утолщениями на концах осей (рис. 5.1). Я всегда внутренне содрогаюсь, когда вижу робот с подобной конструкцией. Она, конечно, будет приводить робот в движение, но настроить ее может оказаться трудно, и она не справляется ни с какой рабочей поверхностью, кроме абсолютно плоской и гладкой. Мне приходилось видеть в такой конструкции робота утолщения в виде колесиков, сделанных из неболь- ших шайб, надетых на концы осей двигателей, или из отрезков флаконов с кле- ем от пистолета для склеивания горячим клеем, закрепленных на осях при помо- щи плавления. Причина, по которой мне делается не по себе, когда я вижу подобный ро- бот, - его чрезвычайно ограниченные возможности. Обычно небольшие эле- ктродвигатели работают при частоте вращения, равной нескольким тысячам В отечественной технической литературе иногда используется также термин «силовая переда- ча». - Прим, перев.
Трансмиссия 109 оборотов в минуту (об/мин), и использовать их в непрерывном режиме не- возможно. Может, это и не так уж очевидно, однако обдумайте следующий практический пример. Пусть двигатели вращаются с частотой 2000 об/мин (довольно медленно для небольшого двигателя), а диаметр колесиков - 6,35 мм. Робот будет перемещаться примерно на 133 см в секунду. Это несколько бы- стрее, чем скорость пешего хода взрослого человека и позволит роботу пересечь 3-метровую комнату всего за 2 с. Движением небольшого робота при такой ско- рости очень трудно управлять, и робот, возможно, врежется в какой-нибудь предмет, так как не будет в состоянии обнаруживать объекты на достаточном удалении от них, чтобы остановиться или обогнуть их. Рабочая поверхность Рис. 5.1. Простая (с точки зрения механики) трансмиссия робота Следовательно, нужно как-то замедлить вращение двигателей. Это можно сделать с помощью электричества, но для этого придется существенно пони- зить величину тока, протекающего через двигатели. Поскольку вы уменьшите ток, текущий к двигателю, то теперь не получите от двигателей прежнего мо- мента силы вращения (вращающей силы)*. Вы убедитесь, что в роботах этого типа, с небольшими колесиками, необходимо приложить к рабочей поверхно- сти значительное усилие со стороны колесиков, чтобы заставить робот дви- гаться. Понизив величину момента, вы увидите, что робот начнет двигаться не- предсказуемо (одна сторона будет поворачиваться, тогда как другая - не будет) или вообще не будет двигаться. Другое решение данной проблемы - периоди- ческое отключение двигателей. Это приемлемо: электронная схема управления робота будет быстро определять промежутки времени между моментами вклю- чения каждого из двигателей. Все хорошо, но в результате вы получаете робот, способный перемещаться только по очень плоской и гладкой поверхности. Наилучшее решение - снизить скорость вращения двигателя при одновре- менном повышении момента силы вращения. Благодаря этому в конструкции робота можно будет применить колеса большего размера, что позволит роботу двигаться по неровным поверхностям и сильно упростит процесс управления роботом. Такое изменение скорости вращения и момента силы вращения осу- ществляется с помощью шестерен (рис. 5.2). При этом возможны как измене- ние направления вращения, так и смена скорости и момента силы вращения во время перемещения. Моментом силы F относительноточки Оказывается векторная величина М, равная векторному произведению радиус-вектора г, проведенного из точки О в точку приложения силы и вектора силы F. В частном случае, когда утол между г и Fравен 90°, момент силы становится скалярной величиной, равной произведению силы и плеча этой силы: М = Fx г. - Прим. перев.
110 ГЛАВА 5. Трансмиссия ЧастотаБольшая х Число зубьеВБольшая = ЧастотаМалая х Число зубьевМалая Рис. 5.2. Зубчатая передача, трансформирующая скорость и момент силы вращения На рисунке представлена формула, связывающая скорость вращения и чи- сло зубьев шестерен. Ее можно преобразовать, введя в нее радиус, диаметр шестерни или использовав вместо них длину окружности, - в любом из этих случаев принимается во внимание разница в размерах между шестернями. Подчеркну: радиус, диаметр или длину окружности можно использовать, так как это позволяет рассматривать два находящихся в контакте круга, а не толь- ко две шестерни. Это одно из положений, которым я воспользуюсь в данной главе. Выше я представлял концепцию механической мощности, являющейся про- изведением силы и скорости, которую имеет точка ее приложения: Р = Ех V Может показаться, что все несколько сложнее, когда вы имеете дело с вра- щающимися деталями, но, как я говорил, вращающая сила или момент силы вращения измеряется в единицах силы, умноженных на радиус, на котором измеряется сила. Такими единицами являются фунт-сила-дюйм или ньютон- метр. Если частота вращения измеряется в оборотах в минуту (об/мин), фор- мула для вычисления мощности приобретает такой вид: Р - Момент х Частота вращения При этом мощность измеряется в ваттах, так же, как механическая мощ- ность для прямолинейного движения или электрическая мощность. Возвратимся к исходной формуле, связывающей частоту вращения и размер шестерен (см. рис. 5.2). Если у нас есть малая шестерня, ведущая другую ше- стерню с втрое большим числом зубьев, частоту вращения большей шестерни мцжно рассчитать так: Частота Е = Частота,, х Число зубьев,, / Число зубьевс = Часто- та,, х 1/3 Таким образом, частота вращения на выходе большой шестерни составля- ет треть от частоты вращения малой шестерни. Зная, ч то мощность подается на меньшую шестерню с некоторой скоростью, и предполагая, что потерь
^laiattaus^i Эксперимент 27. Электрический подъемный крон 111 мощности в системе нет, можно определить мощность зубчатой передачи в целом и найти момент силы вращения на большей шестерне: Мощность Малая = Мощность ^ъшая Частота ,, х Момент ,, = Частота _ х Момент с Малая Малая Большая Ьалъшая Момент г = Частота ,, х Момент ,, / Частота г Большая Малая Малая ' Большая = Частота .. х Момент / (1/ 3) Частота .. Малая Малая ' ' ' ' Малая = 3 х Момент ., Малая Способность шестерен преобразовывать частоту и момент силы вращения - одно йз важнейших свойств роботов, работающих от маленьких электродвига- телей: как правило, они работают на очень высоких скоростях, обеспечивая при этом небольшие значения момента силы вращения. Эксперимент 27. Электрический подъемный крен Детали Наборы конструкторов K'NEX (см. текст). Комп- лект апементиеупраал&мя двигателем (см. текст). Толстые нитки Инструменты Хотя трудно согласиться с тем, что «роботы» с дистанционным управлением (вроде BattleBots) соответствуют определению настоящего робота, я должен признать, что технология их построения применима к автономным роботам. Говорить, что устройства с дистанционным управлением - настоящие роботы, это все равно, что считать роботами электрические подъемные краны. По-мо- ему, краны как пример пригодны для объяснения работы различных узлов ро- бота, потому что они не способны покинуть стол или скамью, на которой вы работаете, и либо вдребезги разбиваются, либо работают по инструкции. Типичный подъемный кран обладает тремя степенями свободы (рис. 5.3). Термин степень свободы служит для описания движения, которое не действует на другое движение. Кран может повернуть стрелу вправо или влево (первая степень свободы), перемещать крюк вверх и вниз (вторая степень свободы) или двигать крюк вперед и назад (третья степень свободы). Для сравнения: ваша рука имеет семь степеней свободы (две в плече, одна в локте, три в запя- стье (поворот также является степенью свободы), а последняя - это способ- ность раскрыть ладонь или сжать руку в кулак). Большинство манипуляторов роботов имеют три или более степеней свободы, поэтому кран - вполне подхо- дящий аналог робота.
Ill ГЛАВА 5. Трансмиссий Рис. 5.3. Варианты изменения положения оси, около которой возможно движение подъемного крана Я хотел бы поиграть с краном, обладающим одной степенью свободы. Я соорудил его из деталей конструкторов K’NEX. Моторчик я взял из набора K’NEX «Kart Racer» (рис. 5.4). Купите набор образцов для экспериментатора K’NEX. Соединяя их, можно строить довольно легкие, прочные и крупные конструкции. У стержней из этого набора есть важная особенность: их разме- ры подобраны так, что из них легко строить треугольные конструкции наря- ду с квадратными и прямоугольными. Обычно наборы для экспериментато- ров сопровождены инструкциями по построению самых разных конструкций (от объемных структур до подвижных объектов, скажем, кольцевых дорожек Рис 5.4. Кран, собранный из деталей конструктора K'NCC
^aiaHaus,^. Эксперимент 27. Электрический подъемный кран 113 или простых транспортных средств). Кроме того, в них входят шестерни и колеса, что обеспечивает большую гибкость при конструировании. Я использовал двигатель марки «Kart Racer» для «ворота», натягивающего нитку, так как этот двигатель может управлять стержнями K’NEX напрямую. Вскрыв корпус этого двигателя, можно получить доступ к обмотке. Затем, ис- пользуя различные шестерни и двигатели, входящие в состав разных компле- ктов, вы очень легко создадите свою, абсолютно оригинальную, сложную трансмиссию. Не думайте, что вы должны использовать при построении крана те же дета- ли, что и я; моя конструкция ни в коей мере не является самой эффективной, и у вас, возможно, получится что-то получше. Прежде чем создавать что-либо новое, просмотрите инструкцию, найдите что-нибудь похожее на то, что хотите построить, и начните именно с этого. Мой кран начинал свою жизнь в виде ветряной мельницы, а затем я убрал кры- лья мельницы и изменил основание. Преимущества и недостатки конструкторских наборов K’NEX, LEGO и Mechano я систематизировал в табл. 5.1. Таблице 5.1. Различные виды конструкторов Наимено- вание Описание Преимущества Недостатки Применение в роботах K’NEX Стержни и сочленения Крупные легкие конструкции. Хороший набор шестерен и колес, легко сопрягаемых с изделием Низкая прочность на изгиб и жесткость. Сложность сборки при отсутствии опыта. Трудно найти двигатели и отдельные детали Роботы, управляемые л 1>ф»-ренциально (хорошее сопряжение двигателя, передачи, колес). Опытные образцы манипуляторов роботов LEGO Соединяемые друг с другом бруски Прочные небольшие конструкции. Интуитивно просто и быстро с набором для роботов «MindStorms» обеспечивает отличное основание робота и набор чувствительных элементов. Широкий ассортимент деталей в продаже Крупные конструкции могут оказаться тяжелыми и не очень прочными. Сложные конструкции могут быть ненадежны. Двигатели и передачи, как правило, предназначены для конкретных изделий Опытные образцы подвижных роботов Mechano Металлические и пластиковые бруски, соединенные небольшими болтами и гайками Высокая прочность. Интуитивно понятно, как работать с набором. Детали легко можно приспособить для работы в других конструкциях Меньше разновидностей наборов, чему K’NEX и LEGO. Тяжелый Мало подходит для построения всего робота, но отд ельные узлы можно включить в конструкцию
114 ГЛАВА 5. Тронсмиссия Эксперимент 28. Подъемный крон в сочетонии с блокоми Детали Кран из предыдущего экс- перимента. Четыре ма- леньких колеса без шин из набора K’NEX. Детали K’NEX Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр Вы, возможно, найдете недостаточной грузоподъемность вашего крана. Я ус- тановил, что кран в исходной конфигурации не способен поднять два элемен- та питания типа С. Надо было как-то повысить мощность крана. Один из оче- видных способов решения этой задачи - повысить передаточное отношение между двигателем и воротом (на который наматывается нитка)*. Такая мера поможет, но необходимые для этого элементы передачи и конструкции слож- ны и имеют большую массу. Сталкиваясь с подобными проблемами, я обращаюсь к истории и выясняю, как люди справлялись с этим в давние времена. Пять тысяч лет назад древние египтяне поднимали обелиски, используя только силу мускулов человека и ка- нат (рис. 5.5). Допустим, обелиск сделан из камня плотностью 5000 кг/м3, его высота - 20 м, а средняя площадь поперечного сечения - 4 м2. Тогда объем обе- лиска - 80 м3, а масса - 400 000 кг (881 849 фунтов). Если считать, что один человек развивает усилие 50 кге, то для поднятия обелиска понадобится 8000 человек. Невольник Рис. 5.5. Подъем огромного обелиска при помощи мускульной силы рабов Плотность, равная 5000 кг/м3, впятеро превышает плотность воды и будет хорошей оценкой для плотности обычного камня (плотность вещества Земля составляет 4500 кг/м3, и именно эту величину я использовал как основу для Передаточным отношением называют отношение частоты вращения ведущего звена механизма к частоте вращения ведомого. Во фрикционной передаче оно выражается через отношение ди- аметра ведомого шкива к диаметру ведущего; в зубчатой - через отношение числа зубьев ведо- мой шестерни к числу зубьев ведущей. - Прим, перев.
^aiattaus,^. Эксперимент 28. Подъемный крон в сочетании с блоками 115 данной оценки). Сила в 50 кгс - вероятно, приемлемая оценка для современ- ного человека, но для древнеегипетского раба она может оказаться оптимис- тической. В любом случае 8000 человек, поднимающие обелиск, - непомерно много, и нужно какого сократить это число. Решение состоит в том, чтобы продублировать канат, применив механизм под названием блок. Блок будет эффективно умножать значение силы, которую каждый из рабов мог бы приложить к обелиску (рис. 5.6). Двигатель, который подтягивает вверх груз на одиночном канате, должен развивать достаточное усилие, чтобы поднять 100% веса груза. Если пропустить канат через блок, ве- личина нужного усилия снижается вдвое, а если пропустить его дважды через два блока, то требуемую от двигателя силу следует разделить на четыре. Древ- ние египтяне, пропустив канат, с помощью которого предстоит поднять обе- лиск, через восемь блоков, получат, что для подъема обелиска необходимы уси- лия приблизительно 1000 человек. Нагрузка на двигатель Нагрузка на двигатель Нагрузка на двигатель равна полному весу равна ’/2 веса равна ’/4 веса Рис 5.6. Изменение силы при подъеме объектов с помощью блоков Надеюсь, вы не думаете, что это умножение силы дается бесплатно, - как и всегда в жизни, если вы изменяете что-нибудь одно, то это влияет на что-то еще. В данном случае длина движущегося каната или троса увеличивается в то число раз, сколько он раз он пропущен через блоки. Соотношение между расстоянием и силой можно записать так: Сила (1 блок) = Сила (п блоков) / п Расстояние (1 блок) = п х Расстояние (п блоков) Таким образом, если для перемещения груза на расстояние 1 фут с помощью каната, пропущенного через 3 блока, требуется сила в 1 фунт, то сила, прило- женная к объекту, будет составлять 3 фунта, и объект переместится на 1/3 фута. Итак, добавление блока к подъемному крану увеличивает силу (и снижает скорость). Еслй кран был собран из конструктора K’NEX, его верхняя часть и крюк при этом подвергнутся модификации (рис. 5.7). Я пропустил нить через два колеса с каждой из двух сторон, создав кран с четырьмя блоками и вчетве- ро увеличив значение веса, который может поднять кран. Теперь кран без уси- лия поднимает пять-шесть элементов типа С.
116 ГЛАВА 5. Тронсмиссия 'NataHausi^. Рис. 5.7. Детали блока для крана на основе конструктора K'NCC Эксперимент 29. Переключение двигателя постоянного тока Н-оброзным мостом Детали Смонтированная печатная плата с макетной платой. Подъемный кран из пре- дыдущего эксперимента. Держатель на две батареи типа С. Два однополюс- ных переключателя на два направления для печатно- го монтажа Инструменты Набор инструментов для радиомонтажа. Ротацион* ный инструмент. Паяльник. Припой. Иэотционная труб- ка с температурной усадкой Выше я показал, как направление вращения в двигателе постоянного тока уп- равляется при помощи направления, в котором течет ток через двигатель. Изменение направления тока, текущего через двигатель, вызывает изменение направления вращения двигателя. В большинстве приложений роторы двига- телей должны вращаться только в одном направлении; даже если требуется изменение направления вращения на обратное*, их движение зачастую прохо- дит через коробку передач, которая меняет состояние на выходе, позволяя в то же время двигателю вращаться в том же исходном- направлении. Для робо- тотехнических приложений проще всего изменить направление вращения ва- ла, изменив направление тока, текущего через двигатель. Такое изменение обозначают термином реверс. - Прим.-шрев. Эксперимент 29. Переключение двигателя постоянного токо Н-оброзным мостом 117 Потратив несколько минут на обдумывание этой проблемы, вы бы предло- жили схему с двумя батареями, одна из которых может быть выбрана в любой момент, что позволяет току либо втекать в двигатель, либо вытекать из него (рис. 5.8). Двухполюсные переключатели используются в некоторых роботах, но у них есть вполне очевидная проблема: батарея, питающая направление движения робота (обычно это движение вперед), работает большую часть вре- мени и будет разряжаться быстрее другой батареи. Основное преимущество приведенной схемы в том, что для нее нужен всего один переключатель. Дру- гое преимущество в том, что напряжение в цепи падает только на одном пере- ключателе - это несущественно, если используются механические переключа- тели, однако может вырасти в проблему в случае электронных переключателей. Рис. 5.8. Использование двух батарей для управления направлением вращения двигателя Чаще всего для управления направлением вращения двигателей постоянно- го тока используется схема, называемая «Н-образный мост» (рис. 5.9). Замыкая переключатели, противолежащие друг’ другу по диагонали схемы, вы можете уп- равлять направлением вращения двигателя. Позже вы узнаете, что включени- ем /выключением двигателя и скоростью включения/выключения легко управ- лять при помощи простых электронных устройств. Н-образный мост позволяет управлять сменой направления вращения двигателя постоянного тока, исполь- зуя единственный источник питания, и его можно собрать без особых затрат. В случае Н-образного моста ток двигателя всегда должен проходить через два переключателя. Когда используются физические переключатели, это не составляет никаких проблем. Однако, если применяются электронные пере- ключатели, возможны ситуации, когда напряжения низковольтной батареи может не хватить для нормальной работы двигателя. Далее. Двигатель будет переключаться, когда замкнуты по одному переклю- чателю на каждой стороне Н-образного моста. Если же замкнуты два переклю- чателя на одной стороне Н-образного моста (рис. 5.10), то вы получите корот- кое замыкание: перегорит обмотка двигателя, переключатели Н-образного моста или источник электропитания. В лучшем случае батарея сядет. Так что в цепях управления двигателем и в программном обеспечении (ПО) вам следует предусмотреть специальные меры, гарантирующие, что такая ситуация не смо- жет сложиться никогда.
^Ialattaus,^i 118 ГЛАВА 5. Трансмиссия Эксперимент 30. Шосси для роботов с дифференциальным управлением 119 Рис. 5.9. Схема управления двигателем в виде Н-образного моста Для этого я вскрыл корпус двигателя с помощью ротационного инструмента Dremel. Вытащив переключатель и установленную на нем маленькую печатную плату, я получил доступ к проводам двигателя постоянного тока. Я припаял отре- зок жесткого провода сечением 0,2 мм2, что дало возможность подсоединить дви- гатель к макетной печатной плате (Приложение 3). После этого можно включить двигатель на печатной плате в качестве эле- мента схемы (рис. 5.11). Я соединил два однополюсных переключателя на два направления, причем их подвижные контакты соединены с клеммами двигате- ля. Это позволяет выбрать либо положительное, либо отрицательное напряже- ние для каждого из выводов двигателя, исключив возможность замыкания обе- их сторон Н-образного моста. Ток течет через переключатели и минует двигатель. Это может вызвать повреждение обмотки или источника питания двигателя Рис. 5.10. Схема управления двигателем в виде Н-образного моста, работающая неправильно Если вы использовали для сборки подъемного крана тот же набор конструк- тора K’NEX, что и я, то, возможно, уже поняли, что переключатель на двигате- ле, входящем в комплект, будет выдавать двигателю команду сменить направле- ние вращения. Вероятно, он вмонтирован во встроенный Н-образный мост. Вместо того чтобы принять это на веру, мне хотелось бы отсоединить провода, ведущие к собственно двигателю постоянного тока внутри корпуса двигателя. Рис. 5.11. Соединения на макетной плате для управления двигателем постоянного тока для подъемного крана при помощи Н-образного моста Смонтированная схема будет работать идентично исходной схеме с одино- чными переключателями, но с одним важным исключением: если оба однопо- люсных переключателя на два направления установить в одном направлении, двигатель остановится, поскольку при этом ток через двигатель течь не может. Таким образом, если вы продолжите снятие кожуха с двигателя, то, вероятно, увидите, что в центральном положении (Выключено) у двигателей нет реальных соединений со схемой и ток не может через них течь. Я подчеркиваю это, пото- му что многие не понимают, что если на устройстве нет падения напряжения (как в данном случае), то ток отсутствует и устройство не будет работать.
120 ГЛАВА 5. Трансмиссия Эксперимент 30. Шасси для работал с дифференциальным управлением Детали Смонтированная печатная плата с макетной платой. Четыре однополюсных переключателя на два на- правления, предназна- ченных для печатного монтажа. Переключатель с лепестками для пайки. Инструменты Набор инструментов для радиомонтажа. Паяльник. Отвертки и плоскогубцы. Клеи/связывающие веще- ства Держатель на четыре батареи типа М. Двухсторонняя липкая лента. Восемь винтов 4-40 с длиной резьбы 1 см. Четыре стойки длиной 2,54 см. Два маленьких двигателя для игрушёк. Два колеса (см. текст). Две оси (см. текст). Приводные ремни для двигателей (см. текст). Разнообразные гайки и болты (см. текст). На- кладка на головку шурупа для мебели, глухая гайка, светодиод или одежная кнопка (см. текст). В реальных роботах я обычно использую платформу с дифференциальным уп- равлением (см. главу 1). Простота роботов этого типа обеспечивает как про- стоту их построения, так и упрощение разработки электронных схем и ПО. Однако вам следует осознать несколько моментов, чтобы сделать сборку и ра- боту робота максимально простыми. При проработке шасси я буду сверять кон- структивные решения с моими «Десятью правилами робототехники». Взгляните на идеальную, с моей точки зрения, компоновку робота с диффе- ренциальным управлением (рис. 5.12): робот настолько короток, насколько это возможно, колеса находятся в центре конструкции, а центр масс совпадает с центром робота. Ниже я отметил ролики с двух сторон робота (рис. 5.13) - колесики или гладкие пластиковые шарики, позволяющие передней или задней части робота легко скользить по рабочей поверхности. Центр масс часто называют центром тяжести, но я предпочитаю первый тер- мин, когда говорю о роботах, потому что он напоминает мне, что инерция робо- та, когда он начинает движение или останавливается, будет изменять величину силы, приложенной к роликам*. За счет того, что колеса и центр масс располага- ются максимально близко к центру робота, величина изменения силы, прилага- емой к роликам, минимизируется, что позволяет роботу легко двигаться по раз- личным поверхностям (рис. 5.14). Это важно, когда ожидается, что робот будет Центр масс - это точка, характеризующая распределение масс в механической системе. При движении системы он движется, как материальная точка, в которой сосредоточена масса всей системы и на которую действуют все внешние силы, приложенные к системе. - Прим, перев.
Эксперимент 30. Шосси для роботов с дифференциальным управлением 121 ftalaHauslik Смонтированная печатная плата (Приложение 3) Готовое фанерное основание Стойки высотой 2,54 см Колесо и трансмиссия Выключатель источника электродвигателя питания на четырех батареях АД Рис. 5.12. Ток будет выглядеть робот с дифференциальным управлением с печатной платой Вид сверху Средняя линия и центр----- масс Ролики робота Вид сбоку Ведущее колесо Основание робота —--------- Ведущие колеса Основание робота Поверхность, по которой движется робот Рис. 5.13. Конструкция идеального робота с дифференциальным управлением Можно с уверенностью Робот остановлен и поворачивается Робот поворачивается вокруг центральной оси робота действует на колеса Движение по траектории Большая часть веса сказать, что робот движется по траектории \ Траектория V—движения \ робота Рис 5.14. Движение идеального робота с дифференциальным управлением двигаться по коврам или от одной поверхности к другой. Когда к ролику прила- гается значительная сила, робот может застрять на ролике, если к нему прилага- ется слишком большая сила, а к колесам приложен меньший вес (рис. 5.15). Когда колеса робота размещаются на одном его конце, а центр масс распо- ложен где-то в другом месте, может потребоваться корректировка команд, пе- редаваемых между датчиком и входом схемы управления, с одной стороны, и колесами - с другой. В лучшем случае датчики должны располагаться прямо над колесами (в центре робота), чтобы робот мог поворачиваться и отслеживать ситуацию на входе датчика. При этом не должно быть необходимости в каких- либо корректировках, обусловленных случайными движениями корпуса робо- та из-за колес.
122 ГЛЙВЯ 5. Тронсмиссия Робот поворачивается вокруг оси, соеди- няющей колеса НЕЛЬЗЯ с уверенностью Движение сказать, по траектории что робот движется по траектории. Возможны расхождения между командами датчика и движением Действие веса робота на колеса и ролики приводит к увеличению трения во время движения Траектория движения робота Рис. 5.15. Движение неидеального робота с дифференциальным управлением и некоторые потенциальные проблемы Цель данного эксперимента в том, чтобы добавить соединитель батарей, выключатель питания, колеса и двигатели к одному из фанерных оснований, обработанных вами раньше. Взгляните на вид сбоку, показывающий, как ось двигателя давит на колесо (рис. 5.16). Эта конструкция работает подобно двум шестерням и понижает скорость двигателя в 16 раз или около того. Запустив робот, вы обнаружите, что вам придется удивительно часто чистить узел ось двигателя/колеса (даже если вы думаете, что вокруг чисто). Правильно будет поместить систему шестерен или шкивов в кожух - это предохранит трансмис- сию робота от порчи из-за попадания волос, волокон и пыли. Вал двигателя диаме- тром 2,29 мм 32,3/2,29 = 14,1 Скорость двигателя делится на 14,1, что приводит к умень- шению скорости колеса, но с вращающим момен- том, увеличенным в 14,1 раза по сравнению с тем, который обеспе- чивает двигатель Рис 5.16. Размеры и детали колеса с дифференциальным управлением Держатели для колеса и оси я взял из набора конструктора Mechano (рис. 5.17). Держатель оси состоит из детали в форме буквы L (уголка), которую можно при- крепить к фанере двумя болтами 6-10, оставив место для двух двигателей от игру- шек. Двигатели укреплены металлическими деталями из конструктора Mechano. Детали Mechano можно заменить деталями LEGO. На худой конец колеса можно купить в магазине товаров для технического моделирования, а в качестве держа- теля использовать деревянный брусок, в котором предварительно надо просвер- лить отверстия под болт. Несмотря на попытки уравновесить массу держателя для четырех батарей типа АА двигателями и 9-вольтовой батареей на печатной плате, я установил, что робот оказывается тяжелее в направлении батарейного источника питания на элементах типа АА. Поэтому я решил использовать только один ролик; я также
Эксперимент 30. Шосси для роботов с диф ференциотным управлением 123 Прижимная планка- двигателя Обмотка двигателя - Колесо Пластиковая ось/ держатель колеса, - прикрепленный к фанерному шасси болтами Рис 5.17. Детали трансмиссии робота с дифференциальным управлением установил на днище робота пластиковый крючок. Подойдет также мебельный ролик с тефлоновым покрытием, можно даже наклеить на днище робота свето- диод. Одиночный ролик будет работать, примерно как хвостовое колесо само- ориентирующейся модели самолета, однако такие колеса могут быть жутко до- роги и требуют много больше места, чем имеется на днище робота. Важно, что ролик способен обеспечивать роботу легкость при движении и поворотах. Поняв, как установить колеса и двигатели, двусторонней липкой лентой прикрепите к фанерному основанию держатель батарей типа АА. Эта батарея, которая будет питать двигатели робота, должна иметь выключатель питания, включенный по входу двигателей, чтобы выключать питание, подаваемое на двигатели робота. Это важно, так как непременно будут ситуации, когда наши устройства управления или ПО будут посылать неверные команды на двигате- ли и вам захочется их остановить. Питание робота от отдельной батареи с выключателем позволяет остановить робот и понаблюдать, что происходит, причем робот не будет съезжать со стола. Теперь все готово к проверке робота. После установки стоек и механиче- ской сборки робота смонтируйте два Н-образных моста, которые позволят вам управлять роботом вручную и отработать установку переключателей, нужную для того, чтобы робот двигался вперед, назад, вправо и влево (рис. 5.18). Мон- таж четырех однополюсных переключателей на два направления, пригодных для установки на макетную плату, страхует от короткого замыкания Н-образно- го моста, не позволяя току от источника питания проходить прямо через пере- ключатели, минуя двигатели. Если вы хотите, чтобы двигатель не менял на- правление вращения на обратное, просто подключите выключатели обоих двигателей либо к клемме Vcc батареи, либо к клемме Gnd. Когда робот работает с управлением только от переключателей, он должен дви- гаться несколько быстрее среднего пешехода. Это желательно, потому что тран- зисторные переключатели будут снижать напряжение, доступное для двигателей, а также ограничивать ток, который они будут получать. Даже при этих потерях вам все же захочется, чтобы робот двигался быстрее, чем с комфортабельной для вас скоростью, так как движение любого устройства, которое вы когда-либо соби- рали и заставляли двигаться, намного проще замедлить, чем ускорить.
124 ГЛАВА 5. Трансмиссия Эксперимент 31. Шаговые двигатели 125 ^atatiaus^V. Выключатель батареи типа АА +| Источник —=~ питания _L на двух - батареях типа АА Обмотка «В» Рис 5.18. Схеме дифференциального управления двумя колесами робота при помощи переключателей Эксперимент 31. Шаговые двигатели Рис. 5.19. Шаговый двигатель одной обмотки, чтобы поворачивать арматуру на 90° за один оборот. Это, мо- жет быть, самый простой метод для первой реализации ПО управления шаго- вым двигателем. Таблица 5.2. Последовательность возбуждения обмоток для вращения шагового двигателя Детали Смонтированная печат- ная плата с макетной платой. Четыре батареи типа АА с держателем (см. текст). Четыре одно- полюсных переключателя на два направления для Набор инструментов для радиомонтажа. Ножницы. Клей Krazy Glue. Цифровой мультиметр установки на макетную плату. 5-вольтовый шаговый двигатель. Четырехкон- тактный соединитель макетной платы с шаговым дви- гателем (см. текст). Бумага Шаг Угол поворота, * Обмотка А Обмотка В 1 0 Юг Отключена 2 45 Юг Север 3 90 Отключена Север 4 135 Север Север 5 180 Север Отключена 6 225 Север Юг 7 270 Отключена Юг 8 315 Юг Юг 9 360 /0 Юг Отключена Шаговый двигатель - еще один тип двигателя постоянного тока, часто при- меняемый в роботах. В шаговых двигателях отсутствует коллектор, приме- няемый в стандартных двигателях постоянного тока; состоят они обычно из установленного на арматуру магнита с двумя взаимно перпендикулярными об- мотками, которые могут тянуть или толкать магнит, ставя его в разные поло- жения (рис. 5.19). Обычно вращение арматуры существенно замедляется вну- три двигателя, так что каждый раз при повороте арматуры на угол от 45° до 90е выходная ось перемещается всего на несколько градусов. Такая передача по- вышает выходной момент силы вращения двигателя и обеспечивает более точные движения. Чтобы пустить в ход шаговый двигатель, обмотки возбуждают по образцу, на- пример, такому, как приведенный в табл. 5.2 для шагового двигателя (рис. 5.19). Перечисляя полярности обмоток, я мог бы говорить о возбуждении всего Чтобы продемонстрировать работу шагового двигателя, соберите показан- ную ниже схему (рис. 5.20 и 5.21). Четыре однополюсных переключателя на два направления смонтированы так, что у каждой обмотки в шаговом двигателе имеется собственный Н-образный мост. Прежде чем монтировать схему, вы должны с помощью мультиметра в режиме омметра определить, какие провода составляют пару, чтобы сделать две обмотки в шаговом двигателе (это не так трудно, как может показаться: есть вероятность, что провода каждой из обмо- ток выходят из корпуса шагового двигателя рядом). Сделав это, поместите два переключателя для каждой обмотки вместе, чтобы облегчить работу переклю- чателей для приведения двигателя в движение. Вместо того чтобы разрезать проводники, идущие от купленного двигателя, я сделал 4-контактный соедини- тель из двух 4-контактных однорядных соединителей под печатный монтаж с возможностью разрыва контакта. Собрав экспериментальную схему, я вырезал из бумаги обычную стрелку и приклеил ее (клеем Krazy Glue) к концу выходной оси шагового двигателя. Это позволило мне облегчить наблюдение за работой двигателя и гарантировать,
126 ГЛАВА 5. Тронсмиссия Четыре батареи Переклю- Переклю- Переклю- Переклю- типа АА чатель 1 чатель 2 чатель 3 чатель 4 Рис. 5.20. Схема для проверки шогового двигателя Рис. 5.21. Монтаж схемы управления шаговым двигателем с помощью переключателей на макетной плате с шаговым двигателем, снабженным бумажной стрелкой что я смогу разработать последовательность, в которой следует менять положе- ния переключателей, чтобы выходная ось продолжала заданное движение. По окончании эксперимента можно снять бумажную стрелку с выходной оси шаго- вого двигателя, а остатки клея счистить с нее, чтобы вернуть двигатель в исход- ное состояние. Я использовал шаговые двигатели-, рассчитанные на 5-вольтовое питание. Если вы не можете найти шаговый двигатель с питанием от источника 5 В, вам понадобится альтернативный источник питания, удовлетворяющий тех- ническим требованиям, предъявляемым к вашим двигателям. Для 12-вольтового двигателя вы могли бы использовать два соединенных последовательно батарей- ных источника питания, каждый из четырех элементов типа АА.
Эксперимент 31. Шогоеые двигатели 127 При подаче питания в первый раз шаговый двигатель может начать двигать- ся резкими толчками - может быть, переключатели установлены так, что возбуж- даются одна или обе обмотки, и арматура будет перемещаться в соответствую- щее положение. Это один из недостатков применения шаговых двигателей в роботах; как вам уже известно, выходную ось шагового двигателя легко повер- нуть, когда от робота отключено электропитание. Даже незначительные прояв- ления этого эффекта могут быть потенциально опасными для пользователей и наблюдателей. Поэтому если манипулятором робота управляют шаговые двига- тели, то при включении питания они сразу должны ставиться в исходную пози- цию, и тогда их положения при работе робота будут заранее известны. Чтобы понять, когда шаговый двигатель находится в исходной позиции, к схеме можно добавить несложный датчик или просто переключатель, который замыкается, когда манипулятор, соединенный с шаговым двигателем, его касается. Смонтировав схему, начинайте вырабатывать последовательность измене- ния положения переключателей, чтобы стрелка, приклеенная к оси шагово- го двигателя, поворачивалась в одном направлении. Я записал в табл. 5.3 по- ложения переключателей, необходимые для поворота моего шагового двигателя по часовой стрелке. Советую вам сделать то же самое для вашего двигателя. Заметьте: полярность «Обмотки А» и «Обмотки В» - это просто произвольный выбор; я назначил их для контроля, чтобы быть уверенным, что правильно понимаю положения переключателей и отклик двигателя на них. Коснувшись двигателя, вы обнаружите, что он довольно теплый. Это характерно для шагового двигателя, потому что ток всегда течет через одну или обе обмотки. Таблица 5.3. Последовательность возбуждения реального шагового двигателя Шаг Обмотка А Переклю- чатель 1 Переклю- чатель 2 Обмотка В Переклю- чатель 3 Переклю- чатель 4 1 Юг Вниз Вверх Отключена Вверх Вверх 2 Юг Вниз Вверх Юг Вниз Вверх 3 Отключена Вниз Вниз Юг Вниз Вверх 4 Север Вверх Вниз Юг Вниз Вверх 5 Север Вверх Вниз Отключена Вниз Вниз 6 Север Вверх Вниз Север Вверх Вниз 7 Отключена Вверх Вверх Север Вверх Вниз 8 Юг Вниз Вверх Север Вверх Вниз 9 Юг Вниз Вверх Отключена Вверх Вверх Я выделил полужирным шрифтом изменения положения каждого отдельно- го переключателя, необходимые для приведения шагового двигателя в движение [положения «Вверх» и «Вниз» основаны на монтажной схеме (см. рис. 5.21)]. Смонтировав схему и определив последовательность смены положений пере- ключателей, работайте далее, чтобы получить возможность для каждой фазы движения менять положение всего одного переключателя. Это упростит не толь- ко задачу приведения шагового двигателя в движение вручную, но и программи- рование контроллера для управления двигателем.
128 ГЛАВА 5. Трансмиссия Эксперимент 32. Биметаллическая проволока Детали Инструменты Набор инструментов для радиомонтажа. Кусачки. Шкурка с зернистостью 600. Цифровой мульти* метр. Обычные плоскогуб- цы с заостренными конц ами Смонтированная печатная плата с макетной платой. Однополюсный переключа- тель на два направления для установки на макетную плату. Биметаллическая проволока длиной 60 мм и диаметром 0,1 мм марки Ftednol (см. текст). Резистор номиналом 39 Ом (см. текст). Рояльная струна длиной 60 мм и диаметром 5 мм. Алю- миниевая трубка диаметром 10 мм длиной 12,5 мм Довольно много страниц я посвятил обсуждению видов ходовой части робота на основе двигателей постоянного тока. Двигатели постоянного тока способ- ны обеспечить достаточную мощность при небольших габаритах, будут рабо- тать приемлемо долгое время от стандартных батарей, и их легко соединить с внешними устройствами. Однако они не единственный тип силового привода или трансмиссии для роботов. Более интересный вариант - биметаллическая проволока (рис. 5.22), которая сжимается, когда по ней течет ток. Мускулы вашего тела работают похожим образом, сокращаясь, чтобы вызвать какое- либо физическое действие. Биметаллическую проволоку, обычно сделанную из никеля и титана, можно растянуть при комнатной температуре, а при последующем нагревании она вернется к своему первоначальному размеру, причем с удивительно большой При низкой температуре проволоки При высокой температуре проволоки '///////////< Биметаллическая г проволока”* Шарнир Рычаг, соеди- ненный с би- и сжатой (3 пружиной '///////////, Укоротившаяся биметаллическая — проволока Растянувшаяся г z-> пружина Символическое изображение биметаллической проволоки Пружина -*С Биметаллическая проволока укорачивается на 3-5% Рис. 5.22. Робота биметаллической проволоки при изменении температуры и ее схематическое обозначение
^alaHausit^ Эксперимент 32. Биметаллическая проволока 129 силой. Проволоку можно нагреть при помощи внешней силы, но при прохож- дении через нее электрического тока ее сопротивление вызывает нагрев про- волоки и возникновение сжимающей силы. Ниже я показал, как кристалличе- ская структура биметаллической проволоки переходит из состояния мартенсита (растяжения) (Martensite) в состояние аустенита (сжатия) (Austenite) при про- хождении через температуру 70 °C (рис. 5.23). Когда биметаллическая прово- лока остывает, она вновь растягивается до своего первоначального размера при достижении 40 °C. Очевидно, что лучше всего использовать биметалличе- скую проволоку при комнатной температуре (20 °C). Длина Длина в горячем состоянии = Длина в холодном состоянии - (от 3 до 5%) Участок Длина в холодном «Мартенсита» (удлинения) Биметаллическая состоянии Длина в горячем состоянии Биметаллическая проволока удлиняется при охлаждении ,проволока у укорачивается д при нагревании 1 Участок I «Аустенита» I (укорочения) Температура Рис. 5.23. Зависимость длины биметаллической проволоки от температуры Для этого эксперимента я взял проволоку флексинол (Flexinol) фирмы Dynalloy диаметром 0,1 мм. Флексинол развивает усилие до 150 граммов при прохождении через него тока в 180 мА. Эта проволока поступает в продажу будучи предварительно растянутой, поэтому когда вы включаете ее в свою кон- струкцию, ее следует потренировать, но при натяжении величиной не более чем 1 г. О проволоке Flexinol (и вообще, о биметаллической проволоке) см. на Web-сайте компании Dynalloy (www.dynalloy.com). Вы можете купить проволоку в интернет-магазине «Mondo-Tronics, the Robot Store» на Www.mondotronics.com или на Web-странице «Stiquito» по адре- су www.stiquito.com. Stiquito - это робот на основе биметаллической проволоки, с которым вы можете экспериментировать (и серия книг). Stiquito использует преимущества лучших свойств биметаллической проволоки и избегает некоторых ее недо- статков. Большой плюс биметаллической проволоки - простота; так, напри- мер, она позволяет с легкостью изменять форму металлического стержня, ис- пользуемого в качестве силового привода. Активированная биметаллическая проволока находится в спокойном состоянии, и в пределах рабочего диапазо- на она будет работать практически вечно. Биметаллическую проволоку можно использовать, чтобы быстро и с минимальными усилиями и затратами соби- рать простые роботы в виде насекомого.
130 ГЛАВА 5. Трансмиссия Однако биметаллическая проволока не в состоянии выдерживать значи- тельную нагрузку. Если ее слишком сильно растянуть (примерно на 8% больше начальной длины), она потеряет способность к сжатию. Обычно биметалли- ческую проволоку предварительно растягивают на величину от 3 до 5% от ее исходной длины. В большинстве роботов, основанных на биметаллической проволоке, батареи, контроллеры и датчики располагаются вне робота. Биме- таллическая проволока активируется довольно медленно (до секунды на сжа- тие и еще одна секунда на растяжение). Кроме того, ее нельзя сжать точно на указанную величину’: как говорится, или всё, или ничего. Наконец, биметалли- ческая проволока потребляет больше мощности, чем сопоставимый двигатель постоянного тока, для выполнения той же работы. Как только вы приобретете биметаллическую проволоку и прочие материа- лы, перечисленные в списке Детали, вы сможете посмотреть их в действии (рис. 5.24). Эту схему можно использовать, чтобы сгибать установленный на макетной плате отрезок рояльной струны (рис. 5.25). Выключатель 716 см биметаллической проволоки ... Батарея 9 В Рис. 5.24. Простоя электрической схема для проверки способности биметаллической проволоки к сжатию и растяжению Рис. 5.25. Электрическая цепь с биметаллической проволокой, которая позволяет за счет протекания через нее токо согнуть отрезок рояльной струны
Эксперимент 32. Биметаллическая проволока 131 Собирать экспериментальную схему я начал с того, что отрезал и подсоеди- нил кусочек рояльной струны так, чтобы у нее был прямой участок длиной 7,6 см с двумя угловыми соединениями длиной 12,5 мм на обоих концах. Эти концы проволоки длиной 12,5 мм я предварительно зачистил шкуркой с зернистостью 600 до блеска. Затем я отрезал кусочек рояльной струны длиной 2,5 см и зачи- стил его той же шкуркой. Так я удалил следы окисла и обеспечил наилучший электрический контакт. Затем я отрезал кусок проволоки Flexinol и слегка зачи- стил по 2,54 см с каждого конца шкуркой с зернистостью 600. При зачистке проволоки Flexinol убедитесь, что вы не растянули и не надрезали ее (впослед- ствии это может вызвать разрыв проволоки). Еще нам нужны два куска алюми- ниевой трубки диаметром 10 мм длиной 12,5 мм. Когда два отрезка рояльной струны будут отрезаны, согнуты и зачищены, закрепите и оберните проволоку Flexinol вокруг концов отрезков рояльной струны. Между двумя отрезками рояльной струны должно быть 7,6 см прово- локи Flexinol. Сделав это, осторожно натяните алюминиевую трубку на места соединения рояльной струны и проволоки Flexinol. При натягивании трубки вам, может быть, захочется покрутить струну, чтобы убедиться, что вы не оторвали от нее проволоку Flexinol. Это довольно тонкая операция, и может потребоваться несколько попыток, чтобы выполнить ее правильно. Когда вы будете удовлетворены результатом подгонки алюминиевой трубки, сожмите ее обычными плоскогубцами с заостренными концами. Согласно техническим характеристикам, через проволоку Flexinol должен протекать ток, равный 180 мА. Проволоку можно подсоединить прямо к бата- рее, но если вы так сделаете, то обнаружите, что проволока будет нагреваться до такого состояния, когда она расплавится, и расплав просочится на верхнюю поверхность печатной платы. Чтобы избежать этого, я добавил в схему огра- ничивающий ток резистор номиналом 39 Ом. Чтобы правильно определить номинал токоограничивающего резистора, я собрал схему и измерил ее сопро- тивление на зажимах батареи на печатной плате. В моем случае это оказалось 11,6 Ом, что вполне справедливо, так как проволока Flexinol, которую я исполь- зовал, имеет сопротивление 3 Ом на дюйм (2,54 см) длины. Зная, что я исполь- зую 9-вольтовую батарею и мне нужно, чтобы через проволоку протекал ток 180 мА, я определил суммарное сопротивление всей цепи, а именно 50 Ом. Поскольку у меня уже есть 11,6 Ом из-за проволоки Flexinol и других проводни- ков, то для этого эксперимента подойдет резистор величиной 39 Ом.
Глава 6 Полупроводниковые приборы ИНПИИННМВИЯИ В 1960-х и 1970-х годах в научной фантастике была популярна тема расшифров- ки интеллекта и того, как он проявляет себя в живых организмах. В типичной истории [как в книге X. Бима Пайпера (Н. Beam Piper) «Маленький Пушистик» («Little Fuzzy»)] рассказывалось о людях, колонизующих некую планету, только чтобы обнаружить, что некоторые из «животных», которые уже жили там, де- монстрируют замечательные возможности. Это предполагает, что они обладают «сознанием». Определить интеллект помогал простой тест: способность гово- рить и пользоваться огнем или инструментами. Проблема с подобными тестами в том, что на Земле можно найти животных, которые с ними справятся. Если говорить о «речи» или общении, то многие существа используют различные спо- собы коммуникации. Так, пчелы рассказывают о том, где найти пищу, в «танце», птицы сообщают об опасности звуками, а гориллы, обученные языку жестов, могли «общаться» с людьми. Что же касается инструментов, то морская выдра использует массу инструментов для поиска и открывания пищи. Полярные мед- веди с помощью огня вспугивают животных, которыми питаются. Что же отличает нас от животных? По-моему, способность изменять свой- ства материи. Но, прежде чем начать рисовать в своем воображении пещерных людей с лабораторными пробирками, попытайтесь подумать, каковы же наи- более кардинальные изменения, которые можно произвести с чем-нибудь, что выглядит естественно. Если вы подумали о приготовлении пищи, начните с самого начала. Вероят- но, древнейшие люди сделали открытие: мясо делается вкуснее и его легче же- вать, если предварительно прогреть. А с яйцами при нагревании происходит одно из самых драматических превращений: молекулы белка изменяются так, что приобретают способность с легкостью объединяться между собой, превра- щая белок из прозрачной жидкости в непрозрачное белее твердое вещество.
Полупроводниковые приборы 133 По прошествии времени люди открыли массу способов изменения свойств материалов (табл. 6.1). Таблица 6.1. Изменение свойств материалов Изменение свойств Пример материала, изделия Из жидкого состояния в твердое Клей Из газообразного состояния в жидкое Ракетное топливо Из газообразного состояния в твёрдое Сухой лед Увеличение прочности на разрыв Углеродистая сталь Свойства химического элемента Плутоний (синтезирован в ядерном реакторе) Электричество, порождаемое химическими процессами Батареи Рост проводимости Медные сплавы Управляемая электрическая проводимость Транзисторы Транзисторы и другие полупроводниковые приборы могут изменять свою спо- собность проводить электричество (и пропускать через себя ток) в зависимо- сти от некоторых внешних условий. Основой полупроводниковых приборов обычно служит чистый кристалл из таких элементов, как германий, селен или кремний. В кристалл можно ввести галлий и мышьяк (в виде вещества, называ- емого арсенид галлия), и такой кристалл также будет полупроводником. Эти кристаллы обычно - хорошие изоляторы, но их проводимость, как правило, повышается при повышении температуры кристалла. Благодаря добавлению в кристалл различных атомов (они называются легирующими примесями или диф фузантами) он приобретает способность проводить электричество, поскольку новые атомы дают дополнительные электроны. Эти электроны позволяют току протекать через кристалл. Кристаллы полупроводника образуют структуры, в которые очень легко можно добавить легирующие примеси (рис. 6.1). Эти примеси замещают ато- мы кристалла и в зависимости от числа электронов на их самых дальних от центра электронных оболочках формируют неполные валентные связи, теря- ющие излишние электроны или дырки. Это приводит к появлению тока. Как видите, у атома кристалла шесть электронов на внешней электронной оболоч- ке, а у атома примеси - пять (см. рис. 6.1). При этом у кристалла с неполной связью остается дырка в одном из атомов кристаллической решетки, и этот атом легко может присоединить электрон*. Кремний - это один из основных применяемых базовых кристаллов, что объясняется его широкой распространенностью в природе, низкой стоимо- стью (песок и стекло в своей основе представляют собой кремний), простотой применения и слабой токсичностью. В отличие от кристалла, показанного на рис. 6.1 кремний на внешней оболочке имеет четыре электрона. Я использовал * Дыркой называют условную частицу с положительным зарядом, равным по величине отрицатель-' ному заряду электрона, то есть отсутствие, недостаток электрона в валентной связи. Недостающий электрон может быть заимствован у соседнего атома кристаллической решетки полупроводнико- вого материала, у которого в результате появится положительная дырка, и т. д. Последовательное появление дырок у атомов кристалла трактуется как дырочная проводимость. - Прим, перев.
134 ГЛАВА 6» Полупроводниковые приборы пример с шестью электронами, потому что куб гораздо проще вообразить (и изобразить), чем трехмерную структуру, в которой атомы обладают только че- тырьмя связями. Легированный кристалл Рис. 6.1. Чистый и легированный кристаллы полупроводника Когда атом с числом электронов менее четырех служит для легирования кристалла кремния, то полученный в результате полупроводник называют по- лупроводником p-типа (см. рис. 6.1). Полупроводники p-типа способны присо- единять электроны, и их называют акцепторами. В то же время полупроводни- ки n-типа, в которые введена примесь вещества с лишним электроном на внешней оболочке, способны поставлять свободные электроны и называются донорами. Бор, у которого на внешней оболочке три электрона, - типичная ле- гирующая примесь полупроводника p-типа, а фосфор с пятью электронами служит для получения полупроводников п-типа. Эксперимент 33. Диоды Смонтированная печат- ная плата. Кремниевый диод типа 1N4148 или 1N914. Резистор номи- налом 1 кОм Набор инструментов для радиомонтажа. Цифровой мультиметр Свойства полупроводников применяются в диодах. Диод - это прибор, способ- ный пропускать ток только в одном направлении. Если вспомнить аналогию с движением воды, то диод можно уподобить однонаправленному вентилю. Ко- гда в одном из направлений действует давление, вода будет протекать через вен- тиль с очень небольшим падением давления. Если давление воздействует в об- ратном направлении, вентиль закрывается и перекрывает поток воды. В этом эксперименте мы исследуем, как работает диод в электрической цепи и каковы
Эксперимент 33. Диоды 135 его параметры. Заметьте: чтобы показать направление тока через диод, на диод краской наносится один «ободок» (рис. 6.2). В схемах диоды обозначают буква- ми CR или D. Схематическое обозначение Линия, соответствующая у «ободку» на компоненте Анод Катод Направление тока Внешний вид реального компонента Анод--- | ---Катод t Ободок на конце диода показывает полярность и направление тока Рис. 6.2. Обозначение диода Одним из самых ранних применений диода было преобразование переменно- го тока в постоянный (или выпрямление). При переменном токе напряжение принимает как положительные, так и отрицательные значения. Взгляните, как через диод проходят только положительные полуволны напряжения и тока (рис. 6.3). Рис. 63. Диод, выпрямляющий сигнал переменного токо В диоде электроны переходят от кремниевого полупроводника n-типа, име- ющего высокий потенциал, в кремниевый полупроводник p-типа, обладающий низким потенциалом (рис. 6.4). Из-за этого перехода электроны теряют энер- гию. Эта энергия преобразуется в энергию света (фотоны). Для кремнйевых диодов эти фотоны находятся очень далеко в инфракрасном диапазоне и неви- димы для человеческого глаза. Как я объясню в главе 7, при помощи изменения материала, из которого изготовлен диод, можно генерировать видимый свет, что применяется на практике. На иллюстрации я показал направление потока электронов, а не электрическо- го тока. Я уже говорил, что ток течет в направлении, противоположном на- правлению потока электронов. Когда вы соберете свою электрическую схему, полупроводник n-типа будет соединен с отрицательной частью цепи, чтобы пропускать ток, а не с положительной, как вы могли бы подумать исходя из этого рисунка.
136 ГЛАВА 6. Полупроводниковые приборы Электроны, Электрический потенциал движущиеся от материала с высоким потенциалом к материалу с низким потенциалом Кремний п-типа Кремний р-типа Рис. 6.4. Работа диода Давайте соединим диод, резистор 10 кОм и подключим их к комбинации печатной платы и макетной платы (рис. 6.5). Напряжения и токи в схемы будут измеряться, так что вы сможете понять, как работает диод. □ □ □ □ □ Vss tn О tn S' 3 SW1 g Р15 Р14 Р13 Р12 Pl 1 РЮ P9 P8 P7 P6 P5 P4 P3 P2 P1 PC Поверните "иод на 180° □ □ Q< □ □ □ ф □ □ □ ф □ □ 4 □ □ □ CT □ □ □ □ □ o'4 □ □ □ □ □ Измерьте напряжение □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ Положительный.! Измерьте напряжение и ток □ □□ □□ |С □ □ □ □ ’ ] □ □ □ B©|Q □ □ □ □ □ □ □ □ □ □ □ □ ВС □ С Ч □ □ □ Измерьте ток □ □□□□ □ □□□ □ □ □ □ □ □ □ □ □ □ □ □ □□□ □ □ □ □ □ □ □ □ □ □ □ □ □□ □ □ □ □□□ □ □ □□□□ □ □□□ □ □ □ □ □ □ □ □ □ о □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ с □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ Рис. 6.5. Испытание диода Диод марки 1N914 и его эквивалент, диод 1N4148, являются кремниевыми диодами общего назначения. Термин эквивалент применительно к электрон- ным элементам означает, что эти элементы ведут себя одинаково, но разные предприятия-изготовители присвоили им разные номера. Чтобы избежать пу- таницы, я обычно не указываю в книге радиодетали, имеющие общеупотреби- тельные эквиваленты, как диод 1N914. Однако в данном случае это весьма удоб- ный для использования, недорогой и широкодоступный элемент, и вы узнаете, что некоторые поставщики имеют на складе только диоды 1N4148, не призна- вая марку 1N914.
Эксперимент 33. Диоды 137 Собрав схему, начертите для себя таблицу (см. табл. 6.2) и произведите для Цепи 1 измерения (рис. 6.6). Кстати, если напряжение 9-вольтовой батареи покажется вам слишком низким, скажу, что лично я использовал сильно разря- женную никель-металлогидридную (NiMH) батарею. Я также добавил измере- ние напряжения на диоде. Очевидно, что это напряжение равно разности меж- ду напряжением 9-вольтового источника питания и напряжением на резисторе, но мне хотелось бы сделать с ним две вещи. Таблица 6.1. Измерения для Цепи 1 Параметр Напряжение батареи 7,46 В Напряжение на диоде 0,59 В Напряжение на резисторе 6,85 В Ток в цепи 6,69 мА 9В .---Батарея ----9R Цифровой мультиметр используется в режиме измерения постоянного напряжения в диапазоне от О до 20 В, за исключением Теста 3, когда он измеряет постоянный ток в диапазоне от 0 до 2 мА Цепь 2/Тест 2 Цепь2/Тест 1 Цепь 2/Тест 3 Положительный Отрицательный Положительный Отрицательный Положительный Отрицательный мА Рис. 6.6. Цепи для проверки диода в рамках испытания его работы Исходя из табл. 6.2 вы можете сделать два вывода: во-первых, падение на- пряжения на диоде равно примерно 0,6 В - это величина, нормальная для крем- ниевых диодов, и она может достигать 0,8 В; во-вторых, к диоду в этой цепи применим закон Кирхгофа для напряжений - падение напряжения на нем в сумме с падением напряжения на резисторе равно напряжению, приложенно- му к этим двум компонентам. Заметьте: величина тока в цепи определяется напряжением на резисторе - диод никак не ограничивает ток. Это наблюдение, существенное для следую- щего эксперимента, показывает, как использовать резистор для ограничения велчины тока. Теперь поверните диод на 180° и выполните измерения снова.
138 ГЛЙВЙ 6. Полупроводниковые приборы Когда диод включен в обратном направлении, все напряжение, приложен- ное к цепи, падает на нем, а на резисторе падения напряжения нет. Вновь под- тверждается справедливость закона Кирхгофа для напряжений в отношении этого полупроводникового прибора, так как падение напряжения на нем рав- но приложенному напряжению. Согласно закону Ома, ток в цепи равен при этом нулю (потому что на резисторе нет напряжения). Этих результатов для смещенного в обратном направлении диода и следовало ожидать на основании вступительных замечаний о диоде и на основании его отклика на подачу на вход переменного тока. Если вам придется применить законы, которые я представил ранее, вы обна- ружите, что на практике диод рассеивает некоторое количество тепла. В схеме Цепи 1 (см. рис. 6.6) при токе через диод, равном 6,69 мА, с падением напряже- ния на нем 0,59 В рассеиваемая мощность составляет примерно 4 мВт. Хотя в данном примере эта мощность невелика, в других цепях, где протекает значи- тельный по величине ток, вам придется использовать диоды определенного типа, рассчитанные на прохождение такого тока и на предполагаемую мощность рассеяния. Эксперимент 34. Светоизлучающие диоды Детали Смонтированная печатная плата. Светодиод любого цвета. Резистор номина- лом 1 кОм Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр В предыдущем эксперименте я упоминал одну особенность диода, весьма полез- ную на практике: при переходе электронов от кремния n-типа с высоким элек- тронным потенциалом к кремнию p-типа с низким электронным потенциалом выделяются фотоны. Выделение фотонов подтверждает, что в диоде не нарушается первый закон термодинамики: энергия не возникает ниоткуда и не исчезает бесследно, а лишь преобразуется из одной формы в другую. Энергия, утраченная электро- нами при переходе от полупроводника n-типа к полупроводнику p-типа, преоб- разуется в фотоны. В стандартном кремниевом диоде эти фотоны- обладают очень малой энергией (большой длиной волны излучения) и не имеют практи- ческого применения. В табл. 6.3 я перечислил некоторые материалы, применяемые для изготов- ления светодиодов, и разные цвета света, который они излучают. Большинство
Эксперимент 34. Светоизлучоющие диоды 139 материалов, используемых при изготовлении светодиодов, довольно редкие. Поэтому светодиоды в 10 и более раз дороже обычных кремниевых диодов. Таблица 6.3. Материалы и цвет свечения светодиодов Цвет свечения Материалы для диода Длина волны выходного излучения Инфракрасный Галлий, мышьяк 940-730 нм Красный Галлий, алюминий, фосфор 700-650 нм Янтарно-желтый Галлий, мышьяк, фосфор 610 нм Желтый Галлий, мышьяк, фосфор 590 нм Зеленый Г аллий, фосфор 555 нм Синий Цинк, селен 480 нм Светодиоды поставляют заключенными в цилиндрические корпуса (рис. 6.7). Условное изображение светодиодов на схемах аналогично изображению обыч- ных диодов, но над светодиодами изображаются выходящие лучи света. Для указания полярности (и направления тока) на круглом основании светодиода сделан плоский срез (лыска). Лыска показывает, какой из выводов светодиода является катодом (отрицательным выводом). Как и обычные диоды, светодио- ды обычно имеют обозначение на схемах CR или D, но иногда вместо них ис- пользуется обозначение LED (light-emitting diode). «Световые лучи», указывающие на то, что это светодиод ^0^ Линия соответствует лыске I на основании элемента Направление тока Внешний вид реального элемента Лыска с одной стороны диода указывает полярность и направление тока Рис. 6.7. Светодиод и его обозначение Светодиоды ведут себя в схемах аналогично простым диодам с одним важ- ным отличием: обычно у светодиодов более высокое падение напряжения, чем у кремниевых (и прочих полупроводниковых) диодов. В данном эксперименте я собираюсь повторить условия предыдущего, но использовать светодиод вме- сто диода типа 1N914/1N4148. В магазинах электроники продаются светодиоды с разными цветами све- чения, разным конструктивным оформлением и разных уровней яркости. Для этого эксперимента (и нескольких следующих) я рекомендую купить поболь- ше самых дешевых светодиодов. Обычно это светодиоды красного цвета в 5-миллиметровом корпусе с плоским срезом на основании (рис. 6.7).
140 ГЛАВА 6. Полупроводниковые приборы Используется та же электрическая схема, что и в предыдущем эксперимен- те. Помните, что лыска на светодиоде должна быть повернута в направлении от точки Vin. Как только вы соберете схему, светодиод должен загореться. Когда светодиод будет гореть, повторите этапы предыдущего эксперимента (рис. 6.8) и запишите результаты измерений в таблицу, аналогичную табл. 6.4. Цифровой мультиметр используется в режиме измерения постоянного напряжения в диапазоне от 0 до 20 В, за исключением Теста 3, когда он измеряет постоянный ток в диапазоне от 0 до 2 мА Рис. 6.8. Схема для проверки работы светодиода Таблица 6.4. Измерение электрических характеристик схемы со светодиодом Напряжение батареи Напряжение на диоде Напряжение на резисторе Ток в цепи 7,38 В 1,99 В 5,37 В 5,36 мА Анализируя данные, вы увидите большую разницу между падением напряже- ния на светодиоде и на кремниевом диоде. У большинства светодиодов оно составляет примерно 2 В, а у кремниевых диодов - от 0,6 до 0,8 В. Остальные данные табл. 6.4 говорят о том, что и здесь действует закон Кирхгофа для на- пряжений, а ток в цепи зависит от напряжения на резисторе и величины его сопротивления. Большинство светодиодов загорается при токе 5 мА. Применение в этой схеме резистора номиналом 1 кОм обеспечивает даже больше 5 мА (как видно из табл. 6.4). Дальнейшее увеличение тока не сделает светодиод ярче, а при чрезмерно большом токе он просто перегорит. Снижение тока уменьшит вы- ходной сигнал, но выходным уровнем свечения управлять трудно. Наилучший способ управления выходным уровнем свечения светодиода за- ключается в быстром включении и выключении его питания. Он известен как широтно-импульсная модуляция, ШИМ (pulse width modulation, PWM). Далее я более подробно расскажу, как он работает и как получают сигнал управления с широтно-импульсной модуляцией. Резистор 1 кОм называют токоограничивающим, и он необходим, так как светодиод (или обычный диод) в схеме практически не имеет сопротивления. Если бы вы исключили резистор из схемы, то обнаружили бы следующее. Веро- ятно, светодиод все еще продолжал бы работать (9-вольтовая батарея не может обеспечить величину тока, достаточную, чтобы вывести его из строя), но срок службы батареи оказался бы довольно коротким. Благодаря включению в схему
Эксперимент 35. Транзистор типа п-р-п и управление двумя светодиодами 141 резистора величина тока, протекающего через светодиод, минимизируется до значения, требуемого для зажигания светодиода, но не более. Токоограничива- ющий резистор минимизирует значение тока, необходимое для работы данного приложения, и максимизирует срок службы батареи для данного приложения. При работе с 5-вольтовыми логическими элементами я использую токоогра- ничивающий резистор номиналом от 220 до 470 Ом. Величина 470 Ом опти- мальна, но в таких ситуациях, как при управлении добавленным к схеме свето- диодом с помощью микроконтроллера BS2, резисторы в 220 Ом, встроенные в печатную плату, позволяют вам избежать добавления токоограничивающих резисторов. Эксперимент 35. Транзистор типа п-р-п и управление двумя светодиодами Детали Смонтированная печатная плата. Два светодиода любого цвета. Три рези- стора номиналом 1 кОм. Два п-р-п-транзистора типа ZTX649 Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр До сих пор для описания работы электронных элементов я применял аналогию с водой. К сожалению, поскольку я начинаю работу с более сложными компо- нентами, такая аналогия становится почти непригодной. Как я уже говорил, работу диода можно моделировать с помощью однонаправленного вентиля, однако создать модель транзистора на основе аналогии с водой очень трудно. Некоторые из важнейших аспектов в работе транзистора при этом понять не- легко. Транзистор состоит из простого вентиля, управляемого при помощи нагне- тания воды в трубу системы управления (рис. 6.9). Поток воды в системе управ- ления вращает небольшую турбину, с помощью которой толчком открывается вентиль в трубе гораздо большего диаметра. Чем больше воды проходит через трубу системы управления, тем быстрее вращается турбина и тем больше от- крывается вентиль. Чем больше открывается вентиль, тем больше воды прохо- дит через большую трубу. Когда в трубу управления больше не поступает вода, вентиль автоматически закрывается. Это действительно очень точное описание работы п-р-п-транзистора, одна- ко в нем не учитываются некоторые важные моменты. Прежде всего воду, про- ходящую в трубу системы управления, сбрасывают в выходную трубу. Объем же воды, проходящей через большую трубу, зависит от объема воды, проходящей
142 ГЛАВА 6. Полупроводниковые приборы через трубу управления, - давление воды не имеет значения. И наконец, между количествами воды, проходящей через трубу управления и через большую тру- бу имеется умножающий коэффициент. Количество воды, которое может прой- ти через большую трубу, пропорционально количеству воды, протекающей через трубу управления. Рычаг для открывания клапана, который движется при помощи управляемой потоком турбины Управляющий поток воды («База»)---> Дренажная труба для управляющего потока Источник («Коллектор») Выход («Эмиттер») Рис. 6.9. Модель транзистора, ооюеонноя но движении воды С другой стороны, имеется электрическая модель, которой пользуются ин- женеры и разработчики микросхем, чтобы имитировать работу транзистора в схеме. Взгляните на упрощенную модель транзистора для малых сигналов, ис- пользуемую в программе моделирования с ориентацией на интегральные микросхемы (simulation program with integrated circuit emphasis, SPICE) (рис. 6.10). На этой схеме видны паразитные элементы: сопротивление цепи управления (то есть цепи базы), а также емкости связи. Кружок со стрелкой внутри называется ис- точником тока. Он обеспечивает протекание в выходной цепи (через эмиттер) тока установленной величины, кратной току, который течет через управляю- щий вывод транзистора (базу). Чтобы не пугать вас сложностью схемы, я не показал ток, протекающий через источник тока от источника (коллектора) и проходящий в цепь эмиттера. Рис. 6.10. Упрощенная модель транзистора Вместо того, чтобы пытаться понять, какова наилучшая модель работы п-р- n-транзистора, я начну рассмотрение вообще без всякой модели и обращусь прямо к его условному изображению и выводам корпуса различных транзисто- ров (рис. 6.11). Рассмотрим схематическое изображение транзистора, на котором помечены его выводы. База соответствует трубе системы управления в приведенной выше модели транзистора, основанной на движении воды. В свою очередь коллектор
Эксперимент 35. Транзистор типа п-р-п и управление двумя светодиодами 143 ^aiaHaus,^. Транзистор ТО-92 Надпись с номером элемента Коллектор he = 'b х hFE База Е В С «Сверх-модифицированный» транзистор ТО-92 Рис. 6.11. Условное изоброжение л-р-л-тронзисторо и его внешний вид и эмиттер соответствуют большой трубе с вентилем. Если смотреть на транзистор с плоской стороны, когда выводы направлены вниз, то его выводы, считая слева направо, всегда идут в порядке эмиттер - база - коллектор: Emitter Before Collector. На схеме (см. рис. 6.11) я показал направления токов в транзисторе. Проще говоря, величина тока, который может пройти через коллектор к эмиттеру, равна току базы, умноженному на hFE (или р) - коэффициент усиления по току, который указывается в справочниках в качестве параметра транзистора. Рассмотрим работу п-р-п-транзистора (рис. 6.12). При отсутствии тока через базу левого транзистора ток течет через резистор 1 кОм в цепь его коллектора и втекает в базу правого транзистора. При этом правый транзистор открыт, и его эмиттерный ток зажигает включенный в его цепь светодиод. Когда в базе левого транзистора течет ток, имеющийся в цепи его коллекто- ра ток проходит в левый светодиод. При этом в цепи базы правого транзисто- ра тока нет, и поэтому он закрыт. Если вы хорошо знакомы с транзисторами, вас может удивить мой выбор п-р- n-транзисторов Zetex ZTX649. Обычно советуют использовать дешевый и рас- пространенный транзистор общего применения 2N3904. Транзистор ZTX649 несколько дороже 2N3904, но он может выдержать ток до 2 А, что делает его идеальным для схем управления двигателем небольшого робота. ZTX649 имеет коэффициент усиления по току (hFE), равный 300, то есть примерно вдвое боль- ше, чем у 2N3904. Собрав схему (рис. 6.12), понаблюдайте за работой светодиодов, а затем, разорвав соединение между коллектором левого транзистора и базой правого, измерьте ток. Когда светодиод правого транзистора включен, ток, втекающий
144 ГЛАВА 6. Полсрроводниковые приборы Рис. 6.12. Робота переключателя светодиодов на двух транзисторах в его базу, составляет примерно 6 мА, а когда светодиод выключен, ток базы равен 0. И это понятно: светодиод выключен, и ток через него не идет. Можно также измерить напряжение на светодиодах, когда они включены и выключены. Я получил напряжение порядка 1,7 В при выключенных светоди- одах и 2,2 В при включенных. Вас может удивить, почему светодиод не горит «чуть-чуть», когда на нем падает напряжение 1,7 В. Однако вы должны помнить, что в этом случае ток через него не идет. Чтобы светодиод загорелся, должны иметь место как падение напряжения на нем, так и ток через него. Напомню: чтобы объяснить, что происходит в полупроводниковой схеме, одним измере- нием напряжения зачастую не обойтись. Вы всегда должны быть готовы изме- рять как падение напряжения, так и ток через компонент, чтобы получить воз- можность разобраться в происходящем. Эксперимент 36. Управление двигателем с помощью транзистора Смонтирсванная печатная плата. Транзистор п-р-п типа ZTX649. Кремниевый диод 1N4148 или 1N914. Д ва элемента питания типа С с держателем. Любой не- большой двигатель от иг- Набор инструментов для радиомонт ажа. Цифре вой мультиметр. рушки, способный работать при входных напряжениях от 1,5 рр 3 В. Резистор 100 Ом. Резистор 470 Ом. Резистор 1 кОм. Резистор 10 кОм
Эксперимент 36. Управление двигателем с помощью транзистора 145 Выше мы познакомились с п-р-п-транзистором и обсудили некоторые модели, демонстрирующие его работу. Я также привел простую формулу соотношения между током базы и током коллектора. Кроме того, вы узнали, как использо- вать п-р-п-транзистор в качестве ключа, включающего один или два светодио- да. А теперь я рассмотрю п-р-п-транзистор подробнее и покажу, как с помощью транзисторов управлять такими устройствами с большими значениями элек- трического тока, как электродвигатели. До сих пор я описывал транзистор просто как п-р-п-транзистор, причем правильное название для него - биполярный п-р-п-транзистор. Взглянув на транзистор сбоку, вы увидите нечто вроде прибора в форме бруска с полупро- водником n-типа на каждом из концов и тонким слоем полупроводника р-типа в середине (рис. 6.13). Транзистор «выключен» , «Обедненная 1 область» г-ч? ° я Область 5 s гипа п Коллектор___ Область (положительный) типа п типап L База (тока нет) Транзистор «включен» Коллектор (положительный) * Эмиттер (отрицательный) Уменьшение | «обедненной области» । я . Область ___Эмиттер с типа п| типа п х О F fj~ \ Область проводимости База (ток есть, растет с ростом тока базы (отрицательный) втягивание электронов) Рис. 6.13. Робота п-р-п-транзисгоро Когда транзистор открыт, базовый ток переносит электроны от эмиттерно- го полюса n-типа, создавая зону проводимости, заполненную электронами. Чтобы понять, как работает транзистор, вспомните, что поток электронов идет в направлении, обратном направлению электрического тока: поскольку ток втекает в базу, электроны из нее вытягиваются. Область p-типа в транзисторе очень тонкая, и электроны, вытянутые из эмиттера, перепрыгивают в коллектор, образуя ток коллектора. Величина тока обусловлена количеством электронов, вытянутых из базы. Чем больше ток, протекающий в базе, тем больше возможный ток коллектора. По мере увеличе- ния тока базы биполярного п-р-п-транзистора растет область проводимости, а у коллекторного тока - область, в которой он может протекать. Я хочу продемонстрирвать работу биполярного п-р-п-транзистора в каче- стве ключа на ток большой величины с управлением от малого тока. Чтобы сделать это, я буду пользоваться простой схемой (рис. 6.14). Я использовал то- коограничивающий резистор в цепи базы величиной 470 Ом, но мне хотелось бы, чтобы при проверке работы схемы вы изменяли номинал резистора в цепи базы и попробовали каждый из резисторов, перечисленных в списке Детали.
146 ГЛЙВЙ 6. Полупроводниковые приборы Рис 6.14. Управление двигателем с помощью п-р-п-транзистора Экспериментируя со старым игрушечным моторчиком, я установил, что при включении в цепь базы токоограничивающего резистора 470 Ом двигатель работает наиболее эффективно. При использовании резистора большего но- минала сопротивления, двигатель работает намного медленнее (с уменьшени- ем крутящего момента) либо не работает вовсе. Включив в цепь базы токоогра- ничивающий резистор номиналом 100 Ом, я не смог выявить никакой разницы в работе двигателя с этим резистором или с резистором 470 Ом. Таким обра- зом, я опытным путем установил, что резистор номиналом 470 Ом является оптимальным выбором для используемого двигателя. Измерив напряжение на 9-вольтовой батарее (результат измерения равен 8,91 В) и напряжение между базой транзистора и его эмиттером (или землей) (результат 0,79 В), я установил, что падение напряжения на базовом токо- ограничивающем резисторе номиналом 470 Ом составляет 8,12 В, а расчет- ное значение тока, втекающего в базу, равно 17 мА. Реальное измеренное зна- чение тока базы при этом - 17,1 мА. При условии, что hFE транзистора равен 300, ток от коллектора транзистора к его эмиттеру должен составлять 5,18 А. Вы, наверное, сразу поняли, что 5,18 А непомерно много. В предыду- щем эксперименте я указал, что транзистор ZTX649 может пропустить мак- симум 2 А, а обратившись к таблице параметров щелочных элементов пита- ния типа С, вы увидите, что номинальный ток, который они выдают, равен примерно 350 мА. Измерение тока через двигатель дало у меня результат порядка 190 мА. Путаница произошла из-за диапазона, в котором работает транзистор. Ра- нее я описывал работу транзистора для линейной малосигнальной рабочей обла- сти (рис. 6.15). Когда устройством, представляющим собой большую нагрузку по току (например, двигателем), управляют при помощи транзистора, послед- ний выходит за пределы малосигнальной области в нелинейную область (или область насыщения), в которой работу транзистора нельзя предсказать так про- сто. У большинства средств моделирования имеется возможность правильно отображать работу транзистора за пределами малосигнальной рабочей обла- сти. Однако для управления небольшими двигателями я советую следовать моим путем: проверить несколько номиналов токоограничивающих резисторов
Эксперимент 36. Управление ^аигателем с помощью транзистора 147 Рис 6.15. Связь между током коллектора и током базы п-р-п-транзистора в цепи базы и делать это до тех пор, пока не найдется тот, что покажется вам оптимальным для данного случая. Когда двигатель включается/выключается (или даже когда поворачивается арматура и активируется новая обмотка), большое индуцированное напряжение (его называют fyefea) вызывает шум в схеме. В исходной принципиальной схеме (см. рис. 6.14) я предлагал измерить напряжение между коллектором транзисто- ра и его эмиттером. При работающем двигателе я предлагаю вам проделать это как при наличии диода в схеме, так и отключив диод. Сделав это, я убедился, что напряжение между коллектором и эмиттером очень стабильно, составляет 0,030 В и колеблется в пределах 1 мВ. А без диода напряжение остается порядка 0,030 В, но меняется относительно этой величины в пределах 10 мВ. Чтобы проверить этот вывод, я посмотрел форму напряжения коллектора при помощи осциллог- рафа (для этого измерения эмиттер являлся «землей») при наличии и при отсут- ствии диода в схеме (рис. 6.16). Рис. 6.16. Сигнал в схеме управление двигателем на транзисторе Верхняя осциллограмма показывает коллекторное напряжение при отсутствии диода с шумом, достигающим уровня ±10 В, нижняя показывает то же напряжение при наличии диода в схеме - шум на выходе при этом снизился до величины,
148 ГЛЙВЙ 6. Полупроводниковые приборы не превышающей ±5 В. Диод обеспечивает такую фильтрацию шума за счет «от- сечки» при подаче на него больших напряжений. Подобно описанному мной по- ведению транзистора, внезапно попадающего в экстремальные условия, диод ве- дет себя так же, косца на него подают высокое напряжение. При некотором уровне напряжения диод перестает работать и становится аналогом короткозамкнутой цепи, шунтируя ток, вместо того чтобы передавать его обратно, к другим элемен- там схемы. Разрабатывая схему для управления магнитным устройством, всегда включайте в нее антидребезговые диоды для защиты других элементов. Эксперимент 37. Управление двигателем с помощью биполярного р-п-р-транзистора Детали Набор инструментов для рациом<жтажа. Цифровом мультиметр Смонтированная печатная плата. Транзистор р-п-р типа ZTX749. Кремниевый диод 1N4148 или 1N914. Два элемента питания типа «С» с держателем. Любой небольшой двига- тель от игрушки, способ- ный работать при входных напряжениях от 1,5 до 3 В. Резистор 110 Ом. Резистор 470 Ом. Резистор 1 кОм. Резистор 10 кОм. Резистор 100 кОм Биполярный п-р-п-транзистор - основа для транзисторной логики (см. главу 7). Эти транзисторы популярны из-за простоты их изготовления, низкой себесто- имости, высокого быстродействия и хороших возможностей управлять проте- кающим током. К сожалению, п-р-п-транзистор нельзя использовать во всех си- туациях, в частности, когда нужен ключ для источника тока, а не для нагрузки, потребляющей ток. Транзистор р-п-р используется в дополнение к п-р-п-транзистору и во мно- гом на него похож (рис. 6.17). Условное изображение транзисторов одинако- во, но в р-п-р-транзисторе направление токов обратно тому, что присуще п-р-п- транзистору. Ток коллектора р-п-р-транзистора рассчитывается так же, как й для п-р-п-транзистора. Наконец, выводы р-п-р-транзистора обозначаются и рас- положены так же, как и выводы п-р-п-транзистора. Когда р-п-р-транзистор открыт, ток вытекает из его базы, причем электроны вводятся в область полупроводника n-типа в транзисторе. Эти электроны пере- даются на коллектор транзистора, причем некоторые из них перепрыгивают из области эмиттера, состоящей из полупроводника p-типа. Электроны, поступаю- щие с эмиттера, образуют ток коллектора транзистора.
Эксперимент 37. Управление двигателем с помощью биполярного р-п-р-тронзистора 149 Эмиттер Транзистор ТО-92 Надпись с номером элемента Е В С «Саерх-модифицированный» транзистор ТО-92 Рис. 6.17. Условное изображение и внешний вид р-п-р-тронзисторо Подобно п-р-п-транзистору, р-п-р-транзистор закрывается, когда нет тока в цепи базы, а ток, который может протекать в цепи коллектора, кратен току базы. Как и у п-р-п-транзистора, коэффициент усиления р-п-р-транзистора по току известен под названием Р или hra. Когда изготавливают комплементарный (дополняющий) р-п-р-транзистор для п-р-п-транзистора, у него обычно то же значение hFE что и у последнего. Чтобы продемонстрировать, как работает р-п-р-транзистор, мы соберем схему, подобную предыдущей, включив в нее р-п-р-транзистор, который явля- ется дополняющим по отношению к п-р-п-транзистору, использованному в экс- перименте 36. На принципиальной схеме видно, что я поменял положение транзистора в электрической цепи (рис. 6.18). Чтобы открыть транзистор, вместо того чтобы соединять базу с источником питания (с 9-вольтовой бата- реей в эксперименте 36), здесь ее придется соединять с «землей» источника. Эта схема отличается от предыдущей, хотя они и кажутся одинаковыми. Так что лучше снимите все компоненты от предыдущего эксперимента с макетной платы и начните заново. Как и в предыдущем эксперименте, вы должны пробовать разные номиналы резисторов, пока не найдете тот, при котором двигатель работает наиболее эф- фективно. Что касается двигателя, который использовал я, то он хорошо рабо- тает при 470 Ом. Это значение было наилучшим для п-р-п-транзистора типа ZTX649. Я выполнял эксперимент с другими резисторами и убедился, что наи- большие скорость и крутящий момент двигателя получались при резисторе величиной 220 Ом. Это может вас несколько удивить, так как предполагается, что ZTX749 является комплементарным по отношению к ZTX649.
150 ГЛАВА 6. Полупроводниковые приборы Рис. 6.18. Управление двигателем при помощи р-п-р-транзисторо Транзисторы р-п-р не так эффективны, как п-р-п'-транзисторы из-за больше- го сопротивления кремния p-типа и меньшей скорости прохождения электро- нов через него. По этой причине и по причине сложности их изготовления в составе интегральных микросхем р-п-р-транзисторы не так широко распро- странены, как п-р-п-транзисторы. Ниже я продемонстрирую, как с помощью р-п-р- и п-р-п-транзисторов создать схему управления двигателем постоянного тока с двумя направлениями вращения. В заключение отметим, что в схему я включил противодребезговый диод. Двигатель будет вырабатывать такие же кратковременные выбросы большой величины при управлении от р-п-р-транзистора, как и при управлении от п-р-п- транзистора. Разница в том, что я соединил диод с землей, а не с источником тока, как в эксперименте 36. Эксперимент 38. Транзисторный Н-образный мост для управления двигателем Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр Смоюмрсэданная печатная плата. Два транзистора р-п-р типа ZTX749. Четы- ре транзистора n-p-п типа ZTX649. Четыре кремние- вых диода 1N4148 или 1N914. Два элемента пи- тания типа С с держате- лем. Любой небольшой двигатель от игрушки, способ- ный работать при входных напряжениях от 1,5 до 3 В. Два резистора 100 Ом. Два резистора 1 кОм
Эксперимент 38. Транзисторный Нобразнцй мост у» управления двигателем 151 В этой главе я показал, как с помощью транзисторов управлять электродвига- телями роботов. В первой главе мы пришли к выводу, что шасси с дифферен- циальным управлением наиболее эффективны при построении роботов, по- скольку у них отпадает необходимость в рулевой передаче - каждый двигатель участвует в перемещении и повороте робота. Это означает, что вы должны иметь метод приведения двигателей в движение как в одном направлении, так и в противоположном. В Интернете я видел множество конструкций, в кото- рых для управления двигателями в роботе с дифференциальным управлением применяются реле. Однако я считаю, что для этой цели больше подходят тран- зисторы: они дешевле, могут как часть входить в схему правления рабочей ско- ростью двигателя и намного надежнее. В предыдущих экспериментах этой главы я показал, как управлять двигате- лем с помощью n-p-п- и р-п-р-транзисторов. Вы также узнали, как использовать п-р-п-транзистор в качестве ключа, замыкающего сигнал на «землю* и таким образом понижать ток через двигатель и обеспечивать его работу. Транзистор типа р-п-р может служить источником тока и поэтому хорошо подходит для обеспечения током цепи управления двигателя. Объединив два типа транзи- сторов, можно создать схему управления двигателем, которая заставит двига- тель вращаться в прямом или обратном направлениях. Вы уже знакомы со схемой управления двигателем постоянного тока в виде Н-образного моста, в которой можно использовать четыре переключателя, чтобы выбирать направление тока через двигатель. Создать схему управления в этом случае довольно просто, несмотря на один момент, требующий внима- ния: если оба переключателя на одной стороне моста окажутся замкнуты, обра- зуется прямой путь между источником питания двигателя и «землей*. В идеале принципиальная схема управления на основе Н-образного моста и разрабаты- ваемое ПО должны гарантировать, что оба переключателя на одной стороне моста не будут одновременно замкнуты никогда. Взгляните, как реализовать Н-образный мост с применением транзисторов (рис. 6.19). В этой схеме используются две пары подобранных n-p-п- и р-п-р- транзисторов, которые выполняют функции переключателей., Диоды в схеме используются для фильтрации дребезга от двигателя. Вы можете прийти к решению объединить базы транзисторов и установить общий токоограничивающий резистор (см. рис. 6.19). Используя всего две ци- фровых Схемы управления, вы можете управлять направлением вращения дви- гателя. Результирующая схема кажется простой. Очевидно, что оба транзисто- ра на одной стороне схемы управления в виде Н-образного моста никогда не будут открыты одновременно, так как два транзистора открываются дифферен- циально. Для р-п-р-транзистора необходим ток, вытекающий из его базы, тогда как для п-р-п-транзистора - ток, втекающий в его базу. Очень большая проблема приведенной схемы состоит в том, что нужен от- ток электрического тока от базы р-п-р-транзистора и его передача в базу п-р-п- транзистора. В этом случае оба транзистора должны быть открыты. Еще хуже то, что, чем больше ток, проходящий через транзисторы, тем больше ток, до- ступный для их цепей базы, что вызывает дальнейшее повышение тока.
152 ГЛЙВЙ 6. Полупроводниковые приборы на 2 батареях —1~ типа «С» Чтобы запустить двигатель, подайте на одно плечо моста высокий уровень логики, а на другое - низкий. Рис. 6.19. Очевидной схема управления двигателем но основе транзисторного Н-образного моего Я не говорю, что эта проблема будет возникать всегда. При некоторых усло- виях и для некоторых подобранных пар n-p-п- и р-п-р-транзисторов, а также нагрузок двигателя она не проявится никогда. Может оказаться, что эту про- блему будет очень сложно прогнозировать, и вы можете установить, что раз- ные пары транзисторов, величины резисторов, монтаж, выходной уровень напряжения батареи, противодребезговые диоды и двигатели будут влиять на то, проявится проблема или нет. Однажды эта проблема меня разозлила и, что- бы быть уверенным, что она никогда не проявится вновь, я решил при разра- ботке Н-образного моста собрать следующую схему (рис. 6.20). Только ее я и использую в этом эксперименте. тгБатареяЭВ Т~ питания на 2 батареях ~[— типа «С» Рис 6.20. Управление двигателем с помощью транзисторного Н-образного моста Два входных зажима позволяют выбирать направление вращения двигате- ля. Ниже показаны направления токов в схеме в зависимости от того, к какому из входов приложено напряжение (рис. 6.21). Единственный недостаток тако- го Н-образного моста проявляется, если сигнал управления или высокий потен- циал одновременно подается на оба входа управления двигателем. Если оба
'Nalallausf'i!. Эксперимент 38. Транзисторный Н-образный мост для управления двигателем 153 входа активированы, транзисторные ключи на обеих сторонах моста окажутся открытыми одновременно, и вы можете сжечь источник питания и/или тран- зисторные ключи. Программа, написанная для этого интерфейса, должна га- рантировать, что напряжение будет подаваться в каждый момент времени толь- ко на один из этих двух входов. Вращение двигателя в прямом направлении Левый управляющий п-р-п-транзистор включен; ток через двигатель течет слева направо Рис. 6.21. Работа схемы управления двигателем при помощи Н-образного моста Вращение двигателя в обратном направлении Правый управляющий п-р-п-транзистор включен; ток через двигатель течет справа налево, меняя направление вращения двигателя на противоположное Собрать данную схему просто; единственное, на что нужно обращать внима- ние, - ориентация транзисторов, так как р-п-р-транзисторы включаются в об- ратном направлении по отношению к п-р-п-транзисторам. Эта схема Н-образного моста очень практична и будет работоспособна для небольших двигателей постоянного тока. Чтобы использовать ее для двигате- ля, требующего более 300 мА, вам придется выбрать другие транзисторы и ди- оды, а может быть, и изменить номиналы резисторов. Зная рабочие характе- ристики двигателя, который вы собираетесь использовать, эту схему очень легко можно будет модифицировать с помощью программы моделирования, ориентированной на интегральные микросхемы. Это позволит оптимизиро- вать схему, так что через транзисторы будет протекать не больше тока, чем это необходимо. Важно убедиться, что в схеме ток в цепи базы управляющих тран- зисторов не чрезмерен - сильные токи могут проходить через базы транзисто- ров» вызывая потери мощности, которых вы и не ждали.
Главе 7 Микросхема тоймеро 555 Когда я был подростком, самой популярной микросхемой для поделок (я не удивлюсь, если и для коммерческих изделий) была интегральная микросхема (или чип) таймера 555. Может, чип 555 - наиболее универсальная непрограм- мируемая микросхема из тех, что я когда-либо встречал. В сотнях проектов его использовали так, как автор его оригинальной разработки никогда и не пред- полагал. Исходной функцией чипа было вырабатывать периодическую после- довательность импульсов. В этой главе я расскажу о чипе 555 и о том, как его использовать в роботе. В предшестующих главах я показал схемы расположения выводов разли- чных компонентов, причем каждый из них имеет свою уникальную конфигура- цию. Чип 555 обычно конструктивно оформлен в виде корпуса с двухрядным расположением выводов, общеупотребительным для интегральных микро- схем. Как правило, говоря о корпусах с двухрядным расположением выводов, используют сокращенное обозначение DIP (dual in-line package). DIP-корпуса применяются для чипов с выводами, позволяющими установить их в схему, собранную на печатной плате (рис. 7.1). Заметьте: нумерацию выводов я начал с левого верхнего вывода, помечен- ного на корпусе чипа маленьким кружочком. Кроме этого кружочка, у многих DIP-корпусов имеется полукруглый вырез там, где расположен Вывод 1 микро- схемы. В зависимости от производителя и от типа компонента у вас может ока- заться маленький кружок, или полукруглый вырез, или то и другое вместе. От Вывода 1 нумерация остальных выводов идет по возрастающей против часовой стрелки (см. рис. 7.1). Такое соглашение используется во всех DIP-корпусах независимо от их размера и числа выводов. Названий большинства выводов вы пока не поймете. Однако запомните, что Gnd (Земля) на Выводе 1 и Vcc (Питание) на Выводе 8 служат для подачи
Микросхема тоймеро 555 155 Земля |1 Пуск |~2i Выход | 3 Сброс Г7 ID in 8] Усс 23 Разряд ~б] Порог ~5] Управление Рис 7.1. Расположение выводов чипа 555 питания на элемент. Чипы требуют питания, а у чипов на основе биполярных транзисторов, как элемент 555, всегда есть выводы Vcc и Gnd. Забегая вперед, скажу, что у микросхем, построенных на полевых МОП-тран- зисторах (Metal-oxide-semiconductor field effect transistors, MOSFET) .плюс исто- чника питания подается на вывод Vdd, а вывод Vss подсоединен к «земле». Это может смутить, и я склоняюсь к тому, чтобы мысленно заменять Vdd на Vcc, a Vss на «землю». Несмотря на разницу в наименованиях вывода питания, соглашение о нумерации выводов в порядке возрастания и против часовой стрелки, начиная с Вывода 1, справедливо и для чипов на основе транзисторов MOSFET. Давайте рассмотрим структурную схему таймера 555 (рис. 7.2). Два элемента структурной схемы вы должны распознать сразу. Первый - тран- зистор в середине нижней части схемы. Этот транзистор, видимо, подключен 6 Пороговое напряжение 5 Управляющее напряжение 2 Пуск 7 Разряд 8-Усс 4 _ Сброс jj RS-триг- Вьход гер Пороговое напряжение: когда оно > 2/3 Vcc, транзистор разряда ?_______включен, на выходе низкий уровень 1 - Земля Пуск: когда на этом выводе <1/3 Усс, тран- зистор разряда выключен, на выходе высокий уровень Рис. 7.2. Структурная схема тоймеро 555
156 ГЛЯВЯ 7. Микросхема таймера 555 так же, как транзистор для управления двигателем в главе 6: он работает как ключ, замыкающий ток на землю. Вторая знакомая цепь - делитель напряжения, расположенный в левой ча- сти. Я выделил его из схемы и изобразил отдельно (рис. 7.3). Рассчитав на- пряжения, обозначенные как Vcontrol и Vtrig, вы получите, что они составля- ют 2/3 Vcc и 1/3 Vcc соответственно*. Это действительно важный вывод для понимания работы чипа. Управляющее напряжение Рис 7.3. Делитель напряжения микросхемы 555 В схеме делителя напряжения микросхем 555 вас может смутить связь с выходным выводом Управляющее Напяжение (Control Voltage). Это соедине- ние позволяет разработчику схемы изменять уровни напряжения в цепи дели- теля напряжения. При этом вместо того, чтобы составлять 2/3 Vcc, напряже- ние Vcontrol может теперь иметь любую величину (меньше, чем Vcc), какую выберет разработчик. Изменение напряжения Vcontrol меняет также и Vtrig до величины, равной 1 /2 Vcontrol. Напряжения с точек Vcontrol и Vtrig передаются на два узла схемы в виде треугольников, входы которых обзначены как «+» и «-» и около которых на- писана формула, выглядящая смешной. Эти узлы представлякгг собой услов- ные изображения компараторов. Напряжение на выходе компаратора прини- мает уровень высокого напряжения, когда напряжение на входе «*» больше, чем напряжение на входе «-» (рис. 7.4 и табл.-7.1). В чипе 555 используются * Электрическое соединение изображено здесь способом, отличным от принятого в России. У нас, если в месте пересечения линий связи на схеме стоит точка, то имеет место электрическое со- единение, если же точки нет, соединение отсутствует. Здесь же~в случае отсутствия соединения одна из линий связи прерывается. - Прим, перев.
^aiattaus,^. Микросхема таймера 5S5 157 два компаратора, чтобы последовательно сравнивать уровни двух внешних напряжений с Vcontrol и Vtrig, причем результаты сравнения поступают на узел, обозначенный как RS-триггер. I___Выход j компаратора Рис 7.4. Робота компаратора Таблица 7.1. Уровни напряжения на компараторе Входы Выход «+» К—» Низкий Низкий Низкий Высокий Низкий Высокий Низкий Высокий Низкий Высокий Высокий Низкий Я объясню, как работает RS-триггер в главе 8, а пока считайте его аналогом реле с двумя обмотками (рис. 7.5). Это устройство состоит из двух релейных обмоток, расположенных горизонтально, и подвижного контакта, который будет оставаться в том положении, которое он занял последним и которое было установлено любой из двух обмоток, возбужденной последней. Vpower Установка высокого уровня Установка низкого уровня Сохраненное высокое/ниэкое напряжение Рис. 7.5. Элемент памяти на реле с двумя обмотками, работающий, как простой RS-триггер RS-триггер микросхемы 555 выполняет ту же функцию, что и устройство на основе реле. В микросхеме 555 он сохраняет информацию о том, какой из ком- параторов последним передал на него высокое напряжение. Если компаратор, соединенный с выводом Порог микросхемы 555, и сигнал Vcontrol с делителя напряжения формируют на выходе высокий уровень, то на выходе триггера, на его контакте _Q сформируется высокое напряжение, которое откроет тран- зистор в нижней части структурной схемы. Если другой компаратор передает
158 ГЛЯВЯ 7. Микросхема таймера 555 высокое напряжение на RS-триггер, вывод _Q переводится в состояние низко- го напряжения, и транзистор закрывается. Последний новый для вас компонент схемы - треугольник с кружком на вер- шине в левой части структурной схемы (см. рис. 7.2). Это инвертирующий буфер- ный каскад - он преобразует высокий входной уровень в низкий выходной и наоборот. Это достаточно полное объяснение работы таймера 555. Отдельные элемен- ты довольно легко себе представить, но я уверен, вы еще не понимаете, как они работают вместе. Чтобы понять, как работает чип 555, я представлю вам в сле- дующем эксперименте один новый компонент. Эксперимент 39. Мигающие светодиоды Детали Смонтированная печатная плата. Микросхема тай- мера 555 в DIP-корпусе с 8 выводами. Светодиод любого цвета. Резистор 470 Ом. Резистор R1 = 33 кОм. Потенциометр R2 = Инструменты Набор инструментов для радиомонтажа 100 кОм. Конденсатор 0,01 мкФ любого типа. Электролитический конденса- тор 10 мкФ, 35 В В описании работы чипа 555 я пренебрег компонентами, к которым он будет подсоединен. До сих пор я представлял вам резисторы, диоды и транзисторы, но я не представил вам компоненты, предназначенные для хранения энергии. Резисторы, диоды и транзисторы могут изменять напряжение и ток электри- ческого сигнала, но они не способны сохранять его энергию. Хранить энергию может, в частности, конденсатор. Конденсаторы состоят из пары металлических пластин, которые сохраняют энергию в виде электри- ческого заряда и обозначаются в схемах буквой С (рис. 7.6). Взгляните на раз- личные виды корпусов конденсаторов и указатели их полярности (рис. 7.7). Конденсаторы хранят электрический заряд, измеряемый в фарадах. Фара- да- это чрезвычайно большой электрический заряд. Только в самое послед- нее время были созданы конденсаторы, способные сохранять заряд в 1 Ф и более; большинство конденсаторов рассчитано на заряд от миллионной до триллионной доли фарады. Номинал конденсаторов в диапазоне миллион- ных долей фарады выражают в микрофарадах (мкФ), а в диапазоне трилли- онных долей фарады - в пикофарадах (пФ). Конденсаторы строятся на основе двух металлических пластин, разделен- ных Диэлектриком. Диэлектрик повышает величину заряда, которую могут
Naiattausiiiik Эксперимент 39. Мигающие светодиоды 159 Обозначение компонента на схемах = «С» Указатель полярности В некоторых изданиях символи- ческое изображение таково: Указатель полярности Рис. 7.6. Условное изображение конденсаторов в схемах Неполярный Танталовый (керамический дисковый (полярный) или из полиэфира) Электролитический (полярный) Отрица- тельный вывод (катод) Номинал к конденсатора, нанесенный в виде штампа (смотри текст) Рис. 7.7. Внешний вид и маркировка конденсаторов держать пластины, и не дает пластинам соприкасаться. В этой книге схемы раз- работаны с использованием стандартных керамических или электролитических конденсаторов. Керамические конденсаторы не имеют полярности и номи- нального напряжения* **. Обычно их маркируют трехзначным числом, обознача- ющим номинал конденсатора. Это число аналогично числу, указанному с помо- щью цветных полосок на резисторе: первые две цифры представляют собой мантиссу номинальной величины, а третья - это показатель степени числа 10, причем номинал конденсатора выражен в пикофарадах. Так, на конденсаторе величиной 330 пФ будет стоять маркировка 33Г*. Керамические конденсаторы выпускают номиналами от единиц пикофарад до 0,1 мкФ. Электролитические конденсаторы полярны, и в них функцию диэлектрика выполняет жидкость * Это не совсем строгое утверждение. В России принято разделять керамические конденсаторы на две группы: рассчитанные на напряжение до 1600 В и на напряжения свыше этого значения. Разумеется, эти величины определяются электрической прочностью диэлектрика, и в случае их превышения конденсатор будет пробит и перестанет выполнять свои функции. - Прим, перев. ** В отечественной системе маркировки используются буквенные символы: М - мкФ, Н - нФ (1 нФ = 10*9 Ф). Так, конденсатор номиналом 330 пФ = 330 х 10"12 Ф = 0,33 х 10'9 Ф и 0,33 нФ будет иметь маркировку НЗЗ, а номиналом 2,2 мкФ - маркировку 2М2. - Прим, перев.
160 ГЛЙВЯ 7. Микросхеме) таймера 555 (изолятор между двумя металлическими электродами). Их обычно выпускают в металлическом цилиндрическом корпусе, на котором помечают отрицатель- ный электрод (катод) и маркируют номинал (от 1 мкФ до нескольких фарад). В большинстве конденсаторов в качестве изолятора используется керамический материал, в более редких приборах применяются полиэфиры, танталовый ра- створ или раствор электролита. Чем экзотичнее диэлектрик, чем меньше ком- понент по размеру и чем больше заряд, который он может сохранять, тем выше цена конденсатора. Конденсатор выполняет ту же функцию, что и водонапорная башня в систе- ме городского водоснабжения. Обычно воду подают в дома под давлением, но иногда потребность превышает возможности системы, или жители потребля- ют мало (скажем, ночью, когда спят), и насосы подают излишнее количество воды. Системе помогает водонапорная башня (рис. 7.8). Если стоит жара и жители поливают газоны, вода из башни под действием гравитации добавляет- ся к той, что подается из источника водоснабжения. Ночью, когда мощность насоса превышает потребности, вода в башне поднимается вверх, сохраняясь для дальнейшего использования. Уровень воды, обусловленный входным давлением Гравитация Втекание_______________________________________ Вытекание воды воды Рис. 7.8. Зодонолорноя башня как аналог конденсатора При использовании с токоограничивающим резистором в резистивно-емкост- ной цепи (или RC-цепи) напряжение на конденсаторе меняется медленнее, чем если бы его совсем не было в схеме (рис. 7.9). Произведение номиналов рези- стора и конденсатора имеет размерность времени. Оно известно как постоянная времени RC-цепи и обозначается греческой буквой т. Задержка по времени на RC-цепи используется в чипе 555 (и в его встроенных компараторах) для того, чтобы задать темп операции до ее выполнения. Входной сигнал R АЛЛ Выходной сигнал =Ф=с Vcc 0В 0В Входной сигнал Выход = Vcc - Vcc х e*vRC Выход = Vcc* e-VRC Выходной сигнал .(напряже- ние на кон- денсаторе) Рис. 7.9. Работа RC-цепи
^aiaSiausi^l Эксперимент 39. Мигающие светодиоды 161 Чтобы продемонстрировать, как используется RC-цепь с микросхемой тай- мера 555 с целью формирования периодического сигнала, соберем следующую схему (рис. 7.10). Рис. 7.10. Схема генератора на основе таймера 555 В этой схеме чип 555 является генератором в автоколебательном режиме*, а светодиод мигает, включаясь и выключаясь приблизительно раз в секунду. Эту скорость можно изменить, регулируя потенциометр величиной. 100 кОм, обозначенный на схеме R2. По мере уменьшения сопротивления светодиод будет мигать чаще и гореть меньшее время. Время, в течение которого свето- диод горит (выход микросхемы 555 имеет высокий уровень), определяют по формуле: = °>693 х с х (R1 + R2) = 0,693 х 10 мкФ х (33 кОм + Rpot) Время, в течение которого светодиод выключен, определяется по формуле: 7^ = 0,693х Сх R2 = 0,693х 10мкФх Rpot Конденсатор емкостью 0,01 мкФ, подсоединенный к выводу Управляющее напряжение микросхемы 555, служит фильтром для внутренних напряжений. Этот конденсатор похож по действию на водонапорную башню: если входное напряжение изменяется, он накапливает или отдает результат изменения, что- бы по возможности поддерживать уровень напряжения постоянным. Взгляните, как таймер 555 работает в качестве генератора (рис. 7.10). Я обо- значил напряжения для следующих контрольных точек: напряжение на RC- цепи (точка А), выходной сигнал RS-триггера (точка В, соответствующая ин- вертирующему выходу чипа 555), напряжение компаратора Порог (Threshold) (точка С) и напряжение компаратора Пуск (Trigger) (точка D). Далее показана форма сигнала для каждой из этих точек (рис. 7.11). * В литературе такой генератор называется также асинхронным. - Прим. перев.
162 ГЛЙВЙ 7. Микросхеме тоймеро 555 Рис. 7.11. Электрические сигналы чипа 555' Здесь я затронул очень обширный материал; не беспокойтесь, если вы не все поняли. Просто запомните, что конденсаторы фильтруют флуктуации на- пряжения, а вместе с резисторами используются для того, чтобы задержать цо времени момент, когда выходное напряжение схемы достигает уровня входно- го. Как все это работает, я разъясню потом. Эксперимент 40. Кнопка с протиаодребезгоеой защитой на основе чипа 555 Смонтцхиакная печатная плата. Микросхема тайме- ра 555. Светодиод любого цвета. Резистор 470 Ом. Резистор 100 кОм. Рези- стор 10 кОм. Конденсатор 0,01 мкФ любого типа. Электролитический кон- денсатор 10 мкФ, 35 В Инструменты Набор инструментов для радиомои!аха В эксперименте 39 мы обсудили работу асинхронного генератора на основе микросхемы 555 и познакомились с конденсатором. Таким образом, мы знаем, что: • конденсаторы сохраняют электрический заряд; • конденсаторы вместе с резисторами могут использоваться для задержки электрических сигналов; • микросхема 555 может служить генератором периодического сигнала, параметры которого определяются простыми формулами.
ftaiallaus^k Эксперимент 40. Кнопке с противодребезговой зощитои но основе чипо 555 163 Однако в эксперименте 39 я не отметил, что для стабильной и надежной работы генератора номиналы резистора и конденсатора, используемых с ми- кросхемой сериии 555, должны находиться в следующих пределах: 10 кОм < RZ 14 Мом ЮОпФ^С^ 1000мкФ Чип 555 используется также в такой базовой схеме, как ждущий генератор. Рассмотренный выше асинхронный генератор работает постоянно - ждущий срабатывает только раз и потому нуждается в запуске. На первый взгляд это может показаться удивительным, но ждущие генераторы имеют очень широкое применение. Взгляните на типичную схему включения кнопочного переключателя и ос- циллограмму ее работы (рис. 7.12). Резистор, соединенный со входным выво- дом чипа 555, известен как нагрузочный. Он соединен с кнопкой, которая будет замыкать эту линию связи на «землю» при нажатии кнопки. Резистор ограни- чивает величину тока, текущего от источника питания к «земле», и называется токоограничивающим по аналогии с резистором, использовавшимся в цепи со светодиодом. Рис. 7.12. Осциллограмма дребезга кнопочного переклочагеля Цепь кнопочного переключателя является всего лишь небольшой частью этого изображения; ббльшую его часть занимает осциллограмма, показываю- щая форму напряжения, поступающего на вход схемы. Когда переключатель замыкается, контакты внутри него не просто соприкасаются и остаются соеди- ненными, на практике они некоторое время соударяются, что приводит к крат- ковременным нарушениям контакта. Если напряжение такой формы подается на схему, то есть вероятность, что это будет регистрироваться как многократ- ное нажатие кнопки, так как каждое соударение будет обрабатываться схемой как отдельное нажатие кнопки. Благодаря тому, что микросхема таймера 555 используется в качестве жду- щего генератора, происходящим в схеме дребезгом можно пренебречь, и в ней
164 ГЛАВА 7. Микросхема тоймеро 555 будет регистрироваться только одно нажатие кнопки. Ниже показано, как тай- мер 555 борется с дребезгом во входном сигнале от кнопки и включает свето- диод на одну секунду каждый раз при нажатии кнопки (рис. 7.13). Рис. 7.13. Схема гфотиеодребезгоеой защиты для кнопки на основе чипа 555 Когда кнопочный переключатель замкнут, выходной имульсный сигнал с таймера 555 определяется по формуле: Т = 1,1 х Кх С = 1,1 х 100 кОм х 10мкФ = 1,1 с риие ' Форма сигнала в отдельных точках схемы позволяет понять, что происхо- дит в схеме при нажатии кнопки (рис. 7.14). кнопки I Jvj Отпускание (кнопки ©----------------7| Длительность ----- протиыщребезгового I ©импульса = 1,1 х RC . -------------------1------ q------------------jLLT Первый импульс дребезга от переключения, начинающий заряд конденсатора Конденсатор заряжен до 2/3 Vcc Рис 7.14. Форма сигналов при работе протиеодребезговой защиты кнопки на основе чипа 555 Вначале RS-триггер чипа 555 находится в состоянии сброса, и транзистор, через который заряд с конденсатора передается на «землю», открыт. Когда кноп- ка нажата (точка А) и на вход Пуск (Trigger) поступает входное напряжение
Эксперимент 40. Кнопка с протиаодребезговой зощитой но основе чипа 555 165 низкого уровня, сигнал соответствующего компаратора (точка Е) переходит в состояние высокого уровня, изменяя состояние RS-триггера (точка С) (и включая светодиод). Когда состояние RS-триггера меняется, транзистор закрывается, а конденсатор заряжается через резистор. Конденсатор заряжа- ется в соответствии со следующей формулой, пока напряжение на нем не дос- тигнет величины 2/3 Vcc: Output =Vcc - Vccx Когда напряжение достигает 2/3 Vcc, компаратор, играющий роль порого- вого устройства (точка D) устанавливается в состояние высокого уровня, а RS- триггер вновь меняет сбое состояние, выключая светодиод и открывая транзи- стор, который закорачивает конденсатор на землю. При этом чип 555 и связанная с ним схема возвращаются в исходное состояние. Заметьте: я изобразил форму сигналов, дребезг которых происходит при размыкании переключателя (сигнал в точке А вновь переходит в состояние вы- сокого уровня). Когда переключатель размыкается, он дребезжит точно так же, как и при замыкании. Во-вторых, я показал, что отпускание кнопки происхо- дит до того, как конденсатор зарядится до величины 2/3 Vcc; когда вы будете собирать схему, вам захочется посмотреть, что получится, если держать кноп- ку нажатой дольше одной секунды, в течение: которой горит светодит. На ри- сунке разряд конденсатора через транзистор не происходит мгновенно; разряд происходит по экспоненциальному закону, как и исходный процесс заряда (хотя и намного быстрее). Этот сигнал демонстрирует, что транзистор имеет очень малое сопротивление и ведет себя так, как если бы конденсатор был со- единен с землей через резистор. Но как реализовать кнопочный переключатель? Для этого эксперимента (и для других экспериментов, в которых нужна кнопка на входе), я припаял пару жестких проводов сечением 0,3 мм2 к стандартной кнопке и покрыл место пай- ки эпоксидной смолой с 5-минутным отверждением, чтобы сделать его более прочным (рис. 7.15). Эксперименты с этой схемой не должны принести слишком много сюрпри- зов, пока вы не удерживаете кнопку нажатой дольше, чем одну секунду. Быстрое нажатие и отпускание кнопки будет включать светодиод на одну секунду или около того, что и было рассчитано при выбранных для этой схемы номиналах резистора и конденсатора. Если же удерживать нажатую кнопку более секунды, светодиод останется включенным, но будет мигать. Когда конденсатор заряжа- ется до 2/3 Vcc, а кнопку держат нажатой, то оба компаратора будут подавать высокий уровень на RS-триггер. Для входа RS-триггера это нерабочее состоя- ние, и при этом состояние выхода триггера становится неопределенным. Это приводит к тому, что транзистор периодически соединяет конденсатор с «зем- лей». Чтобы избежать такого поведения схемы, отрезок времени для выходно- го импульса с чипа 555 должен быть больше, чем ожидаемая длительность вход- ного сигнала.
166 ГЛАВЙ 7. Микросхема таймера 555 Рис. 7.15. Кнопка с кратковременным нажатием с припаянными к ней проводили для установки на макетную плоту Эксперимент 41. Автоматическое регулирование с радиоуправлением Детали Инструменты Набор инструментов для радиомонтажа Смонтированная печатная плата. Микросхема тай- мера 555 в DIP-корпусе с 14 выводами. Держатель батарей на четыре эле- мента типа АА. Четыре батареи типа АА. Рези- стор 2,7 МОм (сделанный из резисторов 2,2 МОм и 470 Ом). Три резистора 100 кОм. Потенциометр 100 кОм. Два конденсатора 0,01 мкФ любого типа. Радиоуправляемый сервоме- ханизм. Адаптер сервомеханизма (см. текст) Вы, вероятно, знаете, что в большинстве роботов, построенных любителями, используется автоматическое регулирование с радиоуправлением (radio con- trol, R/С) для поворота колес, или движения манипуляторов, или приведения в действие зажимных приспособлений. Радиоуправляемые сервомеханизмы (рис. 7.16) представляют собой недорогие и мощные силовые приводы,
ftatafiausiiiil Эшлеримент 41. Нвтомотичеоое регулирование с родиоуроалемием 167 Рис. 7.16. Любительский родисхрровляеммй сереомехомом которые можно использовать в качестве трансмиссии робота. Сейчас я расска- жу, как использовать чип 555 для проверки радиоуправляемых сервомеханиз- мов и подачи на них команд. Как видите, радиоуправляемый сервомеханизм - это небольшая пластмас- совая коробочка с выходящим наружу кабелем управления/питания. Коробоч- ка снабжен? нейлоновой ручкой, которая позволяет перемещать руль модели. Стандартные сервомеханизмы имеют размеры примерно 4 см в длину и 2 см в глубину, но способны развивать усилие величиной 2 фунта (1 килограмм) и более. Для роботов, представленных в книге, я использую либо стандартные дешевые сервомеханизмы общего применения, либо «нано»-сервомеханизмы. Для радиоуправляемых сервомеханизмов нужен источник питания напряжени- ем от 4,5 до 6 В; обычно они потребляют ток от 150 до 300 мА при работающем двигателе. В радиоуправляемых сервомеханизмах обычно применяется стандартный трехконтактный разъем вместе с адаптером, который вам придется сделать. Три вывода - это сигнал управления, Vcc и Gnd, а кабель, ведущий к этому разъему, у большинства сервомеханизмов состоит, соответственно, из белого (или желтого), красного и черного проводов. Таким образом, вы легко можете идентифицировать назначение каждого провода. Адаптер радиоуправляемого сервомеханизма сделан из двух кусков однорядного штыревого разъема с раз- рывным соединением и шагом выводов 2,5 мм, которые составляют пару с гнез- дами, впаянными в печатную плату (см. эксперимент 31). Чтобы изготовить адаптер, я спаял короткие концы двух кусков разъема. Соединителей же сде- лайте как можно больше - они очень удобны, но часто ломаются. Для большинства экспериментов, не относящихся к роботам непосредствен- но, я указывал в качестве источника питания 9-вольтовую батарею, встроенную
168 ГЛЯВЯ 7. Микросхема таймера 555 в печатную плату. Для экспериментов же с радиоуправляемым сервомеханиз- мом или двигателем постоянного тока я рекомендую использовать 4 элемента типа АА. Сигнал управления, положение управляющей рукоятки радиоуправляемо- го сервомеханизма, представляет собой импульс длительностью от 1 до 2 мс. Когда импульс длится 1 мс, рукоятка находится в одном из крайних положений. Импульс длительностью 2 мс перемещает рукоятку в другой крайнее положе- ние, а имульс длительностью между 1 и 2 мс перемещает ее в точку между ними. Эти импульсы должны повторяться один раз каждые 20 мс. Если же на серво- механизм не поступает никаких импульсов, рукоятка будет оставаться в своем текущем положении (хотя она не окажет сопротивления, если вы попытаетесь ее передвинуть). Взгляните на форму сигнала управления радиоуправляемым сервомеханизмом (рис. 7.17). Рис 7.17. Форма сигнала с широтно-импульсной модуляцией для сереомех&мэма Сервомеханизм состоит из двигателя с зубчатой передачей, которая пере- дает движение на управляющую рукоятку (рис. 7.18). Последняя механически соединена с потенциометром, включенным как делитель напряжения. Выход- ное напряжение делителя сравнивается с напряжением, пропорциональным длительности импульса, поступающего на вход сигнала управления. Если поло- жение рукоятки отличается от заданного сигналом управления, то выходной сигнал компаратора усиливается схемой управления двигателем радиоуправля- емого сервомеханизма, и двигатель поворачивает рукоятку в соответствующем направлении. Когда рукоятка находится в положении, указанном импульсами сигнала управления, сигнал на выходе компаратора обращается в 0, и двигатель останавливается Вы можете подумать, что таймер 555 идеально подходит для приведения в движение радиоуправляемых сервомеханизмов. В первом эксперименте этой главы я использовал чип 555 в качестве асинхронного генератора, вырабаты- вающего периодическую последовательность отрицательных импульсов. Во втором - как ждущий генератор, формирующий на выходе положительные импульсы под действием отрицательных входных. Никакого труда не составля- ет соединить два чипа 555, когда один из них включен как асинхронный гене- ратор, а другой - как ждущий, чтобы получить последовательность импульсов для 555. Я согласен с вами по всем пунктам, кроме одного: почему бы не исполь- зовать одну микросхему 556 вместо двух микросхем 555?
^laiaHaus,^ Эксперимент 41. Автоматическое регулироаоние с родиоууоалением 169 Выходной рычаг управления Рис 7.18. Структурная схема родииупровлиемого сервомеханизма 14-контактный чип 556 (рис. 7.19) состоит из двух генераторов 555, объеди- ненных в одном корпусе, обеспечивает выполнение тех же функций, что и два чипа 555 (по одному на каждую сторону) и идеально подходит для данного при- ложения? Так что я соединил левую половину этой микросхемы в качестве асин- хронного генератора, а правую - в качестве ждущего генератора с запуском от расположенного слева асинхронного генератора (рис. 7.20). Двойной таймер серии 556 Разряд [Г — напряжение Управляющее гг р* напряжение — [ Сброс [Т — R о R.I S о Выход [Т — J -’.'З ИпЗ _Q R J R.I О S i й] Усс —13 Разряд 1 " , I Пороговое J7 ±£J напряжение *4 Т71 Управляющее j напряжение -1^ Сброс Т] Выход Рж. 7.19. Назначение выводов микросхемы таймера 556 Для асинхронного генератора я рассчитал номиналы резистора и конденса- тора для сигнала с длительностью состояния высокого уровня, равной 19,4 мс, и низкого уровня - 700 мс. Я выбрал такие временные параметры, чтобы пери- од низкого уровня гарантированно не превышал длительности рабочего им- пульса сервомеханизма (что аналогично слишком долгому удержанию нажатой кнопки в эксперименте 40). Я сделал резистор номиналом 2,7 МОм из резисто- ра 2,2 МОм и резистора 470 кОм. Для ждущего генератора, который обеспечи- вает сигнал управления для радиоуправляемого сервомеханизма, я разработал цепь задержки на время от 1,1 до 2,2 мс с помощью резистора 100 кОм и потен- циометра номиналом 100 кОм*. Эти временные параметры несколько выходят за пределы технических требований, однако вы убедитесь, что большинство ‘ Цепь задержки включает в себя, кроме резисторов, конденсатор 0,01 мкФ. - Прим, перев.
170 ГЛЯВЯ 7. Микросхема таймера 555 сервомеханизмов обрабатывают сигналы в этом диапазоне без труда. Осцилло грамма показывает импульс управления длительностью от 1 до 2 мс, повторяю- щийся каждые 20 мс (рис. 7.21). 6В 6В6В 6В 6В Рис 7.20. Схема проверки и ynpo&ie>»№ сервомеханизмом на основе чипа 556 Рис 7.21. Форма сигналов, которые вырабатывает микросхема 556 для радиоуправляемого сервомеханизме
Эксперимент 42. Робот, эриеитирдющийся но свет 171 Эксперимент 42. Робот, ориентирующийся но свет Детали Инструменты Набор инструментов для радиомонтажа. Отвертка Смонпфовагмая печатная плата. Фанерное основа- ние с двигателями посто- янного тока. Микросхема двойного таймера 556. Два р-п-р-транзистора ти- па ZTX749. Два конденса- тора емкостно 0,01 мкФ любого типа. Два электролитических конденсатора ем- костью 1000 мкФ на 16 В. Четыре резистора 100 Ом, мощность 0,25 Вт. Два фоторезистора номиналом 10 кОм (элементы системы цветного отображения) Теперь мы знаем все, что нужно для построения очень простого робота. Сей- час я покажу вам, как создать робот, который будет следовать за лучом света. Он очень похож на «Черепаху» - первый ориентирующийся на свет робот, со- зданный Уолтером Греем (Dr. Walter Grey) в начале 1950-х годов. Таймер 555 обеспечивает сигналы управления для двигателей робота и заменяет электро- вакуумные приборы, которые использовал доктор Грей. В этом роботе мы используем печатную плату из Приложения 3 с построен- ным ранее основанием, на которое вы установили двигатели постоянного тока (рис. 7.22). Я пометил некоторые важные части робота. Колеса будут вести ро- бот по направлению к источнику света, который будут находить tftmupaucinityu (light-dependent resistors, LDRs). Левый Левая питания фоторезистор передача Рис. 7.22. Робот с уг^роалеиисм от чипа 555
172 ГЛАВА 7. Микросхема тоймвро 555 Световые датчики, используемые в роботе, представляют собой фоторези- сторы, изготовленные из сульфида кадмия. О них часто говорят как об элемен- тах системы цветного отображения (color display system cells, CDS cells). Чем боль- ше света падает на фоторезистор, тем ниже становится его сопротивление. Для данного эксперимента я использовал фоторезисторы с исходным сопротивле- нием 10 кОм. При ярком свете их сопротивление может падать до 2 кОм. В нашем роботе эта характеристика фоторезисторов позволяет менять со- противление в цепи синхронизирующего сигнала, который используется чи- пом 555, управляющим двигателями робота (рис. 7.23). Светочувстви- тельный элемент Таймер 555 Выходной сигнал таймера 555 Рис. 7.23. Структурной сселю цепи управления двигателями и светочувствительного элеллента для робота Фоторезистор вместе с резистором фиксированной величины и конденса- тором формирует последовательности импульсов низкого напряжения, исполь- зуемых для открывания р-п-р-транзистора, чтобы периодически подавать ток к двигателю постоянного тока. Планируя применить таймер 555 (либо практи- чески любой синхронизирующий сигнал), я люблю рисовать наиболее важные части схемы и предполагаемые сигналы, так что мне легко представить себе, что должно происходить в схеме, и обнаружить проблемы до того, как они ста- нут реальностью. Стрелка слева, направленная вниз, указывает сопротивления, используе- мые для формирования части сигнала с высокий уровнем (рис. 7.23). Как я отмечал .выше, два последовательных ре.зистора образуют RC-цепь, обеспечи- вающую задержку перехода схемы из высокого уровня в низкий. Стрелка, ука- зывающая вверх, означает, что только один резистор фиксированной величи- ны определяет задержку перехода из низкого уровня в высокий. Это помогает мне запомнить, как работает чип 555, а также напоминает мне, что время, когда сигнал имеет высокий уровень, всегда больше времени, когда уровень низкий, так как суммарное сопротивление в направлении стрелки, указываю- щей вниз, больше сопротивления по стрелке, направленной вверх. Как вы помните, чем больше резистор в RC-цепи чица 555, тем больше задержка (см. эксперимент 39).
Эксперимент 42. Робот, ориентирующийся но свет 173 Исходя из формул, представленных выше, время, в течение которого выход- ной сигнал имеет низкий уровень, будет равно приблизительно 0,7 с, тогда как время, в течение которого выходной сигнал имеет высокий уровень, будет ле- жать в пределах от величины, несколько превышающей 10 с, приблизительно до 1 с, в зависимости от количества света, падающего на фоторезистор. Чем больше света падает на фоторезистор, тем больше импульсов низкого уровня (которые включают двигатель) появляется за данный период времени, застав- ляя данную сторону робота двигаться быстрее. При создании робота нужны две такие схемы, причем фоторезистор на каж- дой из сторон робота служит для управления двигателем, расположенным на другой стороне. Когда больше света падает на фоторезистор, импульсы на дви- гатель с противоположной стороны поступают чаще, поворачивая робот по направлению к фоторезистору и источнику света. Взгляните на осциллограм- мы выходных сигналов двух схем на чипах 555 (рис. 7.24) - они показывают, что импульсы, идущие к левому двигателю, появляются чаще, чем импульсы к правому. При этом я закрываю рукой соотвествующий фоторезистор, который находится на правой стороне робота. В этом случае при движении вперед ро- бот будет поворачивать налево. Последовательность импульсов левого двигателя (над фото- резистором ничего нет |Scop«].cm 5 v $MmS Последовательность импульсов правого дви- гателя (ладонь над левым фотореэистором) Рис. 7.14. Выходные сигналы чипа 556, подаваемые на транзисторы схемы управления двигателями робота Для этой схемы подошел бы чип 555, но я выбрал чип 556 и воспользовался преимуществами двух чипов 555, входящих в его состав (рис. 7.25). Эта схема питается всего-навсего от четырех батарей типа АА, установлен- ных в держатель{ закрепленный на фанерном основании. Не забудьте обеспе- чить наличие выключателя для батарей типа АА, чтобы гарантировать, что дви- гатели не начнут работать, пока вы монтируете схему. В зависимости от двигателей и от того, как они подключены и соединены с трансмиссией, у вас может получиться, что их плюсовые и минусовые провода подключены в по- рядке, обратном тому, что вы ожидаете. Светлый (красный) провод двигателя
174 ГЛАВА 7. Микросхема тоймеро 555 Рис 7.15. Схема робота, орменпфуюсцелхя но сеет, но основе чипов 555 может идти к р-п-р-транзистору, обеспечивая ток через него, но в вашем робо- те, может быть, придется подсоединить один или оба черных провода двигате- лей к р-п-р-транзистору, чтобы робот поворачивался в нужном направлении. Хочу обратить ваше внмание на некоторые вещи. Во-первых, колеса тянут робот вперед, а не толкают его. Направление движения робота - от держателя батарей к макетной плате на печатной плате. Это даст фоторезисторам наилуч- шие условия обзора любых источников света перед роботом. Во-вторых, перед монтажом робота не забудьте вставить новые батареи типа АА. Хотя разобрать и вновь собрать робот несложно, потратьте несколько минут и убедитесь, что батареи качественные. Фоторезисторы номиналом 10 кОм, резисторы 100 Ом и конденсаторы ем- костью 1000 мкФ вместе с двигателями, которые я использовал, позволили из- готовить робот, передвигающийся примерно на 2,5 см в секунду, ориентируясь на источник света. Вам, возможно, захочется попробовать и другие номиналы указанных компонентов, если двигатели у вас будут вести себя странно или робот будет перемещаться слишком быстро, теряя источник света. Когда ваш робот начнет двигаться, испытайте его в обычной комнате, за- тем в темной комнате с мигающим источником света в одном из углов. Мы еще обсудим поведение роботов, ориентирующихся на свет, подробнее, а сейчас взгляните, как робот работает и подумайте, не установители для него некото- рые правила. В качестве последнего эксперимента попробуйте изготовить ро- бот, убегающий от света (это очень легко; просто поменяйте местами связи фоторезистора с чипом 556).
Глава 8 Оптоэлектроника Сто лет назад наиболее важным вопросом в науке были попытки определить природу света. Ученые разделились на два лагеря: одни полагали, что свет со- стоит из частиц, а другие - что свет представляет собой волновое явление. Ученых сбивали с толку дискуссии о том, что в действительности представляет собой материя. Окончательное определение природы света изменило ход ис- тории человечества. В начале XIX столетия считалось, что материя состоит из некоторой вяз- кой среды, в которой атомы и электроны прилеплены друг к другу. Не существо- вало инструментов, способных распознать физические характеристики мате- рии, и казалось, что эта идея вполне логично объясняет истинное положение (особенно когда вы имеете дело со стаканом воды или куском металла). Эту мо- дель не подвергали сомнению вплоть до открытия материалов, способных к флуоресценции, то есть излучающих свет при бомбардировке частицами с из- быточной энергией. Такими частицами в этих экспериментах служили электроны, которые ге- нерировались в вакууме в особом приборе (рис. 8.1). В нем электроны испускал нагретый отрицательно заряженный электрод (или катод), и они двигались к заряженной положительно мишени (крест на рис. 8.1). Некоторые из электро- нов, не достигнув мишени, ударяются о флуоресцирующий материал позади нее и вызывают его свечение. Электроны, испускаемые катодом, называют эле- ктронным лучом, что дало название эксперименту. Электронно-лучевая трубка является предшественником современных телевизоров и компьютерных ди- сплеев. Этот результат смутил многих исследователей, поскольку свет был вы- работан при помощи электронного луча, а не благодаря нагреванию. Нагрев считался тогда причиной появления света, а флуоресцентный материал испу- скал свет, оставаясь холодным. Согласно одной из теорий того времени, свето- вые частицы являются элементами атомов флуоресцентного материала, и при контакте электронного луча с атомами флуоресцентного материала луч выби- вает из него световые частицы.
176 ГЛ RB R 8. Оптоэлектроника Вид электронно-лучевой трубки сбоку Вид электронно-лучевой трубки с торца Свечение (люминес- цирующий материал) трубка Положительный электрод (мишень) Вакууми- рованная стеклянная Отрица- тельный Электроны электрод Источник питания Люминесцирующий материал на внутренней поверхности стекла Тень креста там, где электроны НЕ попали налюминесцирующий материал Рис. 8.1. Старинная электромно-лучеесм трубка (ЭЛТ) В 1900 году Макс Планк предположил, что элементарная порция света (ко- торую он назвал квант) может испускаться атомом только при определенном уровне энергии в соответствии с формулой: E~hv Здесь Е - энергия света, v - частота светового излучения, ah- константа, которую мы теперь называем постоянная Планка. Ее значение составляет 6,63 X КУ54 Джоуль секунд (Дж х с). Планк также установил, что для каждого элемента энергия излучаемого света в точности кратна величине h х и Дать определение света как физического явления стало еще труднее после получения результатов трех других экспериментов. В первом из них свет осве- щал черную мишень в затемненной области; при этом оказалось, что на мишень воздействует небольшая, но поддающаяся измерению сила. Результаты этого эксперимента вместе с теорией Планка приводили к предположению, что свет представляет собой поток частиц. В другом эксперименте свет пропускали через две узких щели (это называ- ется дифракционная решетка), а затем наблюдали результат на плоскости, рас- положенной за решеткой. Если свет состоит из крошечных частиц, то на бума- ге, расположенной позади материала с двумя прорезями, должны появиться два ярких пятна. На практике же появились светлые и темные пятна, и эта было похоже на прохождение волны, например волны на воде, через дифрак- ционную решетку (рис. 8.2). Еще более удивили результаты бомбардировки куска золотой фольги альфа частицами, которую провел Резерфорд. Согласно общепринятым представле ниям того времени, альфа-частицы должны на своем пути пройти сквозь золо то. В настоящее время мы назвали бы альфа-частицами атомы гелия. Они являются одним из побочных продуктов распада урана (и других радиоактив ных материалов). Резерфорд стремился найуи доказательства урона, который наносят альфа-частицы золотому листу. Однако он установил, что альфа-части- цы не только не повредили золотого листа, но иногда даже отклонялись от сво- его пути под его действием. Позже Резерфорд говорил, что это казалось почти столь же удивительным, как если бы вы выстрелили 15-дюймовым патроном я
Оптоэлектронике 177 Дифракционная решетка Световое изображение на экране позади « дифракционной решетки й и Рис. 8.2. Прохождение света через дифронциомую решетку и результат эксперимента бумажную салфетку, а пуля вернулась и поразила вас. Резерфорд предположил, что материя, видимо, состоит большей частью из пустого пространства, а ядра атомов очень малы и находятся относительно далеко друг от друга. При этом, когда луч из альфа-частиц проходит сквозь золотую фольгу, только немногие из альфа-частиц попадают в атомы золота. В 1905 году Альберт Эйнштейн (Albert Einstein) предложил модель атома и света, которая должна была объяснить результаты этих экспериментов. Теория Эйнштейна предполагает, что энергия передается от атома и к нему через фо- тон (термин Эйнштейна), обладающий энергией, равной кванту согласно План- ку. Эта энергия хранится в атоме на его электронной орбите (рис. 8.3). Когда электрону сообщается энергия, он примет фотон и перепрыгнет на уровень с состоянием более высокого потенциала (или состояние возбуждения). Эта энер- гия была определена при помощи формулы Планка. Если у фотона нет такого уровня энергии, он не должен поглощаться; более того, если бы у него было больше энергии, чем предписано формулой Планка, он не должен быть исполь- зован для повышения уровня возбуждения электрона. Когда атом испускает энергию, электрон должен перейти на более низкий уровень возбуждения, Атом, излучающий энергию в виде фотона Новая, более низкая электронная орбита Атомное ядро Атом, принимающий энергию от фотона Новая, более высокая электронная орбита Атомное ядро Рис 83. Фотоэлектрический эффект: изменение уровня энергии атома за счет поглощения или испускания фотона
178 ГЛЯВЯ 8. Оптоэлектроника высвобождая фотон с соответствующим квантом энергии. Это явление было названо фотоэлектрическим эффектом (или фотоэффектам). Фотоэффект наглядно иллюстрирует работа светодиодов. Выходной свет светодиодов имеет частоту, которая зависит от химического вещества, из кото- рого они изготовлены. Оптоэлектронными мы называем приборы, которые обрабатывают вход- ной свет или испускают свет и построены на основе представленной здесь тео- рии (ее называют квантовой механикой). Кроме светодиодов, существует це- лый ряд приборов, как реагирующих на свет, так и испускающих его. Светом считают часть электромагнитного спектра с длинами волн от 0,01 мм до 100 нм. Человеческий глаз способен воспринимать свет в пределах от 400 до 720 нм. Длины волны более 720 нм находятся в инфракрасном диапазоне, а менее 400 нм - в ультрафиолетовом диапазоне. Семь основных цветов радуги и их длины волны перечислены в табл. 8.1. Таблица 8.1. Цвета и их длина волны Цвет свечения Длина волны ИК-излучение 720 нм и более Красный 610-720 нм Оранжевый 580-610 нм Желтый 530-580 нм Зеленый 480-530 нм Голубой 430-480 нм Синий 410-430 нм Фиолетовый 400-410 нм Эксперимент 43. Светодиоды ровличиых цветов Детали Смонтированная печатная плата с макетной платой. Резистор 1 кОм. Инфра- красный светодиод. Крас- ный светодиод Оранже- вый светодиод. Желтый светодиод Зеленый све- тодиод Синий светоди- од Белый светодиод Набор инструментов для радиомонтажа. Цифровой мультиметр Когда я выписывал значения длины волны света для светодиодов в начале этой главы, я пришел к собственной гипотезе о том, что падение напряжения на светодиоде связано с длиной волны выходного света. При этом чем короче длина волны (то есть чем выше частота), тем больше падение напряжения.
NalaHausllik Эксперимент 43. Светодиоды различных цветов 179 Я пришел к этому выводу, понимая, что для формирования более высоких час- тот требуется более высокая энергия. В отличие от цветных ламп накаливания цветные светодиоды не излучают в диапазоне видимого света благодаря нагре- ванию; они излучают свет только на одной частоте, что обусловлено электро- нами, переходящими с одного энергетического уровня на другой. Это делает светодиоды пригодными для калиброванных светочувствительных элементов, так как длина волны зависит от материала, из которого их изготовили, и не может измениться под воздействием условий окружающей среды (включая из- менения в величине проходящего через них тока). Но как связана длина волны света с энергией? Вы, наверное, знаете, что, согласно теории относительности Эйнштейна, скорость света - это максималь- ная скорость, с которой что-либо может двигаться. Как же добавить свету энергии, если вы не можете заставить его двигаться быстрее? Ответ на этот вопрос такой: когда вы добавляете свету энергии, дли- на его волны уменьшается. Если же у света отобрать энергию, то вместо того, чтобы двигаться медленнее, свет становится более длинноволновым. Может быть, это нелегко понять. Астрономы измеряют расстояние между объектами во вселенной по их крас- ному смещению. Согласно теории, после Большого Взрыва галактики и другие объекты разлетались от центра вселенной к периферии с разными скоростя- ми. Галактики, отброшенные с максимальной скоростью, находятся на краю расширяющейся вселенной, тогда как галактика Млечный Путь (в которой рас- положена Земля) осталась относительно близко к центру вселенной, потому что Большой Взрыв не придал ей такой большой энергии. Проблема возникает, когда вы полагаете, что объект, посланный из другой галактики, представляет собой свет; скорость света относительно наблюдателя не может быть изменена. Итак, когда свет из далекой галактики достигает Земли, он продолжает двигаться со скоростью 186 000 миль в секунду (2,99792 х 10я м/с). Если сравнить ситуации, то непонятно, почему свет из далекой галактики, кото- рый идет от Земли, остается таким же, каким был в начале путешествия. Чтобы решить эту проблему, подумайте об энергии физического объекта, а также об энергии света при их прохождении между галактиками. В случае фи- зического объекта энергия, которой он обладает при соударении с Землей, уменьшается из-за относительного перемещения Земли в направлении от по- сылающей галактики. Это справедливо и для света; вместо замедления движе- ния происходит уменьшение энергии фотонов. Поскольку энергия фотонов уменьшается, длина волны их излучения растет. Поскольку длина волны растет, свет сдвигается к красной части спектра. Вот почему астрономы измеряют рас- стояния между объектами при помощи того, что они называют красным сме- щением света. Имея это в виду, я и преподложил, что чем меньше длина волны света, фор- мируемого светодиодом, тем больше падение напряжения на нем из-за того, что большее количество энергии переходит из формы электричества в форму света. Чтобы проверить эту гипотезу, я использовал простую цепь и измерил напряжение на нескольких разных светодиодах (рис. 8.4, табл. 8.2).
180 ГЛАВА 8. Оптоэлектроника 9В Тест1 Рис 8.4. Цепь для проверки падения напряжения на светодиоде Таблица 8.2. Результаты эксперимента Цвет светодиода Напряжение, В Инфракрасный 1.12 Красный 1.96 Оранжевый 1,82 Желтый 1,86 Зеленый 1,95 Синий 2,71 Белый 2,76 Как видите, между длиной волны и падением напряжения есть некоторая корреляция: у инфракрасного светодиода, имеющего максимальную длину волны, наименьшее падение напряжения; а у синего светодиода, имеющего одну из самых коротких длин волн, падение напряжения большое. Непонят- ными остаются значения для средних цветов (красного, оранжевого, желто- го и зеленого). Это меня смущало, пока я не рассмотрел различные материалы, из которых изготавливают цветные светодиоды. Каждый элемент излучает свет на своей частоте. Так, у вольфрама восемь электронных орбит (каждая со своим энерге- тическим уровнем), и в зависимости от того, на какой электронной орбите происходят изменения, можно сформировать целый ряд различных длин волн света (рис. 8.5). Исходя из этого, я пришел к выводу, что падение напряжения в большей степени является функцией легирующего вещества светодиода, чем длины волны сформированного света. Помимо цветных, я проверил и белый светодиод. Когда изготавливают бе- лый светодиод, то начинают с синего светодиода, но, прежде чем поместить его в линзу из эпоксидной смолы, в него добавляют фосфор. Это приводит к тому, что светодиод вырабатывает свет во всем видимом спетре. В результате на выходе излучается не свет на какой-то одной частоте, а белый свет. Я вклки чил в табл. 8.2 результат для белого светодиода для справок, но не считаю его частью своей гипотезы.
Эксперимент 44. Изменение яркости свечения светодиода 181 Различные электронные орбиты с разными уровнями энергии Рис 8.5. Различная длина волны света (измеренная в нм), испускаемого или поглощаемого атомами вольфрама Эксперимент 44. Изменение яркости свечения светодиода Детали Смонтированная печат- ная плата. Чип таймера серии 555 в DIP-корпусе с 8 выводами. Светодиод любого цвета. Резистор 1 кОм. Два резистора 10 кОм. Потенциометр Набор инструментов для радиомонтажа 100 кОм. Конденсатор 0,01 мкФ, любого типа. Конденсатор 0,1 мкФ, любо- го типа Большинство людей, когда их просят изменить уровень мощности прибора, автоматически приходят к решению уменьшить приложенное к нему напряже- ние. Это справедливо для множества приборов - от ламп накаливания до дви- гателей. Проблема, однако, в том, что порой этот метод трудно реализовать. Сделать источник питания с регулируемым уровнем выходного напряжения можно, применив р-п-р-транзистор и компаратор напряжений в схеме, известной как линейный стабилгсзатор (linear regulator). Действие линейного стабилизатора может показаться довольно простым, но на практике очень трудно заставить его работать правильно. Вообще применять его крайне нежелательно; исключение составляют источники питания для электронных устройств управления. Причина, по которой линейный стабилизатор нежелателен как средство обеспечения устройств регулируемым напряжением, состоит в величине мощно- сти, которая теряется в р-п-р-транзисторе. Например, если вы хотите получить с помощью этой схемы падение напряжения от 10 до 5 В, а нагрузка потребляет
182 ГЛЙВЙ 8. Оптоэлектроника 2 А, то тепло, которое должно будет рассеяться на р-п-р-транзисторе, составит 10 Вт. Это тепло будет излучаться в атмосферу Если линейный стабилизатор используется для управления скоростями двигателя робота, то потери, равные 10 Вт, означают значительный разряд батарей робота. Гораздо лучше другое решение: периодически включать и выключать мощ- ность, подаваемую в нагрузку, получая в результате среднюю мощность, нужную для управления устройством. Такое включение/выключение мощности извест- но как широтно-импульсная модуляция {ШИМ) (pulse width modulation, PWM) (рис. 8.6). Длитель- । * U ность—-J I импульса I I I I I * Период----------*4 I I _ - , a - 100% x Длительность импульса Период Рис 8.6. Форма сигнала широтно-импульсном модуляции Вам должны быть знакомы два параметра сигнала ШИМ, и первый - это период сигнала. Период сигнала ШИМ должен быть вне пределов визуального восприятия человека; это значит, что если вы используете ШИМ с прибором, излучающим свет, то он должен быть меньше, чем 20 мс (то есть 50 или более циклов ШИМ в секунду). Если ваш прибор предназначен для формирования звука, то период ШИМ для него должен быть или свыше 20 мс (50 или менее циклов ШИМ в секунду), или же меньше, чем 66 мкс (15 000 или более циклов ШИМ в секунду). Цель, с которой устанавливается скорость ШИМ, состоит в том, чтобы убедиться, что наблюдается эффект дросселирования ШИМ, а не включение/выключение самой ШИМ. Рабочий цикл сигнала ШИМ представляет собой процент времени в тече- ние периода ШИМ, когда сигнал активен. Я исключил часть определения, так как активная доля сигнала может быть либо высокого уровня (большинство считает, что так и есть), либо низкого уровня (как сделано у меня в данном эксперименте). Чтобы продемонстрировать работу устройства, управляемого ШИМ, я пред- лагаю схему в которой вы узнаете асинхронный генератор на микросхеме 555, у которого регулируется время, в течение которого выходной сигнал имеет высокий уровень (рис. 8.7). Цель эксперимента - продемонстрировать работу схемы управления яркостью свечения светодиода методом ШИМ, а также по- казать, что чип 555 недостаточно хорош в качестве основы для построения генератора сигнала ШИМ.
ftalatiaus^k Эксперимент 44. Изменение яркости свечения светодиодо 181 Рис 8.7. Схема генератора ШИМ для светодиода на основе чипа серии 555 Собрав и проверив эту схему, вы увидите, что, регулируя потенциометр, вы можете задавать яркость свечения светодиода. Однако вы не увидите мигания светодиода, поскольку он включается и выключается очень быстро, настолько быстро, что ваш глаз «усредняет» время, в течение которого он включен и вы- ключен, и дает представление о том, что он включен постоянно, но с более низ- кой яркостью, чем если бы он был включен 100% времени. Если понаблюдать за работой ШИМ с помощью осциллографа, вы заметите, что, когда светодиод горит довольно тускло, сигнал будет выглядеть, как изображено ниже (рис. 8.8). Светодиод активен, когда выходной сигнал имеет низкий уровень, а доля вре- мени, когда у сигнала низкий уровень, довольно мала, примерно 17% от пери- ода ШИМ. Эти 17% представляют собой рабочий цикл сигнала ШИМ, когда сигнал на светодиоде имеет низкий уровень. Когда светодиод светит ярче, ин- тервал между периодами низкого уровня периодического выходного сигнала микросхемы 555 уменьшается (рис. 8.9). Рабочий цикл для этого сигнала равен примерно 45%. Рис 8.8. ШИМ с рабочим циклом величиной 17%
184 ГЛЯВЯ 8. Оптоэлектронике Высокий уровень, светодиод выключен Низкий уровень, светодиод активен Рис 8.9. ШИМ с рабочим циклом величиной 45% Рассматривая осциллограммы, вы заметите, что происходит нечто забавное. Вместо того чтобы изменять рабочий цикл ШИМ при сохранении постоянно- го периода сигнала ШИМ, на практике я уменьшаю время, в течение которого сигнал ШИМ неактивен (уменьшая период сигнала ШИМ). Что касается пери- ода, то он находится в диапазоне от 10 мс до 2,2 мс (или по частоте от 100 Гц до 450 ГЦ). Поэкспериментировав с асинхронным генератором на чипе 555, вы уз- наете, что, независимо от того, насколько вы пытаетесь изменить величины ре- зистора и конденсатора, использованных в схеме, вы никогда не получите ра- бочий цикл ШИМ выше 50%. Здесь проявляются две проблемы применения таймера 555 для ШИМ. Пер- вая состоит в том, что вы можете использовать выходной сигнал чипа 555 для зажигания светодиода, когда у него высокий уровень, но у вас получится ра- бочий цикл от 83% до 55%, что может оказаться недостаточно хорошо для некоторых устройств. Вторая проблема в том, что за счет изменения периода сигнала ШИМ вы можете попасть в диапазон, где человек способен воспри- нять работу ШИМ. Если заменить два резистора величиной 10 кОм на рези- сторы большей величины, включение и выключение светодиода может стать заметным, а изменение выходного сигнала - совсем незаметным для наблю- дателя. ШИМ может привести к заметной экономии потребляемой мощности для данного устройства. Какая мощность используется в нагрузке, когда рабочий цикл сигнала ШИМ равен 50%? Если вы ответите, что 50%, то ошибетесь - реально это будет 25%, потому что в формуле для расчета мощности (Р - Vx i) как напряжение, так и ток активны только половину времени. Это приводит к некоторым интересным выводам относительно питания двигателя. Так, двигатели, работающие при рабочем цикле 71%, используют половину мощ- ности, необходимой для приведения в движение двигателей с рабочим ци- клом 100%.
4\aiaHaus^i Эксперимент 45. Многосегментные светодиоды 185 Эксперимент 45. Многосегментные светодиоды Детали Смонтмроиамея печатная плата с макетной платой. Семисегментный светоди- одный дисплей с общим анодом. 13 п-р-п-транзи- сторов типа ZTX649. Два светодиода любого цвета. Два однополюсных пере- Инструменты Набор инструментов для радиомонтажа ключателя на два направления, устанавливаемые на макетную плату. 13 резисторов 1 кОм, 0,25 Вт. 13 ре- зисторов 10 кОм, 0,25 Вт Один из самых общеупотребительных символов современного общества - се- мисегментный светодиодный дисплей (рис. 8.10). Он приобрел популярность в 1970-х годах с появлением цифровых часов. Через 30 лет со времени появле- ния их можно встретить везде: не только в цифровых часах, но и в кухонном оборудовании, автомобилях, инструментах и, конечно в видеомагнитофонах. Рис. 8.10. Схема расположения выводов семисегментного светодиодного дисплея Однако работать с семисегментными светодиодными дисплеями не так про- сто. Когда вы будете создавать робот по собственному проекту, вам станет ясно, что эти «консервированные» функциональные узлы делают не совсем то, чего вы от ни хотите. Вы поймете, что вам придется разработать собственную схе- му для декодирования данных, а также как-то управлять несколькими дисплея- ми. Ниже я представлю семисегментный светодиодный дисплей и некоторые
186 ГЛЯВЯ 8. Оптоэлектроника схемы, необходимые для того, чтобы перед отображением декодировать вход- ные значения цифровой двоичной информации. Взгляните на семисегментный светодиодный дисплей (рис. 8.10). Его можно установить в те же контактные отверстия, что и 14-контакный DIP-корпус шири- ной 7,5 мм, но некоторые выводы отсутствуют [метка Не подключен (N/C, по connect)]. Метка светодиода DP обозначает десятичную запятую (decimal point). Светодиоды семисегментного светодиодного дисплея могут быть смонтиро- ваны либо по схеме с общим анодом, либо с общим катодом. Мы используем соединение с общим анодом (рис. 8.11). Здесь два вывода Общий (Common) соединены со всеми (а в частном случае с несколькими) анодами восьми свето- диодов, входящих в состав дисплея. Это несколько упрощает монтаж и делает работу с несколькими дисплеями немного проще. Общий Общий Рис. 8.11. Внутренние соединяет семисегментного светодиодного дисплей с общим анодом Как вы, вероятно, знаете, включая разные светодиоды дисплея в различных сочетаниях, можно создавать изображения цифр (рис. 8.12). Кроме 10 цифр, можно отобразить и буквы, хотя только несколько из них выглядят в точности так, как знаки, которые вы ожидаете увидеть. Чтобы отображать буквы, пона- добится светодиодный дисплей с большим числом сегментов; они продаются либо в виде 16-сегментных дисплеев, либо в виде светодиодных матриц, ото- бражающих знаки, как шрифт, - так же, как на экране вашего компьютера. и I?34S6"I89 Рис. 8.18. Значения цифр от 0 до 9 на семисегментном световодном дисплее Каждый светодиод в дисплее можно соединить стандартным способом, чтобы управлять его включением и выключением. Управлять отдельными све- тодиодами дисплея довольно просто,, немногим сложнее управлять несколь- кими светодиодами, но еще более сложно, если вы хотите, чтобы они отобра- зили что-нибудь полезное. Работая над книгой, я хотел сначала показать только несколько логических микросхем для отображения всех знаков от 0 до 9 и от А до F, чтобы продемонстрировать, как применять такие дисплеи для шестнадцатеричных устройств отображения. По мере того, как я подби- рал логические микросхемы для этого, я обнаружил, что ряд необходимых для этого логических микросхем запрещен к применению. Затем я отказался
^alaUausieii. Эксперимент 45. Многосегментные светодиоды 187 от намерения отображать все цифры от 0 до 8, а кроме того, установил, что сложность схемы слишком велика для макетной платы, установленной на пе- чатной плате. Наконец я остановился на цифрах от 0 до 3 и использовал два проводника для входного сигнала. Чтобы решить, как монтировать схему, я составил табл. 8.3, в которой пере- числил активные сегменты для четырех различных выходных цифр, а затем выписал состояния величины Сумма произведений (пояснения см. ниже). Входные сигналы обозначены АО и А1 соответственно для младшего и старше- го двоичных разрядов, используемых для выбора подлежащих отображению цифр. Эти два сигнала можно считать двумя двоичными числами. О двоичной системе счисления и логических микросхемах И (AND) и ИЛИ (OR) я подроб- но расскажу попозже. Таблица 8.3. Активные сегменты для выходных цифр «0» «1» «2» «3» Условия Комментарии a 1 1 1 !А0!А1+А1 Аналогично d Ь 1 1 1 1 1 Всегда включен с 1 1 1 !А1 +А0-А1 d 1 1 1 !А0-!А1 +А1 Аналогичное е 1 1 !А0 f 1 !А0 - !А1 Использует функцию И сигналов а и d 0 1 1 А1 Составляя таблицу, я убедился, что заметил все ситуации, которые позволя- ли мне упростить схему. По сути придется разработать шесть уникальных схем и схемы управления светодиодами. Я мог сделать это с помощью микросхем транзисторно-транзисторной логики (TTL logic), но решил использовать рези- сторно-транзисторную логику, РТЛ (Resistor-Transistor-Logic, RTL), так как в этом случае схема будет интереснее. Вначале я собрал входные переключатели (ко- торые являются инвертирующими) и два элемента И (рис. 8.13). Я пометил вы- ходы элементов одинаковым образом. Рис. 8.13. Логика декодирования двух бит донных для отображения в виде цифр на семисегментном светодиодном дисплее
188 ГЛАВА 8. Оптоэлектронико Для любого из этих четырех элементов ток, протекающий через резистор 1 кОм, поступает в цепь выходного транзистора. Резисторы величиной 10 кОм в базах выходных цепей поддерживают действующие значения токов через тран- зисторы (фактически 7 мА или около того), которые проходят через резисторы 1 кОм. Может быть, это и не абсолютно необходимо, но хорошо следовать этому правилу при проектировании: гарантировать, что в трензисторах не будут нара- стать излишние токи. Это также дает уверенность в том, что во всех светодиод- ных сегментах текут одинаковые токи (обеспечивая их одинаковую яркость). Схема управления светодиодами состоит из нескольких транзисторов, вклю- ченных по схеме с общим коллектором (рис. 8.14). Два логических элемента ИЛИ хорошо реализуются на этом типе логики. Данную схему легко расши- рить, если вам захочется создать другую схему, способную отобразить на выхо- де более четырех цифр. Рис. 8.14.Транзисторные цепи управления для семисегментного светодиодного дисплея Монтаж схемы для этого эксперимента представляет некоторые трудности. Я советую начать с двух входных переключателей, затем смонтировать цепи, реализующие условия !А0 • !А1 и АО • А1 , а затем транзисторы цепей управле- ния для светодиодов. Убедитесь, что собрали цепи каждого из транзисторов максимально компактно. Эксперимент 46. Оптроннея пере Детали Смонтированная печат- ная плата с макетной платой. Четыре оптрона. Шесть п-р-п-транзистора Zetex ZTX649. Пять крас- ных светодиодов. Зеле- ный светодиод. Семь ре- Инструменты Набор инструментов для радиомонтажа. Ножницы зисторов 1 кОм, 0,25 Вт. Шесть резисторов 10 кОм, 0,25 Вт. Лист картона
^aiaHaus,^. Эксперимент 46. Оптронноя поро 189 Освоившись с робототехникой и начав работать над гораздо более тяжелыми роботами, чем представленные здесь, вы вступите в-сферу электроники высо- ких напряжений и токов. В большинстве случаев это нетрудно, и вы убедитесь, что имеющиеся в продаже компоненты позволяют работать с мощными двига- телями и батареями в точности, как если бы они были небольшими устройства- ми, которые я использую в этой книге. Проблемы появятся, когда вы захотите объединить электронику контроллера робота с системами двигателей; разни- ца в напряжениях и токах может привести к повреждению электроники кон- троллера (хотя, может быть, точнее будет сказать, что эта электроника сгорит). Очевидное решение этой потенциальной проблемы - использовать для вклю- чения/выключения двигателя реле, управляемые при помощи электронных схем управления. Как я уже говорил, мне не нравятся реле, поскольку этим ме- ханическим устройствам требуется значительный по величине ток и они не работают со скоростью, свойственной электронным устройствам, что необхо- димо для эффективного управления двигателем по методу ШИМ. Решение проблемы изолирования цепей двигателя с высокими напряжени- ями и токами от цепей управления с низкими напряжениями и токами, полно- стью основанное на электронике, дает оптрон. Оптрон (рис. 8.15) состоит из светодиода, который может освещать фототранзистор. Свет горящего свето- диода вызывает в фототранзисторе выработку электронов, что действует так же, как ток базы, и позволяет течь току от коллектора к эмиттеру. Обычно све- тодиод и фототранзистор оптрона помещают в черный непрозрачный пласти- ковый корпус, так что внешний свет не влияет на работу транзистора. Оптро- ны не являются такими быстродействующими, как другие переключательные схемы на основе транзисторов (которым для изменения состояния требуется от 0,5 до 5 мс), и переключаются только за несколько миллисекунд. Анод г Коллектор светодиода I | фитотранзистора Светодиод—J —I—Фототранзистор Катод Г “' ~~| Эмиттер светодиода фототранзистора Канал для света между светодиодом и фототранзистором Рис 8.15. Оптрон Передаваемый сигнал, как правило, является цифровым (то есть он либо включен, либо выключен). При поступлении на него сигнала высокого уровня оптрон включает светодиод, что позволяет току проходить от коллектора фо- тотранзистора к его эмиттеру, замыкая выходной сигнал на землю. В обратной ситуации, если поступающий на светодиод сигнал имеет низкий уровень напря- жения, светодиод выключен, и фототранзистор закрыт. Модификацией оптрона является оптический прерыватель (рис. 8.16), в котором канал для света между светодиодом и фототранзистором закрывает- ся, обеспечивая физическую блокировку света. В нем использован метод
190 ГЛЯВЯ 8. Оптсэлектронико включения/выключения фототранзистора, основанный на некотором внеш- нем физическом событии. У оптического прерывателя не бывает такого «щелч- ка», как у физического переключателя, кроме того, для его срабатывания не тре- буется никакой силы, что делает его применение оптимальным решением для ряда устройств, например, компьютерной мыши. Шарик мыши поворачивает вал, снабженный колесиком с отверстиями, что позволяет свету проходить че- рез него и улавливаться при помощи оптического прерывателя (рис. 8.17). Оптический прерыватель, составные части Анод светодиода Катод сэекдиодр Схема эксперимента Н< некартельная маркировка вывода «1» Эмиттер фототран- зистора (ФТ) Коллектор фототранзистора Vcc Vcc Светсдиод горит, пока канал между С9ОТСДИОДОМ и ФТ свободно проходим Направление «У» Рис. 8.16. Устройство и робота оптического прерывателя Датчик колеса направления «X» Датчик колеса направления «У» Перфорированные колеса с оптическими прерывателями, чувствующие изменения в положении отверстий Л. Ось перфориро- ванного колеса, нажимающая на шарик Шарик Ось перфориро- «мыши» ванного колеса. нажимающая Направление «X» на шарик Рис. 8.17. Два оптических прерывателя, используемых а компьютерной мыши и определяющих ее перемещение Два оптических прерывателя позволяют не только обнаруживать движения колесика, но и за счет их соответствующей компенсации включать/выключать их под разными углами (рис. 8.18). Можно также и распознавать направления поворота колесиков. Оптические прерыватели в роботах изучает одометрия - научная дисципли- на, описывающая правила записи движения робота с целью направить его в указанную точку в пространстве. Сейчас я продемонстрирую работу оптрона и оптического прерывателя с помощью создания схемы ключа, которой необходим картонный «ключ» (рис. 8.19). Ключ надо сделать, собрав схему (рис. 8.20, и зная расстояние меж- ду оптическими прерывателями.
^aiaHaus,^. Эксперимент 46. Оптронноя nopo 191 Рис. 8.18. Оптический прерыватель на колесике с отверстиями для обнаружения вращательного движения и его направления Потенциальные выемки для оптических прерывателей (разделенные промежутками для каждого из оптических прерывателей) Рис. 8.19. Ключ для ключевой схемы но оптических прерывателях Рис 8.20. Схема ключа на оптических прерывателях. Заметьте: тумблеры ключа регулируются Здесь оптический прерыватель играет роль токового ключа. Котда свет по- ступает на фототранзистор, ток течет от коллектора к эмиттеру; этот ток включает транзистор «Тумблер заблокирован». Отдельные цепи для каждого
192 ГЛЯВ A 8. Оптоэлектронике оптического прерывателя кажутся довольно простыми, но комбинацию этих цепей понять сложнее. Выход каждого тумблера состоит из п-р-п-транзисто- ра, эмиттер которого соединен с «землей, а база управляется традиционным образом. Коллектор соединен с цепью, центральный резистор которой при- вязан к выходному напряжению. Схема включения выходного транзистора, известная как выход с открытым коллектором, позволяет объединять выходы нескольких транзисторных цепей в общую конфигурацию, которая называет- ся элемент Монтажное И. Цифровой элемент И просто передает на выход высокий уровень, когда на всех его входах высокий уровень. Элемент Мон- тажное И (см. рис. 8.20) выполняет это требование, так как любой из не- скольких транзисторов с открытым коллектором, включенных параллельно, может замкнуть ток на землю (или на уровень низкого потенциала). Когда мы будем обсуждать цифровую логику, функции элемента И станут яснее, а пока запомните, что здесь использовано Монтажное И, у которого выходной си- гнал принимает значение высокого уровня тогда и только тогда, когда все уп- равляющие транзисторы с открытым коллектором закрыты. Как видите, выходы с коллекторов открытых и закрытых транзисторов оп- тических прерывателей для каждого тумблера можно подсоединить к заперто- му светодиоду (соединенному с открытым светодиодом через п-р-п-транзи- стор). Я соединил все связи с открытым коллектором, кроме одной (которая использует связь блокированного коллектора) с закрытым светодиодом. Вы можете изменить этот монтаж или добавить дополнительные оптические пре- рыватели и транзисторные цепи, чтобы создать ключ, более сложный и труд- нее поддающийся «вскрытию». Эксперимент 47. Датчик белой и черной поверхности Детали Смонтированная печатная плата с макетной платой. Оптический прерыватель. Светсди' д любого цвета Резистор 10 кОм. Два ре- зистора 1 кОм. Бумага Инструменты Набор инструментов для рад иомонтажа. Кусачки для провода. Черный маркер. Фломастер белого цвета Лучше всего для механических датчиков подходит тип излучения с длинами волн, не видимыми для человеческого глаза. Инфракрасное (ИК) излучение (Infrared, IR) (рис. 8.21) используется для целого ряда целей, в том числе оно принимает участие в работе проходных прерывателей, как показано в экспе- рименте 46, и в работе большого числа датчиков, как я покажу ниже. Наиболее простой инфракрасный датчик (и наиболее часто используемый в робототехнике) - это устройство отслеживание траектории, состоящее из
^aiaHaus,^. Эксперимент 47. Датчик белой и черной поверхности 193 инфракрасного светодиода и фототранзистора, на который падает отражен- ный от поверхности свет (рис. 8.22). Когда поверхность белая, ИК-излучение светодиода отражается от нее очень эффективно, открывая при этом фото- транзистор. Черная поверхность проявляет тенденцию к поглощению ИК-из- лучения, отражается лишь очень малая его часть, а фототранзистор остается закрытым. 720 нм 0,2 мм 0,4 мм 1 мм Видимый свет Ближний инфракрасный диапазон Дальней инфракрасный инфракрасный /иапаэмн диапазон Радио- частоты Выхлоп реактивного двигателя (1000 °C) Кипящая Тепловое вода излучение (0,7 мм) человеческого тела (0,9 мм) Рис. 8Л1. Инфракрасное излучение и температура для различных длин волны ИК-свет, отраженный белой поверхностью от свето- диода к фототранзистору ИК-фототранзистор Белая поверхность ИК-сеетодиод Непрозрачный барьер, препятствующий непосредственному прохождению инфра- красного (ИК) света Намного меньше ИК-света от светодиода к фототранзистору, отраженного на черной поверхности Черная поверхность Рис. 8.22. Работа инфракрасного светодиода и фстатрокэисторо в устройстве отслеживания траектории При традиционном способе построения ИК-устройств отслеживания траек- тории в деревянном (или металлическом) бруске сверлят несколько отверстий (рис. 8.23) таким образом, чтобы излучение от светодиода могло попасть на фототранзистор, только если оно отразится от некоторого объекта. От свето- диода до фототранзистора не должно быть прямого пути, который может ус- ложнить расположение компонентов и их геометрию. Вместо того чтобы про- ходить через все трудности, отпиливая кусок древесины или металла (а потенциально придется еще и красить его в черный цвет, чтобы минимизиро- вать вероятность отражения), я использую электронный прибор, который в своей основе предназначен для данного приложения и с которым вы уже хоро- шо знакомы. Надо разделить на части, соответствующие светодиоду и фототранзистору, оптический прерыватель из эксперимента 46 (рис. 8.24). Обычно оптические прерыватели конструируют так, что светодиод находится в одной «башенке», а фототранзистор - в другой. После разделения у вас появится возможность поместить эти две башенки рядом, и передаваемое ИК излучение будет дости- гать фототранзистора, только если оно отразится от некоторого объекта.
194 ГЛАВА 8. Оптоэлектронике Не забудьте пометить, какая из башенок - светодиод, а какая - фототранзистор (пометьте также катод светодиода и коллектор фототранзистора), белым фло- мастером, прежде чем разделить прерыватель на части. Убедитесь также, что у вас есть немодифицированный оптический прерыватель, чтобы понять, как должны монтироваться его части. Вид сбоку Л- Вид снизу для того, чтобы отражать ИК-свет и защищать ИК- фототранэистор от внешнего света Вид с торца отверстии. 7~| просиерлокюе _ для ИК-светодмода/ u—| фототранзистора Углубление в дне корпуса Рис 8.23. Простой держатель а форме бруою для ИКоетодиодо и фототрамзистора, предназначенных для отслеживания траектории Рис 8.24. Фотография запасного оптического прерывателя и прерывателя. раэдвлеююго на части, помещенных но макетную плату. При разрезании оптического прерывателя не забывайте, кокая часть является светодиодом, а кокая - фотатронзистором. следите также за полярностью Разделив две половинки оптического прерывателя (см. рис. 8.24), вы смо- жете собрать нужную схему (рис. 8.25). Установив батарею в держатель, убеди- тесь, что светодиод слабо светится. Плавно двигая через щель в середине ма- кетной платы лист белой бумаги с нарисованными на нем черными полосами, вы увидите, что светодиод определенно мигает, включаясь и выключаясь.
^atatiaus^k Эксперимент 48. Робот, отслеживоющий троекторию 195 Разделенные половины оптического прерывателя Рис 8Л5. Схема датчика белого и черного на основе оптического прерывателя Эксперимент 48. Робот, отслеживающий траекторию Детали Инструменты Смонтированная печатная плата с макетной платой. Двигатель постоянного тока для робота в сборе с держателем для четырех батарей типа АА и выклю- чателем. Два оптических прерывателя (см. текст). Счетвереннный компаратор LM339. Два биполярных п-р-п-транзистора ZTX649. Два биполярных р-п-р-тран- зисгора ZTX749. Д ва светод иода любого цвета. Д ва рези- стора 100 кОм. Десять резисторов 10 кОм. Д ва резисто- ра 1 кОм. Два резистора 470 Ом. Два резистора 100 Ом. Два потемвюметра 10 кОм, предназначаема д ля уста- новки на печатную плату. Иэоледионная трубка, отверж- даемая под действием тепла, д иаметром 3 мм. Крышка алюминиевого аодосгсмюго желоба (см. текст). Лист белого бристольского картом размерами 55 см х 70 см Набор инструментов для радиомонтажа. Черный маркер. Эпоксидная смо- ла со временем отвержде- ния 5 мин. Ножницы для резки жести. Ротационный режущий инструмент, ар- мированный карбидом вольфрама Теперь, познакомившись с простым оптическим прерывателем, используемым для детектора черного и белого цветов, вы можете добавить эту возможность в свои разработки и посоревноваться с другими робототехниками. Один из
196 ГЛАВА 8. Оптоэлектроника самых популярных видов соревнований роботов - соревнование устройств от- слеживания траектории, в котором робот должен следовать черной линии на листе бумаги. Имея материалы, перечисленные в разделе Детали, и обладая по- лученными уже знаниями и навыками, вы можете создать простой робот, от- слеживающий траекторию. Для начала вам понадобится траектория, которой нужно будет следовать. Я предлагаю сделать это в самом начале, так как полезно проверять робот и его датчики по мере того, как вы будете собирать схему, которую я представ- лю. Используя стандартный лист бристольского картона и черный маркер, нарисуйте траекторию (рис. 8.26). Прокладывая траектории, я провожу ли- нию на расстоянии 10 см от кромки картона и скругляю углы радиусом 7,5 см. Я стараюсь проводить линию шириной от 1 до 1,5 см. Если вы нанесете от- метки Старт и Стоп, вам, может быть, захочется, чтобы они были недоступ- ны для датчиков робота, поскольку они могут быть неверно идентифициро- ваны как повороты робота. Бристольский Маркер картон старта/останова Рис. 8ЛЬ. Траектория для демжежя робота, сделанная но листе бристольского картона размером 55 см х70 см Начертив траекторию, изготовьте монтажную пластину для разделенных на части оптических прерывателей. Я вырезал ее из куска алюминиевой крышки для водосточной трубы (рис. 8.27). Пластину можно установить на робот с дви- гателями постоянного тока, пользуясь ребром жесткости шириной 2,54 см. Крышки водостока дешевы и просты в обработке. В хозяйственном магазине я не нашел подходящего пластикового изделия и отказался от стали, работать с ней может оказаться трудно. Я вырезал кусок металла с помощью ротационного инструмента (Dremel) и ножниц по жести (рис. 8.28) и сделал два шипа, предназ- наченных для установки пластины между элементом жесткости и обработанной фанерой. Я не стал сверлить монтажные отверстия под крепеж: это лишняя ра- бота, а шипы выполняют свои функции достаточно хорошо. Затем я взял два оптических прерывателя, разделил их пополам и приклеил их к монтажной пластине эпоксидной смолой на расстоянии 2,54 см. Когда клей высох, я добавил резистор 1 кОм и резистор 10 кОм к каждой половинке и смонтировал соединения между ними (рис. 8.29). Потом я натянул на места
^faOfaas; Эксперимент 48. Робот, отслежиаоющий траекторию 197 Рис 8 Л 7. Исходная деталь алюминиевого водостока, отрезанный от нее кусок с установленными на нем оптическими прерывателями и собранный узел, устамоаложый на робот I 2 Рис 8.88. Пластина из мягкого алюминия для установки ИК-дотчика пайки изоляционную трубку, чтобы быть уверенным в том, что их нельзя будет случайно закоротить. Таким образом я упростил результирующий монтаж: узел связан с макетной платой всего тремя проводами. Сделав монтажные пластины, наклеив на них и смонтировав разделенные оптические прерыватели, я приступил к монтажу схемы робота, отслеживаю- щего траекторию (рис. 8.30). Два светодиода в этой схеме позволяют индици- ровать ситуацию, когда датчик находится над черной поверхностью. Теоретическое обоснование этой схемы весьма несложно. Двигатели вклю- чены и вращаются вперед, пока датчик на этой стороне робота не обнаружит черную линию. При этом двигатель выключается, и робот поворачивается в эту сторону. Это приводит к некоторой дрожи при движении вперед, но позволяет роботу вполне эффективно преодолевать повороты.
198 ГЛЙВЙ 8. Оптоэлектроника Раздельные половины оптического прерывателя Оптический прерыватель разделен на части, эпоксидной смолой приклеен к металлическому монтажному основанию и соединен проводами с макетом с использованием изоляционной трубки Рис. 8.29. Схема датчика белого и черного но оптических прерывателях, собранная на монтажной пластине Рис. 830. Принципиальная схема робота, отслеживающего траекторию, с двигателями постоянного тока Схема строилась с учетом двух требований. Во-первых, светодиоды должны гореть, когда датчики обнаруживают черную линию. На практике это очень легко реализовать за счет пропускания тока фототранзисторами в оптических прерывателях через резисторы 10 кОм: по мере повышения тока увеличивают- ся напряжения на резисторах 10 кОм, и их можно сравнить при помощи ми- кросхемы компаратора LM339. Во-вторых, этой схеме придется работать как с собственным автономным управлением, так и с управлением от контроллера Parallax BASIC Stamp 2. Это требование приводит кто му, что схема может питать- ся двумя различными способами, используя до трех источников электропитания (9 В от батареи, 5 В от стабилизатора и 6 В от двигателей). Она нуждается в применении р-п-р-транзисторов для передачи тока на п-р-п-транзисторы схемы управления двигателями.
ftataHausiiili Эксперимент 48. Робот, отслеживоющий траекторию 199 При сборке схемы для эксперимента заставьте вначале сетодиоды гореть, когда оптический прерыватель находится над черной линией. Поскольку уро- вень выходного напряжения фототранзистора может быть разным, я включил в схему потенциометр, позволяющий настроить переход напряжения между белым и черным. Когда датчики будут работать надежно, вы сможете смонти- ровать цепи к двум другим компараторам (инвертирующим сигналы с первых компараторов), а затем добавить цепи управления двигателями. Не забудьте обеспечить наличие выключателя на батарейном источнике питания из че- тырех элементов типа АА - в этом эксперименте робот начинает работать внезапно. Резисторы номиналом 100 Ом, используемые в качестве токоограничиваю- щих резисторов для транзисторов схемы управления двигателями, оказались оптимальными для выбранных мной двигателей; робот должен перемещаться примерно на 5 см в секунду. Вам придется проэкспериментировать с разными номиналами резисторов, чтобы получить наилучшие результаты в работе дви- гателей и робота.
Глава 9 Звуковая электроника Мы принимаем на веру, что мало существует вещей, более простых, чем устрой- ства звуковой электроники, радиоприемники, стереоусилители, CD- и МРЗ-пле- еры. Такая низкая оценка вызывает сожаление, потому что в этих усройствах используется не только технология, во многом аналогичная технологии высо- коэффективных компьютерных систем для обеспечения функций памяти, но и современные аналоговые электронные приборы, что позволяет им обеспе- чивать при низких затратах высокие уровни аналоговой мощности с самыми незначительными искажениями. Даже если не принимать в расчет цифровые технологии, научная база звуковой электроники достаточно развита. История звуковой электроники начиналась более 150 лет назад с первого телеграфного сообщения Сэмуэла Морзе. Первые экспериментальные теле- графные аппараты писали на бумажной ленте (при этом по мере прохождения ленты через телеграфный аппарат тире и точки печатались в виде прямых линий меняющейся длины). Телеграфный аппарат стал практическим инстру- ментом, когда последовательность слышимых щелчков была сформирована с помощью простого электромагнитного громкоговорителя, который деформи- рует стальную пластину (или диафрагму) при прохождении тока через электро- магнит, что и вызывает щелчок. Телеграфный аппарат был усовершенствован с изобретением громкогово- рителя, в котором определенное напряжение вызывает частичное смещение диафрагмы. Этот динамический громкоговоритель состоит из постоянного магни- та и диафрагмы со встроенной катушкой индуктивности (рис. 9.1). Под дей- ствием быстрых изменений приложенного напряжения положение диафрагмы меняется, и она производит слышимый звук. Первым практическим примене- нием этого прибора был телефон.
^alaHaus^k Звуковоя электроника 201 . _ Конический диффузор или «Рупор» динамика Сила, созданная магнитным полем, обусловлена током в катушке динамика Катушка, соединенная с диффузором динамика __ . Неподвижный |Np— постоянный l—J магнит Рис. 9.1. Электродинамический громкоговоритель Кроме динамического громкоговорителя, некоторые другие приборы пре- образуют напряжения и токи в звук. Если у вас есть наушники, то, вероятно, вы слушаете звук, используя для этого громкоговоритель на основе пьезоэлектри- ческого кристалла (рис. 9.2). При пропускании через него электрического тока размеры кристалла немного изменяются. Это свойство используется для управ- ления диафрагмой громкоговорителя. Конический диффузор V или «Рупор» громкоговорителя Пьезоэлектрический кристалл с двумя контактами для входного сигнала 1- Вход— сигнала Рис. 9.2. 1ромкоговоритель на пьеаоагектричеоюм кристалле В отличие от динамического громкоговорителя кристаллический дешев, чувствителен к малым сигналам и надежен. Динамический громкоговори- тель лучше приспособлен для ситуаций, когда для управления громкогово- рителем используется сигнал высокой мощности. Если вы собираетесь про- слушивать на МРЗ-плеере рок-группу AC/DC, то вам понадобятся наушники со встроенными кристаллическими громкоговорителями, но на концерте
202 Г/IRBR 9. Звуковой электронико звуки гитары Ангуса Янга* вы услышите из больших динамических громко- говорителей. Микрофон был изобретен в 1876 году Эмилем Берлинером (Emile Berliner) (телеграфный аппарат появился в 1837 году) как результат демонстрации теле- графного аппарата, показывающей, что электрический ток, текущий от теле- графного ключа, зависит от величины приложенного к нему давления. В ми- крофоне Берлинера использовались угольные гранулы, обладающие свойством изменять свое сопротивление при изменении величины приложенного к ним давления. Первый микрофон состоял из диафрагмы, связанной с пластиной, которая давит на уголь в металлической коробочке. Берлинер установил, что сопротивление его устройства меняется в соответствии с уровнем шума, при- ложенного к диафрагме. Изменение электрического сопротивления угольного мкрофона пробразо- вывалось в изменение напряжения с помощью следующей схемы (рис. 9.3). При подаче на микрофон напряжения изменение его сопротивления приводит к изменению электрического тока. Это изменение тока усиливается и преобра- зуется в изменение напряжения благодаря применению трансформатора. и . Элемент I микрофона шю. тж Напряжение выходного сигнала Рис. 93. Схема для преобразования изменений сопротивления угольного микрофона в напряжение Угольные микрофоны работают достаточно хорошо, но они дороги, здоро- во пылят и издают слабое шипение, поскольку гранулы угля потоянно трутся друг о друга. Позже появились и другие, более совершенные микрофоны. Ди- намический микрофон работает на основе принципа, обратного принципу дини- мического громкоговорителя; здесь не приложенное напряжение порождает звук, а звук - индуцированное напряжение за счет движения катушки в магнит- ном поле. Кристаллический микрофон тоже работает в обратном порядке отно- сительно кристаллического громкоговорителя. Попробуйте подсоединить Ангус Янг (Angus Young) - неизменный лидер рок-группы AC/JJC. - Прим, перев.
ftataHausiiilb Эксперимент 49. Зуммеры 103 наушники к микрофонному входу стереосистемы и поговорите в них. Эта си- стема громкой связи (public address (РА) system) поможет вам на людной вечерин- ке привлечь внимание гостей. Большинство современных микрофонов работает на основе совершенно иных принципов; вместо того чтобы менять сопротивление или напряжение в зависимости от входного звука, изменяется величина встроенного конденсато- ра. Конденсаторный микрофон очень прост в изготовлении и имеет хорошую частотную характеристику. Как и в угольном микрофоне, в нем нужно измене- ние емкости конденсатора преобразовывать в изменение напряжения. Эта схема хорошо работает, но она несколько громоздка при разработке системы в целом. Идеально было бы исключить источник питания и резистор. Этого можно достичь, поместив постоянно заряженный материал (тефлон хо- рошо подходит для этой цели) на одну из пластин конденсатора. Когда пласти- ны конденсатора двигаются, индуцируется небольшое напряжение, которое можно усилить и использовать, как напряжения, выработанные кристаллом или динамическими микрофонами. Такой микрофон называется электретным (рис. 9.4), и в настоящее время это самый популярный тип. —Диафрагма Материал, имеющий отрицательный заряд 11—Конденсатор Напряжение выходного сигнала Рис. 9.4. Электретный микрофон Эксперимент 49. Зуммеры Детали Смонтиробснш печатная плата макетной платой. Зуммер на постоянное на- пряжение 3-20 В. Одно- полюсный переключатель на два направления, пред- назначений для установ- ки на монтажную плату Набор инструментов для радиомонтажа
304 ГЛАВА 9. Звуковоя электроника Одна из немногих вещей, совсем не изменившихся со времен моего детства, - электрический звонок, работающий от одной батареи. В те времена звонки использовались почти для всех предупреждающих сигналов, тогда как теперь их по большей части заменили электронные устройства оповещения, обычно являющиеся частью систем громкой связи. Звонок состоит из электромагнита и пружины, надавливающих друг на друга (рис. 9.5). Когда пружина держит молоточек вне контакта с колокольчиком, имеется замкнутая электрическая цепь, и электромагнит активен. Электромагнит притягивает к себе железную планку (вместе с молоточком). Когда железная планка начинает двигаться, цепь размыкается. Рис 9.5. Эиектромехомическмй звонок Процесс притягивания молоточка к колокольчику электромагнитом, а затем оттягивания молоточка от колокольчика с помощью пружины продолжается, пока электропитание подано на механизм звонка. Говоря практически, эле- ктрические контакты и медную ленту механизма звонка (см. рис. 9.5) придется периодически заменять и приводить в порядок, так как при каждом звонке контакты окисляются и стираются от повторяющегося действия. Хотя электрические звонки работают хорошо, для многих электронных про- ектов они не годятся: они требуют много места, частоты выходного звука отно- сительно низки, они неэкономичны и могут оказать на схему нежелательное воз- действие. Включение/выключение электромагнита может вызвать большие скачки напряжения на источнике питания схемы. В течение последних 50 лет или около того большинство небольших схем, где требуется звуковой выход, оснащены встроенным генератором, нагруженным на громкоговоритель, или имеют в своем составе зуммер (рис. 9.6). Обычно для работы зуммера нужен ток не менее 50 мА, и управляется он следующей схемой (рис. 9.7). Просматривая справочную информацию по зуммерам, я обнаружил, что они работают так же, как звонки. Это справедливо с той точки зрения, что некото- рая деталь зуммера, как и в звонке, двигается, когда через нее проходит электри- ческий ток, а затем эта деталь возвращается в исходное положение, когда ток прерывается. В остальном же эти устройства абсолютно разные. В зуммере нет магнитных компонентов - в нем используются свойства пьезоэлектрика.
Эксперимент 49. Зуммеры 205 Внутреннее устройство Проволочное острие Медный контакт Вход питания Пьезоэлектрический материал Внешний вид Рис 9.6. Устройство и внешний вид зуммера Рис. 9.7. Цепь для угроалехir зуммером от слаботочной схемы управления В зуммере пьезоэлектический материал одним концом связан с электриче- ским соединением, а на другую сторону наложен медный контакт. При проте- кании через него тока пьезоэлектрик деформируется, и связь с контактом на- рушается; поэтому материал возвращается к своей исходной форме, что снова вызывает замыкание контакта, и процесс повторяется. Вы можете проверить работу зуммера с помощью простой схемы (рис. 9.8). Переключатель в этой схеме будет включать и выключать зуммер. Никогда не прислоняйте свое ухо к работающему зуммеру. Кроме того, убе- дитесь, что не купили зуммер в диапазоне свыше 75 децибел (дБ). Диапазон в децибелах - это мера звукового давления или громкость звука, исходящего из зуммера. Когда вырабатывается звук, звуковые волны расходятся от источника по сферической модели (что совсем не удивительно). А вот удивить вас может то, что по мере удаления звуковых волн от источника их мощность снижается
206 ГЛЯВЙ 9. Звуковоя электронике Выключатель Красный провод зуммера Зуммер Черный провод зуммера Рис. 9.8. Схема включения зуммера пропорционально квадрату расстояния, а не в линейной зависимости. Это, может быть, нелегко осмыслить. Когда вы удаляетесь от объекта, его видимые размеры уменьшаются пропор- ционально расстоянию от вашего глаза (рис. 9.9). Чтобы подтвердить это, по- местите некоторый объект на определенном расстоянии от вашего глаза и идентичный объект - на расстоянии, вдвое большем. Более далекий объект будет казаться вдвое меньше ближнего. Если вы поместите объект на расстоя- нии, втрое большем расстояния до ближайшего объекта, он будет казаться втрое меньше по размеру. Выразив это математически, вы можете утверждать, что видимый размер объекта определяется формулой: Размер робота - Размер робота@1метр х расстояние 2 м от глаза адэое больше угла, под которым он виден с расстояния 2 м 1 м от глаза Угол, под которым виден робот с расстояния 1 м. Рис. 9.9. Более далекий объект кажется меньше «Видимый размер» - это субъективный термин, и когда он используется, то вы думаете в показателях только одного измерения (объект выглядит вдвое мень- шим по размеру, потому что он вдвое ниже). Помните, что имеются два измере- ния, и оба уменьшаются вдвое. Это значит, что действительная площадь наблю- даемого объекта равна одной четверти, когда он находится вдвое дальше. А в случае со звуком или светом наблюдается обратное явление. Пройдя двойное расстояние, звук распределяется по площади, вчетверо большей, потому что теперь то же количество звуковой энергии распределено по Значок @ - сокращение английского at (на, с). - Прим, перед.
Эксперимент 50. Учебно» схема генератора кода но основе транзисторов 207 удвоенному расстоянию в направлении х и направлении у. Выразив это мате- матически, вы можете утверждать, что звуковое давление определяется, как: Звуковое давление = Звуковое давление @1 метр х (расстояние1) Когда вы находитесь ближе к источнику звука, звуковое давление возраста- ет в соответствии с таким же квадратичным законом. Вот почему вы не должны держать свое ухо ближе нескольких метров от зуммера. Когда зуммер находит- ся вблизи вашего уха, звуковое давление на ухо очень быстро достигает уров- ней, при которых уху (и слуху) будет нанесен вред. Эксперимент 50. Учебная схема генератора кода на основе транзисторов Детали Инструменты Набор инструментов для радиомонтажа Смонтированная печат- ная плата с макетной платой. Три биполярных п-р-п-транзистора 21X649. Громкоговори- тель 8/16 Ом. Переклю- чатель кратковременного переключения/ключ аз- буки Морзе (см. текст). Два резистора 1,5 кОм. Ре- зистор 4,7 кОм. Два резистора 470 Ом. Два конден- сатора 0,01 мкФ любого типа Когда я рос, все учебные и любительские схемы строились на отдельных тран- зисторах, не существовало таких микросхем, как таймер 555, LM339, LM386 и LM741, которые начали широко использоваться с середины до конца 1970-х годов. Все эти микросхемы позволяют создавать схемы разной конфигурации, но ни одна из них не предлагает такого рабочего диапазона и такой низкой стоимости, как дискретные транзисторы. Я мог бы представить генератор, управляющий громкоговорителем, для обучения азбуке Морзе, реализованный на таймере 555, но я хочу показать, как это сделать с помощью нескольких тран- зисторов, резисторов и конденсаторов. Я собираюсь работать с основной схемой релаксационного генератора . Ниже приведены формулы для определения длительности высокого и низкого уров- ня выходного напряжения релаксационного генератора (рис. 9.10), а также важная формула, показывающая, что отношение величин резисторов R1 и R2 (времязадающие резисторы) должно быть равно hre транзистора, умноженно- му на величину нагрузочного резистора (Rpu). Если R1 или R2 меньше этого
308 ГЛЯВЯ 9. Звуковой электроника произведения, вы убедитесь, что начало работы генератора не происходит надежно и генератор не работает на постоянной частоте. Выход- . = 01- = 0,69х R1 х С1 Высокий Выкл 9 Выход., . = 01- - 0,69 х R2x С2 Иизкии Вкл 9 R1/R2 - hFE х Rpu Рис. 9.10. Релаксационный генератор на п-р-л-тракзисторе Я предлагаю собрать релаксационную схему для изучения азбуки Морзе (рис. 9.11). Применив приведенные выше формулы, вы получите, что часто- та импульсов генератора равна 154 Гц. Судя по осциллограмме сигнала реаль- ного генератора (рис. 9.12), полученная частота довольно близка к этому зна- чению (182 Гц), хотя вид сигнала несколько отличается от того, что вы ожидали (это не меандр* или слегка скругленные импульсы), и этот сигнал активирует транзистор громкоговорителя на очень короткое время, а не на 50% периода, как вы ожидали. Это нормально, и если требуется меандр или синусоидальное колебание, то следует использовать другой тип генератора или же пропустить этот сигнал через фильтр и модифицировать, чтобы полу- чить желаемый сигнал. Рис 9.11. Релаксационный генератор для изучения азбуки Морзе Азбука Морзе не оставалась неизменной со времени первого сообщения Сэмюэла Морзе «Что совершил Господь» («What Hath God Wrought»). Совре- менный международный стандарт для азбуки Морзе приведен в табл. 9.1. Ко- роткий звук при этом показывают в виде точки (•), а долгий - в виде тире (-). Меандром называют периодическую последовательность прямоугольных импульсов длительно- стью 50% периода. - Прим, перев.
Эксперимент 50. Учебной аемо генератора кода но основе транзисторов 109 ^aiaHaus,^. Рис. 9.18. Форма сигналов для схемы асинхронного генератора Пользуйтесь кнопкой мгновенного включения (или же, если вы хотите се- рьезно практиковаться, купите ключ). Таблица 9.1. Стандарт международной азбуки Морзе Буква Код Морзе Буква/Знак Код Морзе А . - X -. • - В _... Y — С — Z — D -.. 0(ноль) Е 1 F — 2 G . —. 3 Н 4 I______________________________•• .______________________________5 J • — — — 6 —.. к — 7 —... L 8 — М — 9 N -. О — — — . (точка) - • Р ,(запятая) — О — ? (вопросительный знак) — R — ; (точка с запятой) _ S : (двоеточие) т - / (слэш) и — - (дефис) _... _ V ... _ * (апостроф) — W (подчеркивание) _
210 ГЛЯВЯ 9. Звуковая электроника Эксперимент 51. Электронный стетоскоп Детали Инструменты Набор инструментов для радиомонтажа. Резиновый клей. Ножницы Смонтираланнсп; печатная плата с макетной платой. Усилитель звуковых ча- стот LM386 в 8-контакт- ном корпусе. Электрет- ный микрофон (см. текст). Пластиковая соло- минка (см. текст). Потен- циометр 10 кОм для установки на макетную плату. Ре- зистор 10 кОм. Резистор 10 Ом. Два конденсаторе 0,01 мкФ, любого типа. Электролитический конденса- тор 220 мкФ. Громкоговоритель 8/16 Ом В начале этого эксперимента лежала попытка понять, где находится источник дребезжащего звука у робота, отслеживающего стены, с которым вы еще позна- комитесь. При движении левого колеса робота я слышал странный шум, источ- ник которого не мог найти на слух. Решение проблемы состояло в том, чтобы вспомнить уловку старых механиков при поиске источника странного шума в двигателе автомобиля. Они делают это, пользуясь отрезком садового шланга. Шланг указывает направление на звук, проходящий вдоль него к уху механика. Вероятно, это самый простой диагностический инструмент из применяемых для современных автомобилей, но зачастую наиболее эффективный для таких ситуаций, как поиск стучащего клапана. Чтобы найти решение проблемы (кусок металла, дребезжавший внутри дви- гателя), я адаптировал этот способ к роботу. Садовый шланг был бы слишком велик для нахождения неполадок в маленькой детали, а соломинка для коктей- ля, обрезанная до длины 8 см, работает вполне хорошо. Во избежание потен- циальных затруднений на тот случай, если кто-нибудь войдет ко мне, когда в ухе у меня будет отрезок соломинки, а мне придется еще удерживать работаю- щий робот, я решил собрать «электронный стетоскоп», который будет переда- вать звук, проходящий по соломинке, на микрофон, а затем на громкоговори- Рис. 9.13. Структурная схема электронного стетоскопа
^alatfausiak Эксперимент 51. Электронный стетоскоп 211 Наиболее сложным аспектом этого проекта был поиск электретного микро- фона, который помещался бы внутри соломинки для коктейля. Наконец я ку- пил достаточно узкий микрофон и позаимствовал большую соломинку для кок- тейлей в ресторане быстрого обслуживания. Отрезав кусок соломинки, я вклеил микрофон внутрь нее, следя за тем, чтобы клей не попал на лицевую поверхность микрофона. Затем я собрал следующую схему (рис. 9.14): Рис. 9.14. Схема электронного стетоскопа Основой стетоскопа служит микросхема LM386 (рис. 9.15) - дифференци- альный формирователь общего назначения с высоким выходным током и уси- лением от 20 до 200. Он часто используется для устройств вроде нашего, где усиливается слабый входной сигнал. Микросхему можно использовать во мно- жестве устройств, включая управление очень маленькими двигателями - вме- сто управления посредством ШИМ применить аналоговое напряжение, вклю- чив усилитель как повторитель напряжения (рис. 9.16). Как у таймера ,555 и некоторых других микросхем, которые стали широко использовать в 1970-х, параметры LM386 можно несколько изменить. Одной из наиболее популярных модификаций является изменение коэффициента уси- ления микросхемы (это число, на которое усилитель умножает сигнал). Этого Рис. 9.15. Росположение выводов микросхемы 1М386
212 ГЛЯВЙ 9. Звуковой электроника Аналоговый вход Двигатель Рис. 9.16. Использование микросхемы 1М386 для управления двигателем можно достичь, включив конденсатор 10 мкФ и резистор между двумя вывода- ми Усиление (рис. 9.17). По приведенной ниже формуле вы можете выбрать номинал резистора, чтобы увеличить коэффициент усиления вплоть до 200 (от номинальной величины 20). Это значит, что выходной сигнал будет иметь ам- плитуду в 200 раз больше, чем у входного. Рис 9.17. Изменение коэффициента усиления микросхемы 1М386 Такой уровень усиления должен применяться только для очень малых сигна- лов; входной сигнал величиной 1 В даже при коэффициенте усиления 20 будет «обрезан»* формирователем на двух транзисторах. Такой формирователь (изве- стный как двухтактный формирователь) способен управлять выходным сигналом только в пределах от уровня «земли» до входного питания микросхемы LM386, а сигнал, вышедший за эти пределы, будет просто ограничен. Иногда ограничение используют в звукозаписи для получения уникального звука, но большей частью его считают искажением, и его следует избегать во что бы то ни стало. Собрав схему для этого эксперимента, вы можете обнаружить, что схема воет, если поднести громкоговоритель близко к микрофону или если вы разор- вете соединение потенциометра 10 кОм с землей. Это вызвано положительной обратной связью (рис. 9.18), при которой выходной сигнал громкоговорителя улавливается микрофоном, передается на усилитель и вновь выходит из гром- коговорителя с повышенной громкостью. Положительная обратная связь, ска- жем, при ограничении, должна устраняться всеми способами, и это еще одна причина, по которой я использовал соломинку с микрофоном. Соломинка по- могает изолировать звук, не контактирующий непосредственно с микрофоном, от улавливания микрофоном и усиления. Вас может смутить термин «обратная связь», потому что вы услышите, что она широко применяется в самых разных устройствах. Отрицательную обрат- ную связь часто используют в механических и электронных системах (таких Такое воздействие на сигнал принято называть ограничением. - Прим, перев.
Эксперимент 52. Измеритель уровня зву о 213 Naialiausiik. Рис. 9.18. Положительная обратная связь в схеме усилителя, вызывающая визжащий звук как сервомеханизмы с радиоуправлением) и называют ее так потому, что си- гнал обратной связи вычитается (прибавляется со знаком «-») из фактиче- ского положения манипулятора сервомеханизма его заданного положения. Если имеется разница, манипулятор перемещается, так чтобы его положение Лучше совпадало с заданным. Положительная обратная связь, такая, как в этой схеме, прибавляет выходной сигнал к входному со знаком «+». Таким об- разом, малый сигнал усиливается, улавливается и усиливается снова и снова, пока усилитель не перейдет в состояние насыщения. При этом все новые по- ступления входного сигнала будут теряться в вое усилителя. Последнее свойство микросхемы LM386, о котором вам надо знать, - это воз- можность корректировки выходной частотной характеристики в том случае, если вы хотите подчеркнуть басы (низкие частоты). Об этом говорится в таблице те- хнических характеристик микросхемы (которую можно загрузить из Интернета). Там же есть данные о целом ряде возможных применений микросхемы, включая Использование LM386 в качестве генератора или узла радиоприемника AM. Эксперимент 52. Измеритель уровня звуке Смонтированная печатная плата с макетной платой. Усилитель звуковых частот LM386 в 8-контактном кор- пусе. Микросхема LM339, четыре компаратора. Четы- ре ярких светодиода (см. текст). Электретный Набор инструментов для радиомонтажа шкрифон. Потенциометр 100 кОм для установки на ма- емую плату. Три резистора 10 кОм. Девять резисторов 1 кОм. Резистор 10 Ом. Электрояипгескии конденсатор 10 мкФ. Три конденсатора любого типа 0,01 мкФ
214 ГЛЯВЙ 9. Звуковая электроника Образ робота, который обычно приходит в голову, - это неуклюжая человеко- подобная машина, крушащая все вокруг по командам своего создателя (как пра- вило, устным). Эти команды произносятся спокойным тоном, хотя они могут быть и немного громче и тверже нормальной речи. Кроме того, им предшеству- ет обращение к роботу по имени, чтобы робот гарантированно понимал, что команда адресована именно ему. Эти команды редко понимаются неправильно, хотя иногда и слишком буквально, но выполняются всегда с бессмысленной тщательностью. Давайте посмотрим, во что превращается базисная речь после ее преобразования в электрический сигнал при помощи микрофона и какие приборы нужны для отображения этих электрических сигналов. В предыдущих экспериментах я представил вам усилитель звуковых частот LM386. Эта микросхема преобразует малые электрические сигналы с микрофо- на в мощный сигнал, который можно подать на громкоговоритель. Обычно подобные сигналы исследуют при помощи осциллографа, который отображает изменение уровней напряжения во времени (рис. 9.19). Рмс 9.19. Ощил.-кхрофиче<мме изображения сигналов на входе микрофона и но выходе усилителя Заглянем внутрь самого простенького осциллографа (рис. 9.20). Применяв- шаяся в ЭЛТ электронная пушка будет постоянно активна, развертывая луч по экрану слева направо, а затем скачком возвращая его обратно и вновь начиная развертку. Такое движение электронного луча обеспечивает система электро- статических отклоняющих пластин, которой управляет генератор развертки (или генератор качающегося напряжения). Генератор развертки вырабатыва- ет пилообразное напряжение, которое подается на отклоняющие пластины и вызывает движение луча слева направо. Осциллограф - довольно дорогой прибор ($500 и выше). Самый простой и недорогой осциллограф даст вам возможность наблюдать один или два изме- няющихся сигнала с частотами до нескольких мегагерц. Более дорогие модели имеют больше двух входов и способны отображать сигналы с частотами в диа- пазоне гигагерц (в диапазоне сверхвысоких частот, СВЧ). Вместо того чтобы требовать от вас приобретения осциллографа, я покажу простую схему, позволяющую наблюдать несложные электрические сигналы, например входной звуковой сигнал (рис. 9.21). Эта схема преобразует малые сигналы звуковых частот в сигналы, которые можно сравнивать между собой.
NataHausi Эксперимент 52. Измеритель уровня звука 215 Кадровая Электронно- отклоняющая Строчная тп^?я/чпт^ система отклоняющая трубка (ЭЛТ) система / 7 Электронный у*" | Форма входного сигнала, «нарисо- ванная» на-ЭЛТ Вход Усилитель Электронная пушка «Пилообразное» напряжение Генератор развертки Рис. 9.20. Укрупненная структурная схема осциллографа Рис 9.21. Схема измерителя уровня звука Кроме того, можно зажигать светодиоды в зависимости от уровня звука на выходе. Я обеспечил выход только на четыре светодиода, чтобы схема по раз- мерам соответствовала макетной плате, установленной на печатной плате (Приложение 3). Хочу обратить ваше внимание на несколько моментов. Во-первых, когда схе- ма будет работать, вы увидите, что светодиоды для громких шумов и произнесен- ных слов загораются на очень короткое время. Чтобы сделать их действие более заметным, используйте максимально яркие светодиоды. В Интернете вы найде- те схемы, поддерживающие напряжение в течение нескольких сотен миллисе- кунд с тем, чтобы светодиоды были активны в течение нескольких секунд. Во- вторых, мне пришлось увеличить коэффициент усиления микросхемы LM386 за счет подключения к ней потенциометра номиналом 100 кОм. Потенциометр включен так, чтобы усиление возросло более, чем в 200 раз, что обычно осуще- ствляется установкой конденсатора между выводами Усиление. Фактически усиление схемы составляет примерно 5000 раз, и это сделано, чтобы увеличить
216 ГЛАВА 9. Звуковая электроника выходной сигнал до того уровня, при котором светодиоды будут индицировать различные уровни звука на входе. Вам придется изменять номиналы резистора и потенциометра компонентов, соединенных с микросхемой LM386, чтобы схема работала с вашим микрофоном. Наконец, можно купить микросхемы, выполняющие те же функции, что и эта схема, и из них собрать схему очень просто. Я же решил построить схему на дискретных элементах, чтобы вы луч- ше поняли, как звуковые сигналы преобразуются в электрические и как рабо- тают компараторы. Микросхема LM339 (рис. 9.22) состоит из четырех компараторов напряжения с открытым коллектором. Я сделал делитель напряжния в виде лесенки, обеспе- чивающий ступенчатый набор напряжений, которые можно использовать для сравнения с уровнем входного звукового сигнала, поступающего на микросхему LM386. Эта схема очень похожа на ту, которая встроена в вашу стереосистему для отображения уровня выходного звука при помощи набора светодиодов. Чи- сло светодиодов, отображающих уровень звука, можно увеличить, просто доба- вив еще одну микросхему LM339 с четырьмя добавочными резисторами 10 кОм, чтобы установить дополнительные «ступеньки» напряжения для компаратора. Рис 9.22. Микросхема 1М339. четыре компаратора с открытым коллектором на выходе Когда звук попадает на микрофон, тот вырабатывает малый сигнал, если он включен в делитель напряжения (рис. 9.23). Сигнал проходит через конденса- тор и резистор, а затем усиливается микросхемой LM386. Прежде чем сформи- рованный сигнал поступит на компаратор LM339, он «привязывается» к нулю с помощью конденсатора 0,01 мкФ и резистора 10 кОм. Выходной делитель напряжения действует как регулятор-уровня, гарантируя, что выходной сигнал микросхемы LM386 не будет ограничен. Ниже показаны отдельные элементы входной части схемы (см. рис. 9.21) и форма сигнала в различных ее точках, отображенная на экране моего осциллографа (рис. 9.23). Чтобы осознать разницу амплитуд сигналов (и понять, что такое «малый сигнал»), взгляните на нижнюю часть рисунка, где показаны уровни напряже- ния для каждого сигнала. Уровень напряжения указывает диапазон напряже- ний между делениями координатной сетки на экране осциллографа, показанной пунктиром на осциллограмме (так же, как и на любой другой осциллограмме, приведенной в этой книге).
Эксперимент 52. Измеритель уровня звуке 217 2-> э-> ,9В 9В Л'аТаЙам«7йё [--------4- I '"А... । тч 0.01pF 3 1OpF irlh rSJ8 Юк £ LM386 __Электре- I 10- 6 5 0.01 pF 4 iook : :юи Рис. 9.23. Работа звукового усилителя в измерителе уровня звука
Глава 10 Цифровые логические микросхемы Математическая логика возникла благодаря потребности понимать философ- ские положения, например, следующее: И вот, некоторые из этих ощущений настолько очевидно отчетливы и в то же время настолько элементарны, что мы никогда не можем думать о них иначе, чем полагая их истинными. Тот факт, что я существую на свете именно столько време- ни, сколько я полагаю, или тот факт, что совершенное действие невозможно от- менить, являются примерами истинных утверждений, относительно которых мы явно обладаем уверенностью такого рода. Ибо мы не можем подвергнуть их со- мнению, пока мы так думаем;'но мы не можем думать так, в то же время не думая, что они истинны, как и предполагалось. Следовательно, мы не можем усомниться в них, одновременно будучи уверенными, что они истинны; то есть мы не можем усомниться в них никогда. Философские произведения Декарта, тома I и II Можно понять, что Декарт пытается сказать в этой цитате, читай ее, но я был близок к тому, чтобы полностью забыть, что в точности в ней говорится, хотя провел немало минут за изучением текста и в попытках разбить его на несколько простых положений. В частности, проблема в том, что эта цитата несколько смущает из-за того, что кажется набором несущественных утвержде- ний, а также, очевидно, плохо построенными фразами. Если вы, как и я, испы- тываете затруднения при осмыслении того, какую идею Декарт пытается вы- двинуть в этом отрывке, не беспокойтесь: у наслорошая компания, потому что другие люди в течение долгих столетий старались уяснить, что именно пытает- ся сказать философ. Одним из людей, способствовавших тому, чтобы философы понимали, что именно говорят другие философы, был школьный учитель по-имени Джордж
^aiaHaus,^ Цифровые логические микросхемы 219 Буль (George Boole). Буль работал над тем, чтобы описать метод преобразова- ния выраженных речевыми средствами утверждений (например, «У всех собак есть два уха и мех*) в последовательность математических формулировок, что- бы лучше понимать их и проверять их обоснованность; Благодаря тому, что текстовое утверждение формулируется по-другому, в виде математической фор- мулы, а также тому, что делается допущение о том, что каждое утверждение либо истинно, либо ложно, он выработал простой Набор правил, которые ста- ли основой цифровой электроники и компьютерных систем. Кроме того, он помог людям понимать путаные высказывания философов вроде Декарта. Если бы у меня был старый пес, попавший в собачье сражение и потеряв- ший ухо, его нельзя было бы считать собакой, если пользоваться представлен- ными ранее логическими утверждениями, которые применялись для определе- ния понятия «собака»: • у моего домашнего любимца есть мех. (Истинно); • у моего домашнего любимца есть одно ухо. (Истинно); • мой домашний любимец является собакой. (Ложно). Последнее утверждение ложно, потому что согласно исходному предполо- жению считалось, что у всех собак имеется два уха и мех. Любое животное, не удовлетворяющее этим критериям, не могло бы безошибочно называться соба- кой. Вы, вероятно, думаете, что, пользуясь для проверки утверждением «у всех собак есть два уха и мех», вы могли бы объявить, что кошка или кролик являют- ся собаками, и будете правы. Для нас здесь интересна идея применения математических принципов к таким утверждениям. Если мы считаем, что нечто может быть либо истинным, либо ложным, то можем распространить это знание на другие известные нам вещи, чтобы проверить, истинно ли что-то. Выше я предположил, что живот- ное является собакой, если у него имеется два уха и мех. Если бы у вас было животное без меха, но с двумя ушами, то его нельзя было бы считать собакой точно так же, как если бы у вас было животное с тремя ушами и без меха. Сведя все это в таблицу (известную как таблица истинности), мы могли бы записать эти утверждения в удобном для понимания формате (табл. 10.1). Таблица 10.1. Таблица истинности для определения понятия «собака» Два уха Мех Собака? Ложно Ложно Ложно Ложно Истинно Ложно Истинно Истинно Истинно Истинно Ложно Ложно В цифровой электронике вместо понятий «истинно» и «ложно» используют- ся «1» и «0» или «высокий уровень» и «низкий уровень». Таблица истинности функции И, записанная как табл. 10.1, может быть сформулирована на этой основе иначе с обозначениями А для понятия «Два уха» и В для понятия «Мех» (табл. 10.2 и 10.3). Табл. 10.1-10.3 являются примерами таблиц истинности для
220 ГЛАВА 10. Цифровые логические микросхемы функции И, результирующее значение которой истинно тогда и только тогда, когда оба входных значения истинны. Таблице 10.2. Таблица истинности логического И А В АиВ 0 0 0 0 1 0 1 1 1 1 0 0 Таблица 10.3. Таблица истинности для уровней напряжения на входах и выходе логического элемента И А В АиВ Низкий Низкий Низкий Низкий Высокий Низкий Высокий Высокий Высокий Высокий Низкий Низкий Заметьте: я выписал различные значения величин А и В так, что каждый раз меняется значение только одной из входных величин. Я так делаю, поскольку по мере усложнения логических операций все важнее становится их упроще- ние, и изменение всего одной из величин за один раз позволяет соотношению между величинами стать более очевидным. Наряду с работой элемента И Буль определил, что две величины в утвер- ждении ИЛИ будут истинными (например, «Кошка - это животное с когтями или с плохим характером»), если одно или оба условия истинны. С помощью формата таблицы истинности, который я использовал для функции И, функ- ция ИЛИ записывается, как показано в табл. 10.4. Таблица 10.4. Таблица истинности логического ИЛИ А В А или В 0 0 0 0 1 1 1 1 1 1 0 1 В современном разговорном английском языке для ситуации, которая дол- жна быть истинной, под логическим ИЛИ мы понимаем либо одну величину, либо другую, а не обе вместе. Так думать о функции ИЛИ неправильно, ведь если обе величины истинны (либо принимают значение 1 или высокого уров- ня), то и результат будет истинным. Последней фундаментальной логической операцией из открытых Булем была операция НЕ, или операция отрицания*. Она истинна, если ее входная * Эту операцию называют также логической инверсией. - ПриА. nepeb
Эксперимент 53. Роботе основных логических схем 221 yatuHaus^i!. величина ложна (как в утверждении «У автомобиля нет шести колес*). Опера- ция НЕ отличается от И или ИЛИ, так как у нее только одна входная величи- на, подлежащая проверке (называемая параметром). Таблица истинности для операции НЕ приведена в табл. 10.5. Таблице 10.5. Тоблица истинности логического НЕ А не А 0______________________1 _______________________________________________________ 1 о Буль смог объединить эти три основные операции, чтобы выполнить очень сложные операции (такие, как проверка утверждений, сделанных в процити- рованном в начале данной главы абзаце). Через много лет после публикации этих правил в книге «Исследование законов мышления» («Ап Investigation of the Laws of Thought», 1854) их вновь открыли разработчики архитектуры и конструкторы, проектировавшие первые электронно-вычислительные маши- ны, которые были способны недорого и эффективно распознавать'высокий и низкий уровни напряжения, а также выполнять с ними простые операции. Правила Буля стали основой для операций в компьютерах и получили на- звание булева алгеба. В последующих экспериментах я представлю вам многие сложные выражения булевой алгебры, а также основные схемы, в которых они реализуются. Эксперимент 53. Работе основных логических схем Детали Инструменты Набор инструментов для радиомонтажа Смонтированная печатная плата с батареей. Два од- нополюсных переключа- теля на два направления. Два резистора 1 кОм. Ре- зистор 470 Ом. Три свето- диода любого цвета. 74С08, КМОП-элемент И. 74С32, КМОП-алемент ИЛИ. 74С04, КМОП-элемент НЕ Конденсатор 0,01 мкФ любого типа По-моему, наилучший способ понять работу цифровой логики - собрать не- сколько схем и испытать их. Схемы, представленные в этом эксперименте, можно собрать всего за несколько секунд, а с помощью светодиодов вы увиди- те, как изменяются выходные сигналы исходя из значений входных сигналов. * В отечественной научно-технической литературе часто встречается и другое название булевой алгебры, - алгебра-логика. - Прим, перев.
222 ГЛАВА 10. Цифровые логические микроаемы Хотя с современными логическими микросхемами, построенными на базе тран- зисторно-транзисторной логики (ТТЛ) (Transistor-to-Transistor Logic, TTL) очень легко работать, они требуют 5-вольтового стабилизированного источника эле- ктропитания. Чтобы обойтись без отдельного источника, мы будем использовать логические микросхемы 74Схх, способные работать от напряжений от 3 до 15 В и идеально приспособленные к щелочной батарее напряжением 9 В*. ТТЛ - технология логических микросхем, основанная на биполярных тран- зисторах, изобретенная в середине 1960-х годов, - популярна и в наши дни. Сами чипы имеют высокое быстродействие (время перехода из одного состоя- ния в другое не более 8 нс) и приемлемые возможности в части выходного тока (приблизительно 20 мА). Встроенные логические функции для чипов 74хх на- зывают вентилями или ключами, так как они «выпускают» выходные сигналы, основываясь на величине входных сигналов. Логические микросхемы 74Схх имеют то же расположение выводов, что и стандартные чипы ТТЛ (см. о них в конце этой главы). Они могут работать в широком диапазоне значений входной мощности и обеспечивать выходной ток, достаточный для зажигания светодиода. Они работают не с такой большой скоростью, как ТТЛ, и не могут выдать или принять такие большие токи, как ТТЛ. Большей частью микросхемы 74Схх можно включать в любые разработ- ки, где используется стандартная ТТЛ, до тех пор пока вы помните, что логика на комплементарных структурах металл-окисел-полупроводник (КМОП-структурах) (Complementary Metal Oxide Semiconductor, CMOS) основана на напряжениях, тогда как ТТЛ основана на токах. Далее в этой главе мы обсудим это важное раз- личие подробнее. Если вы хорошо знакомы с электроникой, вас может удивить, что я не исполь- зую элементы КМОП серии 40хх. Серия 40хх - наиболее популярное семейство логических микросхем КМОП, но у них недостаточная нагрузочная способность по току для зажигания светодиодов. Чтобы работать с этой серией с нагрузкой на светодиод, вам придется использовать биполярный транзистор для усиления выходного тока (рис. 10.1). Транзистор позволяет току протекать через светоди- од, когда выходной ток КМОП-вентиля поступает в базу транзистора. Рис 10.1. Усилитель токе для нагрузки элемента серии 40хх но светодиод Здесь и далее хх обозначает порядковые номера разработки для конкретного типа микросхемы в серии, например 74С08. - Прим, перев.
ftatattausiffli. Эксперимент 53. Робота основных логических схем 223 Для изменения напряжения на входе логических микросхем служит цепь, показанная слева (рис. 10.2). В этой цепи, когда переключатель замкнут, ток от источника питания проходит через светодиод и резистор 1 кОм. Напряжение в точке соединения переключателя с резистором 1 кОм будет равно напряже- нию батареи за вычетом падения напряжения на светодиоде, которое всегда будет достаточно велико, чтобы на входе логического элемента распознавать- ся как «высокий» уровень напряжения. Если переключатель разомкнут, логи- ческий элемент будет соединен с «землей» через резистор 1 кОм, а светодиод гореть не будет. С помощью такой цепи высокое напряжение (или логическая «1») будет зажигать светодиод, а напряжение низкого уровня (или логический «0») не позволит светодиоду загореться. Выходная цепь (справа на рис. 10.2) будет зажигать светодиод, когда напряжение на выходе имеет высокий уровень, и не будет зажигать его, когда на выходе низкий уровень. Эти цепи позволят вам легко отслеживать работу логической схемы, причем цифровой мультиметр или другое испытательное оборудование не понадобятся. V батареи Однополюсный, переключатель на одно направление Вход логического элемента Рис. 10.2. Цепи со светодиодами для испытания логических элементов по входу и выходу Наиболее очевидной логической функцией или элемен- том является элемент И (рис. 10.3), который пропускает электрический сигнал, только когда уровень на обоих вхо- дах высокий. Взгляните на возможную схему реализации элемента И на двух реле (рис. 10.4): когда входные сигна- Рис 103. Логический элемент И лы вызывают замыкание обоих реле, на выход поступает напряжение Упитания, Проверить работу элемента И позволяет следующая схема (рис. 10.5), где я применил соглашение об индикации факта подачи на- пряжения на микросхему при помощи одного из ее элементов. V питания Рис 10.4. Аналог логического элемента И на двух реле
224 ГЛАВА 10. Цифровые логические микросхемы Рис. 10.5. Схема для проверки работы логического элемента И Собрав схему, ставьте переключатели в разные положения, чтобы прове- рить функции логического элемента И. Зная, что при включенном светодиоде соответствующий входной сигнал имеет высокий уровень, вы можете соста- вить таблицу, чтобы исследовать работу логического элемента И (табл. 10.6). Убедитесь, что он работает так, как описано во введении к данной главе. Таблица 10.6. Таблица истинности для проверки логических элементов И и ИЛИ Напряжение на выводе 1 Напряжение на выводе 2 Напряжение на выводе 3 (Выход) Низкий (светодиод погашен) Низкий (светодиод погашен) Низкий (снетодиод погашен) Высокий (светодиод горит) Высокий (светодиод горит) Высокий (светодиод горит) Высокий (саетадиод горит) Низкий (светодиод погашен) а—\_________выход Усвоив работу логического элемента И, вы можете по- в *—смотреть, как работает логический элемент ИЛИ (рис. 10.6). Рис 10.6. Логический Он выдает на выходе высокий уровень сигнала, если хотя бы элемент ИЛИ на одном из входов присутствует сигнал высокого уровня (рис. 10.7). Монтаж ИЛИ на макетной плате идентичен мон- тажу, который использовался для логического элемента И. Последний из базовых элементов - логический элемент НЕ (рис. 10.8), ко- торый инвертирует логический сигнал, изменяя высокий уровень на низкий. Элемент НЕ отличается от элементов И и ИЛИ тем, что имеет всего один вход. Собрав схему для проверки логического элемента И (рис. 10.9), составьте таблицу из трех рядов и двух колонок для записи входных величин и соответ- ствующих им выходных.
ftatafiaus Эксперимент 53. Робота основных логических схем 225 А Выход Рис 10.8. Логический элемент НЕ Рис. 10.9. Схема для проверки логического элемента НЕ
226 ГЛЙВЙ10. Цифровые логические микросхемы Эксперимент 54. Сенсорный переключатель КМОП Детали Инструменты Смхтирыаян.'» печатная плата с макетной платой. Жесткий провод с сеодг*и- ком течением 0,2 мм2. Ми- кросхема 74С04. Резистор 10 МОм. Резистор 1,5 МОм. Резистор 1 кОм. Светодиод любого цвета. Конденсатор 0,01 мкФ любого типа Набор инструментов для радиомонтажа. Устройство для зачистки проводов Весьма часто считают, что напряжение всегда используется в качестве входно- го сигнала цифровых логических элементов. Это заблуждение. Предполагают также, что цифровые входы управляются напряжением, но и это не всегда так. Напряжение служит для проверки логических уровней, однако, как я покажу ниже, цифровой логикой можно управлять как напряжением, так и током, при- чем наиболее популярные серии микросхем управляются именно током. Когда я был подростком, конструкция различных изделий нередко предусма- тривала наличие сенсорного переключателя. Пользователь просто прикасался к металлической клавише на электронном устройстве, которое выполняло ка- кие-то действия. Взгляните на схему - прототип сенсорного переключателя (рис. 10.10): когда пользователь прикоснется к металлической клавише, в комнате возникает переменное напряжение величиной 110 В, которое получается в резуль- тате усиления напряжения, индуцированного телом человека, при помощи опера- ционного усилителя (ОУ) с дальнейшей его передачей на другую часть схемы. Диод в этой схеме ограничивает входное напряжение и гарантирует, что только положительная составляющая сигнала попадет на усилитель. Такой спо- соб включения усилителя известен как неинвертирующий усилитель, коэффици- ент усиления которого (или просто усиление) определяется по формуле: Усиление ОУ= (1 + ВЬ/ Ra) Рис. 10.10. Простой сенсорный переключатель на основе ОУ
ftialaHausi Эксперимент 54. Сенсорный переключатель КМОП 227 Выход усилителя подсоединен к инвертирующему входу ОУ через делитель напряжения, и ОУ усиливает любые сигналы, поступающие на его неинверти- рующий вход. Усиление схемы должно быть не менее 200, обеспечивая тем са- мым, что сигнал на выходе будет либо отсутствовать, когда переключателя не касаются, либо принимать положительное значение, когда переключателя ко- снутся и на ОУ будет подано напряжение человеческого тела. Логические микросхемы КМОП действительно управляются напряжением и могут применяться для моделирования поведения усилителя с высоким усиле- нием, такого как операционный усилитель (см. рис. 10.10). КМОП логический элемент НЕ (инвертор) показан ниже (рис. 10.11). Ограни- чивающий диод Vdd Вход Ограни- чивающий диод Полевой МОП-транзистор с р-каналом Инверти- рованный буфериро- ванный вход Полевой МОП-транзистор с п-каналом -= Vss Рис. 10.11. базовая схема инвертора КМОП Два ограничивающих диода в составе КМОП логического элемента НЕ га- рантируют, что уровень входного напряжения не превысит границы напряже- ния источника питания (при этом потенциально возможно повреждение тран- зисторов внутри чипа). Полевой МОП-транзистор с n-каналом и полевой МОП-транзистор с p-каналом, применяемые в логических элементах КМОП, очень чувствительны к удару статического электричества (его также называют электростатическим разрядом (electrostatic discharge, ESD), и два диода помога- ют исключить повреждающие напряжения из сигнала, поступающего на тран- зисторы. Главное отличие полевых МОП-транзисторов от биполярных транзисторов в том, что полевые МОП-транзисторы управляются напряжением, а не током. Логические микросхемы на основе полевых МОП-транзисторов дешевле бла- годаря исключению резисторов из логических схем и тому, что при изготовле- ни требуется меньше технологических операций. Два транзистора работают так (рис. 10.12): когда высокое напряжение по- ступает на вход логического элемента, полевой МОП-транзистор с п-каналом, соединенный с «землей», замыкает выход на «землю» (на уровень потенциала Vss или КМОП-логики); когда на входе низкое напряжение, полевой МОП-тран- зистор с n-каналом закрывается, а полевой МОП-транзистор с p-каналом от- крывается, связывая выход со входом питания микросхемы (Vdd).
218 ГЛАВА 10. Цифровые логические микросхемы Vdd Полевой МОП- транзистор с р-каналом включен Vdd Вход «О» Полевой МОП- транзистор с п-каналом выключен Ток, текущий от источника з полевой 1-транзистор «1» на вы- ходе Vdd v9d Вход«1» Vdd Полевой МОП- транзистор । *— с p-каналом I выключен 11 Полевой МОП- транзистор с п-каналом включен «0» ------------навы- ходе Ток низкого уровня через полевой МОП- ранзистор с п-каналом Рис. 10.12. Робота инвертора КМОП для различных значений сигнала но входе Чтобы продемонстрировать работу инвертора КМОП и то, как им управ- лять при помощи напряжения, я разработал схему, где вход инвертора поддер- живается на уровне низкого напряжения благодаря резистору 10 МОм, соеди- ненному с «землей», но это состояние изменится, когда вход соединяют с источником напряжения (рис. 10.13). Рис 10.13. Проктичвоюя схема включения сенсорного переключателя При монтаже схемы поместите два отрезка оголенного провода в непосред- ственной близости (рис. 10.14). Эти два зачищенных провода - ваш сенсорный переключатель; касаясь их обоих, вы замыкаете цепь с очень малым током, и высокое напряжение, поданное на вход элемента КМОП, вызовет выключение светодиода. Убрав палец, вы дадите возможность входу элемента вновь зам- кнуться на «землю» через резистор 10 МОм, и светодиод загорится. Может быть, вы захотите убрать оголенный провод, соединенный с Vdd, чтобы посмотреть, вызовет ли само индуцированное в вашем теле напряжение перемену состояния инвертора. Если вы находитесь комнате с люминесцент- ным освещением, есть большая вероятность, что это произойдет. А вот в ком- нате с освещением от ламп накаливания, излучающих не так много энергии, касание переключателя может не вызвать выключения светодиода; потому я и включил в схему соединение с Vdd. В норме ваша кожа обладает сопротивлением
'NataHausll Эксперимент 54, Сенсорный переключотель КМОП 229 Рис. 10.14. Монтаж сенсорного переключателя КМОП. Обратите внимание на огопе»ыые провода для соединения с цепью +5 В, образующие тактильный сенсор порядка 1,5 кОм. Касаясь как провода, подключенного к Vdd, так и провода, соединенного с резисторами 1,5 МОм и 10 МОм, вы фактически создаете цепь делителя напряжения, с которого на вход инвертора подается напряжение, близкое к Vdd. Произведя вычисления, вы установите, что напряжение, пода- ваемое на логический элемент КМОП, при этом составляет около 90% от на- пряжения Vdd. Может получиться, что светодиод будет загораться непредсказуемо, когда вы касаетесь оголенного провода на входе или просто проводите рукой над микросхемой. В данной схеме могут присутствовать напряжения, индуцирован- ные от вашего тела, величины которых иногда достаточно, чтббы входы КМОП распознали их как высокие значения входного сигнала. Логические элементы КМОП работают похоже на усилители с очень большим усилением (как цепь операционного усилителя на рис. 10.10). Поэтому все неиспользуемые входы КМОП в ваших схемах следует подсоединять либо к Vdd, либо к Vss, иначе вы можете столкнуться с неожиданными откликами схемы. Пожалуйста, не пытайтесь «разрядить» свое тело, шаркая по синтетическо- му ковру или касаясь проводов под напряжением, прежде чем коснуться пере- ключателя. В первом случае вы будете подавать на логические элементы боль- шую волну напряжения, и весьма вероятно, что вы их повредите, несмотря на наличие ограничительных диодов на входе.
230 ГЛАВА 10. Цифровые логические микроссемы Эксперимент 55. ТТЛ-элемент НЕ не биполярных транзистором Детали Инструменты Набор инструментов для радиомонтажа. Приспо- собление для зачистки проводов. Цифровой муль- тиметр Смонтированюм печатная плата с макетной платой. Четыре транзистора ZTX649. Два кремниевых диода 1N914/1N4148. Ре- зистор 1 кОм. Резистор 150 Ом. Резистор 2,2 кОм. Резистор 1,5 кОм. Рези- стор 4,7 кОм. Два резистора 100 кОм. Потенциометр 10 кОм для установки на печатную плату. Однополюс- ный переключатель на два направления Самая популярная форма цифровой логики, с которой большинство начинает работать, называется транзисторно-транзисторная логика (ТТЛ) (Transistor-to- Transistor Logic, TTL). ТТЛ строится из биполярных п-р-п-транзисторов и ре- зисторов, встроенных в кремниевый кристалл. В отличие от КМОП-логики ТТЛ управляется током, что дает ей несколько иные рабочие характеристики. В главе, посвященной оптоэлектронике, я выполнял ряд логических функ- ций с помощью инвертора на резисторах и п-р-п-транзисторах. Возможно, вы приняли его за логический элемент ТТЛ, но на самом деле это не так. Указан- ная схема работает как инвертор; объединив несколько таких схем, можно выполнять определенные логические функции, но это не логический элемент ТТЛ. Этот элемент относится к резисторно-транзисторной логике (РТЛ) (Resistor- to-Transistor Logic, RTL) - технологической предшественнице ТТЛ. Элементы РТЛ годятся для логических функций (см. главу 8), но они не так надежны, как ТТЛ. В технологии ТТЛ добивались решения двух проблем логи- ческих элементов РТЛ. Первая: ограниченная величина тока, который может проходить через резистор, соединенный с коллектором транзистора. Можно использовать резистор небольшого номинала, но если транзистор открыт, то через резистор на «землю» пропускается большой ток, что вызывает большие потери мощности. Вторая проблема: применение токоограничивающего резистора между це- пью питания (которая называется Vcc для ТТЛ) и коллектором транзистора. Вы должны признать, что этот резистор будет являться элементом RC-цепи, кото- рая используется для задания времени работы таймера 555, а для нарастания и спада сигналов потребуется некоторое время. Эта задержка нарастания и спа- да сокращает время, в течение которого могут быть переданы сигналы, что ухудшает качество работы РТЛ-логики.
Эксперимент 55. ПЛ-элемент НЕ но биполярных транзисторах 231 Инвертор ТТЛ (рис. 10.15) выглядит более сложным, но на самом деле это очень элегантная схема по сравнению с логическими элементами КМОП. Рис. 10.15. Схема коертора ТТЛ Первая особенность ТТЛ в том, что она управляется не напряжением, как логика КМОП. ТТЛ активна, когда ток вытекает из нее. Включенные на входе диод, резистор и транзистор можно представить как модель, состоящую из трех диодов и резистора. Вам предстоит узнать, что ток может вытекать по входной цепи и он течет от токоограничивающего резистора, подключенного к цепи питания микросхемы. Ток не может втекать по входному выводу логического элемента ТТЛ из-за диода в цепи эмиттера входного транзистора, включенного с обратным смеще- нием. Это значит, что в элементе, который, помимо прочего, управляется то- ком, используемый для управления ток вырабатывается внутри чипа, что ми- нимизирует возможное беспокойство относительно того, правильную ли величину тока вы подаете на логический элемент. Когда ток не вытекает из входа микросхемы инвертора ТТЛ, то он течет по иному пути (рис. 10.16) и в конце концов открывает транзистор (на схеме вни- зу справа), соединяя тем самым выходной вывод микросхемы с «землей» (на выходе низкий уровень напряжения). Когда ток вытекает по входному выводу ТТЛ (рис. 10.17), то ток, открывший правый нижний транзистор, перестает течь, поскольку токи внутри микросхемы перераспределяются по другим пу- тям. Это изменение в протекании токов в итоге открывает правый верхний транзистор, надежно привязывая выход к цепи питания и переводя выход эле- мента в состояние высокого напряжения. Чтобы посмотреть, как работает инвертор ТТЛ, соберите его в виде следу- ющей схемы (рис. 10.18). Соединяя с землей однополюсный переключатель на два направления, вы позволите току вытекать из инвертора ТТЛ в «землю», и это приведет к тому, что верхний правый транзистор откроется, направляя ток в светодиод, чтобы зажечь его. Если вы проверили напряжение на входном
232 ГЛЙВЙ 1(L Цифровые логические микросхемы Vcc Рис. 10.16. Инвертор ТТЛ с логической «1» на входе или с неэоземленным входом Выход, «привя- занный» к Vcc Рис. 10.17. Инвертор ТТЛ с логическим «0» на входе выводе, когда переключатель был разомкнут или соединен с цепью 9 В, вы убе- дитесь, что напряжения нет; это происходит благодаря надежному отрицатель- ному смещению диодов, блокирующему протекание тока. А при отсутствии тока нет и падения напряжения. Сделав это, вы можете рассмотреть аналоговые аспекты работы схемы, вве- дя в ее состав потенциометр (рис. 10.19) и настроив его так, чтобы светодиод включался и выключался. Измерьте напряжение на потенциометре, а затем отключите потенциометр от схемы и измерьте сопротивление (см. рис. 10.19). С помощью закона Ома вы установите, что собранная схема инвертора имеет пороговый ток примерно 1 мА. Инвертор ТТЛ пригоден для выполнения операции НЕ, но вам, вероят- но, интересно, как он работает в многовходовых логических элементах,
^atattaus^l Эксперимент 55. ТТЛ-элемент НЕ но биполярных тронзисторах 233 Рис. 10.18. Схема для проверен напряжений управления ТТЛ Рис 10.19. Схема для проверки рабочих токов ТТЛ построенных на логических элементах TTJL Рискуя отвлечь ваше внимание от следующего эксперимента, я хочу все же сказать, что все логические эле- менты ТТЛ основаны на этой схеме. Вместо входного транзистора с одним эмиттером в базовых логических элементах ТТЛ применяется входной тран- зистор с несколькими эмиттерами. Эта модификация превращает инверторы в логические элементы И-НЕ, представляющие собой элементы ТТЛ, на ос- нове которых строятся все остальные (рис. 10.20). Логика КМОП строится из элементов ИЛИ-НЕ.
234 ГЛАВА 10. Цифровые логические микросхемы Рис. 10.20. ТТЛ элемент И-НЕ, в котором используется двухэмиттерный тронзистор Эксперимент 56. Схемы вычисления суммы произведений Детали Инструменты Набор инструментов для радиомонтажа Смонтированная печат- ная плата с батареей. Три однополюсных пере- ключателя на два направ- ления. Четыре резистора 1 кОм. Четыре светодио- да любого цвета. 74С08, КМОП-элемент И. 74С32, КМОП-элемент ИЛИ. 74С04, КМОП-элемент НЕ. Три конденсатора 0,01 мкФ любого типа Когда я представлял вам базовые логические схемы, то одна вещь, возможно, осталась не до конца понятной: эти схемы составляют блоки, и для такого при- менения нет необходимости усложнять их функции. Объединяя базовые логи- ческие схемы, такой блок можно сделать многовходовым для создания выходных сигналов специальной формы, удовлетворяющих специфическим требованиям. Например, «программируя» функции видеомагнитофона, вы можете либо на- жать клавиши Запись и Воспроизведение на лицевой панели устройства, либо нажать кнопку Запись на пульте дистанционногоуправления. Вы имеете возмож- ность записать это как следующее утверждение: «Начать запись, если на передней панели видеомагнитофона нажаты клави- ши Запись и Воспроизведение или если на пульте дистанционного управле- ния нажата кнопка Запись».
Эксперимент 56. Схемы вычисления суммы произведений 235 Это утверждение не такое мудрое, как логические утверждения великих философов, но в нем соблюдаются те же законы логики, что обсуждались в начале этой главы. Если считать, что положение органов управления видеомаг- нитофона истинно, когда они нажаты, и заменить логическую функцию И зна- ком точки (•), логическую функцию ИЛИ знаком сложения (+), то нашу функ- цию можно записана так: Начало Записи = (Запись на Панели • Воспроизведение на Панели) + Запись Дистанционная Указанные два символа для функций И и ИЛИ введены исходя из двух фун- кциональных операций. Функция И ведет себя, как операция умножения. При использовании двоичных значений результат равен 1, только если на обоих вхо- дах присутствует 1 (если на один вход подан 0, то 0, умноженный на любое значе- ние даст в результате 0; произведение двух единиц равно 1). Функция ИЛИ пред- ставляется сложением, так как ее результат не равен 0, если хотя бы один из входов не равен 0. Восклицательный знак (!) обозначает функцию НЕ*. Итак, вначале нужно объединить между собой входы, причем сигнал на них всех должен быть истинным для того, чтобы выходной сигнал оказался истин- ным. Выходы схемы И объединяются на элементе ИЛИ, чтобы выработать окончательный выходной сигнал. Пользуясь приведенной выше номенклату- рой, выход элемента И можно представить как произведение, а выход элемен- та ИЛИ - как сумму. Вот откуда происходит термин сумма произведений. Этот очень ясный интуи- тивно способ представления сложных логических функций будет использовать- ся на протяжении всей этой книги (и многих других книг). В данном экспери- менте я покажу, как объединяются логические функции в виде суммы произведений для того, чтобы сформировать сложную функцию. Ниже я показал декодер адресов памяти (рис. 10.21) и карту памяти для вы- мышленного вычислительного устройства, которое имеет восемь ячеек запо- минающего устройства (табл. 10.7). Четыре из них размещены на одном чипе. В таблице они представлены заштрихованными областями, и доступ к ним про- исходит, когда на вывод подается высокое напряжение (логическая «1»). Таблица 10.7. Корто памяти простого трехразрядного декодера адреса А2 А1 АО 0 0 ; о ? « ь г 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 is 1 ' Ч- , • < .J • > * ' ' о W ЙЧ * •, .-J- ' 3 1 1 1 * Заштрихованные области таблицы - адреса, для которых активна связь Чип памяти включен. В отечественной литературе для обозначения инверсии чаще используется черта над обозначе- нием переменной,, например, инверсия переменной А обозначается как А. - Прим, перев.
236 Г/IRBR 10. Цифровые логические микросхемы АО Сигнал А1 А2 Декодер —включения чипа памяти Рис. 10.21. Простой трехрозрядныи декодер адреса Табл. 10.7 можно рассматривать как таблицу истинности для функции деко- дирования. Прежде всего я рассматриваю три разряда входного адреса как дво- ичную величину из трех бит (потом я объясню это подробнее). Затем я изме- няю каждый разряд в упорядоченной последовательности, обеспечивая наличие в табл. 10.7 всех возможных сочетаний. Объединение А2 И А1 с целью получения высокого выходного уровня - одно из «произведений», о которых я говорил выше. Таблицу истинности мож- но преобразовать так, чтобы выделить два набора входных сигналов, которые приводят к ситуации «На выходе высокое напряжение», чтобы проверить, имеется ли между ними что-нибудь общее. В табл. 10.8 я передвинул пятую стро- ку так, чтобы она соседствовала с первой, и установил, что на выходе будет высокое напряжение, когда !А1 И !А0 истинно. Таблица 10.8. Результаты декодирования А2 А1 АО Выход Примечание 0 0 0 1 На выходе сигнал высокого уровня, если утверждение IA1 • ! АО истинно 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 На выходе сигнал высокого уровня, если утверждение А2 • А1 истинно 1 1 1 1 Чтобы это утверждение было истинно, значения А1 и АО должны быть ин- вертированы, так что нули заменяются единицами, прежде чем их объединять функцией И. Это осуществляется с помощью логического элемента НЕ, а эле- ктрическая схема, формирующая эту функцию, показана ниже (рис. 10.22). Рис. 10.22. Схеме декодера трехрозряднолэ адреса
Эксперимент 57. Простъ*е логические схемы; построенные но элементах ИЛИ-НЕ 237 Вас, может быть, интересует, существует ли такой метод представления ло- гики, как «Произведение сумм». Существует, но интерпретировать его несколь- ко труднее, так как придумать ситуацию, когда входы объединяются функция- ми ИЛИ, а затем результаты объединяются функцией И, интуитивно непросто. Взгляните, как будет выглядеть функциональная схема предназначенного для данного эксперимента декодера на основе произведения сумм (рис. 10.23). Эта схема довольно проста, хотя для того, чтобы действительно понять, как она работает, вам придется составить таблицу истинности и проработать выбор элементов, чтобы убедиться, что она работает на практике. АО А1 А2 Сигнал включения чипа памяти Рис 10.23. Произведение сумм, реолим/ощее те же функции, что и сумма произведений, использованная в данном эксперименте Эксперимент 57. Простые логические схемы, построенные ио элементах ИЛИ-НЕ Детали Смонтированная печатная плата с батареей. Два од- нополюсных переключа- теля на два направления. Два резистора 1 кОм. Ре- зистор 470 Ом. Три свето- диода любого цвета. Инструменты Набор инструментов для радиомонтажа 74С02, КМОП-элемент ИЛИ-НЕ. Два конденсатора любого типа 0,01 мкФ Когда вы покупали микросхемы для экспериментов 55 и 56, вы, видимо, пред- полагали, что они построены из неких составных частей, которые называются логическими элементами И, ИЛИ и НЕ. Точно так же, как я показал в экспери- менте 56 возможности построения сложных схем из этих базовых элементов, сами эти элементы построены из еще более простых элементов; в технологии логики КМОП используется логический элемент ИЛИ-HE (рис. 10.24). На выходе логического элемента имеется высокий потенциал (1), когда на обоих его входах потенциал низкий (0), и его очень легко построить по Рис. 10.24. Логический элемент ИЛИ-НЕ
238 ГЛЙВЙ10. Цифровые логические микросхемы технологии КМОП. Если рассмотреть его с точки зрения тех перспектив, ко- торые предоставлены вам на настоящий момент, то он состоит из логического элемента ИЛИ, выход которого подвергнут инверсии. Небольшой кружок на выходном выводе символа элемента ИЛИ показывает, что выход у микросхе- мы инверсный. Письменный формат функции этого элемента таков: !(А + В). Возможно, вы удивились, узнав, что логический элемент ИЛИ-HE легко построить по технологии КМОП. Взгляните, как двухвходовый логический элемент ИЛИ-HE реализуется с помощью четырех полевых МОП-транзисто- ров (рис. 10.25). Эту функцию можно реализовать на очень малой площади на кремниевом кристалле, причем не потребуются алюминиевые токопроводя- щие дорожки, способные вступать во взаимодействие с внутренними связями логического элемента в микросхеме. Работа элемента ИЛИ-HE показана ниже (рис. 10.26). Справа показано, что происходит, когда оба входа имеют низкий потенциал. В этом случае два поле- вых МОП-транзистора с p-каналом открыты и обеспечивают прямое прохож- дение тока от источника питания чипа на выход. Когда на входах низкий по- тенциал, полевые МОП-транзисторы с n-каналом закрыты, и соединения с землей нет. Слева же один из входов имеет высокий потенциал, и полевой МОП-транзистор с p-каналом, который подсоединен к нему, закрыт, тогда как полевой МОП-транзистор с n-каналом открыт. Это блокирует ток от источни- ка питания и замыкает выход непосредственно на «землю». Реализовать три основных функции, представленные в этой главе, с помо- щьр логических элементов ИЛИ-HE довольно просто, и это будет целью дан- ного эксперимента. Прежде, чем продолжить, я предлагаю вам смонтировать макетную плату (рис. 10.27); начиная с этого момента, вы будете делать специ- альную разводку для каждого отдельного логического элемента. Обратите вни- мание на светодиод, который должен работать на выходе схемы; такой выход будет использоваться для каждой представленной в этом эксперименте схемы. Для всех этих схем советую составить таблицы истинности, как в .первом экс- перименте данной главы, чтобы подтвердить результаты и гарантировать, что соединенные элементы функционируют как базовые логические элементы.
Эксперимент 57. Простые логические схемы, построенные но элементах ИЛИ-НЕ 239 Один вход с высоким напряжением Оба входа с низком напряжением Рис. 10.26. Работа КМОП -элемента ИЛИ-HE при различных значениях входных сигналов Vdd J3 D-9/F □ □□ а □ pi 8 ГО □ □ □ □ □ □ □ а □ □ а □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□ □□□□□ □□□□□ в-в- □ в- Ип[ Р15 Р14 Р13 Р12 Р11 РЮ Р9 Р8 Р7 Р6 Р5 Р4 РЗ □ О □ □ □ □ □ □ □ □ а □ □ □ □ □ □ □ □ а П.П П П П_СШДШХа □ nnnnn_____ппапп1о,п |О □ Однополюсные переключатели на два направления на макетной плате □ □ а а □ □ □ □ □ в» □ □□□С □ □□□С □ □ □ □ d □ □□□ст □ □□□□ □ □□□□ □ □□□ □ □□□ □ □□□ □ □□ □ □ □□□ □ □□□ □ □□□ □ □ □□ □ □□□ □ □ □ □ □ □ □ □ □ □ □ а □ □ □ □ □ □ □ ООО Выходной светодиод )□ о о □ □ □□□□ □ □ □ □ □ □ □□□□ □ □ □ □ □ п □ □ □ □ □ а| □ □ Рис. 10.27. базовый монтаж для испытания различных функций, построенных на основе двухвходовогз логического элемента ИЛИ-НЕ Основным логическим элементом является элемент НЕ (рис. 10.28). Если один из входов элемента ИЛИ-НЕ соединить с «землей», то его выходной сиг- нал будет зависеть от величины сигнала на единственном входе. Вам могут по- пасться схемы, в которых оба входа соединены, вместо того чтобы пользовать- ся одним входом, а другой вход соединять с «землей». Я же соединил один вход логического элемента ИЛИ-НЕ с «землей», чтобы минимизировать нагрузку для схемы, с которой на элемент подается входной сигнал. Для этой схемы, нагрузку которой обеспечивает переключатель, соединенный с источником
240 ГЛАВА 10. Цифровые логические микросхемы питания печатной платы, это вообще не проблема. Когда сигнал на входы по- дается с выхода элементов КМОП, нужно принимать во внимание число вхо- дов, подсоединенных к одному выходу. Практически идеально минимизировать его, подсоединив не более двух входов к одному выходу. Вход—J Пз3 Выход Рис. 10.28. Логический элемент ИЛИ-НЕ, использованный для создания элемента НЕ Используя способность элементов ИЛИ-НЕ инвертировать сигналы, из двух таких элементов можно собрать один элемент ИЛИ (рис. 10.29). Работу такой схемы довольно легко проследить; выходной сигнал элемента ИЛИ-НЕ инвертируется, чтобы получить неинвертированную функцию ИЛИ. Выход Рис. 10Л9. Два логических элемента, использованных для получения элемента ИЛИ Последним из трех базовых логических элементов является элемент И (рис. 10.30). Осознать, что она выполняет те же функции, что и логический элемент И, может быть, не так легко. Чтобы собрать логический элемент И, используя для этого элементы ИЛИ-НЕ, я применил законы, перечисленные в конце этого эксперимента. Зная, что я хотел реализовать функцию И (а у меня была лишь инвертированная функция ИЛИ), я начал с состояния двой- ной инверсии входных сигналов с объединением их элементом И и примене- нием теоремы де-Моргана. -Выход Рис. 10.30. Три логических элемента ИЛИ-НЕ, использованных для получения элемента И Приведенные ниже основные законы булевой алгебры позволяют создать практически любую функцию, используя базовые логические элементы данной технологии, или вообще любые имеющиеся элементы. Я допускаю, что я,
^ataHaus^. Эк лерулект 57. Простые логические схемы, nocrpocwwa но элементах ИЛИ-НЕ 241 видимо, очень быстро придумал эквивалент логического элемента И на основе элементов ИЛИ-НЕ, но по мере того, как вы лучше освоитесь с цифровой ло- гикой и приведенными ниже законами, у вас появится возможность свободно обращаться с законами, чтобы создать очень сложные схемы с помощью базо- вых элементов ИЛИ-НЕ (для логики КМОП) и И-НЕ (для логики ТТЛ). Функции идентичности: А • 1 - А А + 0 = О Установка/сброс выхода: А-0 = 0 А + 1 = 1 Закон двойного отрицания: !(!А) = А Законы комплементарности: А • !А - О А+ !А = 1 Законы идемпотентности: А • А = А А +А=А Законы коммутативности: АВ = ВА А+В=В+А Законы ассоциативности: (АВ)-С = А-(В- С) (А + В) +С = А + (В + С) Законы дистрибутивности: А- (В +С) = (А-В) +(А- С) А + (В- С) = (А+В)-(А + С) Теорема де-Моргана: !(А+В) = !А- !В !(А • В) = !А + !В
242 ГЛЯВЯ10. Цифровые логические микросхемы Эксперимент S8. Логические элементы Исключающее ИЛИ и сумматоры Детали элемент Исключающее любого типа 0,01 мкФ Инструменты Смонтирована печатная плата с батареей. Два од- нополюсных переключа- теля на два направлений. Четыре резистора 1 кОм. Четыре светодиода любо- го цвета. 74С08, КМОП- элемент И. 74С86, КМОЛ- ИЛИ. Два конденсатора Набор инструментов для рал пикотажа Я представил вам пять из шести базовых логических элементов (И, ИЛИ, НЕ, И-НЕ и ИЛИ-HE), которые обеспечат для вас почти все возможности для лю- бой цифровой схемы. Логический элемент последнего типа необходим для формирования базовых математических функций в цифровой логике, что я сейчас и продемонстрирую. Логический элемент Исключающее ИЛИ формирует на выходе 1 всякий раз, когда на одном из входов, но только на одном, присутствует Г. Во многих книгах вы сможете увидеть в качестве символа такой операции знак сложения, заключенный в кружок (Ф). Я же буду обозначать функцию Исключающее ИЛИ символом л (по аналогии с символом, который используется в PBASIC). Операция определяется так: Выход = А * В Ниже приведены таблица истинности для этой функции (табл. 10.9) и ее условное обозначение (рис. 10.31). Таблица 10.9. Таблица истинности функции Исключающее ИЛИ А В А‘В о_______________о________________о О_______________1________________1___ J_______________1________________о 1 0 1 Рис. 1031. Условное обозначение логического элемента Исключающее ИЛИ Другое название этой функции - Неравнозначность. - Прим, перев.
Эксперимент 58. Логические элементы Исхлючоющее ИЛИ и суммоторы 243 Исключающее ИЛИ не является базовой операцией ни в одном типе логи- ки. Обычно эта функция записывается как соединение операций в форме сум- мы произведений: XOR(A, В) = (!А В) + (А • !В) Кроме того, ее можно записать в форме произведения сумм: XOR(A, В) » !((А + !В) • (!А + В)) Чтобы подтвердить истинность этих формул, примените законы булевой алгебры (см. эксперимент 57), либо составьте таблицу истинности (табл. 10.10), в кдторой для всех сочетаний входных величин рассчитаны промежуточные значения, используемые для нахождения конечного результата. Такая таблица позволяет увидеть, как работает логическая формула (либо почему она не ра- ботает). Таблица 10.10. Таблица истинности, поясняющая работу логического элемента Исключающее ИЛИ А В A + IB IA + B (А + IB) • (!А + В) ![(А+!В).(!А = В)] 0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 Элемент, Исключающее ИЛИ полезен, когда вы сталкиваетесь с такими ситуациями, как сложение двух двоичных чисел. При обсуждении программи- рования я представлю концепцию двоичных чисел подробнее, а для данного эксперимента при сложении двух двоичных величин я хотел бы отображать результаты с помощью светодиодов; если только одна двоичная величина име- ет высокий уровень (или 1), я хочу зажигать только светодиод 1. Если высокий уровень у обеих двоичных величины, я хочу зажигать только светодиод 2 (све- тодиод 1 не должен быть включен, так как высокий уровень имеется на двух входах). Включить светодиод 2 очень просто: вы просто пропускаете оба входных сигнала через элемент И, чтобы светодиод загорался, когда они оба имеют высокий уровень. Включить только светодиод 1, когда только на одном из вхо- дов напряжение высокое, несколько сложнее. Возьмите-ка карандаш и бумагу и, применив законы булевой алгебры, попытайтесь понять, как включать све- тодиод, используя логические элементы И, ИЛИ, НЕ, И-НЕ и ИЛИ-НЕ. Если у вас получится что-то работоспособное, это будет реализация логиче- ского элемента Исключающее ИЛИ. Хотя я и показал две формулы для этой функции, у вас, может быть, получится следующее: XOR(A, В) = !(!(!А + !В) + !(А + В)) Эта формула служит для реализации Исключающего ИЛИ на логике КМОП (с помощью элементов ИЛИ-НЕ) и является основой для микросхемы 74С86, которая применяется для включения светодиода 1, когда только один
244 ГЛАВА 10. Цифровые логические микросхемы из входов активен. Такая схема называется пагусумматор(рис. 10.32). Она включа- ет светодиод 1, только когда на одном из входов имеется высокое напряжение, и светодиод 2, только когда высокое напряжение имеется на обоих входах. Рис. 10.32. Схема полусумматора Когда такая схема используется в качестве узла схемы сумматора, выход све- тодиода 2 помечают меткой «S» (от слова Sum - сумма), а выход светодиода 1 помечают меткой «С» (от слова Carry - перенос). На выходе S появляется бит, соответствующий результату сложения двух входных сигналов, а на выходе С - значение, зависящее от того превышает ли единицу результат сложения. Эта схема является основой для схем сумматоров в составе компьютеров, но, что- бы сделать ее применимой в компьютере, ее придется Дополнить. Причина, по которой необходимо добавить некоторые элементы к данной схеме, проявляется, когда имеется младший по отношению к данному разряд, где формируется бит переноса в данный разряд. В этом случае на вход факти- чески поступают три бита, и схема должна как-то сложить их между собой и передать на выход биты S и С так же, как полусумматор делает это для двух входных бит. Чтобы осуществить это, два полусумматора соединяют, как пока- зано ниже (рис. 10.33). Рис. 10.33. Схема полного сумматора
Эксперимент 59. Схемы задания режиме 245 Когда несколько полных сумматоров объединяют, чтобы получить сумматор для двух многоразрядных чисел, то время для корректировки ответа равно максимальному времени, необходимому для прохождения сигнала через все отдельные полусумматоры для получения старшего двоичного разряда. По- скольку результат сложения меняется по мере прохождения сигнала через схе- му, то она получила название сумматор со сквозным переносом. Для многих приложений сумматор такого типа и его задержка приемлемы, но для высокопроизводительных компьютерных приложений (таких как ми- кропроцессор в вашем персональном компьютере) время, необходимое для прохождения сигналов через сумматор просто чересчур велико, а потому при- меняют так называемый сумматор с ускоренным переносом). 'Он вырабатывает вы- ходной сигнал переноса за счет проверки входных значений, пока генериру- ются выходные значения, и не требует для этого прохождения сигнала сквозь всю схему. Эксперимент 59. Схемы задания режима Детали Смонтированная печат- ная плата с макетной платой. Три светодиода любого цвета. Три рези- стора 1 кОм. Резистор 10 кОм. 74С00, счетверен- ный КМОП логический Набор инструментов для радисмопажа элемент И-НЕ. Конден- сатор 0,01 мкФ любого типа. Три однополюсных пе- реключателя на два направления, предназначенных для установки на печатные платы При разработке своей первой практической цифровой схемы вам, вероятно, придется установить некоторые цифровые входы в состояние высокого логи- ческого уровня. Очевидное решение этой задачи - привязать эти входы напря- мую к Vcc (чтобы получить высокий логический уровень) или к «земле (чтобы получить низкий логический уровень) (рис. 10.34). Такая схема будет работать, но использовать ее по ряду причин не следует. Проблема привязки входа непосредственно к питанию в том, что такой по- тенциал невозможно изменить. Вместо того чтобы привязывать вход логики ко вводу питания, пропускайте питание через резистор 1 кОм (рис. 10.35). Та- кая мера будет поддерживать как на входах КМОП, так и на входах ТТЛ высо- кий потенциал, а переключатель (или даже просто провод) можно использо- вать для того, чтобы посадить вход на низкий потенциал, если его требуется переводить из высокого уровня в низкий. При использовании переключателя
246 ГЛЯВЯ10. Цифровые логические микросхемы или провода, если необходимо установить низкий уровень, через резистор в землю будет протекать ток всего 100 мкА. Вход, привязанный Рис. 10.34. Очевидные методы привязки входов логического элемента к высокому и низкому уровням напряжения Рис 10.35. Лучший метод реализации установки высокого потенциала на входе Может быть, беспокойство по поводу величины тока, протекающего через элемент с подключенным к высокому напряжению входом, кажется странным, однако это очень важно, когда вы разрабатываете изделия, которые будут выпу- скаться в промышленных масштабах. В производстве тестирование осуществля- ют с помощью внутрисхемного тестера (In-circuit Tester, ICT), который снабжен множеством штырей (так называемым «ложем с гвоздями» - рис. 10.36), контак- тирующими с печатной платой изделия. В простейшей версии тестера каждый штыревой щуп (или «гвоздь») имеет логический вход, а схема управления с от- крытым коллектором, подсоединенная к штырю, соединяется с одним из про- водников или цепей схемы. Чтобы проверить работу элемента, внутрисхемный тестер может либо воспринимать текущее значение логической величины, либо замыкать штырь на низкий потенциал, чтобы посмотреть, каков будет результат на проверяемом контакте. Даже если ваши разработки не будут выпускаться промышленностью, идея использования резистивных нагрузок продуктивна (см. рис. 10.35). Вам может понадобиться удалить части вашей схемы, и тогда замена их нагрузочным рези- стором позволит вам дополнительно получить непосредственное или коммути- руемое соединение входа с «землей». Я много раз благодарил себя за то, что
^ataHaus^i Эксперимент 59. Семы задания режима 247 Проверяемая печатная плата Ложе с гвоздями». Каждый «штырь» или «гвоздь» имеет схему управления, показан- ную справа «Штырь» -•—или «Гвоздь» внутрисхемного Входной сигнал проверки состояния, предаваемый нз п-гтер Пошаговое управление внутри- схемным тестером Рис. 1036. Соединение с печатной платой «ложа с гвоздями» внутрисхемного тестера предусмотрительно поставил в схему резистор, вместо того чтобы напрямую подключить вывод микросхемы к питанию или «земле»: я всего-навсего отпаи- вал вывод и добавлял резистор. Вы, вероятно, думаете, что в тех случаях, когда нужно привязать логический вход к низкому потенциалу, придется подключить резистор на «землю»? Лучше используйте выход инвертора, вход которого подключен к высокому потенци- алу (рис. 10.37). Рис. 1037. Рекомендуемый метод подключения логического входа к низкому потенциалу Привязать как КМОП, так и ТТЛ логические входы к низкому потенциалу можно и с помощью одиночного резистора (не более 470 Ом). Однако при этом его импеданс* будет ниже, чем большинство внутрисхемных тестеров может преодолеть, с тем чтобы перевести такие выводы в состояние высокого уров- ня. Может показаться, что я беспокоюсь об этой проблеме больше, чем она того заслуживает. Вы правы, если речь идет о любительских проектах. Но если вы когда-нибудь достигнете больших высот, то должны знать, какие изменения внести в разработку, чтобы ее было легко изготавливать. ’ Импеданс (от лат. impedio препятствую) - полное сопротивление электрической цепи с актив- ной и-реактивными составляющими. - прим. rupee.
248 ГЛАВА 10. Цифровые логические микросхемы В данном эксперименте мне хотелось бы рассмотреть работу цепи задания высокого потенциала, которую я обсуждал до сих пор. Я использую логический элемент И, построенный из двух элементов И-НЕ (рис. 10.38). Когда переклю- чатель в цепи резистора 10 кОм разомкнут, выход схемы будет вести себя, как стандартный элемент И. Когда переключатель цепи задания высокого потен- циала замкнут, на выходе будет высокий потенциал (а светодиод будет гореть) независимо от состояния двух других переключателей. Рис 10.38. Схема для демонстрации управления заданием высокого потенциала элемента ИЛИ Эксперимент 60. Логика Микки-Мауса Инструменты Набор инструментов для радиомонтажа Детали Смонтированная печатная плата с макетной платой. Три светодиода любого цвета. Резистор 470 Ом. Три резистора 1 кОм. Три резистора 10 кОм. 74С08, счетверенный КМОП-эле- мент И. Два кремниевых диода 1N914 или 1N4148. Два п-р-п-транзистора ZTX649. Три однополюсных переключателя на два на- правления, пред назначенных для установки на печат- ные платы. Конденсатор 0,01 мкФ любого типа. По окончании разработки может оказаться, что в цифровой электронной схе- ме не хватает одного-двух элементов. Как быть? Обычно элемент можно соеди- нять с несколькими резисторами, диодами и, возможно, транзисторами. Такие простые логические элементы часто называют логикой Микки-Мауса (ММЛ), так как они выглядят они весьма примитивно. Для успешного примене- ния ММЛ должна подходить к различным логическим сериям и не вызывать больших задержек переключения, что могло бы повлиять на работу приложения.
Эксперимент 60. Логика Микки-Мауса 249 Самый основной логический элемент ММЛ - это «инвертор», что и неуди- вительно. Схему инвертора ММЛ можно построить из двух резисторов 10 кОм и п-р-п-транзистора. На выходе такого инвертора формируется высокое напря- жение, когда ток через него отсутствует (и при очень малом токе). Когда в эле- мент подается ток, транзистор открывается, и выход сажается на землю (с хо- рошей нагрузочной способностью по току). Проверить инвертор резисторно-связанной транзисторной логики (РТЛ) позволяет следующая схема (рис. 10.39). Заштрихованная область показывает расположение элемента ММЛ. Когда я представлю схемы различных логиче- ских элементов, должен использоваться этот элемент со всеми его связями. Представленная здесь схема выглядит, может быть, сложнее, чем это требует- ся, из-за КМОП-элемента И для формирования входного сигнала и управления светодиодом на выходе. Эта схема (и другие элементы ММЛ, представляемые в этом эксперименте) не может работать со входами и выходами с высоким напря- жением или током, а также с имеющимися в продаже логическими элементами и нуждается в буферных цепях. Необходимость буферирования входов и выхода элемента ММЛ является важным моментом, который следует иметь в виду, когда вы рассматриваете использование элемента ММЛ в вашей разработке. Как пра- вило, элементы ММЛ помещают в середине цепочки логических элементов, а не на ее входе или выходе. Это делается для того, чтобы гарантировать, что если вы ожидаете от схемы определенных характеристик (скажем, возможности ра- ботать на светодиод), то схема будет способна это обеспечить. Собрав схему, испытайте ее, меняя положения переключателей и наблюдая, как при этом меняется сигнал на выхоДе. Составьте простую таблицу истинно- сти для этой и последующих схем, чтобы убедиться, что они ведут себя так, как вы ожидаете. Проверив работу инвертора, вы легко модифицируете схему, добавив еще один транзистор и резистор, чтобы создать РТЛ-элементы ИЛИ-НЕ (рис. 10.40) и И-НЕ (рис. 10.41). Реализовать элементы И или ИЛИ в ММЛ несколько сложнее, и для этого нужно хорошо знать параметры логических серий. Ниже показан образец
250 ГЛАВА10, Цифровые логические микросхемы устройства элемента ИЛИ, состоящего из двух диодов и резистора (рис. 10.42). Использование резистора, замкнутого на землю, возможно, удивит вас, однако я выбрал его, чтобы обеспечить возможность работы элемента как с КМОП-, так и ТТЛ-логикой. В этом случае, если ни на одном входе нет высокого на- пряжения, резистор соединит вход с «землей». Если на входе элемент КМОП, вход будет вести себя, как если бы он был соединен с «землей». Резистор 470 Ом позволит входному току ТТЛ течь к «земле», и он будет вести себя, как если бы на входе присутствовал низкий логический уровень. В любом случае, когда на один из входов подается высокий потенциал, на входном выводе будет под- держиваться высокий уровень, и логический элемент, соединённый с выхо- дом элемента ИЛИ, будет вести себя так, как если бы к нему был приложен высокий потенциал. Рис 10.40. РТЛ-элемент ИЛИ-НЕ Выход логического элемента Рис 10.41. РТЛ-элемент И-НЕ В Рис 10.42. Аналоговой схема элемента ИЛИ ММЛ-элемент И (рис. 10.43) - самый простой с точки зрения количества элементов. Диод и резистор работают вместе, обеспечивая высокое напряже- ние, когда на обоих входах высокий потенциал, но когда один из них заземля- ют, то уровень напряжения падает, и ток будет вытекать из входного элемента, с которым он соединен.
^alattaus^k. К размышлению 251 А —----------------Выход Рис 10.43. Аналоговая схема элемента И Хотя представленные здесь ММЛ-элементы И и ИЛИ работают, практиче- ски, в любом приложении, вы можете захотеть использовать резистор 470 Ом с ТТЛ и 10 кОм с КМОП-схемами. Это делается с целью минимизировать ток, потребляемый схемой; с резистором 470 Ом будет потребляться примерно 10 мА, когда на выходе элемента низкий потенциал. Этот ток уменьшается до 100 мкА, когда в этих двух элементах используется резистор 10 кОм. К размышлению Вам следует знать о двух мифах относительно микросхем ТТЛ. Часто про эле- менты ТТЛ говорят, что соединение с питанием (Vcc) выполнено у них внутри. Это не так, хотя элемент с неподсоединенным входным выводом ведет себя идентично тому, у которого вход соединен напрямую с Vcc. Второй миф утвер- ждает, что вы должны подсоединять неиспользуемый вход ТТЛ к Vcc, потому что электрический шум может повлиять на работу элемента. ТТЛ управляется током, источник которого находится внутри микросхемы, и изменения внеш- него напряжения не приведут к непреднамеренным искажениям сигналов на входе. С другой стороны, на логику КМОП (даже на микросхемы 74Схх) шум повлиять может, и у нее входы изнутри не соединены с питанием. Любой не- подсоединенный вход КМОП будет вести себя так, как если бы он был соеди- нен со входом низкого уровня, и на них может воздействовать электрический шум. Всегда присоединяйте неиспользуемые входы КМОП к напряжению или к «земле»! (Лучше делать это через резистор, как описано выше; неплохо так- же всегда соединять неиспользуемые входы ТТЛ с напряжением или «землей» через резистор). Если вы всегда соединяете так неиспользуемые входы, вам не придется беспокоиться о том, когда вы должны это сделать, а когда нет. Я составил список основных чипов, об использовании которых в ваших собственных разработках вы захотите подумать. Для разных серий ТТЛ, син- хронизируемых (clocked, С), усовершенствованных синхронизируемых (advanced clocked, АС), высококачественных и высокотехнологичных (high performance / high technology complementary, НС/НСТ) номер микросхемы начинается с 74. В серии 4000 КМОП-микросхем каждый тип чипа имеет номер, состоящий из четырех цифр, начинающийся с 4. В табл. 10.11 перечислены характеристики различных типов цифровых микросхем. Ток нагрузки указан для напряжения питания 5 В. Повысив напряжение ис- точника питания указанных КМОП-микросхем (они помечены знаком «*»), вы увеличите мощность источника выходного тока и нагрузочную способность микросхемы.
252 ГЛАВА10, Цифровые логические микросхемы Таблица 10.11. Логические микросхемы Тил чипа Источник пи- тания Время пе- рехода Порог по ВХОДУ «0» на выходе «1» на выходе Ток на- грузки ТТЛ Vcc = 4,5 + 5,5 В 8 нет 0,3 В 3,3 В 12 мА Маломощные ТТЛ Vcc = 4.5+ 5,5 В 15 нет 0,3 В 3,4 В 5 мА БИС ТТЛ Vcc = 4,5 + 5,5 В 10 нет 0,3 В 3,4 В 8 мА ТТЛ с диодами Шоттки Vcc = 4,75+ 5,25 В 5 нет 0,5 В 3,4 В 40 мА Усовершенство- ванные ТТЛ с диодами Шоттки Vcc = 4,5 + 5,5 В 2 нет 0,3 В Vcc-2 В 20 мА Усовершенство- ванные ТТЛ с низким потребле- нием с диодами Шоттки Vcc = 4,5+ 5,5 В 4 нет 0,3 В Vcc - 2 В 8 мА Быстродействую- щие ТТЛ Vcc = 4,5 + 5,5 В 2 нс нет 0,3 В 3,5 В 20 мА Синхронизируе- мые КМОП Vcc = 3 + 15B 50 нс 0,7 Vcc 0,1 Vcc 0,9 Vcc 3,3 мА* Усовершенство- ванные синхрони- зируемые КМОП Vcc = 2 + 6B 8 нс 0,7 Vcc 0,1 в Vcc-0,1 В 50 мА Высококачест- венные синхрони- зируемые КМОП Vcc = 2 + 6B Энс 0,7 Vcc 0.1 в Vcc-0.1 В 25 мА 4000 Vdd = 3+15B 30 нс 0,5 Vdd 0.1 в Vdd-0,1В 0,8 мА* В табл. 10.11 я пометил для ТТЛ, что входные пороговые напряжения «не используются», поскольку, как я уже говорил, ТТЛ управляется током, а не на- пряжением. КМОП-логика управляется напряжением, так что входное порого- вое напряжение - вполне подходящий для нее параметр.
^laiaHaus^ fincieci 1 1 Источники электропитания По большей части в этой книге я выполняю полезную и приятную работу, ука- зывая электронные компоненты, весьма толерантные к применяемым источ- никам питания и довольно хорошо работающие от простых батарейных источ- ников. Это получалось просто за счет выбора элементов, способных питаться от различных источников (батарей), вырабатывающих энергию с напряжени- ями от 2,4 до 9 В. Это облегчает выполнение приведенных в книге эксперимен- тов и увеличивает вероятность, что они сразу заработают, но на практике вам придется работать с компонентами, питающимися от определенного напряже- ния с отклонениями от номинала не более нескольких десятых долей милли- вольта, а иначе они могут перестать работать. В таких случаях вам придется включить в разработку схему, называемую источником электропитания. Источ- ник электропитания стабилизирует напряжение и выдает достаточный ток для надежной работы схемы. Я знакомил вас с формулой мощности постоянного тока: Р» VxZ где Р - потребляемая мощность (в ваттах), V - напряжение, приложенное к схеме, I - ток (в амперах), потребляемый от источника питания. Так, если схе- ма транзисторно-транзисторной логики (ТТЛ) с питанием +5 В потребляет от источника питания 0,15 А, схема потребляет мощность 0,75 Вт (750 мВт). Выше я представил концепцию делителя напряжения (рис. 11.1), позволяю- щего преобразовать входное напряжение в выходное напряжение меньшей величины. Однако при использовании простого делителя напряжения в эле- ктронной схеме возникают проблемы. Представьте, что батарейный источник питания робота напряжением 18 В питает электронную схему ТТЛ напряжени- ем 5 В при токе 100 мА.
254 ГЛАВА 11. Источники электропитания Рис 11.1. Делитель напряжения Величины резисторов определяются по формуле делителя напряжения: Vout = Ипх (Rs/ (Rn+Rs)) При этом: Vout = 5 В Vin=18B Rn и Rs я могу найти по закону Ома (помня, что хотел получить 100 мА при +5 В): R = V/ I где: У=5В 1=100 мА R = 50 Ом На практике эта величина R соответствует Rs в формуле делителя напряже- ния, и этот резистор эквивалентен нагрузке для электроники, работающей От 5 В. Это значение (хотя оно и не будет использоваться) следует определить, чтобы рассчитать токоограничивающий резистор (Rn): Vout = Vin х (Rs/ (Rn + Rs)) 5B = 18Bx (50Ом/ (Rn + ЗООм)) Rn = (18/5) x 50 Ом- 50 Ом = 130 Ом Найти или изготовить резистор 130 Ом нетрудно, по крайней мере для рези- сторов со стандартной мощностью рассеивания 0,25 Вт, применявшихся в про- ектах этой книги. Проблемы появляются, когда вы начинаете искать резистор, рассеивающий такую мощность, как этот. Если вы используете приведенную выше формулу мощности (помня при этом, чтр на резисторе 130 Ом имеется падение напряжения 13 В), то получите мощность рассеяния 1,3 Вт. Резисторы' на 0,25 Вт стоят копейки, а вот на резистор на 2 Вт придется раскошелиться, и при работе он будет страшно нагреваться (а это бесполезная трата энергии).
^alattaus,^. Источники электропитания 255 Есть и еще одна проблема с этой схемой, связанная с изменением ее нагруз- ки и выходным напряжением батареи. Как я покажу ниже, со временем выход- ное напряжение батареи изменяется, и в этом примере для ТТЛ рабочий диа- пазон напряжений питания от 4,5 до 5,5 В. Это значит, что если выходное напряжение батареи робота ниже 16,2 В или выше 19,8 В, то электроника пе- рестанет работать (или даже будет повреждена). Разброс напряжений такого рода часто встречается в робототехнике (особенно когда включаются и вы- ключаются двигатели). Последствия изменений тока, потребляемого электронными схемами, вы- зывают еще большее беспокойство. Включение/выключение нескольких све- тодиодов в вашем роботе радикально воздействует на эффективную нагрузку электронной схемы и в свою очередь на напряжение питания. Предполагая, что через резистор должен течь ток 5 мА, чтобы добавленный к схеме светоди’ од загорелся, получим, что падение напряжения на резисторе 130 Ом возраста- ет на 5% или с 13 до 13,65 В, что выражается в величине напряжения 4,35 В для электронной схемы. Поскольку 4,5 В являются минимальным напряжением, при котором электроника будет работать, то логика робота откажет при вклю- чении одного светодиода. Вместо того чтобы бороться с этими проблемами, давайте рассмотрим при- менение стабилизатора напряжения. Он будет преобразовывать одно напряже- ние в другое, которое можно использовать для электроники в вашей схеме, и, что еще важнее, будет выдерживать изменения напряжения источника пита- ния и тока нагрузки. Я представлю некоторые простые схемы источников пи- тания, которые: • безопасны для пользователей и разработчиков; • относительно эффективны в отношении потерь мощности при преобра- зовании уровней напряжения; • обеспечивают очень точные уровни напряжения независимо от входно- го напряжения или тока, необходимого для данной разработки; • недороги; • можно оптимизировать в части конструкции для разработки, электропи- тание которой они обеспечивают. Я сосредоточусь на создании источников питания для разработок, требую- щих тока не более 1 А. Источник питания мощностью 250 Вт в вашем персо- нальном компьютере требует методологии и схем, несколько отличных от тех, что необходимы для представленных в книге простых источников питания. Я рассмотрю несколько разных методов организации питания схем кон- троллеров для робота, но не буду особенно глубоко анализировать схемотехни- ку фильтров питания, встроенных в эти разработки. Как минимум, я предложу вам установить на входе питания контроллера конденсатор большой емкости (10 мкФ или более) и конденсатор средней емкости (от 0,001 до 0,1 мкФ). Боль- шой конденсатор будет отвечать за, фильтрацию низкочастотных искажений питания, в то время как ко. Аенсатор меньшей величины поможет бороться с
256 ГЛЯВЯ. 11. Источники электропитания высокочастотными переходными процессами (йапример, вызванными включе- нием и выключением двигателей). Наряду с конденсаторами вам, может быть, захочется рассмотреть последовательно включенную индуктивность для филь- трации любых переходных процессов по току. Эксперимент 61. Стабилитроны Детали Смонтированная печатная плата с макетной платой. Резистор 220 Ом, 0,25 Вт. Резистор 200.Ом, 0,25 Вт. Резистор 330 Ом, 0,25 Вт. Стабилитрон любого типа на 5,1 В. Светодиод лю- бого цвета Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр Работу некоторых схем на основе полупроводников, например, источников питания на стабилитронах (рис. 11.2), можно моделировать, используя извест- ную вам аналогию с водой (рис. 11.3). Источник питания на стабилитроне ра- ботает, как шунтирующий стабилизатор, который выдает на схему ток опреде- ленной величины при номинальном напряжении и ответвляет остальную энергию в виде рассеяния мощности. Вход__________ напряжения 1 Резистор, > ограничи- г вающий ток Стабили- I---------------зированный JLz выход /\ Стабилитрон Рис. 11.2. Стабилизатор напряжения на стабилитроне Вода, выплескиваю- щаяся из бассейна при переполнении Вода, падающая в бассейн Высота уровня воды определяет ее давление «Стабилизиро- ванный» выход- ной поток Рис 11.3. Обеспечение постоянного давления воды с помощью.отвода ее излишков
^laiattaus^i Эксперимент 61. Стабилитроны 257 Вместо термина «шунтирование* проще сказать, что излишняя энергия от- водится через стабилитрон, не затрагивая основной схемы, и эту концепцию иллюстрирует аналогия с регулятором давления воды (см. рис. 11.3). Регулятор давления воды состоит просто из водосборного бассейна с отверстием на дне; вода, выходящая из отверстия, находится под давлением, которое определяет- ся глубиной воды в бассейне. Чтобы поддерживать постоянной эту глубину (и давление на дне) даже при вытекании воды из отверстия на дне, вода постоян- но доливается в бассейн. Если доливаемой воды больше, чем ожидаемое коли- чество воды, вытекающей через отверстие в дне, излишки выплескиваются из бассейна в сторону. Почти так же работает стабилитрон - только излишний ток не «выплески- вается в сторону», а ответвляется в цепь стабилитрона (иначе говоря, вход электронной схемы шунтируется им). Ожидается, что сам стабилитрон при включении в схему смещен в обратном направлении и будет пропускать че- рез себя ток так; чтобы поддерживать установленный уровень напряжения на аноде (положительном выводе). Это свойство называется пробоем и не уни- кально для стабилитрона. Все диоды подвергаются пробою, когда к ним при- кладывают обратное смещение с достаточно большим напряжением. Диод будет противостоять протеканию тока при подаче на него обратного напря- жения, пока он не достигнет точки, где смещенный в обратном направлении р-п-переход разрушается, и диод начинает проводить ток в обратном направ- лении. Пробивное напряжение для стабилитронов обычно бывает в диапазо- не от 1,5 до 25 В, в то время как пробивное напряжение для типичного диода (скажем, типа 1N4148 или 1N914, которые я обычно использую) составляет от 75 до 100 В. Выбрать стабилитрон для применения в качестве источника питания не очень сложно, но для этого нужно знать характеристики входного питания и какой ток необходим питаемой схеме. Напряжение питания схемы будет совпа- дать с номинальным напряжением стабилитрона. Для 5-вольтовых схем я при- меняю стабилитрон с номиналом напряжения стабилизации 5,1 В. Определить резистор, используемый со стабилитроном, и номинальную мощность стаби- литрона может оказаться сложнее. Схему нужно обеспечить достаточным то- ком при всех возможных ситуациях, в том числе при понижении входного на- пряжения питания (если схема питается от батареи, которая разряжается). Поэтому при проектировании схемы необходимо заложить некоторый запас. В данном эксперименте я использую стабилитрон на 5,1 В, работающий в качестве источника питания для цепи светодиода (рис. 11.4). Прежде чем приступить к сборке схемы, нужно определить номинал токоограничивающе- го резистора R для стабилитрона. Чтобы источник питания на стабилитроне был на 100% эффективен с точки зрения тока (через стабилитрон не ответ- вляется никакого тока), номинал R должен выбираться так, чтобы падение на- пряжения на нем позволяло протекать через него току такой же величины, как ток, используемый питаемой от источника схемой. В этой разработке я буду предполагать, что падение напряжения на светодиоде составляет 2 В,
258 ГЛЯВЯ11. Источники электропитания и, таким образом, используя основные формулы электротехники, я могу оп- ределить ток через светодиод: i = V/ R = = (5,1 В - 2 В)/ 330 Ом = = 9,39 мА Рис 11.4. Схема эксперимента для стабилизатора напряжения на стабилитроне Предполагая, что батарея выдает в точности 9 В, можно вычислить номи- нал резистора R: R = V/i = = (9В-5,1В)/ 9,39 мА = = 415 Ом Стандартных резисторов номиналом 415 Ом в продаже нет, но я могу сде- лать резистор 420 Ом, включив последовательно 200 Ом и 220 Ом. В итоге по- лучим ток 9,29 мА (отличается от заданного значения примерно на 1%). При построении этой схемы я использовал дешевую угольную батарею но- миналом 9 В (с выходным напряжением 9,12 В) и измерил значение тока, про- текающего через светодиод (9,4 мА). Чтобы проверить стабильность этой схемы, я оставил ее включенной на ночь и утром обнаружил, что светодиод больше не горит. По результатам изме- рения на выходе батареи было 6,3 В, а через светодиод протекал ток 2,5 мА (что меньше, чем 5 мА, необходимых, чтобы его зажечь). Напряжение на стабили- троне и резисторе 330 Ом все еще оставалось равным 5,1 В, но через них уже не протекал ток, достаточный для загорания светодиода. В этом основная пробле- ма с источниками питания на стабилитронах; они не слишком устойчивы к падению входного напряжения. Разрабатывая источники питания на стабили- тронах, я обычно проектирую схему так, чтобы через резистор тек ток, вдвое превышающий ожидаемую величину (и так, чтобы в стабилитрон ответвлялось 50% тока, отдаваемого в схему). Для эксперимента я заменил последовательное соединение резисторов (420 Ом в сумме) одиночным резистором 220 Ом и ус- тановил, что светодиод загорелся снова, хотя батарея выдает 6,3 В. Ток, прохо- дящий через светодиод, оказался равным 5 мА. Поскольку мы допускаем шунтирование входа по питанию, ответвляя 50% тока в стабилитрон, придется убедиться в том, что мы правильно произвели рас- чет мощности рассеяния на стабилитроне и соединенном с ним резисторе. На резисторе будет рассеиваться максимум 70 мВт, а на стабилитроне - 90 мВт. Хотя эти уровни мощности достаточно малы и вполне допустимы для компонентов,
Эксперимент 62. Линейный источник электропитания 259 рассчитанных на 0,25 Вт, вы можете попасть в ситуацию, когда рассеиваемая мощность требует компонентов на 0,5 Вт и более. Рассматривая мощность, рассеиваемую частями схемы, получим, что 30 мВт рассеивается в цепи резистора 330 Ом и светодиода, 160 мВт - в цепи стаби- литрона с соответствующим резистором. Это значит, что кпд по мощности дан- ной реализации стабилизатора напряжения на стабилитроне всего 15,8%. Ина- че говоря, пять шестых частей мощности, поданной на стабилитрон, резистор и цепь нагрузки со светодиодом, теряется. Поэтому стабилизаторы на стаби- литронах редко применяются в разработках, питающихся от батарей; они под- ходят для разработок, которые питаются от домашней электросети. У стабилизаторов на стабилитронах есть, однако, одно привлекательное свойство - токоограничивающий резистор стабилитрона, который при корот- ком замыкании или при непредвиденно большом токе нагрузки в питаемой схеме предотвращает подачу в схему тока, вызывающего ее повреждение. Эксперимент 62. Линейный источник электропитания Детали Смонгированная пе-етнан плата с макетной платой. 78L05, стабилизатор на- пряжения +5 В в корпусе типа ТО-92. Резистор 220 Ом. Резисторная сборка на 9 резисторов 220 Ом в Инструменты Набор инструментов для радиомонтажа. Цифровой мультиметр корпусе с однорядным расположением выводов. Электролитический конден- сатор 10 мкФ. Конденсатор 0,01 мкФ любого типа. Светодиод любого цвета. 8-позиционный однополюс- ный переключатель на одно направление Уверен, что, когда я описывал стабилизатор на стабилитроне, работающий подобно бассейну с водой, в котором неиспользованная вода просто теряет- ся, многие презрительно усмехнулись: ведь известны же приборы, гораздо лучше стабилизирующие давление жидкости. В 1980-х (и даже раньше) почти каждый знал об автомобильном стабилизаторе давления жидкости - карбю- раторе (рис. 11.5). Карбюратор - очень остроумное устройство, которое подает топливо по требованию. Ниже я изобразил ситуацию, когда из карбюратора не выходит жидкость; поплавок соединен с простым клапаном, который закрывается, ко- гда поплавковая камера, где находится поплавок, заполнена жидкостью. Когда жидкость выпускается из поплавковой камеры, давление жидкости внутри нее падает (поплавок тоже опускается), и клапан открывается, впуская больше жидкости в поплавковую камеру (рис. 11.6).
260 ГЛЯВЯ11. Источники электропитания Рис. 11.5. Карбюратор автомобиля как стабилизатор потока жидкости Источник жидкости ПОД высоким давлением Клапан открыт. Жидкость посту- « Регулируемый» выходной поток низкого давления Рис 11.6. Карбюратор автомобиля при впуске топливо в поплавковую камеру Карбюратор работает как стабилизатор, только он обеспечивает нужный объем жидкости (по аналогии с током), и неглубокий уровень жидкости в каме- ре приводит к более низкому давлению (регулирование давления), чем было бы можно полупить от источника с высоким давлением (топливный насос). Электрическая версия карбюратора будет выглядеть так: ток от источника вы- сокого напряжения включается через биполярный р-п-р-транзистор, причем транзистором управляет выходной сигнал компаратора (рис. 11.7). Входными сигналами компаратора являются текущий уровень напряжения с выхода ста- билизатора и специальное «выходное» напряжение, поступающее с какого- либо источника опорного напряжения. Источником опорного напряжения обычно является стабилитрон, через который проходит небольшой ток. Источник высокого напряжения Источник опорного напряжения Компаратор Транзистор («клапан») I Выход стабилизи- рованного напряжения Рис. 11.7. Простои стабилизатор, управляющий напряжением В продаже имеется целый ряд микросхем линейных стабилизаторов напря- жения, спроектированных на основе этой структурной схемы; я рекомендую вам избегать этих компонентов, пока вы только начинаете работать с электроникой, так как им недостает двух качеств, которые я считаю решающими. Эти два свой- ства будут вызывать выключение стабилизатора^ е^ди его работа выходит за
^lalaHaus^. Эксперимент 62. Линейный источник электропитания 261 пределы нормального рабочего диапазона. Выключение стабилизатора обычно называют закорачиванием, и оно должно быть возможно, если ток, потребляемый от стабилизитора, превышает заданную величину или температура стабилизато- ра выходит за пределы нормального рабочего диапазона. Наиболее популярные линейные стабилизаторы положительного напряже- ния, обеспечивающие свойство закорачивания, относятся к сериям 78хх и 78Lxx. Чип 78хх («хх» заменяют цифры, указывающие напряжение, так что 5- вольтовый стабилизатор будет обозначаться как 7805), способен выдавать в нормальных условиях до 500 мА и до 1 А с теплоотводом (рис. 11.8). Теплоотвод рассеивает мощность и поддерживает температуру внутри стабилизатора ниже величины 125 °C, которая является температурой закорачивания. Для слабо- точных разработок (до 100 мА) можно использовать чипы 78Lxx (рис. 11.9). Для любого из этих приборов входное напряжение должно быть минимум на 2 В больше, чем стабилизированное выходное напряжение. При монтаже стабили- затора в схему надо добавить конденсаторы, по меньшей мере, 10 мкФ на входе и 0,01 мкФ на выходе (рис. 11.10). Вход Земля Выход Рис 11.8. Стабилизатор напряжения 780х в корпусе ТО-220 Метка чипа 78L0x Метка___ чипа 78L0x Вход Выход Земля Рис 11.9. Стабилизатор напряжения 7810х в корпусе ТО-92
262 ГЛАВА 11. Источники электропитания Вход нестаби- лизированного напряжения 78L0x Выход стаби- лизированного напряжения 1OpF 0.01 pF Рис. 11.10. Применение чипа 780х в качестве стабилизатора напряжения Чтобы продемонстрировать работу линейного стабилизатора, а также его спо- собность к отключению, если параметры по току или температуре выходят за пределы диапазона допустимых значений, соберите на макетной плате печатной платы схему, состоящую из 9-вольтовой батареи, выходное напряжение которой регулируется до значения 5 В при помощи стабилизатора 78L05 (рис. 11.11). Рис. 11.11. Испытательная схема для нахождения точки, когда 78L05 перестает работать Чип 78L05 питает светодиод с токоограничивающим резистором и восемь резисторов 220 Ом, управляемых при помощи переключателей и заключенных в корпус с однорядным расположением выводов (SIP). Собрав схему, разомкните все переключатели и подсоедините батарею 9 В. Светодиод должен загореться; измерив падение напряжения на нем и на токо- ограничивающем резисторе, вы увидите, что на нем имеется выходное напря- жение около 5 В. Стабилизированное выходное напряжение будет оставать- ся довольно стабильным, даже если вы замкнете один из переключателей,
NalaHausi^!. Эксперимент 63. Импульсный источник питания 263 повышая тем самым ток, пропускаемый через стабилизатор. Кончиком паль- ца проверьте температуру стабилизатора напряжения 78L05. При 9 В на входе и одном замкнутом переключателе 78L05 будет слегка теплым. Далее замыкайте переключатели один за другим, с интервалом в 2-3 мин, чтобы дать температуре чипа 78L05 стабилизироваться. Если у вас имеется цифро- вой мультиметр с температурным датчиком, вы сможете наблюдать, как по- вышается температура 78L05 каждый раз при замыкании очередного пере- ключателя. В какой-то момент светодиод погаснет (у меня это был момент замыкания седьмого переключателя) - это точка активизации закорачива- ния. Разомкнув два или три переключателя и подождав несколько минут, вы снова зажжете светодиод, так как 78L05 возобновит свою работу. Обычно закорачивание не фиксируется. Чтобы проверить его наличие, когда свето- диод снова будет включен, закоротите выход 78L05 прямо на «землю». Если вы уберете закоротку, а стабилизатор напряжения не включится, пока вы не вынете и не подключите вновь батарею 9 В, значит, у вас закорачивающая цепь с фиксацией состояния. Эксперимент 63. Импульсный источник питания Инструменты Набор инструментов для рад»?могп1ж.э Детали Смонтированная печатная плата с макетной платой. Импульсный источник пи- тания LT1173CN8-5. Две микросхемы сдвоенных мультивибраторов 74LS123. Диод Шоттки 1N5818. Светодиод лю- бого цвета. Держатель для двух батарей типа С, снаб- женный выключателем. Катушка индуктивности 100 мкГн. Два резистора 100 кОм. Резистор 10 кОм. Рези- стор 470 Ом. Электролитический конденсатор 100 мкФ. Три электролитических конденсатора 10 мкФ. Два конденсатора 0,01 мкФ любого типа С источниками питания на стабилитронах и линейными источниками питания легко работать, но они - не лучший выбор. Во-первых, они требуют большего напряжения на входе, чем стабилизированное выходное напряжение. Это мо- жет стать проблемой, если вы хотите использовать для робота очень простое питание, скажем, два элемента типа АА, ведь минимизация веса должна всегда оставаться важнейшей вашей целью. Во-вторых, эти источники не слишком
264 ГЛЯВЯ11» Источники электропитания эффективны. Довольно часто в источнике питания на стабилитроне теряется свыше 80% входной мощности, а в линейном - свыше 40%. Нам же необходи- ма очень эффективная схема источника питания, которая будет способна по- вышать напряжение. Выполнение обоих этих требований кажется невозможным, но его очень легко достичь через применение импульсного источника питания. Базовая схе- ма импульсного источника питания основана на свойстве катушки индуктив- ности сохранять энергию (рис. 11.12). Это свойство я уже упоминал как про- блему, возникающую при включении и выключении двигателей. В то время, как конденсатор сохраняет энергию в форме электрического заряда, катушка индуктивности сохраняет энергию в форме магнитного поля, которое под- держивается током, протекающим через нее. Когда ток выключается, магнит- ное поле формирует всплеск напряжения (я называл его дребезгом при об- суждении магнитных приборов - (см. эксперимент 36 в главе 6). Этот всплеск можно использовать для формирования выходного напряжения источника питания. Рис 11.12. Схеме импульсного источника питания Я пометил буквами в кружках точки схемы (см. рис. 11.12) и нарисовал ожи- даемую форму сигналов в этих точках схемы импульсного источника питания (рис. 11.13). Сигнал управления является сигналом ШИМ, сформированным с помощью генератора, управляемого напряжением (ГУН). ГУН генерирует колеба- ния с различными частотами в зависимости от напряжения, подаваемого на его вход. В импульсном источнике питания входной сигнал ГУН является выход- ным напряжением источника питания; частота колебаний ГУН будет меняться в соответствии с выходным напряжением источника, чтобы обеспечить макси- мально возможную стабильность требуемого выходного напряжения. Выход ГУН соединен с базой транзистора, который периодически замыкает один из выводов катушки индуктивности на «землю», позволяя току протекать через нее. Когда транзистор, соединенный с катушкой индуктивности, закрыт, про- текание тока через катушку прекращается, и магнитное поле «дребезжит», вы- рабатывая более высокое напряжение.
^aiattaus,^. Эксперимент 63. Импульсный источник питания 265 Земля (О В) Рис 11.13. Работа импульсного источника питания Когда ГУН открывает транзистор, катушка индуктивности (на рис. 11.13 она обозначена символом «L») замыкается на «землю», и через нее протекает ток. Когда транзистор закрыт, на катушке можно наблюдать дребезг, и любое напря- жение, превышающее текущее выходное напряжение источника питания, про- ходит через диод и сохраняется на выходном конденсаторе. Как я уже говорил, выходное напряжение более или менее совпадает с заданным напряжением, частота ГУН меняется вместе с сигналом ШИМ, который управляет транзи- стором, выравнивая выходное напряжение. Чтобы показать правильную величину катушки индуктивности и параметры ШИМ, используются следующие три формулы, причем предполагается, что известны выходное напряжение (V ), предполагаемый ток, потребляемый от источника (Iout) и входное напряжение (V.n). Эти формулы применяют много- кратно, пока полученные величины L (индуктивность катушки), Топ (время, когда транзистор открыт), Toff (время, когда транзистор заперт) не примут зна- чения, которые можно получить на реальной элементной базе. Ipeak « 2 х lout х (Vout / Vin) Toff^ L x Ipeak / (Vout - Vin) Ton = (Vout/ Vm)-1 Разработка Импульсного источника питания - задача нетривиальная. Советую вам не делать этого на основе какого-нибудь элемента вроде таймера 555 - лучше используйте чип вроде LT1173-5, который сформирует 5 В (необходимые для ТТЛ и большинства логических элементов КМОП) из 3 В (рис. 11.14). Чтобы продемонстрировать работу импульсного источника питания, кото- рый увеличивает поступающее от двух батарей типа АА напряжение 3 В, я хотел показать в работе что-нибудь полезное, а не просто светодиод или тай- мер 555 с мигающим светодиодом (таймер 555 способен заставить светодиод мигать, если его питание осуществляется от двух батарей типа С). Просматри- вая информацию для включения в книгу, я обратил внимание на один тип логи- ческих функций, который я еще не упоминал. Он может быть чрезвычайно по- лезен в некоторых ситуациях.
266 ГЛАВА 11. Источники электропитония Преобразователь напряжения 3 В в 5 В со ступенчатой регулировкой Рис. 11.14. Микросхема 1Т1173CN8-5, контроллер для импульсного источника питания с номиналом 5 В Эта функция известна как функция мультивибратора или программируемой задержки. Она очень полезна при организации последовательности функций внутри микросхемы. Мне нравится иметь под рукой несколько микросхем сдво- енных мультивибраторов 74LS123 на тот случай, если мне приходится обеспе- чивать задержку внутри схемы. Каждый чип 74LS123 состоит из двух мульти- вибраторов с тремя входами (задержка будет приводиться в действие, когда сигнал на входе А падает или когда сигнал на входе В или _CLR нарастает) и двумя выходами. Сигнал на выходе Q имеет в норме низкий уровень с положи- тельным импульсом, длительность которого определяется внешними резисто- ром и конденсатором, тогда как на выходе _Q в норме высокий уровень, и на нем обеспечивается отрицательный импульс той же длительности. Два мульти- вибратора в одном корпусе нельзя соединить друг с другом, чтобы создать асин- хронный генератор, но задержки в двух отдельных чипах можно использовать, чтобы собрать генератор (рис. 11.15). При этом положительный фронт импуль- са задержки каждого мультивибратора запускает другой мультивибратор, что приводит к формированию прямоугольных импульсов с 50%-ным рабочим ци- клом (иначе называемых меандром). Схема с мигающим светодиодом может показаться тривиальной разработ- кой (особенно потому, что это можно продемонстрировать с помощью тайме- ра 555, нескольких резисторов и конденсаторов вместо импульсного источни- ка питания и схемы на мультивибраторах, представленных здесь). Я привел эту схему, чтобы’ показать, что одну или две щелочные батареи (или аккумулятор) можно использовать для электропитания робота, вместо того чтобы надеяться на большее напряжение батареи, что может сделать ваш робот более громозд- ким и тяжелым, чем это допустимо.
^alalfaus,^!. Эксперимент 63. Импульсный источник питания 267 Рис. 11.15. Схема генератора с мигающим светодиодом
Глава 12 Последовательностные логические схемы В начале работы с цифровой электроникой очень занятно развлекаться с про- стыми логическими микросхемами и строить различные функции. Я испыты- вал большое удовольствие, используя разные средства (таблицы истинности, карты Карно и законы булевой алгебры), чтобы рассмотреть способы получе- ния логических функций и проверить, до какой степени их можно упростить. К сожалению, простые логические функции (известные под названием схем комбинационной логики) не всегда применимы для реальных задач, так как не могут быть изменены со временем или обеспечить выполнение последователь- ности операций. По сути все логические схемы, с которыми вам предстоит работать, называ- ются последовательностными логическими схемами, поскольку они предназначены для выполнения последовательности операций. Хороший пример последова- тельностной логической схемы - цифровые часы: текущее значение времени хранится в элементе памяти и периодически обновляется. Наряду с использо- ванием текущего временем как входной информации комбинационные логи- ческие схемы форматируют выходные данные, используя входные сигналы, поступающие с кнопок для установки времени (рис. 12.1). Работая с последовательностными логическими схемами, я иногда пользу- юсь форматом структурной схемы, немного похожей на блок-схему программы компьютера, которую мы еще будем обсуждать. У нее две цели: во-первых, по- казать пути, по которым проходят в схеме электрические сигналы, а во-вторых, разбит£> схему на небольшие, легко проектируемые части. Блок Временная память представляет собой элемент памяти, содержимое ко- торого обновляется по команде со входа от генератора частоты 1 Гц (см. рис. 12.1). Вход блока Временная память, снабженный треугольной меткой и соединен- ный с генератором частоты 1 Гц, называют входом*синхронизации. Эта метка
^aiaHaus,^. Последоеотельностные логические схемы 269 Генератор частоты 1 Гц Рис. 12.1. Структурная схема цифровых часов в принципиальных схемах логических устройств показывает входной вывод, которым устройство памяти пользуется для сохранения логических величин на входных (input, I/P) выводах. В цифровых часах это случается один раз каж- дую секунду, так что приращение в секундах (и в минутах, и в часах) сохраняет- ся, пока Схема обновления времени и Выходная схема форматирования не выработают соответствующих функций в ответ на значение, хранящееся во Временнбй памяти. Вход с генератора частоты 1 Гц часто называют входом синхронизации, когда имеется периодический сигнал, как в данном случае (см. рис. 12.1). Вы можете встретить также ссылки на этот сигнал под названиями «временная развертка» или «пуск». В большинстве последовательностных схем вход синхронизации служит для сохранения обновленных значений для схемы памяти, как это сде- лано в данной разработке. На вход _RST блока Временная память подается сигнал сброса содержимого памяти до исходного значения, и, таким образом, схема начинает работу с известного, правильного значения. Для данной схемы (и для большинства последовательностных схем, с которыми я работаю) я ис- пользую RC-цепь, чтобы получить задержанные нарастающие сигналы*. Используя резистор 10 кОм и конденсатор 10 мкФ, я получу низкий логический уровень на время от 10 до 20 мс. Хотя этот сигнал имеет низкий уровень, боль- шинство устройств памяти цифровой логики будут обеспечивать сброс элемен- тов памяти независимо от их входных сигналов. Схема обновления времени - это стандартная схема комбинационной ло- гики, которая обеспечивает приращение (добавляет 1) к показаниям счетчика секунд, если кнопка отпущена, или дает приращение к счетчику минут, если нажата секундная кнопка. Предполагая, что Временная память содержит зна- чения секунд, минут и часов, работу Схемы обновления времени можно смо- делировать следующими утверждениями. • Если нажата кнопка Установка времени, значение переменной Секунды устанавливается равным 59; иначе значение переменной Секунды уста- навливается равным Секунды плюс 1. В литературе можно также встретить другой термин для этой операции - затягивание (нарастаю- щего) фронта. - Прим, перев.
270 ГЛАВА 12. Последовательностные логические схемы • Если величина Секунды равна 59, то величина Секунды устанавливает- ся в 0, а значение переменной Минуты устанавливается равным Мину- ты плюс 1. • Если величина Минуты равна 59, то величина Минуты устанавливается в 0, а значение переменной Часы устанавливается равным Часы плюс 1. • Если величина Часы равна 11, то величина Часы устанавливается в 0. Эти операции выполняются очень быстро (несколько миллиардов опера- ций в секунду), поэтому, когда обновленное значение времени должно загру- жаться в блок Временная память, нет опасности, что будут сохранены невер- ные значения. На временной диаграмме я показал, что содержимое Временной памяти обновляется, когда происходит переход генератора 1 Гц из высокого уровня напряжения в низкий (рис. 12.2). После этого перехода изменяется выходной сигнал с блока Временной памяти, и эта величина проходит через Схему обновления времени. Новое значение подается на входы блока Вре- менная память и не сохраняется до поступления следующего перехода генера- тора 1 Гц из высокого уровня в низкий. Запись в память Запись в память Г, , . СИНХ0ОНИ- 11 I 1 1 1 1 зация 1 Гц 1 1— 1 II III Вход II III II 1 Г 1 временной lJL 1 1 А памяти Il ill Выход ii iii временной Il i A 1 памяти ii iii Схема выбора следующего л :: 1 состояния II III Рис. 12.2.8реме»мые диаграммы цифровых часов Утверждения для Схемы обновления времени аналогичны программным утверждениям, которые я приведу далее. Я использовал их здесь, потому что реальные функции булевой логики действительно достаточно сложны. Так, для очистки или приращения на 1 младшего значащего бита часов придется реали- зовать следующую функцию: Часы. 0. Вход = ((Часы. 0. Выход л 1) • !( Часы. 0. Выход л 0) • (Часы. 1. Выход л 0) • ( Часы. 2. Выход л 1) • (Часы. 3. Выход л 0)) В этой функции младший значащий бит Часов и 1 объединяются функцией Исключающее ИЛИ. Если результат и остальные три бита, которые составля- ют текущее значение Часов, не равны десятичному числу 11 (двоичному числу 1011) и не равны 0, то в младшем разряде в качестве его значения сохраняется 1.
^aiaHaus,^. Эксперимент 64. Триггеры RS 271 Выходная схема форматирования должна описываться в точности таким же образом, как Схема обновления времени, а ее выходной сигнал, вместо того чтобы подаваться обратно на блок Временной памяти, служит для управ- ления семисегментными светодиодными дисплеями (см. рис. 12.1). Взгляните на обобщенную форму последовательностной цифровой схемы (рис. 12.3): она несколько походит на схему цифровых часов (см. рис. 12.1). Отличие в том, что я предполагал, что элемент памяти, который я собираюсь использовать, может быть очищен от информации, а входной сигнал использу- ется, в частности, Схемой обновления следующего состояния (или обновле- ния времени). Вход схемы Рис. 12.3. Базовой структурная схема последовательностной логической структуры Эксперимент 64. Триггеры RS Смонтированная печатная плата с макетной платой. Четыре резистора 1 кОм. Четыре светодиода любо- го цвета. Два однополюс- ных переключателя на два направления для печатно- го монтажа. Микросхема 74С02 Набор инструментов для радиомонтажа Ранее я представил идею построения запоминающего устройства с помощью реле с двумя обмотками. Это устройство можно было установить в одно Из двух состояний в зависимости от того, какая из обмоток была активирована послед- ней, и замкнуть соответствующую контактную группу. Когда прекращалась пода- ча электричества в обмотку, состояние устройства оставалось неизменным, пока неизменно было состояние другой обмотки. Это устройство работает очень
272 ГЛАВА 12. Последовотельносгные логические схемы похоже на самое основное электронное запоминающее устройство, с которым вы б)дете иметь дело, - триггер с установкой и сбросом, RS-триггер (Reset-Set flip-flop). Устройство на основе реле под держивает сохраняемое значение постоян- ным благодаря силе трения, тогда как электронное запоминающее устройство для хранения значений использует обратную связь. При обсуждении радиоуп- равляемого сервомеханизма я рассказал о концепции аналоговой обратной связи. В сервомеханизме текущее положение управляющей рукоятки сравнива- ется с указанным положением, и, если положения не совпадают, рукоятка дви- жется в направлении указанного положения. Процесс опознавания реального положения управляющей рукоятки и его обратной передачи для сравнения с указанным положением называют обратной связью. Чтобы определить, должна ли двигаться рукоятка сервомеханизма, используется текущее выходное значе- ние. Это пример аналоговой обратной связи. Возвращаемое положение руко- ятки может принимать значения в определенном диапазоне величин, а не кон- кретных сигналов включения и выключения (истинно или ложно, 1 или 0). Термин аналоговый означает, что величина может находиться в диапазоне зна- чений, обычно выраженных дробями от 0 до 1. Цифровая обратная связь может принимать только одно Из двух значений. Поэтому может показаться, что ее применение в схемах ограниченно в гораз- до большей степени, чем применение аналоговой обратной связи. Это так, кроме тех случаев, когда ее используют как метод сохранения результатов в такой схеме, как триггер на элементах ИЛИ-НЕ (рис. 12.4). Обычно оба входа имеют низкий уровень напряжения, кроме моментов изменения состояния схемы, когда напряжение на одном из входов возрастает до высокого логиче- ского уровня. Рис. 12.4. Триггер на основе элементов ИЛИ-НЕ На первый взгляд кажется, что схема потенциально может возбудиться как генератор, поскольку если сигнал с выхода одного из логических элементов по- дается на другой элемент и сигнал с выхода второго элемента подается на пер- вый, логично предположить, что изменяющееся значение выходного сигнала будет циркулировать по замкнутому контуру между двумя элементами. К счастью, это не так; наоборот, когда на эту схему подается некоторый сигнал, он будет оставаться неизменным, пока состояние входного, сигнала не изменится или
Эксперимент 64. Триггеры RS 273 пока не будет выключено питание схемы. Вот как изменяются выходные значе- ния на двух логических элементах ИЛИ-НЕ при последовательном поднима- нии входных выводов (каждый раз изменяется состояние только одного выво- да) (рис. 12.5): Рис. 12.5. Различные состояния триггера на элементах ИЛИ-НЕ Когда на входах R и S низкий уровень, только один оставшийся сигнал будет влиять на выходной сигнал элементов ИЛИ-НЕ, и это сигнал с выхода другого элемента ИЛИ-НЕ. Когда на выходе Q низкий уровень, то это низкое напряже- ние будет подаваться на другой элемент ИЛИ-НЕ. Другой элемент ИЛИ-НЕ даст на выходе высокий уровень напряжения, так как на втором его входе низ- кий уровень. Этот сигнал высокого уровня подается на первый элемент ИЛИ- НЕ, что приводит к низкому уровню напряжения на его выходе, который пода- ется на другой элемент ИЛИ-НЕ, и т. д. Выходы триггера помечены как Q и _Q. Q - положительный выход, a _Q - отрицательный, точно такой же, как если бы сигнал Q был пропущен через инвертор. Символ подчеркивания (_) перед меткой выхода (Q) указывает, что сигнал инвертирован. Инвертированные сигналы на схемах идентифицируют по префиксу подчеркивания или пр горизонтальной черте над меткой выхода. Вы не увидите знака «!» перед меткой, так как это подразумевает, что сигнал пропущен через инвертор. На входах некоторых микросхем имеется символ подчеркивания перед меткой вывода или черта над ней. Это значит, что дан- ный вывод активен, когда поступающий на него сигнал обладает низким уров- нем. Мы еще вернемся К инверсным активным выводам позже.
Файл взят с сайта www.kodges.ru, на котором есть еще много интересной литературы
274 ГЛАВА 12. Псхледовательносгные логические схемы Входные выводы R и S триггера известны как выводы Сброс и Установка соответственно. Когда вход R установлен в состояние высокого уровня, сигнал на выходе Q будет иметь низкий уровень, а когда вход S установлен в состоя- ние высокого уровня, сигнал на выходе Q будет иметь высокий уровень. Эти значения на выходе Q будут сохраняться, когда входы R и S вернутся к нормаль- ным низким уровням напряжения. Условные сокращения и _Qe означают предыдущие значения двух бит, и такая запись показывает, что текущие значе- ния Q и _Q будут такими же, как и предыдущие. Для описания работы тригге- ров часто используются таблицы истинности. Ниже приведена таблица истин- ности для триггера на элементах ИЛИ-НЕ (табл. 12.1). Вы можете собрать собственный RS-триггер на элементах ИЛИ-НЕ, состояние которого устана-1 вливается при помощи двух переключателей (рис. 12.6). Таблица 12.1. Таблица состоянии RS-триггера на элементах ИЛИ-НЕ R S Q -Q Примечание 0 0 0е -Ч Сохранение текущего значения 1 0 0 1 Сброс триггера 0 1 1 0 Установка триггера 1 1 0 0 Запрещенная входная комбинация Рис. 12.6. Схема для проверки роботы триггера
NataUausjii& Эксперимент 64. Триггеры RS 275 В таблице истинности я отметил, что если входы R и S одновременно име- ют высокий уровень, в то время как оба выхода находятся под низким потенци- алом, то такое сочетание входных сигналов считается недопустимым. Дело в том, что если управление на один из входов поступает медленнее, чем на дру- гой, то триггер запомнит это состояние. Если R и S переходят в состояние низкого уровня одновременно (а это совсем не тривиальное событие), то триг- гер окажется в метастабилъном состоянии. Уровень сигнала Q не будет ни низ- ким, ни высоким, но какое-либо воздействие, которое нарушит это равновесие, приведет к смене состояния триггера. Хотя метастабильное состояние выгля- дит бесполезным и нежелательным, на практике оно очень эффективно как средство усиления электрического заряда. Его можно использовать для обна- ружения очень малых зарядов конденсаторов. Кроме построения триггера на логических элементах ИЛИ-НЕ, вы можете также собрать триггер из элементов И-НЕ (рис. 12.7). Эта схема работает по- добно схеме на элементах ИЛИ-НЕ, за исключением того, что метастабильное состояние возникает, когда оба входа имеют низкий уровень и входы активны при низких уровнях напряжения (табл. 12.2). Рис. 12.7. Триггер но логических элементах И-НЕ Таблица 12.2. Таблица состояний триггера на логических элементах И-НЕ R S Q _Q Примечание 0 0 1 1 Метастабильное состояние входов 0 1 0 1 Сброс триггера 1 0 1 0 Установка триггера 1 1 9а -Qq Сохранение текущего состояния
276 ГЛАВА 12. Последовательностные логические схемы Эксперимент 65. Триггеры, синхронизируемые фронтом Смонтированная печатная плата с макетной платой. Две микросхемы 74С00 (четыре двухвходовых элемента И-НЕ)‘. Три светодиода любого цвета. Резистор 10 кОм. Три ре- Набор инструментов для радиомонтажа зистора 1 кОм. Электро- литический конденсатор 47 мкФ. Два конденсатора 0.01 мкФ любого типа. Два однополюсных переклю- чателя на два направления для печатного монтажам RS-триггер применяется во многих последовательностных схемах специально- го назначения, в которых состояние триггера меняется асинхронно (либо вся- кий раз, когда входы активны). Для большинства усовершенствованных после- довательностных схем (таких как микропроцессор) работа с RS-триггерами представляет проблему, и они используются там очень редко. Вместо них в большинстве схем применяется триггер, синхронизируемый фронтом, который сохраняет бит, только когда это необходимо. Возможно, у вас получится так, что триггер, синхронизируемый фронтом (или триггер-защелкс^ очень подходит для вашей разработки, и на нем ее проще проектировать, чем на простом RS-триггере. Работает триггер-защелка довольно просто (рис. 12.8). На него подается сигнал данных вместе с сигналом синхронизации. Пока данные неизменны, состояние триггера на изменяется. Когда сигнал синхронизации переходит из высокого уровня в низкий, данные в триггере сохраняются. Такой тип тригге- ра называется триггером с синхронизацией по спадающему фронту, и это наиболее распространенный тип триггера из тех, с которыми вам придется работать. Триггер, синхронизируемый фронтом, строится на основе RS-триггера. Сей- час я покажу, как построить триггер, синхронизируемый фронтом, используя логические элементы И-НЕ. Чтобы каждый раз не называть эту схему тригге- ром, синхронизируемым спадающим фронтом, или триггером-защелкой, ее обычно называют сокращенно D-триггером. Организация внутренних связей между триггерами в этой схеме может показаться сложной, но на самом деле все довольно просто. Два входных триггера приводят данные и сигнал синхро- низации в нужное состояние и просто пропускают изменяющийся сигнал ко- гда приходит спадающий фронт сигнала синхронизации (рис. 12.9). В отечественной нормативной документации (стандартах, технических условиях, паспортах ми- кросхем) часто для краткости число входов логического элемента обозначают цифрой, напри- мер, двухвходовый элемент И-НЕ будет иметь обозначение 2И-НЕ. - Прим, перев.
^latatiaus^ Эксперимент 65. Триггеры, синхронизируемые фронтом 277 Бит данных, подлежащий хранению - Data Bit Out "D" "Q” - Data Bit In Сохраненный бит Данные запоминаются по спадающему фронту импульса Триггер, уста- навливаемый по фронту Цепь син---- хронизации Рис. 12.8. Зопоминающее устройство но триггере-защелке, в котором одиночный бит донных сохраняется с помощью сигнала синхронизации D(S) C(R) QO Q1 Q2 Рис. 12.9. Работа и форма сигналов D-триггера Я отметил те состояния триггеров, в которых они находятся прежде, чем значения их бит будут установлены, как неизвестные состояния. Это очень важ- ный момент, и это одно из соображений, которые вам придется иметь в виду при проектировании схем. Не ожидайте, что триггер будет в заданном состоя- нии, пока он не будет установлен в это состояние какой-то схемой сброса (см. эксперимент 66). Выходной сигнал триггера, синхронизируемого фронтом, остается неизвестным до тех пор, пока в него не будет записано некоторое зна- чение. Взглянув на сигналы, подаваемые на правый триггер, вы увидите, что его входы неизвестны, пока сигнал данных не перейдет в низкий уровень, при- чем в этот момент два входа правого триггера приобретают высокий потенци- ал, и неизвестные значения бит должным образом сохраняются в триггере. Первое записанное в него значение равно 0; сигнал данных приобретает низкий уровень раньше, чем сигнал синхронизации, и не изменяет состояние ни одного из триггеров. Когда сигнал синхронизации приобретает низкий уровень, он заставляет единицу передаваться на правый триггер, поддержи- вая его текущее состояние. Когда сигнал синхронизации переходит в состоя- ние высокого уровня, в правый триггер загружается текущее значение дан- ных. После того как сигнал синхронизации перейдет в состояние высокого
>78 ГЛАВА 1L Последовательностные логические схемы уровня, состояние правого триггера не может быть изменено при помощи сигнала данных, переходящего в состояние высокого или низкого уровня. Соберите триггер, синхронизируемый фронтом (рис. 12.10). Конденсатор 47 мкФ, включенный параллельно резистору цепи синхронизации, служит для борьбы с дребезгом сигнала с переключателя и делает действие нарастающего фронта на D-триггер более ясно различимым. Работа D-тригтера станет более очевидной, когца вы проверите действие этой схемы, хотя, может быть, вы встретитесь с одним затруднением. Может случить- ся, что данные окажутся «заперты» как по спадающему, так и по нарастающему фронтам при замыкании и размыкании переключателя в цепи синхронизации. Это происходит из-за того, что переключатель «включает» дребезг в цепи син- хронизации. Хотя конденсатор 47 мкФ минимизирует это явление, вам, может быть, захочется добавить элемент 555 с одним устойчивым состоянием*, облада- ющий очень большой задержкой (с активным периодом, равным одной или двум секундам), для активного противодребезгового воздействия на этот сигнал. Вероятно, автор имеет в виду ждущий мультивибратор. - Прим, перев.
^atatiaus^i Эксперимент 66. Полный D-триггер 279 Эксперимент 66. Полным D-триггер Инструменты Набор инструментов для радиомонтажа Детали Смонтированная печатная плата с макетной платой. 78L05, стабилизатор на- пряжения +5 В. Микро- схема 74LS74, д ва D-триг- гера. Пять саетодисдос любого цвета. Пять рези- сторов 470 Ом. Резистор 10 кОм. Электролитический конденсатор 47 мкФ. Эле- гтролитичыжий кпнденсатор 10 мкФ. Два конденсато- ра 0,01 мкФ любого типа. Четыре однополюсных пере- ключателя на два направления для печатного монтажа Я заметил, что в своих схемах чаще всего использую D-триггер. С ним просто работать и легко организовать его интерфейс с микропроцессорами и микро- контроллерами. Однако его монтаж в схеме вызывает некоторые затруднения, особенно если вы хотите работать с его полной схемой (рис. 12.11). В этой Рис. 12.11. Полный D-триггер с управлением установкой и сбросом
280 ГЛЯВЯ12. Последовотельностные логические сеемы схеме происходит не только сохранение данных по нарастающему фронту на шине синхронизации. В ней, кроме того, два других сигнала, _CLR и _PRE, бу- дут переводить выход триггера в 0 (низкий уровень) или в 1 (высокий уровень) соответственно, когда они приобретают низкий уровень. Это предусматривает ряд вариантов при использовании D-триггера в вашей схеме, что позволит вам успешно справиться с некоторыми удивительными применениями цифровой логики. Может показаться, что представленную схему (см. рис. 12.11) легко дорабо- тать, чтобы она выполняла функции полного D-триггера. Однако все не так просто. Чтобы преобразовать двухвходовый элемент И или ИЛИ в трехвходо- вый элемент, вы могли бы просто пропустить через него два входных сигнала, а сигнал с его выхода подать на вход второго такого же элемента, на второй вход которого поступает третий входной сигнал. Но этот трюк не работает для элементов И-НЕ или ИЛИ-НЕ. Например, чтобы использовать двухвходовые элементы И-НЕ для создания трехвходового элемента И-НЕ, придется реали- зовать логическую функцию, показанную ниже (рис. 12.12); после обработки двух входных сигналов элементом И-НЕ придется инвертировать выходной сигнал этого элемента, чтобы получить объединение этих сигналов по И*, а потом пропустить полученный сигнал через элемент И-НЕ с оставшимся тре- тьим сигналом. Трехвходовый элемент ИЛИ-НЕ строится аналогично. "1" с А В Выход !(А-В«С) Рис. 12.12. Трехаходоеый элемент И-НЕ, собранный из дэдхаходоеых элементов И-НЕ' Если использовать три элемента для получения одного двухвходового эле- мента И-НЕ, то для реализации функций полного D-триггера потребуется 18 элементов И-НЕ, а это четыре с половиной корпуса микросхем 7400. Чтобы продемонстрировать работу этой схемы, можно собрать ее на двух микросхе- мах 7410 (три трехвходовых элемента И-НЕ) или попросту задействовать для эксперимента с различными функциями полного D-триггера одну микросхему типа 74LS74. Микросхема 7474 состоит из двух D-триггеров, причем как выход Q, так и выход _Q подсоединены к ее выводам. Все четыре входа (данные и синхроси- гнал, а также два вывода, обеспечивающие возможность устанавливать и сбра- сывать триггер, не обращаясь к сигналам на выводах данных и синхронизации), предусмотрены для каждого из двух триггеров, входящих в состав микросхемы (см. рис. 12.11). Весьма универсальные микросхемы 7474 можно использовать в самых разных устройствах. Функцию И в технической литературе называют также логическим умножением или конъюнкци- ей. - Прим, перев.
ftaiallausigt} Эксперимент 66. Полный D-триггер 281 Для эксперимента с микросхемами 7474 я решил остановиться на микросхе- ме 74LS74, которая требует применения 5-вольтового стабилизатора и четырех переключателей для разных входов (рис. 12.13). Рис. 12.13. Схема проверки D-триггеро Собрав эту схему, можно проверить работу D-триггера типа 7474. Прежде чем подавать на нее питание, поставьте все четыре переключателя в положе- ние Вверх (замкнуто со включенными светодиодами), чтобы защитить связи _PR и _CLR от воздействий со стороны работающего триггера. Сделав это с помощью переключения переключателей данных и синхронизации, вы будете наблюдать, как триггер сохраняет данные. Это происходит точно так же, как при построении триггера из элементов И-НЕ. Усвоив работу триггеров с переключателями данных и синхронизации, по- ставьте оба переключателя в положение Вверх (замкнуто со включенными све- тодиодами), разомкните (поставьте в нижнее положение) переключатели по цепям. _PR1 и _CLR и наблюдайте результаты по светодиоду, подсоединенному к выходу Q триггера. Вы увидите, что при выключенном светодиоде _PR1 на выходе триггера присутствует высокий уровень. Попытавшись сохранить дан- ные, используя данные и синхросигнал, когда сигнал -PR1 имеет низкий уро- вень, вы обнаружите, что не можете изменить состояние триггера. При про- верке работы переключателя _CLR вы увидите, что он действует так же, как и _PR1; когда переключатель _CLR находится в нижнем положении, уровень сигнала на выходе низкий, и любые поступающие на вход в сопровождении
282 ГЛАВА It. Последоеотельносгные логические схемы синхросигнала данные будут игнорироваться. В качестве завершающей провер- ки разомкните оба переключателя _PR1 и _CLR (светодиоды будут выключе- ны) и посмотрите, что получится в результате. Взглянув на схему еще раз (см. рис. 12.11), вы поймете, почему триггер так себя ведет. СОВЕТ. Проследите связь _Рге и посмотрите, куца она поступает. По окончании эксперимента не разбирайте схему; она понадобится нам для следующего эксперимента. Эксперимент 67. Сброс триггере Детали Инструменты Набор инструментов для. палномонтаха Смонтированная печатная плата с макетной платой. 78105, стабилизатор на- пряжения +5 В. Микро- схема 74LS74, д ва D-триг- гера. Пять светэдмодоа любого цвета. Пять рези- сторов 470 Ом. Резистор 10 кОм. Электролитический конденсатор 47 мкФ. Эле- ктролитический конденапир 10 мкФ. Два конденсато- ра 0,01 мкФ любого типа. Четыре однополюсных пере- ключателя на два направления для печатного монтажа Включив и выключив питание D-триггера, собранного в предыдущем экспери- менте, несколько раз, вы заметите, что его исходное состояние (или уровень сигнала) может быть либо 0 (светодиод погашен), либо 1 (светодиод горит), причем предсказать, каким именно будет уровень, совершенно невозможно. Это нормально, потому что при подаче питания на триггер, если в схеме име- ется какой-либо дисбаланс (скажем, остаточный заряд или индуцированное напряжение) на входах любого из элементов И-НЕ, то триггер среагирует на это, что и будет являться его начальным состоянием. Зачастую такое случай- ное начальное состояние нежелательно - при подаче питания схема должна устанавливаться в конкретное заранее известное состояние, чтобы работать корректно. Точное задание состояния схемы при подаче на нее питания называют ини- циализацией. Оно необходимо отнюдь не только для последовательностных логических схем. При обсуждении программирования я расскажу, как должны инициализироваться внутренние параметры программы (их называют перемен- ными), чтобы программа работала правильно. Обычно инициализация име- ет место при сбросе приложения или когда хотят заставить ее начать рабо- тать. Сейчас вы узнаете, как модифицировать представленный в предыдущем
^atatlaus^k Эксперимент 67. Сброс триггера 283 эксперименте D-триггер таким образом, чтобы каждый раз при подаче на него питания на его выход выдавался нулевой уровень. Во избежание путаницы в последующем изложении я должен дать здесь разъяснения по поводу двух типов сброса, описанных в этой книге, когда я го- ворю о цифровых схемах. Когда я говорил о простых комбинационных схемах, я называл установку низкого (или нулевого) уровня напряжения сбросом, а высокого уровня (или уровня логической единицы) - установкой. В данном эксперименте под сбросом я понимаю состояние, при котором вначале на схему подано питание или когда схема сначала была остановлена для повторного старта. Когда вы прочитаете термин «сброс» далее в этой книге (так же, как и в других книгах), помните, что, если описывается одиночный бит данных или сигнал на одиночном выводе, термин сброс означает 0 или низкий уровень. Когда я говорю, что последовательностная схема (например, микроконтрол- лер) «находится в состоянии сброса» или на нее «подается питание при сбро- се», это значит, что схеме предоставляется возможность работать, начиная с заранее известного состояния. На микросхему 74LS74 всегда можно подать питание при нулевом уровне на ее выходе путем замены цепи, подключенной к ее выводу _CLR и состоящей из переключателя, резистора 1 кОм и светодиода, резистивно-емкостной цепью (рис. 12.14.) Рис. 12.14. D-триггер с RC-цепью сброса
284 ГЛАВА 12. Последовательностные логические демы Вывод _CRL называют входом управления с активным низким уровнем, и сигнал на нем активен, когда на входе присутствует напряжение низкого уров- ня (как я показал в эксперименте 66)*. Чтобы активизировать этот вывод в тот момент, когда поданное питание уже позволит чипу нормально функциониро- вать, резистивно-емкостная цепь, подключенная к входному выводу элемента ТТЛ, задерживает процесс нарастания сигнала на этом выводе (рис. 12.15) так, что на выводе сохраняется активный низкий уровень при нормальном напря- жении питания. Когда сигнал на выводе _CRL переходит в высокий уровень, и функция очистки памяти (clear function) больше не является активной, чип мо- жет работать нормально с этим сигналом, находящимся в известном начальном состоянии. Рис. 12.15. Робота ВС-цепи задержки подачи питания Время, необходимое для того, чтобы напряжение на RC-цепи достигло по- рогового значения, можно приблизительно оценить по формуле: Время задержки = 2,2х Rx С Когда вы будете работать с микропроцессорами и микроконтроллерами, вам захочется реализовать более сложную схему сброса. У микропроцессора BS2, с которым я вас познакомлю, схема сброса, основанная на компараторе (рис. 12.16), управляет сигналом на выходном выводе транзистора с открытым коллектором, который будет обнулять входной вывод сброса с активным низким уровнем, когда питание резко падает ниже некоторой пороговой величины. Такую схему часто можно встретить в продаже в виде чипа управления сбросом процессора, заклю- ченного в черный пластмассовый корпус, как у небольшого транзистора. Сигнал сброса к микропроцессору Vcc Рис. 12.16. Возможная схема сброса микропроцессора В отечественной технической литературе такие входы микросхем-обычно называют просто ин- вертирующими входами. - Прим, перев.
^ataUaus^ Эксперимент 68. Параллельная пересылка донных 285 Чипы управления сбросом процессора выпускаются для очень широкого ди- апазона значений напряжения отсечки от 2,2 В. Ниже показана работа внутрен- них узлов чипа управления сбросом процессора при падении входного напряже- ния ниже установленного значения; при этом компаратор перестает выдавать на выходе логическую единицу, и активируется линия задержки (рис. 12.17). Эта линия задержки фильтрует результирующие выбросы, присутствующие на шине питания, и гарантирует стабильность напряжения на шине питания, прежде чем процессор получит возможность вернуться из состояния сброса и продолжать работу. Когда на выходе компаратора низкий уровень или линия задержки про- должает выдавать на выходе низкий уровень, на выходе элемента И-НЕ, на кото- рый они подаются, - высокий уровень, и он открывает транзистор с открытым коллекторным выходом, закорачивая схему на «землю». Vcc Выход, компаратора Выход линии задержки Сброс Выход' Напряжение — меньше ’ • рабочее рабочего [ ; пороговое порога । । напряжение ]•*- Произошел сброс , микропроцессора от «скачка» пита- ния Vcc, микро- процессор может возобновить работу Рис. 12.17. Робота схемы сброса микропроцессора Эксперимент 68. Параллельная пересылка данных Набор инструментов для радиомонтажа Детали Смоиляюванная.печатная плата с макетной платой. Стабилизатор ютрнжкнин +5 В типа 78L05. Микро- схема 74LS174, шесть D- триггеров с общими сбро- сом и синхронизацией. Шесть светодиодов любо- го цвета. Восемь резисторов 10 кОм. Шесть резисто- ров 470 Ом. Два электролитических конденсатора 10 мкФ. Д ва конденсатора 0,01 мкФ любого типа. Мо- дуль из восьми переключателей в корпусе DIP, предна- значенный для установки на печатную плату
286 ГЛ RBR It. Последовательностные логические схемы Первый микропроцессор типа Intel 8008 обрабатывал четыре бита данных од- новременно. Такое объединение четырех бит называют размером «слова» про- цессора. Если бы вы составляли список персональных компьютеров (ПК) по времени появления, то увидели бы, как увеличился размер слова за последние 25 лет. Первый широко распространенный ПК марки Apple был оснащен про- цессором с размером слова восемь бит. Пятью годами позже процессор 8088, использовавшийся в IBM PC, уже обрабатывал одновременно 16 бит данных (чтобы избежать получения гневных сообщений по электронной почте, под- черкну, что собственно процессор оперировал словами, состоящими из 16 бит данных, в то время как обмен по внешним шинам данных осуществлялся слова- ми размером 8 бит). Еще через пять лет после выпуска первого IBM PC на рын- ке появились ПК на базе процессоров Intel 80386. Новейшие же компьютерные системы и серверы оснащены микропроцессорами на 64 бита марок Intel Itanium или AMD Opteron. По мере увеличения размера слова процессоров совершенствуется их способность быстро производить сложные математиче- ские операции и их возможности по обработке больших объемов информации. Рост размера слова объясняют действием так называемого закона Мура (Moore), согласно которому количество транзисторов в микросхемах (что подразумева- ет их сложность и способность обрабатывать информацию) удваивается каж- дые 18 месяцев. До сих пор, знакомя вас с цифровыми электронными схемами, я сосредото- чивался на обработке одного бита данных за один раз. Можно создать схемы особой сложности, работающие только с одиночными битами, однако вместо этого обычно проще (и быстрее, если скорость является критерием выбора) работать с несколькими битами параллельно. Поэтому в более мощных систе- мах обычно обрабатывается больше бит за один раз и, в частности, больше размер слова процессора. В оставшейся части этой книги я буду работать с несколькими битами, кото- рые некоторым образом объединены в группу и пересылаются параллельно. Вы можете подумать, что при этом схемы становятся неуправляемыми из-за того, что для обслуживания нескольких бит данных понадобится несколько чипов, однако я возьму устройства, способные обрабатывать несколько бит одновременно. Хороший пример микросхемы такого типа - 74174, микросхе- ма из шести D-триггеров. Эти D-триггеры аналогичны D-триггерам, входящим в состав микросхемы 7474, за исключением того, что сигналы синхронизации и сброса у них общие для всех шести D-триггеров микросхемы. Целью «обобществления» этих си- гналов, очевидно, являлось стремление сэкономить на числе выводов микро- схемы (микросхема из шести D-триггеров, у которых доступны для пользовате- ля все шесть его входов и выходов, потребует не менее 38 выводов). Однако на практике это свойство годится для того, чтобы хранить 6 независимых бит информации или очистить все эти разряды одновременно.
^latattauSfl Эксперимент 68. Пороллельноя пересылке донных 287 До сих пор я обрабатывал один бит данных за один раз. Сейчас же я хотел бы повторить первый эксперимент по D-триггерам, но только с шестью бита- ми. Чтобы проверить такую разработку, я предлагаю такую схему (рис. 12.18). Рис. 12.18. Схема для проверки шести D-триггеров Довольно забавно, щелкая переключателями вверх и вниз, наблюдать, как меняется выходной сигнал светодиодов по команде от переключателя цепи синхронизации. Повышение мощности в части объема обрабатываемой ин- формации, вероятно, не станет для вас очевидным сразу, но, сравнив схему этого эксперимента со схемой первого эксперимента для микросхемы 74LS74, вы убедитесь, что количество переключений тумблеров, необходимое для со- хранения данных в расчете на один бит, уменьшилось. Это произошло потому, что после установки значений каждого бита вам надо только один раз подать импульс по цепи синхронизации, ставя переключатель поочередно в два про- тивоположных состояния. Последующее сохранение данных во времени тако- во, что каждый бит можно устанавливать одновременно с другими битами (в параллель). Если сохранять шесть бит данных с помощью обособленных D-триггеров, для этого потребуется 12 циклов переключения (шесть переклю- чений для установки данных и шесть импульсов синхронизации), тогда как тот же объем информации можно сохранить всего за два цикла синхронизации (один для установки данных и один импульс синхронизации).
288 ГЛЯДЯ 12. Последоботельносгнью логические демы Эксперимент 69. Светофор Детали Инструменты Набор инструментов для радиомонтажа Длинная макетная плата. 9-вольтовая батарея с держателем. Микросхема 78L05, стабилизатор на +5 В. Чип таймера 555. Микросхема 74LS174, шесть D-триггеров. Ми- кросхема 74LS139, два дешифратора из 2 в 4. Микросхема 74LS00, четыре двухвходовых элемента И-НЕ. ZTX649, биполярный п-р-п-транзистор. Два красных сзетодиада. Два жел- тых сиетюода. Два зеленых светодиода. Два рези- стора 47 кОм. Два резистора 10 кОм. Резистор 1 кОм. Шесть резисторов 470 Ом. Три электролитических конд енсатора 10 мкФ. Шесть конденсаторов 0,01 мкФ любого типа В нарушение сложившейся традиции я хочу собрать схему (рис. 12.19) на длин- ной макетной плате (она просто не поместится на обычной короткой макет- ной плате). Закончив монтаж (рис. 12.20), вы получите последовательностную схему, подходящую для создания игрушечного светофора, работающего в двух различных направлениях. Когда в одном из наборов сигналов горит красный свет, в другом наборе на время, равное 1 с, будет загораться зеленый свет для второго светофора, а затем, еще на 1 с - желтый, прежде чем загорится крас- ный свет, и процесс начнет повторяться. Я уверен, что, глядя на схему, вы без всяких вступительных замечаний с моей стороны распознаете почтц все ее узлы, но, возможно вы задумаетесь, как именно они работают все вместе. Вернитесь к началу этой главы, где я дал вам очень простую структурную схему, поясняющую, как работает комбинационная схема. Новая схема ни в чем с ней не совпадает. Я даю вам эту схему, чтобы показать, насколько легко вы можете справиться с комбинационной схемой, уже оптимизированной каким-то методом, в кото- ром до конца разобрался только ее разработчик. Хотя я подчеркивал, что вам придется разрабатывать свои комбинационные схемы с помощью представлен- ной выше структурной схемы, я хотел использовать ее для того, чтобы объяс- нить, как рассматривать сложные на вид схемы и понять, что они делают. Схе- ма светофора должна быть довольно хорошим примером указанной проблемы, поскольку я стремился оптимизировать ее до такой стадии, когда она влезет на короткую макетную плату, которая используется вместе с платой, приведен- ной в Приложении 3. Увы, мне это не удалось, и я решил взять плату большего
ftataHausiiik Эксперимент 69. Светофор 289 размера, но я никогда не склонялся к тому, чтобы изменить саму схему (а такое часто бывает, когда разработчик схемы меняет ее конструктивное решение). Рис. 12.19. Комбинационной схема светофора Светофор на светодиодах □ □□□о □ □□□□ 74LS174 □ □□□ □ □ □ □ □ □ □□ □ □ □ □ □ □□□о -s-e-ED □ □□□□□□□□о Рис. 12.20. Схема светофора, смонтированная на длинной макетной плате, поскольку она слишком велико для макетной платы, которой помещается на печатной плате из Приложения 3 а □□ □ па-в-и □ □□□□ 74LS00 □ по □ □ а а с □ а-йСг'и------ □□эёеаеее&еа ЮиВ □□□□□□□□□□□□□ 1° 74LS139 □□□□да оооооея □ □□□ а □ □ □ □ □ □ □ □ □
290 Г/IRBR1L Гкхледоеотельностные логические сеемы Чтобы понять работу схемы, попытайтесь разбить ее на функциональные блоки и обратите внимание на то, понимаете ли вы их свойства. Если бы мне дали такую схему, то я разбил бы ее на такие блоки (с комментариями). 1. Источник питания. Батарея на 9 В и стандартный стабилизатор 78L05 с напряжением 5 В и током нагрузки 100 мА. 2. 1енератор синхроимпульсов на чипе 555. Подставив значения R и С в формулы для генератора в автоколебательном режиме, убеждаюсь, что период последовательности синхроимпульсов составляет примерно одну секунду. 3. Выход схемы, нагруженный на светодиоды. Со светодиодами использу- ются токоограничивающие резисторы 470 Ом. 4. Схема сброса. На выходе цепи, состоящей из резистора 10 кОм и конден- сатора 10 мкФ, низкий потенциал при подаче питания на схему. Для чего на элемент И-НЕ подается сигнал с резистора ц конденсатора, а также инвертированный выходной сигнал D-триггера, непонятно. Также неяс- но, с какой целью схема управления выполнена на транзисторе с откры- тым коллектором. 5. Совсем не понятно, как работает и для чего применяется микросхема 74LS174. Похоже, она тоже соединена со схемой сброса. 6. Что такое 74LS139? Выглядит, как некая комбинационная схема, но для чего она предназначена? Итак, три узла схемы вызывают вопросы. Я хотел бы начать с пункта 3, но он, видимо, связан с работой микросхемы 74LS174, а потому с нее и начнем. В микросхеме 74LS174 имеется несколько триггеров, входы и выходы кото- рых соединены с ее выводами. Первый вход подсоединен в схеме к положи- тельному полюсу источника питания, а потому на вход первого триггера всегда поступает логическая единица. Поскольку у каждого триггера выход соединен со входом, то можно ожидать, что единица будет передаваться от одного триг- гера к другому. Единственная проблема в том, что же произойдет, когда все они будут загружены единицами. Выходной сигнал последнего триггера в цепочке инвертируется и через элемент И-НЕ и управляющий транзистор с открытым коллектором подается на вход сброса триггеров микросхемы. Проследив это соединение, вы увидите, что потенциал вывода _CLR микросхемы 74LS174 ста- новится низким, когда потенциал вывода 6Q становится высоким, и при этом происходит сброс всех триггеров микросхемы. Если произошел сброс всех триггеров микросхемы, процесс загрузки единиц начнется снова (рис. 12.21). «Помеха» появляется, когда 6Q переходит в состояние высокого уровня, а за- тем сбрасывается вместе со всеми прочими битами. Теперь, зная, какой узел предназначен для сброса (в схеме это блок номер 3), нужно убедиться, что он объединяется с RC-цепыо, чтобы производить очист- ку всех триггеров микросхемы 74LS174 при подаче питания или в том случае, * См. формулы в эксперименте 89. - Прим, перев.
Natattausiii Эксперимент 69. Светофор 291 Рис. 12.21. Робота D-трилгеров в схеме сает<х|юрс когда производится их установка. Осталось выяснить, как применяется схема управления с открытым коллектором. Поскольку она соединена только с одним входом, предположим, что это инвертор логики Микки-Мауса (ММЛ), так как уже использованы все четыре элемента И-НЕ микросхемы 74LS00. И последнее: микросхема 74LS189 и ее функция в схеме. Сталкиваясь с ми- кросхемой, которую никогда прежде не видели, найдите ее в справочнике и посмотрите, можете ли вы понять ее функции. Вы можете также произвести поиск в системе Google (www.google.com) или обратиться к дистрибьютору (я рекомендую Digi-Key на сайте www.digikey.com, поскольку они дают ссылки на справочные листки технических данных компонентов). Согласно описанию, элемент 74LS139 представляет собой два дешифратора из 2 в 4 (что, может быть, поможет вам, а может, и нет). 74LS139 и дешифратор 3-8 (74LS138) - чрезвычайно полезные микросхемы, когда вам нужна произвольная логическая функция, но собирать соответствую- щую схему из целой кучи элементов И, ИЛИ и НЕ не хочется. Дешифраторы (или демулътипдексерами) преобразуют двоичные величины в сигналы на от- дельных выходных линиях связи. Главным образом они используются при де- кодирования адресов памяти для отдельных микросхем. Ниже я показал логи- ку, встроенную в каждый из дешифраторов из 2 в 4, входящих в состав 74LS139 (рис. 12.22). Рис. 12.22. Схема дешифратора из 2 в 4
292 ГЛАВЙ 1g. Последоаотельностные логические схемы Выражения для величин на выходах схемы таковы: # K) = /(/_#G. /#А - /#В) # П = .'(.'_#G- #А - /#В) # У2 = /(.'#_ G • /#А • #В) # K? = /(/#_G. #А- !#В) Применять дешифраторы, возможно, и не обязательно, но на этот раз в виде исключения я объясню, как разрабатывал схему и каковы ее состояния при ра- боте. Позволив единице «перетекать» через D-триггеры микросхемы 74LS174, я сформировал набор информационных бит, используя которые, я могу опреде- лить, какие из огней свст(х|х )ра должны включаться. С помощью описания со- стояний в приведенных выше формулах, я составил табл. 12.3, в которой ука- зал, какие из огней должны быть активны. Исходя из данных таблицы я могу указать выражения для ситуаций, когда будут включены разные светодиоды. Таблица 12.3. Робота светофора Состояние Светодиоды Север/Юг Светодиоды Восток/Запад Qo“0 Красный включен Красный включен Красный включен Зеленый включен Красный включен Желтый включен Qa=1 Красный включен Красный включен 9а=1 Зеленый включен Красный включен Желтый включен Красный включен Ceeep/Юг Красный = /Q, Север/Юг Зеленый - Q, • IQ* Север/Юг Желтый - Q- Q, Восток/Запад Красный = Восток/Запад Зеленый = Q • IQ^ • /Q, Восток/Запад Желтый = Q/ • Qj • /Q? Рассмотрев эти формулы, вы увидите, что сигналы на четырех светодиодах являются просто результатами логического умножения (и сформировать их можно с помощью дешифратора); один из светодиодов можно подсоединить прямо к линии связи с битом данных. У одного из светодиодов (Восток/Запад Красный) довольно сложное выражение, которое требует анализа, поскольку я не хочу добавлять к схеме больше микросхем, чем нужно (я ведь пытаюсь уместить схему на короткой макетной плате). К счастью, я могу применить теорему де-Моргана и изменить это выраже- ние, чтобы применить элементы И-НЕ: Восток/Запад Красный = IQ?) Мне еще придется инвертировать одну величину, но это легко сделать с помощью оставшегося элемента И-НЕ или инвертора ММЛ, как я делал в схе- ме сброса.
Эксперимент 70. Сдвиговые регистры 293 ^alalia Эксперимент 70. Сдвиговые регистры Детали Инструменты Набор инструментов для радиомонтажа Смонтированная печатная плата с макетной платой. Микросхема 78L05, стаби- лизатор напряжения. Чип таймера 555. Микросхема 74LS74, два D-триггера. Микросхема 74LS174, шесть D-триггеров. Во- семь светодиода любого цвета. Резистор 10 кОм. Два резистора 2,2 кОм. Восемь резисторов 470 Ом. Эле- ктролитический конденсат эр 100 мкФ. Электролитиче- ский конденсатор 10 мкФ. Электролитический конден- сатор 1 мкФ. Четыре конденсатора 0,01 мкФ любого типа В оставшейся части главы (ив большей части книги) я буду рассматривать схе- мы, которые передают данные от одной микросхемы или группы микросхем к другой. Указанное требование передавать информацию применяется не толь- ко к обмену между компьютерными системами; часто оно предъявляется к об- мену между микросхемами или подсистемами внутри робота. Эта информация обычно включает несколько бит, каждый из которых является частью целого сообщения, подлежащего передаче. Когда несколько бит информации переда- ются в прямом и обратном направлениях, вам следует задаться вопросом: как должны передаваться данные - параллельно или последовательно? До сих пор я показывал схемы, в которых несколько бит информации передаются в парал- лель; каждому биту предоставлена отдельная линия связи или контакт. Парал- лельно данные могут пересылаться довольно быстро, но при этом необходима синхронизация или бит разрешения, чтобы показать приемнику, что данные готовы для обработки. Параллельные данные могут оказаться довольно громозд- кими, когда у вас имеется большое количество бит (16 бит представляют собой гораздо более серьезные трудности, чем учетверенные трудности пересылки четырех бит). Альтернатива параллельной пересылке данных - разобрать последователь- ность на биты и пересылать каждый из них последовательно по одной линии связи (рис. 12.23). Последовательная пересылка данных используется практи- чески во всех интерфейсах вашего ПК. Единственные параллельные интерфей- сы, которые остались в современном ПК, - это шина внешнего интерфейса процессора, шина PCI (Peripheral Component Interconnect) и параллельный порт (если он имеется). Последовательная пересылка данных, хотя она и нуж- дается в оборудовании для преобразования сигнала из параллельной формы
194 I71RBR It» Последовательностные логические схемы Рис. 12.23. Преобразование данных из параллельном формы в последовательную в последовательную, а кроме того, для обратного преобразования, является предпочтительной практически для всех приложений. Чтобы послать шесть бит в параллель, требуется шесть схем управления на передаче и столько же приемников. Чтобы послать шесть бит последователь- но, нужны всего одна схема управления на передаче и один приемник, но пере- дающая схема должна иметь передатчик со сдвиговым регистром, а приемная - приемник со сдвиговым регистром. При параллельной пересылке данные мож- но послать за время, необходимое для посылки всего одного бита, а последова- тельная пересылка данных требует времени, достаточного для посылки каждо- го из шести бит индивидуально. Возможно, у вас создалось впечатление, что последовательная передача дан- ных требует больших накладных расходов и снижает скорость передачи ин- формации. Прежде чем сделать такой вывод, вы должны принять во внимание целый ряд факторов. Во-первых, большинство микросхем сделаны не из от- дельных логических элементов, как представленные здесь простые чипы; обычно они обладают очень высокой степенью интеграции и состоят из тысяч элементов, причем влияние, которое оказывает добавление последовательных сдвиговых регистров, совсем невелико. Кроме того, синхронизировать все параллельные биты в высокоскоростных схемах, чтобы они поступали на при- емник одновременно, может оказаться*сложной задачей. Наконец, несколько линий связи могут потребовать больше места и больших затрат. Если бы ми- кросхемы или подсистемы могли обладать встроенными сдвиговыми регистра- ми, то часто имело бы смысл (как с практической, так и с экономической точ- ки зрения) передавать данные последовательно. Информацию можно передавать последовательно тремя способами (рис. 12.24). Познакомившись с RS-282 (мы обсудим это в главе о Parallax Basic Stamp 2), вы узнаете об асинхронной последовательной передаче данных, при которой биты данных пересылаются по одной линии связи. Когда данные пе- ресылаются асинхронно, все биты имеют одинаковую длину, а стартовый бит
Эксперимент 70. Сдвиговые регистры 195 указывает на приход пакета данных. Синхронный способ последовательной пе- редачи данных требует двух линий связи: по одной передаются данные, а по другой - последовательность синхроимпульсов, указывающих, когда значения данных верны. Как я сейчас покажу, триггеры на приемной стороне являются триггерами, синхронизируемыми фронтом, причем данные сохраняются по фронту тактового импульса (рис. 12.25). Последний способ последовательной передачи данных называется Манчестерским кодированием, при котором зна- чение данных определяется в зависимости от того, как долго сигнал имеет высокий или низкий уровень. Манчестерское кодирование - очень популяр- ный способ кодирования для инфракрасных пультов дистанционного управле- ния телевизорами. Для большинства простых приложений, в которых данные пересылаются последовательно между двумя микросхемами, вы будете исполь- зовать синхронный последовательный поток данных, что я сейчас и продемон- стрирую. Схемы синхронного последовательного приемника и передатчика легко собрать, и для них не требуется никакого специального синхронизирую- щего оборудования, как при асинхронном способе или способе передачи с Ман- честерским кодированием. Заметьте: если на линии данных появляется непра- вильное значение, а затем происходит возврат к правильному значению до прихода спадающего фронта тактовых импульсов (когда данные «фиксируют- ся»), то неправильное значение не записывается (рис. 12.25). Если такое непра- вильное значение появится на последовательной асинхронной линии или ли- нии с Манчестерским кодированием, то произойдет информационный сбой. Стартовый бит Столовый бит «Холостой ход», Синхоонный данные Биты данных Необязательный бит синхронный не передаются виты данных для обнаружения ошибок Данны6 |В0|В1 |В2|ВЗ|В4|В5|В6|В7| Синхронизация Данные записываются по “нарастающему фронту* сигнала синхронизации I______ “Ведущий" *0’. ‘ Импульс синхронизации, определяющий время записи бита Манчестерское кодирование Переная информация Рис. 12.24. Ьо^совоте/ъные потоки донных: асинхронный, аеаронный и с Манчестерским кодированием “Помеха”, которую приемник игнорирует Синхронизация Принятая информация ВО В1 В2 ВЗ В4 В5 В6 В7 Рис 12JB5. Подробные эпюры для синхронной последовательной передачи донных
296 ГЛАВА 12. Последовотельностные логические схемы Ниже я показал простую синхронную последовательную схему, которая бу- дет непрерывно передвигать единицу по сдвиговому регистру, передавая дан- ные с выхода одного D-триггера на вход другого (рис. 12.26). Когда на схему подается питание, все связанные D-триггеры сдвигового регистра будут «очи- щены», кроме одного D-триггера, в который будет загружена единица. Эта ве- личина будет продвигаться через D-триггеры со скоростью примерно пять раз- рядов в секунду. 2.2k 2.2k Thrsh Vcc Gnd 1 100 pF Vcc Vctrl Out _Rst Trig Dchrg _8 _4 _з 5 0.01 pF | 10k 0.01 pF 14 4 13 74LS74 74LS174 Vcc 0.01 pF Vcc _PR2 _CLR2 CLK1 CLK2 _PR2 _CLR1 Gnd CLK _CLR 1 Gnd D2 Q2 DI Q2 D1 QI D2 Q2 D3 Q3 D4 Q4 D5 Q5 D6 Q6 470 5 470 3 470 470 470 470 15 12] 14 12 ET 2 % 4 6 ZJ 11 13 470 470 9 1 Рис. 12.26. Чередующееся включение светодиодов при помощи сдвигового регистра Поскольку я соединил выход сдвигового регистра с его входом, значение данных в нем никогда не будет потеряно. В типичных схемах вход сдвигового регистра на передаче замыкают на Vcc или на «землю» (таким образом, после того, как данные посланы, передаче постоянно будет подлежать известная ин- формация), а выходной бит сдвигового регистра на приеме не передается на другой сдвиговый регистр.
NaiaHausiiik Эксперимент 71. Новогоднее упрощение 297 Эксперимент 71. Новогоднее украшение Детали Печатная плата для опыт- ных образцов- Зажим для 9-вольтовой батареи. Дер- жатель для 9-вольтовой батареи. Микросхема 7805, стабилизатор +5 В. Чип таймера NE555. Ми- кросхема 74LS174, шесть D-триггеров. Микросхема 74LS74, схема сложения на 4 бита. Микросхема 74LS86, четыре деухахвдовых эле- мента ИСКЛЮЧАЮЩЕЕ ИЛИ. Восемь светодиодов любого цвета. Два резистора 47 кОм. Резистор 10 кОм. Восемь резисторов 470 Ом. Три электролитических конденсатора 10 мкФ. Шесть идденсаторив 0,01 мкФ любого типа. Однополюсный переключатель на одно на- Инструменты Моток проволоки сечением 0,03-0,1 ммг/проеожжа для опытного образца. Па- яльник. Припой. Кусачки. Ротационный режущий ин- струмент (см. текст). Дрель со сменными сверлами. Программируемый кальку- лятор с возможностями двоичной арифметики правление, предназначенный для установки на панель Практически во все написанные мной книги я включил схему; которая включает и выключает светодиоды в случайном порядке, и предлагал читателю собрать эту схему в виде новогодней елки, украшенной мигающими светодиодами. При этом я стремился не столько к тому, чтобы создать у читателя праздничное настрое- ние, сколько к тому, чтобы проиллюстрировать очень полезную схему цифровой логики - сдвиговый регистр с линейной обратной связью (рис. 12.27). Последова- тельный вход Последова- тельный выход Рис. 12.27. Базисная схема сдвигового регистра на 8 бит с последовательным входом и линейной обратной связью Этот простой сдвиговый регистр с линейной обратной связью передает биты 5 и 7 сдвигового регистра через элементы ИСКЛЮЧАЮЩЕЕ ИЛИ об- ратно на вход. Это изменяет значения бит в сдвиговом регистре в соответствии с формулой: Бит() = БитВх XOR (Бит^ XOR Бит,) Сдвиговый регистр с линейной обратной связью обычно используется для следующих трех целей. • Формирование значения контрольной суммы, что известно под названием контроль избыточным циклическим кодом. Эта сумма является уникальным значением или подписью для строки бит. Как передатчик, так и приемник
298 ГЛАВА 12. Последовательностные логические схемы будут пропускать данные через сдвиговые регистры с линейной обратной связью, и в конце этого процесса контрольная сумма, сформированная пе- редатчиком, сравнивается с контрольной суммой, сформированной прием- ником. Если между контрольными суммами есть разница, приемник выра- ботает запрос передатчику на повторную передачу данных. • Шифрация строки бит. Сдвиговые регистры с линейной обратной свя- зью могут служить средством шифрации/дешифрации, причем элемен- том такой шифрации служит начальное значение, записанное в сдвиговый регистр с линейной обратной связью. Значение на выходе сдвигового ре- гистра с линейной обратной связью зависит от начального значения, за- груженного в регистр. Дешифрация данных также выполняется при помо- щи сдвигового регистра с линейной обратной связью, но конфигурируется как комплементарная (дополнительная) функция. • Генерация псевдослучайных чисел. Одним из наиболее сложных компью- терных заданий из тех, что вам предложат, будет получение последова- тельности случайных чисел. Вообще компьютеры считают, детерминисти- ческими машинами. Это значит, что то, что они будут делать в любой данный момент времени, можно рассчитать математически. Это свой- ство важно для большинства приложений (никто не захочет иметь ком- пьютер, который загружается каждый раз по-разному, или программу об- работки текстов, реагирующую на нажатие клавиш случайным образом). Однако этот вопрос является проблемой для многих робототехнических решений, когда робот должен начать двигаться. Во всех этих приложениях сдвиговый регистр с линейной обратной связью является идеальным вариантом решения, поскольку его легко собрать всего из нескольких элементов (что означает низкую себестоимость и высокое быстро- действие). Сдвиговый регистр с линейной обратной связью может быть также реализован в виде ПО, как я сейчас покажу. В данном эксперименте я должен собрать сдвиговый регистр с линейной обратной связью (рис. 12.28). Если бы вы собирались описать сдвиговый ре- гистр с линейной обратной связью для кого-нибудь еще, вы могли бы послать ему графическое изображение или выразить его в виде многочлена: Нумерация бит. использованная для имитации калькулятора Рис. 12.28. Практической схемо сдвигового регистре с линейной обратной связью на 8 бит для генерации псевдослучайна чисел
Эксперимент 71. Новогоднее украшение 199 Формат многочлена представляет собой традиционное представление того, как работает сдвиговый регистр с линейной обратной связью, и применяется ма- тематиками для оценки работы сдвигового регистра с линейной обратной связью. Относительно сдвигового регистра с линейной обратной связью вы долж- ны усвоить несколько моментов. • В сдвиговом регистре с линейной обратной связью ни при каких условиях не может содержаться 0. Если в нем записан 0, то никогда и никакие биты нельзя будет установить. • Идеальная реализация сдвигового регистра с линейной обратной связью будет способна сформировать (2П - 1) различных величин. • В плохо спроектированном сдвиговом регистре с линейной обратной связью возможна ситуация, когда он прекращает работать, установив- шись в 0. В рамках данного эксперимента я использовал сдвиговый регистр с линей- ной обратной связью (см рис. 12.28) для создания украшения в виде новогод- ней елки. Схема эксперимента состоит из таймера 555, который управляет сдвиговым регистром с линейной обратной связью на 8 бит со светодиодом на каждый бит, используемым как огонек на елке (рис. 12.29). Следует сделать несколько замечаний относительно этой схемы. Я собрал схему сброса для микросхемы 74LS174 и одного из D-триггеров микросхемы 7805 +5V/VCC Выключатель WW ннтаиия ||W 0.01 pF ю mF 2.2k Thrsh 2.2k Vcc Gnd 1 Trig Dchrg Vcc _Rst Out Vctrl +L6 100 mfT £ £ £ 5 Vcc 0.01 gF 74LS74 74LS174 Vcc o.oi mF Vcc PR2 _CLR2 CLK1 CLK2 _PR2 _CLR1 Gnd 14 4 13 3 11 D2 Q2 D1 Q2 CLK 0.01 mF 10k Gnd _CLR D1 01 D2 02 D3 03 04 Q4 D5 Q5 06 06 Vcc 9 2 10 470 470 470 470 470 470 13 470 14 15 О 9 Рис 12.29. Сдвиговый регистр с линейной обратной связью, используемый для украшения в виде новогодней елки
300 ГЛЯВЯ It. Послеуе ^.тельностные логические схемы 74LS74. На другом D-триггере микросхемы 74LS74 я собрал схему установки, чтобы гарантированно при подаче питания хотя бы один бит устанавливался в 1, а не все биты были нулевыми, что приведет к тому, что состояние схемы никогда не изменится. Прежде чем вырезать из печатной платы для опытных образцов форму новогодней елки и начать собирать схему, я решил проверить сдвиговый регистр с линейной обратной связью двумя способами. Первый был основан на использовании моего программируемого калькулятора (спо- собного манипулировать двоичными числами и выполнять операции булевой алгебры), чтобы убедиться, что я могу получить 255 различных чисел. Другой способ - собрать схему на макетной плате. Она похожа на схему све- тофора (но с другим стабилизатором напряжения). После монтажа я дал схеме поработать в течение 10 минут чтобы убедиться, что она не прекратит рабо- тать (например, из-за плохой конструкции сдвигового регистра с линейной об- ратной связью). Тогда-то я и обнаружил, что лучше использовать стабилизатор 7805, а не 78L05. Убедившись, что схема работает, как с помощью калькулятора, так и на опыт- ном образце, я приступил к сборке новогоднего украшения. Плату в форме ново- годней елки я отрезал ротационным инструментом (Dremel), оснащенным фре- зой из твердого сплава. Не забудьте при выполнении этой операции надеть защитные очки и защитную маску. Затем я установил на плате батарею (с выклю- чателем питания), микросхемы и, наконец, светодиоды по наружному периме- тру «елки» (рис. 12.30). Батарея также выполняет роль «подставки» для елки. На виде сзади показан навесной монтаж, которым выполнены соединения схемы. Рис. 12.30. Новогоднее украшение в сборе
Эксперимент 72. Хоотически движущийся робот 301 ftalaflausltk Эксперимент 72. Хаотически движущийся робот Детали Набор инструментов для радиомонтажа Смонтированная печатная плата с макетной платой. Основание для двигате- лей постоянного тока с зажимами для четырех батарей типа АА. Чип тай- мера 555. Микросхема 74LS174, швеи» D-тригге- ров. Микросхема 74LS86, четыре двухнходовых элемен- та ИСКЛЮЧАЮЩЕЕ ИЛИ. Два транзистора ZTX649. Два кремниевых диода типа 1N914 или 1N4148. Три резистора 10 кОм. Два резистора 100 Ом. Электроли- тический конденсатор 47 мкФ. Конденсатор 1 мкФ любого типа. Три конденсатора 0,01 мкФ любого типа Сдвиговый регистр с линейной обратной связью пригодится вам при создании роботов. Часто у вас будет возникать желание, чтобы после выполнения зада- ния робот двигался по комнате хаотически. Или же, если он «загнал» самого себя в угол, очень эффективным способом выгнать его оттуда будет хаотичес- кое движение в разные стороны с последующим повторным стартом действий, которые привели к тому, что он «споткнулся». Позже я покажу, как BS2 может обеспечить произвольное состояние робота, которым вы можете воспользо- ваться для хаотического движения робота по комнате. Однако сейчас я хотел бы с помощью сдвигового регистра с линейной обратной связью организовать хаотическое движение по комнате основания робота с двигателями постоян- ного тока. Проектируя схему сдвигового регистра с линейной обратной связью, я хо- тел бы убедиться, что ее можно разместить на макетной плате и основании робота, которыми мы уже пользовались. На небольшой макетной плате невоз- можно разместить много логических схем, и поэтому придется создавать по возможности простую схему. Сдвиговый регистр с линейной обратной связью, который я предлагаю (рис. 12.31), можно реализовать всего на одном шести- разрядном D-триггере и еще одном чипе, содержащем два элемента ИСКЛЮ- ЧАЮЩЕЕ ИЛИ. Обе эти функции имеются в микросхемах, с которыми вы уже работали. Работу шестиразрядного сдвигового регистра с линейной обратной связью (положение отводов обратной связи) я проверил с помощью программируемо- го калькулятора (см. эксперимент 71). Когда мы обсуждали сдвиговые регистры, я говорил, что предпочитаю стро- ить схему из базовых D-триггеров. Данная схема и схема украшения в виде но- вогодней елки показывают выгоды такого подхода: на основе микросхемы
302 ГЛЙВЯ 12. Последовательностные логические схемы Второй элемент Рис 12.31. Шестиразрядный сдвиговый регистр с линейной обратной связью для управления псевдослучайным движением робота 75LS174 можно построить сдвиговый регистр, восьмиразрядный сдвиговый регистр с линейной обратной связью или шестиразрядный сдвиговый регистр с линейной обратной связью. В данном эксперименте я разработал простой робот, хаотично двигающий- ся влево, вправо и вперед под управлением сдвигового регистра с линейной обратной связью (рис. 12.82). Чтобы обеспечить размещение всей схемы на небольшой макетной плате, я пускаю двигатели только в одном направлении - вперед. Поворот осуществляется, когда один из двигателей выключен, а другой активен. Это несколько меньше, чем то, что я считаю настоящим роботом, но изделие иллюстрирует тот факт, что сдвиговый регистр с линейной обратной связью может обеспечить хаотическое перемещение. Vcc Выключатель питания Vcc Источник питания на четырех бата- реях типа АА Vcc Рис. 12.32. Сдвиговый регистр с линейной обратной связью, использованный в хаотически движущемся роботе
^alatiausi^ Эксперимент 7Ъ. Счетчики 101 Одним из необычных (для меня) свойств данного робота является то, что я использовал один батарейный источник питания вместо того, чтобы питать двигатели робота от блока батарей типа АА, а логику и таймер 555 - от 9-воль- товой батареи и стабилизатора напряжения. Вероятно, я мог бы поставить ста- билизатор 7805 (и нужные резисторы), но это сделало бы монтаж схемы более плотным. В конечном же счете робот довольно хорошо работает и с единствен- ным источником электропитания. Еще одно необычное свойство данной схемы: в качестве инвертора я ис- пользую элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, один вход которого соединен с Vcc. Я уже рассказывал, как использовать в качестве инверторов элементы И-НЕ и ИЛИ-НЕ, но тогда я не упомянул, что таким же образом можно исполь- зовать и ИСКЛЮЧАЮЩЕЕ ИЛИ. Эксперимент 73. Счетчики Детали Смонтированная печатная плата с макетной платой. Микросхема 7805, стаби- лизатор +5 В. Чип тайме- ра NE555. Микросхема 74LS174, шесть D-тригге- ров. Микросхема 74LS74, схема сложения на 4 бита. Набор инструментов для радиомонтажа Микросхема 74LS83, четырехразрядный сумматор. Четыре светодиода любого цвета. Три резистора 10 кОм. Четыре резистора 470 Ом. Два электролити- ческих конденсатора 47 мкФ. Конденсатор 1 мкФ лю- бого типа. Четыре конденсатора 0,01 мкФ любого типа Одной из наиболее употребительных последовательностных логических схем является счетчик. Счетчик состоит из многоразрядного триггера-защелки, с вы- хода которого сигнал подается на сумматор. Этот сумматор производит прира- щение выходного сигнала триггера-защелки (то есть, прибавляет к нему 1) и пе- редает это значение обратно, на вход триггера-защелки. Увеличенное значение сохраняется в триггере каждый раз при поступлении импульсов синхронизации. Счетчики обеспечивают выполнение целого ряда задач, и важно помнить, что синхронизация может быть тактовой последовательностью с постоянной часто- той (чтобы фиксировать продолжительность события), а может быть внешним событием, число которых записывается с помощью счетчика. Обратите внимание на выход переноса с сумматора счетчика (рис. 12.33). Бит переноса становится активным, когда величина, равная записанному в триггере значению плюс единица, превышает величину, которая может быть
104 ГЛАВА 12. Последовательностные логические схемы сохранена в триггере-защелке. Возможно каскадное подключение выхода счет- чика ко входу другого счетчика (рис. 12.34) с целью удвоить количество под- считываемых битов. Когда вы создаете компьютерные программы низкого уровня, указанная функция переноса является для вас решающей, так как по- зволяет вам сформировать математические функции для чисел, требующих больше битов, чем может обработать процессор. D-триггер, пере- ключаемый фронтом Рис. 12.34. Каскодное включение счетчика с переносом одного бито в следующий счетчик Сейчас я покажу, как строится счетчик при помощи отдельных микросхем сумматора и триггера-защелки. Добавляя функции счетчика к своим собствен- ным разработкам, вы, вероятно будете использовать чипы ТТЛ и КМОП, на- пример, 74161 и 74193. Оба чипа являются четырехразрядными счетчиками, но первый способен считать только в прямом направлении, и изменение зна- чения на его выходе (при сбросе и загрузке) определяется импульсами синхро- низации. Второй может считать как в прямом, так и в обратном направлении, и изменение его значения происходит немедленно (асинхронно), а не по вход- ному синхроимпульсу’ (синхронно). Счетчик 74160 идентичен счетчику 74161, но считает только до двоичного значения числа 9 в отличие от 15, как в случае 74161 (счетчик 74192 также
Эксперимент 73. Счетчики 105 считает только до 9). Это позволяет создавать дисплеи на десятичных Счет- чиках (используя 7-сегментный светодиодный дисплей и стандартные схемы управления дисплеем) для не слишком «продвинутых» пользователей. Наряду со счетчиками 74161 и 74193 функции счета обеспечивает целый ряд ТТЛ- и КМОП-микросхем. Лично я использую эти два чипа, так как их можно применять в широком диапазоне различных устройств и их легко включить каскадом, образуя счетчики для бблыпих чисел. В большинстве ТТЛ-счетчиков значение обновляется по нарастающему фронту синхроимпульсов; это важно отметить, чтобы обеспечить наличие нарастающего фронта у сигнала перено- са в нужный момент с целью гарантированно увеличивать на 1 значения счет- чика для старших значащих битов в правильно выбранное время. В этом эксперименте демонстрируется работа схемы счетчика, в которой используется задающий генератор синхроимпульсов на таймере 555 с выходной частотой 1 период в секунду (1 Гц). Этот сигнал поступает на схему синхрониза- ции, построенную на основе микросхемы 74LS174 (6 D-триггеров) и простого сумматора (рис. 12.35). Эта очень простая схема будет просто последовательно увеличивать на 1 число, отображаемое с помощью светодиодов, пока все они не будут гореть (отображая при этом число 15 или %1111), а затем будет вновь про- исходить сброс счетчика в О*. Бата- рея 9 В Выключатель питания +5V/Vcc VCC 16 74LS74 0.01 pF 47 pF Vcc 10k 10k Vcc Thrsh Trig Dchrg Vcc — Rst -j- Out4- Vctrl-^-i 8 4 3 5 ►CLK _CLR D4 D3 D2 D1 3 1 11 6 4 Gnd Vcc 16 [0.01 pF Vcc +L6 47jifT Gnd —- 0.01 pF 10k: S1 S2 S3 S4 1pF 4 1 13 10 Gnd 74LS283 9 1 Рис 12.35. Схема счетчика на дискретных элементах Для двоичных чисел автор использует префикс «%». - Прим, перев.
306 ГЛАВА 12. Последовотельностные логические схемы Эксперимент 74. Триггеры Шмитта иа входах и устранение дребезга кнопочного переключатели Детали Смонтированная печатная плата с макетной платой. Микросхема 7805, стаби- лизатор +5 В. Микросхе- ма 74LS191, четырехраэ- рядный счетчик прямого/ обратного счета. Микро- схема 74LS14, шесть ин- Инструменты верторов с триггерами Шмитта на входе. Два рези- стора 10 кОм. Четыре резистора 470 Ом. Два электролитических конденсатора 10 мкФ. Три конден- сатора 0,01 мкФ любого типа. Кнопки кратковремен- ного включения. Однополюсный переключатель на два направления, предназначенный для установки на ма- кетную плату По-моему, проблема возникновения дребезга у переключателей и кнопок - одна из наиболее важных и неприятных, с которыми вам придется справляться при разработке роботов. Вы, возможно, полагаете, что электрическое соединение устанавливается мгновенно, и удивитесь, обнаружив, что контакты внутри пе- реключателя на практике некоторое время дребезжат, прежде чем переключа- тель установит постоянный контакт (рис. 12.36). Рис. 12.36. Осциллограмма дребезга переключателя Представляя Parallax Basic Stamp 2, я поясню, как считывать состояние пе- реключателя и отфильтровывать дребезг. Подача сигнала с дребезгом прямо на
^ataUausj^ Эксперимент 74. Триггеры Шмитта но входах и устранение дребезга переключателя 307 разработанную схему создает проблемы, так как множественные колебания переключателя при дребезге обычно обрабатываются, как если бы переключа- тель многократно замкнули и разомкнули. Один из методов борьбы с дребезгом в переключателе состоит в том, чтобы создать небольшой триггер, способный изменять свое состояние при помощи переключателя на два направления (рис. 12.37). Переключатель будет «привя- зывать» вход правого логического инвертора к тому состоянию, в котором он находится, а выходной сигнал этого инвертора будет подаваться на левый ин- вертор, изменяя его состояние и приводя схему в равновесие. Выходы и входы двух инверторов поддерживают значение на выходе триггера, когда переклю- чатель дребезжит и не находится в контакте ни с положительным полюсом питания, ни с «землей». Рис. 1237. Усгронение дребезга переключателя с помощью триггера Противодребезговая схема, которую я вам рекомендую использовать, состо- ит из резистивно-емкостной цепочки, которая заряжается в течение заданно- го времени или же быстро разряжается через замкнутый переключатель либо кнопку (рис. 12.38). Дребезг фильтруется не полностью, но состояние после фильтрации гораздо лучше, чем то, с чего мы начинали (рис. 12.39). Рис. 1238. Устранение дребезга с помощью АС-цепи и триггера Шмитта Нажатие кнопки Входной сигнал ___Переключатель «дребезжит» Входной сигнал после RC-фильтра Фильтрованный входной сигнал с RC-цепи Рис. 1239. Фильтрация дребезга АС-цепью
308 ГЛЙВЯ12. Последовательностные логические схемы Инверторы с забавными символами представляют собой инверторы с триг- герами Шмитта на входе (см. рис. 12.38). Они обеспечивают дополнительную фильтрацию входного сигнала от кнопки. Входы с триггерами Шмитта позво- ляют изменить состояние нарастающего или спадающего фронтов сигнала с гистерезисом (рис. 12.40). Гистерезисом называется свойство входов триггера Шмитта, при котором пороговое значение для нарастающего фронта сигнала отличается от порогового значения для спадающего фронта. Заметьте: порог для нарастающего фронта выше, чем нормальное пороговое напряжение логи- ческого элемента, в то время как порог для спадающего фронта ниже его. Характеристика с гистерезисом «Помеха» IНа сигнала! Стандартная характеристика (без гистерезиса) Порог, равный 50% от напряжения (Догнала Входной сигнал Порог перехода от низкого уровня Логика с гистерезисом игнорирует «помеху» андартной «помеху» к высокому у логики Порог перехода с гистерезисом от высокого уровня к низкому у логики с гистерезисом Рис. 12.40. (йстерезис логических сигналов Указанное изменение значения порога и является объяснением странного символа на инверторах, указывающего на наличие входов с триггерами Шмит- та. Обратите внимание на входной сигнал и отклик такого элемента, а также характеристику гистерезиса в координатах X-Y (рис. 12.41): по оси X откла- дываются значения входного напряжения, причем его значения нарастают в направлении вправо, а ось Y представляет отклик входа с триггером Шмитта. Следуя номерам точек, вы должны увидеть характеристику такого входа и то, что она образует тот же символ, что я нанес на микросхемы инверторов. От- мечу, что для традиционных логических элементов этот символ не использу- ется; у них порог отклика одинаков для нарастающего и спадающего фронтов сигнала. Для данного эксперимента я буду предполагать, что у вас нет доступа к ос- циллографу. Чтобы продемонстрировать дребезг кнопки и его фильтрацию, я собираюсь пропустить входной сигнал с кнопки через счетчик (рис. 12.42). При помощи нажатия кнопки вход счетчика будет замыкаться на низкий уровень и, если кнопка дребезжит, показание счетчика будет увеличено на 1 несколько раз. Чтобы неоднократно проверять схему, я добавил к ней кнопку сброса. Устра- нять дребезг этой кнопки нет нужды, так как нам безразлично, сколько раз бу- дет очищен счетчик всякий раз при нажатии этой кнопки. Собрав и проверив схему (записав количество циклов дребезга на каждое на- жатие кнопки), добавьте инверторы 74LS14 и конденсатор 10 мкФ для устранения
Эксперимент 74. Триггеры Шмитто но входах и устранение дребезга переключателя 309 Входной______О сигнал Характеристика с гистерезисом Стандартные графики в системе координат «Y-Т» и характеристика гистерезиса О © ф ффф График входного сигнала в системе координат «Х-Y» и характеристика гистерезиса Рис. 12.41. Понесение значений логического сигнала на характеристику гистерезиса Vcc Кнопка без противо- дребезговой схемы 10k Vcc Кнопка спротиео- дребезговой схемой 10 pF «Шумящая — кнопка ’ Рис. 12.42. Схема со счетчиком для проверки стратегии борьбы с дребезгом дребезга на входе с кнопки. Используя отдельно «шумящую» кнопку и подав си- гнал с нее прямо на счетчик 74LS191, я установил, что после 10 нажатий кнопки я получил в среднем 10,1 цикл дребезга на одно нажатие в диапазоне двоичных ве- личин, отображаемых на светодиодах, от 1 до 14. Добавив микросхему 74LS14 с триггерами Шмитта по входу, я установил, что указанное среднее значение снизи- лось до 1,2 при диапазоне от 1 до 2. Хотя данная схема устраняет дребезг не до конца, полученный результат существенно лучше, чем, то, что имелось без такой
310 ГЛАВА 18. Последовательностные логические схемы схемы. Да и стоит такое усовершенствование копейки. Я знаю немало людей, кто позаботится поставить несколько дополнительных чипов с триггерами Шмитта на входе (например, 74LS14) в свои разработки, чтобы они устраняли дребезг на входах пользователя, если они потребуются в дальнейшем. Эксперимент 75. Генерация ШИМ Детали Инструменты Набор инструментов для радиомонтажа Смонтированная печатная плата с макетной платой. Микросхема 7805, стаби- лизатор напряжения. Микросхема таймера 555. Микросхема 74LS191, счетчик. Микросхема 74LS85, 4-разрядный компаратор. Пакет из 4 миниатюрных переключателей в корпусе DIP. Светодиод любого цвета. Два резисто- ра 4,7 кОм. Резистор 470 Ом. Электролитический кон- денсатор 10 мкФ. Пять конденсаторов 0,01 мкФ лю- бого типа Я покажу вам различные способы генерации сигналов ШИМ для управления скоростью двигателя или яркостью горения светодиодов. Ранее я показал, как использовать таймер 555 для получения простой ШИМ, хотя при этом имелась проблема: невозможно было выработать сигнал совсем без пауз между импульса- ми или с нулевым рабочим циклом*. При обсуждении Parallax Basic Stamp 2 я расскажу о встроенном операторе ШИМ, однако этот генератор работает толь- ко на частоте 1 кГц. Он имеет потенциальную возможность формировать звуко- вые сигналы, но не работает непрерывно. Другая проблема с оператором ШИМ Basic Stamp 2 в том, что он не может работать в фоновом режиме во время вы- полнения других операторов. Требуется простой генератор ШИМ, который бу- дет обеспечивать регулируемую длительность рабочего цикла от нуля до 100% и будет работать непрерывно без вмешательства со стороны контроллера. Поскольку он нужен, рассмотрим проект построения схемы генератора ШИМ такого типа. Он будет основан на двоичном счетчике, управляемом с помощью таймера 555. Выходной сигнал счетчика будет непрерывно сравни- ваться со значением бита, и, когда значение бита превышает значение счетчи- ка, на выход будет выдаваться 1. Самое удивительное, что структурная схема генератора, который я представлял в своем воображении (рис. 12.43), вполне приемлемо работала, когда я ее собрал. См. эксперимент 44. - Прим, перев.
ftataHausiiik Эксперимент 75. Генерация ШИМ 311 Рис. 12.43. Структурная схема генератора ШИМ Вероятно, один момент вам непонятен: я показал, что значения счетчика могут быть от 0 до 14, а не от 0 до 15, как можно было бы ожидать для типично- го четырехразрядного счетчика. Я хотел, чтобы счетчик сбрасывался на 14, а не на 15, и, таким образом, когда я сравнивал между собой двоичные величи- ны, я мог сделать рабочий цикл как величиной 100%, так и 0%, выводя сигнал на выход, когда установленное значение больше значения, накопленного счет- чиком. Если бы счетчик работал от 0 до 15, то схема не смогла бы формировать ШИМ с рабочим циклом 100% просто за счет вывода единицы, когда входная величина больше величины на счетчике. Чтобы сформировать диапазон двоичных чисел от 0 до 14, я применил ми- кросхему 74LS191 в режиме обратного счета, соединив вывод _LOAD с выводом .RIPPLE и установив на входах число 14. Вывод _R (Ripple Output - выход им- пульсов) активизируется, когда микросхема «переворачивается» из одного край- него положения в другое, а вывод _LD продвигает величину, установленную на входах по триггерам счетчика, когда он активен. Обычно, когда четырехразряд- ный счетчик «переворачивается», он досчитывает от 0 до 15, но соединив у ми- кросхемы 74 LSI91 вывод _R с выводом _LD (negative active load - загрузка с ак- тивным низким уровнем), вы можете загрузить новое значение, когда счетчик достигает нуля и готовится «перевернуться». Это свойство идеально для данной разработки, поскольку гарантирует, что счет будет производиться в интервале от 0 до 14. Преобразование структурной схемы в принципиальную (рис. 12.44) произво- дится без всяких ухищрений, а ее монтаж на макетной плате, устанавливаемой на печатной плате (см. Приложение 3), плотный, но не представляет проблемы. Выходное значение ШИМ определяется с помощью четырехпозицонного пере- ключателя в корпусе DIP. Я использовал микросхемы ТТЛ (со стабилизатором 78L05) вместо микро- схем КМОП, поскольку установил, что трудно разместить чипы 74С85. Преиму- щество применения ТТЛ по сравнению с КМОП для данной схемы состояло в том, что я мог просто, без нагрузочных резисторов, замкнуть входы компара- тора на «землю. Если вам придется строить эту схему на микросхемах КМОП, на переключателе DIP нужно установить нагрузочные резисторы, чтобы гаран- тировать подачу на компаратор напряжения высокого уровня.
312 ГЛАВА 1g. Последовотельносгные логические сеемы Рис. 12.44. Схема генератора ШИМ Собрав схему, вы увидите, что яркость свечения светодиода будет зависеть от величины, установленной на переключателях DIP. Это будет смущать вас, поскольку будет казаться, что величина, установленная на переключателях DIP, противоположна тому, как ведет себя ШИМ. Когда все переключатели включе- ны (согласно маркировке на переключателе), светодиод будет выключен, а ко- гда выключены - светодиод будет светиться с полной яркостью. Эта путаница появляется в результате того, что маркировка включенного состояния показы- вает, когда переключатели замкнуты, а не то, что сигнал принимает значение 1 или высокий уровень (что может быть ошибочно принято за включенное со- стояние); когда переключатели замкнуты, вход компаратора замыкается на «землю» и имеет значение 0. Работу генератора ШИМ можно наблюдать на осциллографе (рис. 12.45 и 12.46). Когда переключатель младшего значащего разряды выключен, а пере- ключатели трех более старших разрядов включены, значение счетчика сравни- вается с 1, и ток будет поступать в светодиод, когда на счетчике 0 (это един- ственное число, которое меньше, чем 1). Я показал промежуточную величину (см. рис. 12.45) и не показал значения ШИМ, когда все переключатели включе- ны (рабочий цикл составляет 0%) или все выключены (рабочий цикл составля- ет 100%), просто потому, что выход генератора ШИМ при этом вырождается в прямую линию.
Эксперимент 75. Генероция ШИМ 313 Рис. 12.45. ШИМ при установке самого младшего разряда (1) Рис. 12.46. ШИМ при установке промежуточного значения (7) Вы, возможно подумаете, что мне здорово повезло в жизни; картинки вы- глядят так, будто у меня 5-канальный (или даже с большим числом каналов) ос- циллограф. Это не так, но я схитрил с ПО для ПК, который читает осцилло- граммы. Я запустил старший значащий бит счетчика (Бит 3), а затем другим пробником смотрел поочередно разные сигналы, чтобы получить 5-канальное изображение.
314 ГЛЯВЯ It. Послеоовотельностные логические схемы Если бы я собирался использовать эту схему в роботе, то вместо переклю- чателей DIP поставил бы сдвиговый регистр с управлением от контроллера. Простой дифференциальный робот можно реализовать с помощью двух та- ких сигналов и одного 8-разрядного сдвигового регистра. Для большинства устройств подойдут 16 уровней, а если и не подойдут, то можно подключить каскадом еще один счетчик и компаратор к данной схеме. Это даст вам воз- можность выбора из 256 значений рабочего цикла, что обеспечит намного более точное управление двигателями и другими устройствами. Недостаток же такого решения в том, что вам придется увеличить тактовую частоту. Что- бы создать сигнал ШИМ частотой 20 кГц для данной схемы, надо обеспечить тактовую частоту 300 кГц; ШИМ частотой 20 кГц в генераторе ШИМ на 256 уровней потребует тактовой частоты 5,1 МГц.
^alattaus,^ НИИ Глава 13 Изучение программирования на языке Parallax BASIC Stamp 2 в В течение многих лет был создан ряд средств для обучения как программиро- ванию, так и построению программируемым роботов. Именно в данный мо- мент многим людям дают представление о программировании с помощью LEGO® Mild Storms и Spybotics, программируемых через графический интер- фейс. Этот метод программирования вызывает воспоминания о разработке блок-схемы для проектирования программы и довольно прост для понимания. Люди, никогда в своей жизни не занимавшиеся программированием, создава- ли собственные программы MindStorms с очень небольшими усилиями - LEGO® проделал весьма успешную работу с целью уменьшить страх неопытно- го пользователя при разработке робототехнических приложений для своих изделий. Взгляните на блок-схему алгоритма программы для дифференциального робота, который будет вести себя, как мотылек, и перемещаться по направле- нию к самой ярко светящейся точке комнаты (рис. 13.1). Овалы - это началь- ная (старт) и конечная (стоп) точки программы; ромбы - точки принятия ре- шений для программы; прямоугольники - моменты, когда в этой программе или приложении что-нибудь происходит; линии со стрелками - переходы про- граммы между прямоугольниками, овалами и ромбами.
316 ГЛАВА 13. Изучение программирования на языке Porollox BASIC Stomp 2 Рис. 13.1. Блок-схема алгоритма программы для робота «Мотылек» Вначале программа приостанавливается на 200 мс. Затем робот проверяет состояние своих датчиков столкновения, и, если что-нибудь находится прямо перед роботом, двигатели выключаются, и он останавливается. Если перед ро- ботом нет ничего, проверяются световые датчики, и двигатели включаются, так что робот поворачивается в сторону самого яркого света (если слева свет ярче, правый двигатель вращается в прямом направлении, чтобы перемещать робот по направлению к свету). После включения двигателей робот возвраща- ется к стартовой точке программы и двигается в течение 200 мс, прежде чем снова проверить датчики. Я отнюдь не пытаюсь быть жестоким, если говорю, что это последний слу- чай, когда в этой книге разработка полностью иллюстрируется с помощью блок-схемы. К сожалению, графическое программирование с помощью блок- схем имеет целый ряд недостатков, что делает его весьма неэффективным при разработке различных видов робототехнических приложений, представлен- ных в этой книге. Некоторым блок-схемам алгоритмов присущи следующие особенности. • Сложно иллюстрировать комплексные приложения. Как видите, я лишь приблизился к пределам, за которыми блок-схема становится не- читаемой. • Сложно обновлять или модифицировать приложение: мне пришлось «загнуть» вверх путь выполнения программы для случая, когда было об- наружено столкновение. Традиционно выполнение программы показы- вают в направлении сверху вниз. Я мог бы изменить направление в этой части схемы, но это повлечет за собой значительные изменения в рисун- ке в целом. • Расходы по созданию ПО, которое будет преобразовывать графическое изображение в программу для компьютера. Значительную часть стоимости
Эксперимент 76. Зогрузко оконного редоктора BASIC Stomp Windows Editor 317 набора LEGO® MindStorms составляет стоимость ПО, которое работает на вашем компьютере. • Невозможно составить окружение из различного аппаратного обеспече- ния. Набор LEGO® MindStorms работает только с устройствами, указан- ными LEGO. В ваших роботах вы будете использовать множество различ- ных устройств, включая те, что найдете у себя дома (и, по иронии судьбы, даже применять некоторые детали LEGO). В MindStorms, если вы хоти- те включить и выключить двигатели, используются простые программ- ные блоки, в то время как в вашем собственном роботе вам придется планировать, как это будет выполняться, и разрабатывать разные спосо- бы управления скоростью робота и его движением при поворотах. Эксперимент 76. Загрузке программы оконного редактора BASIC Stomp Ulindows editor на ваш компьютер Детали Персональный компьютер (ПК) В оставшейся части книги я буду работать с микроконтроллером Parallax BS2, используя его как в экспериментах с аппаратным обеспечением, так и для управ- ления полностью собранными роботами. Микроконтроллер BS2 - это замкнутый узел со стабилизацией напряжения питания, процессором, перепрограммиру- емым запоминающим устройством (ЗУ) приложения, программируемым ЗУ, устройством синхронизации и устройством ввода/вывода (I/O), встроенными в печатную плату и 24-контактный корпус формата DIP (рис. 13.2). Я советую купить BS2 начального уровня. Он дает наилучшее соотношение цена/качество и обладает всеми характеристиками, необходимыми для проек- тов этой книги. Прежде всего вам надо загрузить программу Stamp Windows Editor и подсо- единить BS2. В данном эксперименте я прослежу процесс загрузки Stamp Windows Editor на ваш ПК, а в следующем - помогу загрузить приложение и переслать его в BS2, установленный на печатную плату. Я также собираюсь обратить ваше внимание на Руководство пользователя, которое вы должны загрузить, и на две группы пользователей (Yahoo! Groups),
318 ГЛЯВЯ13. Изучение прогроммировония но языке Porollox 6RSIC Stomp 2 SOUT-1 SIN-2 ATN-3 VSS-4 РО-5 Р1 -6 Р2-7 РЗ-8 Р4-9 Р5-10 Р6 - 11 Р7-12 Индикаторная метка вывода 1 24-VIN 23 -VSS 22-_RES 21 - VDD 20-Р15 19-Р14 18-Р13 17-Р12 16-Р11 15-РЮ 14 - Р9 13 - Р8 Рис. 13.2. Росположение выводов BASIC Stomp 2 к которым вы должны присоединиться, чтобы вам могли помочь работать с этой книгой. Ваш ПК должен быть оснащен какой-либо версией операционной системы Win32 фирмы Microsoft и иметь минимум 100 Мб свободного пространства на диске (и минимум 32 Мб оперативной памяти). Я рекомендую Windows 98 Release 2, Windows Me, Windows NT 4.0, Windows 2000 или Windows XP. Для работы с Windows/NT/2000/ХР нужны права системного администратора. Вам, кроме того, понадобится доступ к Интернету, чтобы загрузить программу Stamp Windows Editor, а также для поиска информации о различных использу- емых электронных компонентах. Чтобы загрузить Parallax Stamp Windows Editor, откройте установленную на вашем ПК программу просмотра интернета (браузер) и перейдите по адресу www.parallax.com. Загрузив Web-страницу Parallax, укажите на меню Загрузка (Download), и то- гда появится выпадающее меню или другая страница. Когда появится меню вы- бора, щелкните BASIC Stamp Software, загрузите Web-страницу. Выберите ко- манду Загрузить для BASIC Stamp Software. Я рекомендую вам загрузить полный вариант файла, а не тот, что требует соединения с Интернетом во время уста- новки (requires Internet connection during install). Другие приложения Универсаль- ной системы записи команд в символической форме для начинающих Stamp (Beginner’s All-Purpose Symbolic Instruction Code) будут привлекать ваше внимание, но сей- час просто загрузите и установите Stamp Windows Editor (рис. 13.3). Диалоговое окно пригласит вас открыть или запустить приложение либо сохранить его. Выберите команду Открыть (Open) или Выполнить (Run) и
^atailausrili Эксперимент 76. Зогрузко оконного редакторе BASIC Stomp Windows Editor 319 Щелкните Open (Открыть), чтобы установить программу BASIC Stamp Editor Рис. 13.3. Зогруженное диалоговое окно выбора дайте программе возможность загрузиться и произвести установку. Выберите типовую установку, и программа появится на вашем рабочем столе. После загрузки вас спросят, как устанавливать программу. Продолжайте дей- ствовать по умолчанию (и с типовой установкой), но убедитесь, что на вашем рабочем столе появилась иконка; дважды щелкнув ее вы будете быстро запу- скать программу BASIC Stamp Windows Editor. Закрывается она щелчком сим- вола х в правом верхнем углу (как в любом другом диалоговом окне Windows). Когда вы запустите программу в первый раз, вас попросят указать для редакто- ра файлы с расширением «.bs2». Щелкните Да (yes), и при выборе исходного файла BS2 в окне Обозревателя (Explorer), BASIC Stamp Windows Editor будет запускаться автоматически, (рис. 13.4). Рис. 13.4. BASIC Stomp Windows Editor готов к роботе
320 ГЛАВА 13. Изучение прогроллмировония мо языке Porollox BASIC Stomp 2 При первом запуске BASIC Stamp Windows Editor представит вам всплываю- щие подсказки (hints). Я рекомендую вам прочитать их, чтобы лучше понимать, как BS2 работает и программируется. Как вы видели, я загрузил опытную вер- сию (Beta Version) ПО (см. рис. 13.3). Вы же загрузите рабочую версию BASIC Stamp Windows Editor, которая может выглядеть несколько иначе. Пакет Stamp Windows Editor включает в себя средство удаления ПО, если вы соберетесь загрузить его новую версию. Доступ к программе удаления (деин- сталляции) осуществляется из меню Пуск (Start). Установив Stamp Windows Editor, вернитесь на Web-страницу Parallax и в меню Загрузка (Downloads) выберите пункт Документация (Documentation). Загрузите и распечатайте Руководство пользователя BASIC Stamp. Документ объемом свыше 300 страниц пояснит электрические параметры BS2 и язык программирования PBASIC гораздо подробнее, чем я. А теперь вы должны присоединиться к группе Evil Genius Robots Support Yahoo!, которую я организовал наряду с группой BASIC Stamp Yahoo! компании Parallax. Адреса этих групп: • http: //groups.yahoo.com/group/evilgeniusrobotsupport; • http://groups.yahoo.com/group/basicstamps. Эксперимент 77. Соединение печотиой плоты и BS2 с ПК и робота вашего первого приложении Пора подключить к компьютеру контроллер BS2, подать на него питание и за- грузить первое приложение. Я полагаю, что вы проработали все эксперимен- ты, смонтировали печатную плату (то есть, распаяли на нее все компоненты) и установили на нее батарею. Теперь окончательно смонтируем печатную плату и установим BS2 и 9-вольтовую батарею. Замечу, что программное и аппаратное обеспечение BS2 очень надежны; они постоянно обновляются уже в течение ряда лет и отлажены людьми, име- ющими даже меньше навыков, чем вы. Так что шансов повредить BS2 или ПК у вас очень мало. Установить и подсоединить BS2 к ПК довольно просто. Вставьте BS2 в пе- чатную плату (ориентация для установки показана на печатной плате), и вставьте
^alatlaus^k Эксперимент 77. Соединение печатной плоты и 6S2 с ПК 321 новую 9-вольтовую щелочную или недавно заряженную никель-металлогидрид- ную (NiMH) батарею. Перед установкой BS2 снимите батарею и убедитесь, что на макетной плате нет соединений. Подсоедините печатную плату к одному из последовательных RS-232-портов вашего ПК с помощью переходного 9-контактного кабеля (его часто называют последовательным удлинителем). Большинство переносных и настольных ПК имеют встроенные последовательные порты RS-232. Порт RS-232 представляет собой 9-контактный или 25-контактный гнездовой разъем и должен соединяться с кабелем, на котором установлен 9-контактный штыревой разъем (рис. 13.5). Для большинства ПК вам придется купить переходной 9-контактный кабель с вилкой и гнездом D-Shell. Штыревой DB-25 Рис. 13.5. Штыревые разъемы D8-25 и D-9 для IBM PC У некоторых ПК имеется 25-контактный гнездовой разъем порта RS-232; компания IBM применила 9-контактный разъем в компьютерах PC/AT в 1984 году, когда ее конструкторы посчитали, что для двух 25-контактных разъемов (один для параллельного порта и один для последовательного) в одном слоте для платы адаптера мало места. Если у вас 25-контактный разъем порта RS-232, купите переходной кабель, преобразующий 25-контактный порт RS-232 в 9-кон- тактный, либо используйте переходник, преобразующий 25 контактов в 9. У большинства переносных ПК (й некоторых настольных) нет порта RS-232. Если у вашего ПК нет 9-контактного порта RS-232, купите интерфейс USB - RS- 232. Я успешно использовал BS2 как с настоящим интерфейсом RS-232 - USB (у него четыре 9-контактных разъема RS-232), так и с простым интерфейсом USB*, предназначенным для персональных карманных компьютеров (например, мар- ки Palm Pilot). Не советую покупать ISA или PCI-карты с портом RS-232 (если только у ва- шего ПК нет порта USB), так как тогда понадобится вскрыть ПК и, возможно, сконфигурировать последовательный порт вручную. Адаптеры USB довольно дешевы (обычно дешевле, чем PCI-карта), и их легко установить. Для этого нужны только внешняя постоянная память на компакт-диске (Compact Disk Read-Only Memory, CD-ROM) и пара минут. * USB (Universal Serial Bus) - универсальная последовательная (периферийная) шина, один из последних стандартов интерфейса компьютера и периферийных устройств. - Прим, перев.
322 ГЛАВА 13. Изучение прогроллмирования на языке РогоЯох BASIC Stomp 2 Порт RS-232 должен применяться только для программирования BS2 на пе- чатной плате. Операционная система Windows не очень ладит с совместным доступом к ресурсам, и если к этому порту подключено другое устройство (ска- жем, карманный компьютер Palm Pilot), то у вас будут проблемы с операцион- ной системой, пытающейся определить, должен ли BASIC Stamp Editor иметь возможность доступа к порту. Итак, подсоедините к порту RS-232 один конец вашего кабеля, а другой - к печатной плате (рис. 13.6), запустите программу Stamp Windows Editor (рис. 13.7) и введите следующую программу в пустое диалоговое окно: ' The first application '{$STAMP BS2} ’{$PBASIC 2.5} debug "Hello World!" end Рис. 13.6. Печатная плота с 652 и батареей, готовая к работе Щелкните Выполнить (Run) либо кнопку со стрелкой, указывающей вле- во, и программа будет загружена и запущена. После этого появится диалого- вое окно Отладочного терминала (Debug Terminal) - небольшой дисплей, на который оператор программы «PBASIC debug» записывает информацию состояния для ее передачи обратно пользователю. В этой главе я с его помо- щью продемонстрирую результаты выполнения различных программных операций.
^aiattaus,^. Эксперимент 78. Сохранение ваших приложений в памяти ПК 323 Рис. 13.7. Экран BASIC Stomp UJindows editor с введенной первой программой Скорее всего ваша программа «Hello World!» будет работать, если вы точно следовали моим инструкциям. Если же возникнут проблемы, убедитесь, что порт RS-232 не используется в ПК ни для какого другого приложения. Печатная плата подсоединена так, что BASIC Stamp Editor должен распо- знать BS2 и автоматически загрузиться в него. Если таким же образом подклю- чено другое устройство, BASIC Stamp Editor может неправильно идентифици- ровать его как печатную плату. В этом случае щелкните Свойства (Properties), а затем Отладить порт (Debug Port) и вручную выберите порт, которым вы будете пользоваться. Выбор порта вручную имеет дополнительное преимуще- ство: программе BASIC Stamp Editor не придется при этом искать порт, к кото- рому подключен BS2 (а значит, загрузка в ПК с несколькими последовательны- ми портами будет происходить быстрее). Эксперимент 78. Сохранение ваших приложений в памяти ПК
324 ГЛАВА 13. Изучение прогроммировония но языке РогоИох BASIC Stamp 2 Теперь вы можете создавать и загружать приложения в Parallax BASIC Stamp 2. Ранее вы соединили печатную плату с ПК, запустили BASIC Stamp Editor, ввели текст простого приложения, загрузили его в BS2 и выполнили его. Сейчас я объясню, как происходит этот процесс, и расскажу, как сохранять приложения для дальнейшего использования. Сохранять информацию на жестком диске можно по-разному. Обычно файл просто помещают на рабочий стол. При этом файл постоянно будет на виду, и если вы произвели установку своего ПК с нужными назначениями расширений файлов, то двойной щелчок любого из них введет соответствующее ПО в дей- ствие для чтения или обработки информации. Последние версии Windows (Ме/2000/ХР) позволяют сохранять файлы под длинными именами. Так, приложению «Hello World!» из эксперимента 77 вы могли бы дать имя «Evil Genius-First BS2 Program-Hello World!». Благодаря этому содержательному названию легко понять, что делает про- грамма. Модифицировав ее, вы, возможно, захотите изменить имя файла на «Evil Genius-First BS2 Program Modified 11.19.02-Hello World!». Но такой метод сохранения малоэффективен и может привести к затрудне- ниям. Дело в том, что рабочий стол очень быстро заполняется разными файла- ми, и бблыпая часть информации остается скрытой, пока вы не сделаете двой- ной щелчок на пиктограмме файла. По умолчанию Stamp Editor Software сохраняет ваши файлы в папке (folder) на жестком диске. Команда Открыть (Open) из меню Файл (File) дает вам воз- можность выбирать из целого ряда примеров программ BS2. Вы можете сохра- нить приложение «Hello World!» в этой папке, но снова найти его может ока- заться трудно его (особенно, если вы захотите сделать это через несколько месяцев и не имея стопроцентной уверенности в том, каково имя файла). Упростит сохранение всех файлов, которые вы создадите, читая мою кни- гу, файловая древовидная структура Windows. Эта структура обеспечивает способ группирования и маркировки файлов (и папок) в удобном для поиска виде (рис. 13.8). Щелкните дважды Мой компьютер (Му Computer), перейдите на Локаль- ный диск (С:) [Local Disk (С:)], а затем в папку Адский Гений (Evil Genius) и в хранящуюся в ней папку Привет, Вселенная! (Hello World!). Как видите, я со- хранил приложение в папке C:\Evil Genius\Hello World! (см. рис. 13.8). Дисковое пространство, используемое различными папками, динамически перераспределяется; вам не нужно беспокоиться о том, сколько пространства используется каждой из них. Это значит, что вы можете сохранять такое коли- чество информации, какое вам нужно (вплоть до доступного объема простран- ства жесткого диска) в любой из папок. Чтобы создать папку для хранения приложений BS2, представленных в кни- ге, щелкните Мой компьютер, затем Локальный диск (С:). Чтобы создать пап- ку Адский Гений (Evil Genius), щелкните Новая (New), а затем Папка (Folder) в меню Локальный диск (С:). Будет создана новая папка, а вас попоросят ввести имя этой папки. Назовите ее Адский Гений (Evil Genius). Дважды щелкните
^atattaus^k Эксперимент 78. Сохранение ваших приложений в памяти ПК 325 Начав с вызова Му Computer (Мой компьютер), двойным щелчком перейдите на соответствующий диск, а затем сделайте двойные щелчки на различных папках, чтобы разместить программное приложение Hello World! (Привет, Вселенная!) в его собственной папке Рис. 13.8. Организация файлов и попок в ПК папку Адский ТЪний и аналогично создайте в ней папку с именем Привет, Все* ленная! (Hello World!). Теперь вы готовы сохранять созданные приложения. После того как приложение Привет, Вселенная! (Hello World!) будет введе- но в Stamp Windows Editor, щелкните Файл (File), а затем Сохранить как (Save as) для сохранения файла. Появится новое диалоговое окно (рис. 13.9). Рис. 13.9. Сохранение файла в папке
326 ГЛНВЙ13. Изучение программирования но языке Parallax BASIC Stomp 2 Чтобы сохранить приложение Hello World! в папке Hello World!, размещен- ной в папке Evil Genius, вам, возможно, понадобится найти нужный путь в пределах Локального диска (С:) от панели инструментов Сохранить как в верхней части диалогового окна Сохранить как (Save as) (см. рис. 13.9). Выпа- дающее меню этой панели инструментов позволяет выбрать папки внутри те- кущего каталога или перейти из него в каталог, в котором она размещена. Мне нравится сохранять приложения для каждого эксперимента в отдель- ных папках. Таким образом я могу изменять программный код и хранить его в той же папке, что упрощает поиск и отслеживание обновлений. Для каждого приложения из этой книги я сохранял текст такой программы по каждому экс- перименту в отдельной папке внутри папки Evil Genius и советую вам делать так при создании ваших собственных приложений. Эксперимент 79. Пояснения по приложению «Hello Ulorldl» Детали Инструменты Язык программирования, используемый для BS2, называется PBASIC и являет- ся разновидностью языка BASIC, который использовался для обучения людей программированию в течение более, чем 30 лет. В оставшейся части главы я объясню основы программирования и правила, по которым программы на язы- ке PBASIC записываются для BS2. Первой выполненной на вашем BS2 программой была «Hello World!», кото- рая служила для демонстрации связи между вашим ПК и BS2, установленным на печатной плате. Возможно, рассмотрев это приложение, вы поймете, что оно делает. Программа состояла из семи строк: ' The first application •{$STAMP BS2} *{$PBASIC 2.5} debug "Hello World!" end Этот текст представляет собой так называемый исходный (или истинный) код приложения. Исходный код - это набор удобных для восприятия человеком
Эксперимент 79. Пояснения по приложению «Hello UJorid!» 327 команд, которые ПК преобразует в формат, непосредственно обрабатываемый процессором. Приведенная выше программа преобразуется в набор символов, который загружается в BS2 и выполняется. Символическим отображением для каждого оператора обычно является один или два байта данных (либо столько же знаков). BS2 быстро считывает их и выполняет. Исходный код, понятный только программисту, в BS2 не загружают. Одиночная кавычка в начале первых трех строк показывает начало коммен- тария, продолжающегося до конца этой строки, причем комментарий в данном случае - «The first application»*. Комментарии - программисты используют для документирования исходного кода и пояснения того, что делает программа. Комментарии могут размещаться где-либо в исходном коде (в том числе после программной команды). Очень важно делать выразительные комментарии, которые должны представлять собой попытку пояснить что-то полезное как для вас, так и еще для кого-то, кто будет знакомиться с исходным кодом про- граммы. Лично я ненавижу приложения, в комментариях которых повторяется или перефразируется то, что делает строка программного кода. Я мог бы записать первое приложение так: ’ Первое приложение •{$STAMP BS2} •{$PBASIC 2.5} debug "Hello World!" ' Напечатать приветствие end ’ Останов программы Этот текст объясняет, что делают команды программы (называемые опера- торами), но не объясняет, почему команды таковы или почему они нужны для выполнения требуемого задания. Следите за тем, как я буду писать коммента- рии, как объясняю, что происходит, и почему я написал тот или иной про- граммный текст, не объясняя работы каждой команды. Следующие две строки - не комментарии, а команды для компилятора BS2. Первая из этих двух строк ({$STAMP BS2}) говорит компилятору, что устрой- ством-адресатом является BASIC Stamp 2, и он вырабатывает маркеры, харак- терные для этого устройства. Следующая строка указывает, что программа бу- дет использовать версию 2.5 языка PBASIC. Четвертая и шестая строки программы - не команды для BS2, а пустые стро- ки, или пробелы. Я окружаю ими блоки программного текста - это разделяет их визуально. Благодаря пустым строкам перед и после блока текста ясно, где блок начинается и где кончается. Разумное использование пробелов в приложении делает его проще для чтения и понимания. Пятая строка (debug «Hello World!») - это первый оператор, который под- лежит компиляции, преобразованию в символический код и загрузке в BS2. * Перевод комментария: «Первое приложение». - Прим, перев.
328 ГЛЙВЙ13. Изучение программирования но языке Porollox BASIC Stomp 2 Этот оператор даст BS2 команду переслать строку символов «Hello World!» об- ратно на ПК, где она будет отображена в диалоговом окне Debug Terminal. Операция, выполняемая оператором Debug, является основным методом, который вы будете использовать для возврата к ПК информации, касающейся выполнения приложения. В этой и последующих главах я использую его, что- бы возвратить вам информацию обратной связи от BS2. Наряду с Debug вам доступны и другие встроенные функциональные опера- торы, которые мы обсудим попозже. Строку символов в двойных кавычках («Hello World!») можно изменить в Stamp Windows Editor, просто переместив на оператор курсор и введя новый текст сообщения. Замените, например, эту строку на «Hello from Муке» и посмотрите, что получится, нажав клавиши Ctrl+R или кнопку Run в Stamp Windows Editor. Изменяя эту строку, вы тем самым меняете исходный код программы, и в нижней строке BASIC Stamp Windows Editor появится сообщение Modified (Модифицировано). Но изменения не были сохранены. Когда вы захотите закрыть программу, то получите сообщение о том, что исходный код был из- менен, и вопрос, хотите ли вы сохранить изменения. Если вы щелкнете Yes, то Stamp Windows Editor сохранит измененный исходный код как «Hello World!». Вот почему я рекомендую создавать отдельные папки для каждого из ваших приложений. Вместо того чтобы сохранять измененный исходный код как «Hello World!», щелкните File (Файл), а затем Save as (Сохранить как); вы мо- жете сохранить его (в папке Hello World!) как «Hello from Муке» или «Hello World - Updated». Последняя строка (и последний оператор) в исходном коде - «end». Он пре- рывает дальнейшее выполнение программы контроллером BS2 и переводит его в режим сниженного потребления, в котором он будет потреблять всего 40 х 1 О'4 А, чтобы ожидать следующей команды от Stamp Windows Editor. В конце собственных приложений для BS2 всегда ставьте оператор end! Ко- гда приложение для BS2 загружается, оно просто хранится в памяти BS2, но никакие предыдущие программы не стираются. Если ваше приложение короче предыдущего и не имеет оператора end, то по окончании текущей программы BS2 будет продолжать выполнение команд предыдущей после того, как они уже были выполнены. Выполнение большинства робототехнических приложений происходит в постоянно повторяющемся цикле, и нет опасности, что выпол- нение будет продолжаться после окончания текста вашей программы. И все- такй ставьте оператор end, чтобы иметь уверенность в том, что BS2 остановит- ся, если вдруг исполнение продолжится в момент, когда по вашим расчетам этого не должно произойти.
^latatlau^k Эксперимент 80. Переменные и типы донных 329 Эксперимент 80. Переменные и типы данных Роботы (и управляющие ими компьютерные программы) предназначены для работы в переменных условиях. Изменяющиеся данные должны сохраняться, а кроме того, повторно считываться при выполнении приложения. Переменные- цифровые или буквенные данные, хранящиеся в памяти компь- ютерной системы, - служат для хранения и извлечения данных, нужных прило- жению. Как правило, переменные могут быть записаны, а их значения - счита- ны. Сейчас я объясню, что представляют собой переменные, и сделаю обзор типов данных как вообще, так и в частности, в языке программирования PBASIC. В главе 12 я рассказал о триггерах и том, как они используются для хране- ния одиночной единицы информации - бита. BS2 обеспечивает 206 бит инфор- мации для ваших программ. На некоторых этапах программирования доста- точно одного бита (с числовыми значениями 0 или 1), но для большинства приложений вам потребуется больше бит. Вместо того чтобы требовать от вас разработки исходного текста программы для объединения бит, язык PBASIC выполняет эту функцию автоматически. Способы, которыми PBASIC управляет отдельными битами и группами бит, описаны в табл. 13.1. Таблица 13.1. Размеры элементов данных и диапазоны чисел Число бит Тип Диапазон данных 1 Бит от 0 до 1 4 Полубайт от Одо 15 8 Байт от 0 до 255 или от -128 до 127 16 Слово от 0 до 65535 или от -32768 до 32767 Чтобы дать определение переменной, используется оператор описания сле- дующего формата: ИмяПеременной var Тип ИмяПеременной может быть любой строкой символов длиной до 32 символов, начинающейся с символа подчеркикания (_) или с буквенного символа (от а до z или от А до Z). Внутри имени переменной наряду с символом подчеркивания
330 ГЛАВА13. Изучение программирования но языке Porollox BASIC Stomp 2 и буквенными символами можно использовать цифры (от 0 до 9). Тип в опера- торе описания - это один из четырех типов, перечисленных в табл. 13.1. Тер- мин «полубайт» (nybble или, сокращенно, nib) обычно обозначает группу из четырех бит. Полубайт - очень полезный тип данных, особенно если вы хоти- те эффективно отобразить недесятичные данные. Переменные PBASIC могут быть «перекрыты» другими переменными (овер- лейными переменными), или же части переменных могут использоваться в ка- честве отдельных переменных. Доступ к небольшой части переменной с помо- щью оверлейной переменной, обеспечивают специальные команды - мпдификит^л, перечисленные в Справочной Информации о BS2 (см. Приложение 2). Так, оди- ночный бит в переменной Flag определяется следующим текстом: Flag var byte ' Переменная из 8 бит LED var Flag.bitl ' Один бит переменной Flag Это можно повторить для каждого из восьми бит переменной Flag. Моди- фикатор bit# позволяет указать на использование каждого бита в байте, и это большой плюс, так как иногда компилятор PBASIC будет определять каждый бит в своем собственном байте. Ваша область памяти (она составляет всего 26 байт, с которых можно начинать обращение к памяти, то есть 206 бит, де- ленные на 8 бит, что равно одному байту) будет использоваться очень быстро, если вы хотите иметь несколько переменных типа бит. Чтобы проверить работу переменных, запустите Stamp Windows Editor и введите с клавиатуры следующую программу: ' Variable Display - записать и отобразить различные типы переменных • {$STAMP BS2} • {PBASIC 2.5} ' Переменные BitVar var bit ByteVar var byte WordVar var word ' Операторы присваивания BitVar = 0 ' Биты могут принимать значения 0 или 1 ByteVar = 0 ' Байты могут принимать значения от 0 до 255 WordVar = 0 ' Слова могут принимать значения от 0 до 65355 BitVar ByteVar WordVar ' Отобразить переменные с помощью оператора debug debug debug debug end Введя программу и создав для нее папку Variable Display в папке Evil Genius, сохраните ее как Variable Display. Затем запустите ее, загрузив 0 в качестве зна- чения для трех переменных, а также при других значениях. Вы, возможно, захо- тите попробовать разные значения, выходящие за пределы диапазона чисел
^alaUaus,^ Эксперимент 81. Форматы числовых донных 331 каждого типа переменных, чтобы посмотреть, какое сообщение при этом при- дет вам от ПК (и что отобразится в диалоговом окне Debug Terminal). Задав значение переменной большим, чем величина, на которую она рассчи- тана (попробуйте задать BitVar = 3), вы обнаружите, что в переменой будет сохранена та часть числа, которая меньше максимального значения, приведен- ного в табл. 13.1. Сообщения об ошибке не будет. Язык PBASIC производит опе- рацию логического сложения (И) над значением, которое следует сохранить в переменной, и максимальным значением, которое может принять переменная. Помните это, так как иногда в результате этой операции значение, которое примет переменная, гораздо меньше ожидаемого. Данное приложение вначале определяет три переменные (бит, байт и сло- во), загружая в них разные значения, и распечатывает их до окончания про- граммы. Три оператора, делающие переменные равными числовым значениям, называются ширапи рани присваивания (assignment statements). Подстановка кон- станты в переменную, как это сделано в данном эксперименте, - простейшая форма оператора присваивания, который может применяться для гораздо бо- лее сложных операций. В операторах отладки отображается содержимое переменной, однако я ис- пользовал форматтер ?, чтобы отображать имя переменной вместе с ее значе- нием. После печати имени переменной и ее значения начинается новая строка отображения. Ниже я расскажу о средствах задания формата (форматтерах) и способах отображения данных с помощью оператора отладки. Эксперимент 81. Форматы числовых донных Когда я буду представлять вам некоторые робототехнические приложения, то значительная часть работы будет состоять в том, чтобы квантовать данные или преобразовать их в цифровую форму, так чтобы BS2 мог их обрабатывать. Да- лее я буду обсуждать подходящие форматы данных для отображения положе- ния, скорости, силы свечения, состояния битов ввода/вывода (I/O) и других параметров, что облегчит вам понимание данных, поступающих обратно от вашего робототехнического приложения. Но сначала я познакомлю вас с фор- матами данных языка PBASIC для BS2. Эти форматы применяются к выходным
332 ГЛАВА 13. Изучение прогроммировония на языке Parallax BASIC Stomp 2 данным либо для вас или другого пользователя, либо для другой компьютерной системы. Многоразрядное число можно представить себе как сумму нескольких чи- сел, причем каждое из них является произведением соответствующей цифры на некоторое основание степени, возведенное в степень, которая определяет- ся позицией данной цифры. Это то же самое, что запись десятичного числа при помощи степеней основания 10. Так, число 123 на самом деле представля- ет собой сумму таких величин для каждой из его цифр: IxI6F = 100 + 2xl0> = 20 + 3x10? = 3 123 В машиностроении и компьютерной технике первой цифрой всегда являет- ся 0, а не 1, как можно было бы ожидать. Это связано с использованием двоич- ных чисел, у которых наименьшее положительное число равно 0; если бы чи- сла начинались с 1, то первое возможное число игнорировалось бы. Продемонстрированным методом можно выражать двоичные числа (у кото- рых только два возможных значения для каждой цифры) в виде десятичных и наоборот. Например, представьте себе десятичное число 42. Как показано ниже, для числа 32 (пятый бит), а также для числа 8 (третий бит) и для числа 2 (первый бит) цифровой множитель будет равен 1. Все прочие цифры равны 0. В языке PBASIC двоичные числа имеют префикс %. Если знак % в начале чи- сла отсутствует, данное число не двоичное. Итак, десятичное число 42 в PBASIC будет представлено двоичным числом % 101010. 1 х 2? = 32 + 0x2* = 0 + 1х23= 8 + 0х22 = О + lx 21 = 2 + 0x2° = О % 101010 = 42 Запись и произнесение многоразрядных двоичных чисел может потребо- вать много времени; хороший пример - эпизод, когда Бендер (Bender) в мульт- сёриале «Футурама» («Futurama») произносит в церкви роботов благодарствен- ную молитву в двоичной форме в течение нескольких часов. Во избежание этого люди большей частью передают двоичные данные шестнадцатеричными числами (с основанием, равным 16). Четыре двоичных разряда (или один по- лубайт) представляют собой один шестнадцатеричный разряд. В табл. 13.2 я привожу двоичное и десятичное представление для шестнадцатеричных чисел. В английском написании для слова «шестнадцатеричный» (hexadecimal) часто используют сокращение hex, так же как для слова «двоичный» (binary) - bin, а для «десятичный» (decimal) - dec. Для шестнадцатеричных чисел, превышающих 9,
Эксперимент 81. Форматы числовых данных 313 используются буквы латинского алфавита от А до Е В качестве префикса у ше- стнадцатеричных чисел используется знак $, который помещается перед чи- слом и указывает, что здесь использовано основание 16. Таблица 13.2. Взаимное соответствие десятичных, двоичных и шестнадцатеричных чисел Десятичное Двоичное Шестнадца- теричное Десятичное Двоичное Шестнадца- теричное 0 0000 0 8 1000 8 1 0001 1 9 1001 9 2 0010 2 10 1010 А 3 0011 3 11 1011 В 4 0100 4 12 1100 С 5 0101 5 13 1101 D 6 0110 6 14 1110 Е 7 0111 7 15 1111 F PBASIC автоматически преобразует данные в различные системы счисле- ния. Купите недорогой научный калькулятор с такой встроенной функцией. Эту функцию редко рекламируют, поэтому ищите такой, у которого на клавиа- туре наряду с буквами от А до F есть клавиши DEC, BIN, HEX и ОСТ. Сокраще- ние «ОСТ» представляет восьмиричную систему счисления с основанием 8, довольно популярную 30 лет назад. За исключением некоторых случаев про- граммирования на языке Си, восьмиричные числа используются редко, пото- му что ими довольно неудобно пользоваться (каждый разряд составляется из трех бит и не представляет собой в точности ни байта, ни слова). Чтобы взглянуть на разные форматы, в которых отображаются числа в PBASIC, наберите приведенное ниже приложение о форматах чисел и сохра- ните его в отдельной папке Number Format в папке Evil Genius. Как и в преды- дущем приложении, изменяйте значения в операторе присваивания и вновь запускайте приложение, чтобы посмотреть, как выглядят десятичные числа в разных форматах. ' Number Format - Отобразить число в различных числовых форматах ’ {$STAMP BS2} ’ {$PBASIC 2.5} ' Переменные Value var byte ' Операторы присваивания Value = 123 ’Произвольное число, подлежащее отображению Display ' Отобразить переменные с помощью оператора отладки debug "Decimal ", ? Value debug "Binary ", IBIN ? Value debug "Hex ", IHEX ? Value
334 ГЛАВА 13. Изучение прогроммироеония но языке Porollox BASIC Stomp 2 В операторах отладки я поместил форматтеры IB IN и IHEX перед подлежа- щими печати символами имени переменной и содержимого переменной Value. Форматтеры IBIN и IHEX преобразуют содержимое переменной Value в двоич- ную и шестнадцатеричную формы и помещают метки формата данных % и $ перед их значениями. Есть и другие форматтеры, доступные для оператора отладки, - они перечислены в Справочной Информации о BS2 в конце книги (см. Приложение 2). Я рекомендую использовать только эти два форматтера (а также форматтер десятичных чисел DEC) для числовых данных, чтобы быть уверенным в том, что вы не попадете в ситуацию, когда распечатано число 10 и вы автоматиче- ски предполагаете, что это именно 10 (десятичное), а на самом деле это 2 (дво- ичное) или 16 (шестнадцатеричное). Другие варианты форматтеров для деся- тичных, двоичных и шестнадцатеричных чисел могут вас запутать, если вы только начинаете изучать программирование. Числовые форматы выбирают так, чтобы сделать чтение выходных данных и аппаратные интерфейсы программирования проще. Пока я советую вам опе- рировать с десятичными числами (с основанием счисления 10), где только можно, поскольку с такой формой числа вы знакомы лучше всего. В главе 14 я расскажу, когда лучше использовать числа с основанием 2 и 16 при создании интерфейса с устройствами аппаратного обеспечения. Прежде чем пойти дальше, хочу поведать забавную историю. Как вы знаете (а может, и не знаете), hex - неправильный префикс для 16 (на самом деле hex значит 6). Правильным будет префикс sex, и числа с основанием счисления 16 должны бы называться по-английски sexadecimal Это обстоятельство очень ве- селило программистов былых времен. Когда IBM в начале 1960-х выпустила компьютеры System/360, в документации делались ссылки на числа с основа- нием 16 как на hexadecimal, так как компания сочла неудобным, чтобы их компью- теры, на которых будут работать не только мужчины, но и женщины, програм- мировались в «сексуальных» числах. Эксперимент 82. Символы ASCII Выше я показал, как объединять группы бит для записи достаточно больших чисел и как их отображать в виде чисел различных форматов. Обычнадля свя- зи между компьютерами, компьютерного программирования и создания
Эксперимент 82. Символы ASCII 335 ftalaHaus^k интерфейсов для представления букв английского алфавита, чисел и различных символов применяют байты. В табл. 13.3 показан наиболее распространенный способ представления символов - Американский Стандартный Код для Информа- ционного Обмена (American Standard Code for Information Interchange, ASCII). Таблица 13.3. Код ASCII 0 1 2 3 4 5 6 7 8 9 10 11 12 NUL SOH STX ЕТХ EOT ENQ ACK BEL BS HT LF VT NP 13 14 15 16 17 18 19 20 21 22 23 24 25 CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM 26 27 28 29 30 31 32 33 34 35 36 37 38 SUB ESC FS GS RS US SP j и # $ % & 39 40 41 42 43 44 45 46 47 48 49 50 51 • ( ) * + - / 0 1 2 3 52 53 54 55 56 57 58 59 60 61 62 63 64 4 5 6 7 8 9 I < = > ? @ 65 66 67 68 69 70 71 72 73 74 75 76 77 А В С D E F G H I J К L M 78 79 80 81 82 83 84 85 86 87 88 89 90 N О Р Q R S T U V W X Y Z 91 92 93 94 95 96 97 98 99 100 101 102 103 I \ 1 * • a b c d e f 9 104 105 106 107 108 109 110 111 112 113 114 115 116 h i j k I m n 0 P q r s t 117 118 119 120 121 122 123 124 125 126 127 и V w X У z { 1 } - DEL Специальные символы (размещенные в 32 битах со значениями от $00 до $1F), которые вы, возможно, захотите использовать (с их эквивалентами в язы- ке PBASIC), перечислены в табл. 13.4. Есть и другие символы для управления отладочным терминалом (см. Справочную информацию о BS2). Таблица 13.4. Наиболее употребительные управляющий символы ASCII и PBASIC Символ Символ PBASIC Функция NUL CLS ASCII - обычно служит для завершения строки. В PBASIC очищает диалоговое окно Отладочного Терминала SOH HOME ASCII - стартовый символ заголовка данных. В PBASIC перемещает курсор в верхний левый угол диалогового окна Отладочного Терминала BEL BELL Выдача звукового сигнала системным (ПК для BS2) громкоговорителем BS BKSP Возврат на один символ TAB TAB Символ горизонтальной табуляции LF Новая строка (или NL) CR CR Возврат каретки (конец строки текстового файла) Обычно 128 различных символов вмещаются в один байт и передаются на приемник. Вы уже использовали символы ASCII в ваших экспериментах в каче- стве сообщений и данных, поступавших на отладочный терминал из операто- ра отладки.
336 ГЛАВА 13. Изучение прогроммировония но языке Porollox BASIC Stomp 2 Я уже говорил, что байт состоит из 8 бит и может принимать до 255 разных значений (от 0 до 155). Набор символов ASCII предназначен для передачи ин- формации группами по 7 бит (и имеет максимум 128 различных значений). Расширения набора символов ASCII дают в дополнение к стандартному набору еще 128 символов, чтобы позволить побайтно передать до 256 символов за раз. Наиболее популярное расширение для ПК было разработано компанией IBM более 20 лет назад. Расширенный набор символов IBM обеспечивает специаль- ные символы для других языков (кроме английского), возможность вставлять в текст графику и общеупотребительные символы (например, букву а греческо- го алфавита), отсутствующие в стандартном наборе символов ASCII. Для всех экспериментов этой книги я использую только перечисленные выше общие символы ASCII. Различные ПК, а также различные шрифты, при- меняемые в разных приложениях, определяют 128 символов расширения по- разному. Это значит, что приложение, которое представляется красивым в од- ной из своих реализаций на одном ПК, может выглядеть ужасно (или даже будет нечитаемым) на другой машине или в другой реализации. Помимо стандартных, в ASCII включены управляющие символы (те из них, что существенны для PBASIC, приведены в табл. 13.4). Эти коды используются для перемещения символов по диалоговому окну отладочного терминала или ука- зывают конец строки (символ CR). Сохраните приведенное ниже приложение отображения ASCII в отдельной папке внутри папки Evil Genius: * ASCII Display - Отобразить символы ASCII для числовой величины ' {$STAMP BS2} ' {$PBASIC 2.5} ' Переменные Value var byte ' Операторы присваивания Value = 123 'Произвольное число, подлежащее отображению ' Отобразить переменные с помощью оператора отладки debug "ASCII ", ASC ? Value end Запустите программу ASCII Display и задайте различные постоянные зна- чения переменной Value. Возможно, вам захочется присвоить ей значение, превышающее 127 ($7F или %1111111), чтобы посмотреть, установлены ли на вашем ПК символы расширенного ASCII-кода (запустив Stamp Windows Editor). В этом и следующем экспериментах я скомпоновал строковую константу (ASCII) с выходной величиной. Я сделал это при помощи символа запятая(,), поместив его между двумя элементами данных, подлежащими выводу, и они за- пускаются вместе без пробелов или символов новой строки; это называется кон- катенация. Я заостряю на этом внимание, так как данные могут быть отформа- тированы совместно в одной строке многими способами при помощи одного
Эксперимент 83. Переменные типо массив 337 оператора отладки; а если приложить немного творческих способностей, то вы могли бы получить очень привлекательное изображение на Отладочном Тер- минале. Строка является рядом символов, которые хранятся в компьютерной систе- ме совместно, как единое целое. Строковая константа идентифицируется в PBASIC как набор символов ASCII, заключенный в двойные кавычки (” "). Одна из основных функций строковых констант - формирование сообщений для оператора, как я это сделал в программах, приведенных в-данной главе. Эксперимент 83. Переменные типе массив Вероятно, вы знакомы с техническими характеристиками ПК. Память большин- ства ПК характеризуется тремя параметрами. Емкость жесткого диска (или па- мять) измеряется в миллиардах байт (или в гигабайтах, Гб), а основная память системы - в миллионах байт (мегабайтах, Мб). Ускоряет выполнение приложе- ний локальная память - кэш или сверхоперативная память, объем которой измеря- ется тысячами байт (килобайтами, кб). В любой из этих трех областей памяти ПК (рис. 13.10) могут храниться любые данные о переменных. Вы будете потря- сены, узнав, что BS2 обладает всего одной областью памяти для переменных и способна сохранять только 26 байт, то есть примерно в 30 000 раз меньше, чем самая маленькая область памяти, доступная у настоящего компьютера. Рис. 13.10. Системы памяти ПК Вы, вероятно, удивлены, как же BS2 может делать что-либо полезное; даже самое небольшое приложение или игра требуют гораздо больше памяти, чем жал- кие 26 байт!? Если вы подсчитаете число знаков в каждом предложении этой книги, то вы обнаружите, что практически все они требуют больше 26 байт для сохранения составляющих их символов ASCII. Подсчитав количество символов
338 ГЛАВА13. Изучение прогроммироеония но языке Porollox BASIC Stomp 2 в строках, используемых в операторах отладки предыдущего приложения, вы увидите, что они требуют 19 байт, оставляя всего 7 байт для текста программы и переменной Value. Все так, но я должен заметить, что сравнение памяти переменных BS2 с памятью ПК некорректно: в ПК диск, основная память и сверхоперативная память могут использоваться либо для текста программы, либо для перемен- ных, тогда как в BS2 26 байт памяти могут использоваться только для перемен- ных (рис. 13.11). Электрически стираемая перепрограммируемая постоянная память (СППЗУ), энергонезависимая программная память Оперативная память с произвольным (ОЗУ), переменная память микроконтроллера Рис. 13.11. Процессор BS2 с отмеченным размещением памяти Два килобайта электрически стираемой перепрограммируемой постоян- ной памяти (СППЗУ) в BS2 доступны для хранения текста приложения и кон- стант. Это пространство сохранит строки, заключенные в кавычки, такие как строки в операторах отладки эксперимента 82, при помощи клавиш Ctrl+M (рис. 13.12). Как видите, только 1 из 26 байт переменной памяти использует- ся приложением, тогда как для текста приложения и строк, заключенных в кавычки, - почти 30. Переменные и текст приложения по-разному хранятся в памяти BS2 и ваше- го ПК, но переменная память ведет себя в обоих устройствах одинаково. Я да- вал определение и получал доступ к переменным из одного байта непосредствен- но. Переменная память позволяет определять переменные из нескольких байт или слов и обеспечивает произвольный доступ к отдельным битам, байтам или словам из 16 бит через индекс - числовую величину, определенную явно или математически, что предусматривает большую свободу доступа к любым дан- ным внутри переменной типа массив. Вся переменная память компьютерной системы организована, как массив, и косвенный доступ к ней осуществляется через индекс. Классическое пред- ставление массива - ряд почтовых ящиков (рис. 13.13).
^ataUaus^!. Эксперимент 83. Переменные типо массив 339 Рис. 13.12. Диалоговое окно, показывающее использование памяти, которое выводится при нажатии клавиш Ctrl+M Значения индекса Имя переменной Байты памяти Рис. 13.13. Побайтная организация переменной типа массив Здесь название улицы аналогично имени переменной, а для доступа к почто- вому ящику данного адресата нужно знать номер дома на этой улице (который аналогичен индексу переменной). Переменные типа массив используют несколько иной формат в операторе описания, в сравнении с представленным в более раннем эксперименте: VariableName var type(size) Под величиной Size понимается число байтов или слов, используемых мас- сивом (до 26 байтов или 13 слов). VariableName и type здесь такие же, как я представил выше. Таким образом, массив из 10 байтов определяется оператором: Arrayvariable var byte(10) Чтобы распечатать третий байт (его еще называют третьим элементом мас- сива) в окне отладочного терминала, используйте оператор: debug ASC ? Arrayvariable(2) Первый байт в массиве имеет величину индекса 0, вот почему в приведенном выше операторе я использую индекс, равный 2, для доступа к третьему байту.
340 ГЛЙВЙ13. Изучение программирования но языке Porollox BASIC Stomp 2 Массивы могут служить для сохранения числовых и текстовых данных, что делает их похожими на заключенные в кавычки строки. Сейчас я покажу, как массив определяется, заполняется данными, а затем распечатывается вместе со строкой, заключенной в кавычки. Текст программы сохраните как ASCII Strings в отдельной папке внутри папки Evil Genius. ' ASCII Strings - Писать в массив типа байт и читать его содержимое ’{$STAMP BS2} •{PBASIC 2.5} ’Переменные ASCIIArray var byte(5) 'Операторы присваивания ASCIIArray(0) = "Е" 'Загрузить "Evil" в "ASCIIArray" ASCIIArray(1) = "v" ASCIIArray(2) = "i" ASCIIArray(3) = "1" ASCIIArray(4) = 0 ’ Отобразить переменные с помощью оператора отладки debug STR ASCIIArray, " Genius", cr end Возможно, вас удивит, что я закончил строку символов, сохраненную в мас- сиве ASCIIArray символом «О» (или символом ASCII NUL). Нуль в конце строки символов в массиве указывает форматтеру STR, что строка закончена и больше ни одного байта не должно печататься. Строка, заканчивающаяся символом NUL, известна как строка ASCIIZ. Эксперимент 84. Использование математических операторов в операторе присваивании Теперь посмотрим, что можно сделать с переменными в рамках приложения. PBASIC предлагает ряд математических операций (с большинством из них вы
^ialaUaus^ Эксперимент 84. Использование математических операторов 341 знакомы) для обработки числовых данных. PBASIC очень похож на другие язы- ки программирования, но имеется одно отличие, о котором вы должны знать. PBASIC имеет следующую основную форму математического оператора: Destinationvariable = {ValueA} Operator ValueB {Operator ...} Все, что справа от знака равенства, называется выражением. Выражения позволяют указать величину, подлежащую сохранению в операторе присваи- вания, а кроме того, используются в других операторах (и функциях) PBASIC. Фигурные скобки ({ и }) показывают, что символы внутри них являются оп- циями, то есть могут заменяться на другие; кавычки ("...") - что предыдущая строка символов повторяется в операторе. Эти общеупотребительные симво- лы используются в операторах определения для программ, в функциях и опе- раторах. Под Values понимаются переменные, элементы массива переменных или константы. Они также могут быть величинами с операторами, заключенны- ми в круглые скобки. Если величины заключены в круглые скобки, их нужно вычислить первыми. Operator может быть одним из тех, что приведены в табл. 13.5. Таблица 13.5. Математические операторы PBASIC Оператор Функция + Возвращает сумму двух величин - Возвращает разность двух величин; возвращает саму величину со знаком «минус» • Возвращает произведение двух величин 7 Возвращает два средних байта произведения двух 16-разрядных величин ** Возвращает два старших байта произведения двух 16-разрядных величин / Возвращает частное от деления делимого на делитель // Возвращает остаток, полученный при делении делимого на делитель « Возвращает первую величину, сдвинутую влево битами другой величины » Возвращает первую величину, сдвинутую вправо битами другой величины & Возвращает функцию И двух величин, вычисленную поразрядно 1 Возвращает функцию ИЛИ двух величин, вычисленную поразрядно Возвращает функцию ИСКЛЮЧАЮЩЕЕ ИЛИ двух величин, вычисленную поразрядно - Возвращает дополнение данной величины (то же самое, что функция ИСКЛЮЧАЮЩЕЕ ИЛИ данной величины и числа SFF) MIN Ограничивает величину указанным минимальным значением МАХ Ограничивает величину указанным максимальным значением DIG Возвращает указанную десятичную цифру данного числа REV Возвращает указанное количество бит данного числа ABS Возвращает абсолютную величину (модуль) положительного или отрицательного числа DCD Возвращает величину с установленным указанным битом NCD Возвращает старший значащий разряд числа SQR Возвращает корень квадратный из данного числа SIN Возвращает синус от величины при условии, что круг радиусом 127 разбит на 256 точек COS Возвращает косинус от величины при условии, что круг радиусом 127 разбит на 256 точек
342 ГЛЯВЯ13. Изучение прогроммировония но языке Porollox BASIC Stomp 2 Я пометил ValueA как сменный термин, потому что имеется целый ряд унар- ных операторов, выполняющих свою операцию над одной переменной. Отличие, о котором я говорил выше, состоит в способе расчета в операто- рах. В большинстве языков высокого уровня операторы даются в прядке вы- полнения операций или приоритета. А вот в PBASIC расчет оператора произ- водится слева направо. В традиционном языке высокого уровня, если вы хотите, скажем, умножить 3 на 4 и прибавить к результату 5 (чтобы получить 17), нужно применить опе- ратор: А = 5 + 3 * 4 Но в PBASIC он будет вычисляться так: вначале 5 плюс 3 (8), а затем резуль- тат будет умножаться на 4, и в итоге получится 32. Чтобы устранить эту пробле- му вы могли бы разбить оператор на две части и вначале сохранить результат расчета первого выражения (3 * 4) во временной переменной, а затем приба- вить 5 к произведению: Тетр =3*4 А = Тетр + 5 Этот метод работает хорошо, однако требует дополнительной переменной для хранения временной величины. Второй метод позволяет «заставить» производить вычисление по первой операции нужным образом за счет заключения ее и ее параметров в круглые скобки: А = 5 + (3 * 4) Этот формат часто используется для языков высокого уровня и, вероятно, программу при нем легче читать, чем при первом методе. Помните, что воз- можность добавлять небольшие выражения в круглых скобках в более длинные выражения не является неограниченной; я рекомендую использовать не более двух таких выражений в скобках в каждом операторе присваивания. Запустите простое приложение Operator Test (сохраните его в отдельной папке, входящей в папку Evil Genius): ' Operator Test - Посмотреть, как ведут себя различные операторы *{$STAMP BS2} •{PBASIC 2.5} ' Переменные Result var Word 'Оператор присваивания - перейти к проверке различных операторов Result =25+32 ' Отобразить результат Debug ? Result end
^alaHaus^!. Эксперимент 85. Создание простых программных циклов 343 Попробуйте заменить дополнительный оператор (+) на другие - из табл. 13.5, одновременно изменяя параметры. Работу операторов будет довольно легко по- нять, исключение составляют тригонометрические операторы (SIN и COS). Эксперимент 85. Создание простых программных циклов Детали Смонтированная печатная плата с BS2 Инструменты ПК. Кабель RS-232 Когда я начал изучать программирование, мне показали типичную схему алго- ритма программы (рис. 13.14). Учитывая то, что я уже рассказал вам в этой гла- ве, вы должны уметь создавать приложения, следующие этой схеме прохожде- ния данных. Операторы инициализации данных являются входными, любые изменения (математические операции), производимые над входными данны- ми, - обработкой, а результаты обработки на отладочном терминале - выход- ными даными программы. Это позволяет использовать BS2 как простой каль- кулятор, но не очень годится для программирования робота. Вход------I «ЙЕ?* --------Выход Рис. 13.14. Возовая модель программирования Чтобы робот функционировал неопределенно долго, вам придется в первую очередь установить начальные условия, а затем повторять последовательность операторов (рис. 13.15). Рассмотрев схему алгоритма, вы увидите, что движе- ние информации, передаваемой из нижней точки программы обратно вверх, представляет собой кольцо или замкнутую петлю. Такое замыкание исполнения программы в кольцо позволит процессору многократно выполнять одни и те же операции. В языке PBASIC операторы do и loop (обычно их называют просто Цикл do или цикл исполнения) позволяют замкнуть информацию в кольцо: do ’ Начало текста, подлежащего повторению ' Операторы, которые действуют многократно loop Чтобы показать, как действуют операторы циклов с целью получить метод повторения последовательности операторов, введите следующий текст в Stamp
344 ГЛЙВЯ13. Изучение пр<хроммироаония но языке Porollox BASIC Stomp 2 Рис. 13.15. Модель алгоритма циклической программы Windows Editor. Сохраните текст под именем Looping Statements в отдельной папке внутри папки Evil Genius. ' Looping Statements - Демонстрирует работу Цикла do '{$STAMP BS2} '{PBASIC 2.5} ' Переменные Counter var Word ' Инициализация Counter = 0 do ' Вернуться сюда.при следующем значении счетчика ' Обработка Counter = Counter + 1 'Увеличить значение счетчика на единицу 'Отобразить значение счетчика debug ? Counter pause 500 'Задержка 500 мс перед повторением loop 'Вернуться к началу и выполнить снова При запуске этого приложения счетчик будет увеличивать свое значение самостоятельно дважды в секунду; оператор pause (пауза) останавливает рабо- ту процессора BS2 на указанное количество миллисекунд. Благодаря указанию 500 BS2 будет останавливаться на 500 мс или на полсекунды. Пауза не перево- дит BS2 в режим с низким потреблением. При начальной инициализации переменная Counter устанавливается в 0 и затем входит в цикл. В цикле Counter увеличивается на 1. Далее текущее значе- ние Counter поступает на выход, и выполнение программы приостанавливается
^lalattaus^i Эксперимент 86. Циклы с условиями 345 на полсекунды из-за оператора pause, а затем замыкается обратно на оператор do, и процесс начинается снова. Эта программа будет работать в цикле неопределенно долго (останавливаясь, только когда у BS2 отключается питание или когда его перепрограммируют). Это называется бесконечным циклом. В традиционном программировании бесконеч- ных циклов по понятным причинам избегают. А вот в робототехнике многие приложения включают бесконечный цикл, который заканчивается, только когда садятся батареи (или если вы выполните приложение Power Off, (см. экспери- мент 87). Эксперимент 86. Циклы с условиями Детали Смонтированная печатная плата с BS2 Инструменты ПК. Кабель RS-232 В структурном программировании можно выполнять программу многократно с помощью повторяющихся операторов, выполняя при этом конкретное зада- ние. В эксперименте 85 я показал операторы цикла do (цикла исполнения), который позволяет многократно повторять в цикле текст программы, но не дает выйти из цикла. Сейчас я покажу, как исполнять циклический код, пока действует набор условий. Кроме того, вы узнаете, как проверяются условия в PBASIC (и большинстве других языков). В языке PBASIC имеется три способа выхода из цикла do, но я расскажу лишь о цикле do while (иначе называемом цикл пока), который выполняет программный код, содержащийся внутри цикла до тех пор, пока проверяемые параметры находятся в допустимых пределах. Проверка параметров происхо- дит так: ValueA Condition ValueB ValueA и ValueB могут быть переменными, элементами массива или посто- янными величинами. Условие (condition) представляет собой тест и может быть одним из шести видов проверок, перечисленных в табл. 13.6. Выражение рас- считывается, и если оно истинно, то выполнение программы будет продол- жаться по тексту цикла. Если же оно ложно, выполняется скачок к первому оператору, следующему за оператором цикла.
346 ГЛАВА 13. Изучение пргграмллироесний но языке Porollox BASIC Stomp 2 Таблица 13.6. Тесты условий исполнения языка PBASIC Условие Операция Дополнительное условие = Возвращает значение Истинно, если Величина А равна Величине В <> <> Возвращает значение Истинно, если Величина А не равна Величине В = > Возвращает значение Истинно, если Величина А больше, чем Величина В <= >= Возвращает значение Истинно, если Величина А больше или равна Величине В < < Возвращает значение Истинно, если Величина А меньше Величины В >= <= Возвращает значение Истинно, если Величина А меньше или равна Величине В > Чтобы распечатать числа от 1 до 10, выполняя текст программы в цикле do while, пока текущее число меньше или равно 10, вы могли бы написать: Number = 1 do while Number <= 10 Работать в цикле, пока Number меньше 11 debug ? Number, cr Number = Number + 1 loop end С целью показать код, входящий в цикл do while, я расположил текст для операторов debug ? Number, cr и Number = Number + 1 в две колонки. Сове- тую вам так же форматировать текст в собственных приложениях. Мне нравит- ся располагать текст через два пробела, а вам, возможно, захочется использо- вать больше колонок или применить к исходному коду клавишу табуляции. Если вы пользуетесь табуляцией, то помните, что разные приложения отображают исходный код по-разному (например, текст, который красиво выглядит в BASIC Stamp Windows Editor, может казаться плохо организованным при отображе- нии на Web-странице при помощи Internet Explorer). Если вы собираетесь где- либо отображать текст вашего приложения, лучше использовать только пробе- лы для смещения текста и комментариев вправо, а также убедиться в том, что он будет отображаться в той же форме независимо от метода отображения. Давайте расширим наш пример и вычислим первые 16 квадратов чисел при помощи дифференциальной теории. Сотни лет назад вычисление таких вели- чин, как квадраты, было очень сложным и производилось вручную. Чтобы не зависеть от таких сложных операций, как умножение или деление, итоговые величины рассчитывались при помощи сложения и вычитания с использова- нием величины (называемой разностью или приращением}, прогнозируемой ал- горитмически. Такой метод должен был использоваться разностной машиной Бэббеджа (Babbage) для выполнения сложных вычислений, не прибегая к мно- жителям и делителям. Рассмотрев квадраты чисел, вы увидите, что они превышают предыдущий квадрат на величину разности и величину дельта (А), равную предыдущему
Эксперимент 86. Циклы с условиями 347 значению этой величины плюс 2. В табл. 13.7 я привел первые пять квадра- тов натуральных чисел вместе с соответствующими значениями разностей. Дельта (Д) - это значение, прибавляемое к каждой разности. Таблица 13.7. Вычисление квадратов чисел с помощью разностей п Квадрат величины п Разность Дельта Квадрат величины (п + 1) 1 1 2 1 4 2 4 2 3 9 3 9 2 5 16 4 16 2 7 25 5 25 2 9 36 Я использовал дифференциальную теорию для вычисления первых 16 квад- ратов в программе Squares, которую следует сохранить в папке Squares, входя- щей в папку Evil Genius. ' Square - Вычислять квадраты на основе разностей 1{$STAMP BS2} ’{PBASIC 2.5} ’ Объявление переменных n var byte Difference var byte Delta var word Square var word ’ Инициализация переменных n = 1 Delta = 1 Difference = 2 Square = 1 ’ Найти квадраты первых 16 чисел do while n <= 16 debug dec n, " squared = ", dec Square, cr Рассчитать новые значения Square и Delta Square = Square + Delta + Difference Delta = Delta + 2 n = n + 1 loop end Циклический оператор do-while повторяет код вычисления квадрата до тех пор, пока п не станет больше 16. Когда п становится больше 16, условие опера- тора do-while больше не является истинным, и программа скачком выходит из цикла do-while. В этом случае следующим оператором является оператор end, который останавливает приложение.
348 ГЛЯВЯ13. Изучение прогроммироеония но языке Porollox BASIC Stomp 2 Эксперимент 87. Приложение выключения питоиия Детали Смонтированная печатная плата с BS2 Инструменты ПК. Кабель RS-232 Закончив работу с циклическим приложением, вы, возможно, закрыли Stamp Windows Editor, отсоединили печатную плату от ПК и предполагаете, что рабо- та BS2 остановлена. К сожалению, это не так: BS2 будет выполнять текущее приложение, пока оно присутствует в его памяти. Команда Pause не переводит BS2 в режим низкого потребления, он будет продолжать расходовать энергию 9-вольтовой батареи, пока она установлена на печатной плате. Что еще хуже, у нашей печатной платы нет выключателя питания - приложение будет продол- жать работать, пока батарея вставлена в гнездо. Во время нормальной работы BS2 будет потреблять ток 8 мА. При этом но- вая 9-вольтовая щелочная батарея проработает всего сутки. Неужели я ошибся при разработке печатной платы? Разрабатывая печатную плату, я хотел использовать преимущества режи- мов с пониженным потреблением, имеющиеся у BS2, и отказаться от выклю- чателя питания. Это не нарушает мои «Правила робототехники». Как и во всех приложениях, управляющих двигателями, батареи, от которых питают- ся двигатели, имеют выключатели, чтобы робот можно было гарантировано выключить и предотвратить его непредвиденное перемещение. Оператор end переводит BS2 в состояние пониженного потребления, когда расходуется ток всего 40 мкА. А в режиме пониженного потребления новая 9- вольтовая щелочная батарея сможет работать больше года! Зная об этой осо- бенности BS2, я решил задействовать преимущества режима с пониженным потреблением, в который можно переходить, просто выполняя оператор end, как я делаю в приложении Power Off: ' Перевод BS2 в ждущий режим для экономии энергии (и не удаляя батарею) •{$STAMP BS2) ’{PBASIC 2.5} ' Объявление константы AllInput con О
^alaliaus^i!. Эксперимент 87. Приложение выключения питания 349 outs = AllInput 'Все выводы теперь I/Ps, чтобы предотвратить втекание/ вытекание тока debug "Goodbye...", cr end Это приложение, которое можно запустить с любыми приложениями или схемами, представленными в этой книге далее, будет переводить BS2 в режим с пониженным потреблением просто за счет соединения печатной платы с ПК и запуска (Ctrl+R) этого приложения. Анализируя этот текст, вы увидите мини- мум один незнакомый оператор. В данном приложении я представляю концепцию констант. Они являются метками, похожими на метки переменных, в которых им присваивается посто- янное значение. В отличие от переменных метки констант не могут быть изме- нены приложением. Так, если вы ввели оператор: AllInput =42 то Stamp Windows Editor возвратит сообщение "Expected a Variable, Label or Instruction" («Ожидается переменная, метка или команда»), означающее, что метка переменной не может быть изменена. Оператор outs = All Input заставляет все контакты ввода/вывода (I/O) BS2 стать «Входами», и они теряют способность потреблять ток от других устройств или служить источником тока для них. Сделав это, я гарантирую, что BS2, выключенный с помощью данного приложения, не будет потреблять дополнительного тока. Когда все контакты I/O будут переведены в режим входов, я посылаю сооб- щение Goodbye, чтобы показать, что приложение работает правильно, и пере- вожу BS2 в режим пониженного потребления оператором end. Прочитав документацию BS2, вы, вероятно, решите, что приложение, со- стоящее только из одного оператора end, будет выполнять то же задание, что я выполнил здесь. Разумеется, сообщения Goodbye не требуется. Согласно доку- ментации BS2, когда загружается новое приложение, происходит сброс BS2, а контакты ввода/вывода автоматически переводятся в режим входов (это зна- чит, что оператор outs = All Input является лишним). Но если бы я познако- мил вас с приложением, состоящим только из оператора end, у меня не было бы возможности представить вам условно переменный интерфейс контактов ввода/вывода на регистре или показать, как определять константы для ваших собственных приложений.
150 ГЛАВА 13. Изучение программирования но языке Porollox BASIC Stomp 2 Эксперимент 88. Программный код, исполняемый по условию Детали Смонтированная печатная плата с BS2 Инструменты ПК. Кабель RS-232 Возможность создания циклических программ позволяет писать робототехни- ческие приложения, повторяющие одни и те же операции неопределенно дол- го. Однако эта способность не позволяет адекватно реагировать на различные ситуации и входные воздействия, пока исполняется код приложения. В языке PBASIC имеется пара встроенных операторов, позволяющих изменить ход выполнения программы при столкновении с заранее указанными условиями. Главный из них - оператор if (если). Он вызывает переход исполнения про- граммы скачком в другую точку алгоритма приложения, если указанное усло- вие истинно. Если просто показать решение if, возникает проблема, состоя- щая в том, что вы не будете знать, как организовать код PBASIC. Во избежание этого затруднения я предпочитаю характеризовать код, выполняемый по усло- вию, не просто как один оператор, а как три - показывая, что выполняется, если условие истинно, а также, если оно ложно, а затем исполнение из двух со- единенных блоков (рис. 13.16). В левой части блок-схемы алгоритма я показал операторы PBASIC, из кото- рых состоит исполняемый по условию код, начинающийся с оператора if. В первом операторе - if-then - проверяются условия, необходимые, чтобы опре- делить, какой блок кода должен выполняться. Если условие истинно, выполня- ется код, следующий за оператором if-then, пока на пути не встретится опера- тор else (иначе) или endif (конец оператора if). Наряду с выполнением кода, если условие истинно, код можно выполнить, если условие ложно. Это достига- ется с помощью размещения указанного кода после оператора else. Оператор endif показывает, что исполняемый по условию код завершен, и выполнение должно заканчиваться независимо от того, истинно или ложно условие. Оператор else в качестве части выполняемого по условию кода необязате- лен. Желая просто выполнить код, если условие истинно, вы могли бы удалить из алгоритма оператор else и следующие за ним операторы и просто набрать на клавиатуре следующий текст: if Valuel Condition Value2 ' Выполнить, если выражение Valuel Condition Value2 истинно
^a1aUaus,ili Эксперимент 88. Программный код, исполняемый по условию 351 Рис 13.16. Блок-схема алгоритма if endif ' Выполнить оператор if независимо от того, истинно или ложно В некоторых приложениях вы можете увидеть, что программист хочет, что- бы код выполнялся, только если условие ложно, например: if Valuel Condition Value2 else ' Выполнить, если результат проверки - ложно endif Я не одобряю такой стиль программирования, поскольку такой текст при чте- нии смущает. В табл. 13.6 я перечислил «дополнительные» (комплементарные) условия по отношению к основным шести условиям, доступным в языке PBASIC. Вместо комплементарных условий вы можете поместить слово not (не) пе- ред выражением Valuel Condition Value2, однако это может затруднить чте- ние текста (хотя иногда это делает функцию кода более очевидной). Примеры двух последних вариантов показаны ниже: if А <= В then if not А > В then Лично я всегда пишу свои приложения в форме первого примера, так как считаю ее наиболее ясной. Вы можете иметь иное мнение и захотеть использо- вать форму второго примера. Например, вводить выражения для Values: if А + 4 < 37 then Я не советую вам делать так, поскольку такой текст трудно читать. Старай- тесь делать операторы максимально простыми.
352 ГЛАВА 13. Изучение прогроммировония но языке Parallax BASIC Stamp 2 Кроме оператора not, оператор if может сочетаться с операторами and и or, что позволяет строить более сложные операторы if. Операторы and и or работают так же, как схемы цифровой логики И и ИЛИ. Так же, как сложные арифметические операторы, условия читаются слева направо, и код выполня- ется, только когда все они выполнены: if А > В and А < с then ' Выполнить, если А находится между В и С if А = CR or А = 10 then ' Выполнить, если А является символом конца строки (10) или символом возврата каретки Чтобы проверить работу оператора if, испробуйте программу If Test (со- храните ее в папке If Test внутри папки Evil Genius). Это приложение будет распечатывать числа от 1 до 30, которые без остатка делятся на 3: ’ If Test - Распечатать числа, делимые на 3 без остатка '{$STAMP BS2) ’{PBASIC 2.5} ’ Объявление i var byte j var byte i = 1 do while (i < 31) j = i // 3 ' Сохранить остаток от деления i на 3 if j = 0 then debug dec i, "делится на 3 без остатка", cr end if i = i + 1 ’Попробовать следующую переменную loop end
Эксперимент 89. Уове Гчвенсгбэ&анное исполнение по условию 353 ^ataHaus,^. Эксперимент 89. Усовершенствованное исполнение по условию Детали Смонтированная печатная ruiaracBS2 Инструменты ПК. Кабель RS-232 Я начинал описывать эксперименты с исполнением по условию в версии PBASIC, предшествующей версии 2.5; она не обладала такими структурными возможностями, как современная версия. В этой версии оператор if был на- много проще, я мог объяснить как его, так и другой тип оператора всего в од- ном эксперименте. Сейчас я хочу расширить описание некоторых возможно- стей оператора if-else-endif и рассказать о другом типе операторов, которые позволят вам выполнять несколько операторов if, не требуя при этом их по- вторной записи в программе. . Структуру оператора if-else-endif я представил так: if Valuel Condition Value2 then ' Выполнить, если выражение Valuel Condition Value2 истинно else ' Выполнить, если выражение Valuel Condition Value2 ложно endif Наряду с этой структурой оператора вы можете объединить несколько та- ких операторов в одну строку: If А > В then С = A else С = В Такой однострочный формат будет исключать дополнительные строки мно- гострочного формата, но он не позволит с легкостью объяснить, что именно делается в этой строке. Приведенный выше пример загрузки более сложного примера годится для этого формата, так как выполняется единственная опера- ция. Если вы собираетесь выполнить несколько операторов в зависимости от того, истинно или нет условие, то я рекомендую использовать многострочный формат, поскольку так будет проще понять, что происходит, чем если все втис- нуто в одну строку. В идеале у вас должна быть возможность объяснить, что происходит в данной строке, с помощью одного комментария. В своих программах я отделяю каждый уровень условных операторов двумя пробелами (начиная код на расстоянии двух пробелов), чтобы получить хоро- шо читаемый текст. Советую вам поступать так же. Вы можете вставить ваши
354 ГЛЯВЯ13. Изучение программирования но языке Parallax BASIC Stomp 2 операторы if-else-endif один в другой (либо в любой другой условный или циклический оператор): if А = "A" then if В = "В" then * Выполнить, если переменные включают две первых буквы алфавита else ' А = "A" and В < > "В" ' Выполнить, если А включает "А", но В другое endif else ' а < > "А"... Несколько операторов if, необходимых для выполнения различных опера- ций в зависимости от одной величины, можно заменить оператором выбора case. Он будет сравнивать одну величину со значениями для выбора: select RobotCommand case 1 ' "if RobotCommand = 1 then" * Перемещать робот вперед case 2 ' "if RobotCommand = 2 then" ' Перемещать робот назад case else ’ Выполнить, если "RobotCommand" равна чему-нибудь еще debug "Invalid Command Received", cr endselect Величины после case могли бы иметь оператор условия (=, < >, > и т. д.) пе- ред проверочной величиной, если вы хотите захватить целый ряд величин. Я рекомендую не использовать эту функцию, пока вы не освоите программиро- вание очень хорошо. Добавлять условные операторы довольно сложно, так как они не позволяют проверить диапазон величин (иначе чем от наименьшей возможной величины до данной точки или от данной точки до наибольшей возможной величины). Чтобы посмотреть, как работают различные операторы if, я бы хотел сделать что-нибудь интересное и распечатать форму синусоиды с периодом 20 и амплиту- дой 7, чтобы она могла быть эффективно отображена на отладочном терминале (рис. 13.17). Это приложение обращается с отладочным терминалом, как с ра- стровым дисплеем, и печатает значение синусоиды на пересечении соответству- ющей колонки с текущей печатаемой строкой. Текст приложения, показанного ниже, сохраните как Sinewave в собственной папке в составе папки Evil Genius. • Sinewave - Вывести синусоиду на отладочный терминал •{$STAMP BS2} '{PBASIC 2.5} Переменные Row var byte Col var byte
^alaHaus^ Эксперимент 89. Усовершенствовонное исполнение по условию 355 Рис. 13.17. Формо синусоиды SS2 Sinevalue var word ' Инициализация Row = 1 do while (Row < 8) Col = 0 do while (Col < 40) SineValue = Col * 14 SineValue = sin SineValue if SineValue > 32767 then SineValue = SineValue Л $FFFF +1/37 SineValue = 4 - SineValue else SineValue = SineValue /37+4 endif select Row case 4 if (SineValue = 4) then debug "*" else debug case else if (SineValue = 8 - Row) then debug "*" else debug " " endselect Col = Col + 1 loop Row = Row + 1 debug cr loop end
156 ГЛАВА 13. Изучение программирования но языке Parollox BASIC Stamp 2 Эксперимент 90. Использование цикло for о приложенная Детали Смонтированная печатная плата с BS2 Инструменты ПК. Кабель RS-232 Теперь вы можете писать программы, отвечающие едва ли не любым предъяв- ляемым к ним требованиям. Вы думаете, я преувеличиваю? Возможно. Однако вы находитесь на пути к пониманию того, как программировать, гораздо даль- ше, чем полагаете. Первая версия экспериментального ПО будет сортировать шесть случайно выбранных целых чисел и распечатывать их по порядку. Запустите Stamp Windows Editor, введите это приложение и сохраните его как Bubble Sort в папке For Statement внутри папки Evil Genius: * Bubble Sort - Сортировка группы чисел '{$STAMP BS2} '{$PBASIC 2.5} ' Переменные Arraysize con 6 SortArray var byte (ArraySize) i var byte j var byte Temp var byte ' Ввести начальные значения в массив SortArray(0) = 55: SortArray(1) = 5 SortArray(2) = 100: SortArray(3) = 2 SortArray(4) = 65: SortArray(5) = 4 i = 0 ' Распечатать исходный порядок debug " Inital Number Order: " do while i < Arraysize debug dec SortArray(i) i = i + 1 if i < Arraysize then debug ", " else debug cr loop i = 0 ' Выполнить сортировку чисел do while i < Arraysize - 1 j = 0 do while j < ArraySize - 1
^alaHaus^V. Эксперимент 90. Использование цикла for в приложениях 357 if SortArray(j) > SortArray(j + 1) then Temp = SortArray(j + 1) SortArray(j + 1) = Sort Array(j) SortArray(j) = Temp endif j = j + 1 loop i = i + 1 loop i = 0 debug "Sorted Number Order: " do while i < Arraysize debug dec SortArray(i) i = i + 1 if i < Arraysize then debug ", " else debug cr loop end Выполнение этого приложения создаст отображение на отладочном терми- нале (рис. 13.18) и отсортирует шесть чисел в массиве SortArray по одному элементу за раз. Оно будет сравнивать каждый элемент в массиве со следующим за ним элементом. Если данный элемент больше, чем идущий за ним, они поме- няются местами. Проверки повторяются для каждого элемента массива, дабы гарантировать, что, даже если самое большое число в массиве было в самом начале, оно будет сдвинуто к его концу при завершении программы. Такой тип сортировки известен как пузырьковая и, вероятно, является самым неэффектив- ным из известных людям способов сортировки для больших массивов. Я не буду Рис. 13.18. выполнение приложения
3 58 ГЛАВА 13. Изучение программирования но языке Porollox BASIC Stamp 2 детально объяснять, почему, так как для небольших групп чисел вроде группы, с которой мы здесь работали, это прекрасный метод. А вот сортировка боль- шого массива потребует больше времени, чем практически любой другой алго- ритм сортировки. При пузырьковой сортировке мне приходится пересчитывать SortArray несколько раз. Чтобы сделать это, я инициализирую переменную и провожу ее через цикл do-while до тех пор, пока она остается меньше, чем конечное значение (пока она, будучи увеличена на 1, находится внутри цикла). В этом приложении цикл do-while работает хорошо, но он не является наиболее эф- фективным методом организации цикла для набора величин, проходимого многократно; лучше всего это делают операторы for-next: for variable = Initialvalue to Endvalue {step StepValue} ' Код, подлежащий повторению next В операторе for дается определение переменной счета, а также ее началь- ное и конечное значения. По завершении оператора for переменная будет больше, чем конечное значение. Насколько больше, зависит от величины шага анализа. По умолчанию эта величина равна 1, если никакое значение не указа- но, либо может быть любым указанным положительным или отрицательным числом. Вы можете изменить переменную в цикле, но это не рекомендуется де- лать. Изменение переменной в цикле может привести к тому, что исполнение программы неожиданно выйдет из пределов цикла for, что приведет к непред- сказуемому поведению приложения. Чтобы показать, как операторы for-next могут улучшить приложение, я разработал еще одну версию программы Bubble Sort, которую назвал For Sort. Она несколько короче и, я думаю, легче читается: ' For Sort - Сортировка группы чисел с помощью оператора for •{$STAMP BS2} •{PBASIC 2.5} ' Переменные ArraySize con 6 SortArray var byte(ArraySize) i var byte j var byte Temp var byte ' Ввести начальные значения в массив SortArray(0) = 55: SortArray(1) = 5 SortArray(2) = 100: SortArray(3) = 2 SortArray(4) = 65: SortArray(5) = 4 debug "Initial Number Order: " for i = 0 to ArraySize - 1 debug dec SortArray(i)
ftalatiausiiik Эксперимент 91. Сохранение отрезков текста с помощью подпрограмм 3 59 if i < (ArraySize - 1) then debug I, I else debug cr next for i = 0 to ArraySize - 2 ' Выполнить пузырьковую сортировку чисел for j = 0 to ArraySize - 2 ' Найти наибольшее число из списка if SortArray(j) > SortArray(j + 1) then Temp = SortArray(j + 1) у Поменять две величины местами SortArray(j + 1) = SortArray(j) SortArray(j) = Temp endif next ’ Повторить по всему списку next ' Перезапустить список для нахождения следующего наибольшего числа debug "Sorted Number Order: " for i = 0 to ArraySize - 1 debug dec SortArray(i) if i < (ArraySise - 1) then debug ", " else debug cr next end Эксперимент 91. Сохранение отрезков текста с помощью подпрограмм Детали Смонтированная печатная nnaracBS2 Инструменты ПК. Кабель RS-232 Разрабатывая программы, вы убедитесь, что зачастую пишете одни и те же вещи снова и снова. Это будет составлять проблему, когда вы будете заканчи- вать ввод одинаковых отрезков кода в одном приложении. Чтобы показать вам, что я имею в виду, обратитесь к приложению, которое использует таймер с обратным счетом. В приложении Timer Demonstration я вначале считаю в обратном порядке от 5, а затем от 10: ' Timer Demonstration 1 - Счет в обратном порядке от указанной величины '{$STAMP BS2} •{$PBASIC 2.5} ' Переменные
ICO ГЛАВА 13. Изучение прогроммировония но языке Porollox SASIC Stomp 2 j var byte ' Основная программа debug rep "."\5 ' Считать в обратном порядке начиная с 5 секунд for j = 1 to 5: pause 1000: debug rep bksp\l: next debug "5 Second Delay Finished", cr, cr debug rep "."\10 ’ Считать в обратном порядке начиная с 10 секунд for j = 1 to 10: pause 1000: debug rep bksp\l: next debug "10 Second Delay Finished"*, cr, cr end В этом приложении на отладочном терминале записывается установленное количество периодов при помощи форматтера г ер оператора debug. Затем я произвожу отсчет в обратном порядке, ожидая в течение одной секунды в каж- дом цикле (оператор pause 1000), прежде чем послать на отладочный терми- нал символ backspace (bksp), чтобы стереть период справа от строки. Стерев периоды, я печатаю сообщение вместе с двумя символами возврата каретки, так что следующий текст, выводимый на дисплей, будет располагаться двумя строками ниже сообщения. Символ двоеточие (:) позволяет поместить несколько операторов в одной строке. Обычно я не рекомендую этого, так как это может очень существенно затруднить понимание того, что делает код. Однако бывают случаи, когда дво- еточие используется для объединения нескольких операторов, так что они выполняют единую функцию (например, в данном случае вывод символа backspace один раз за секунду для установленного числа раз). Группирование в единую функцию последовательности операторов может улучшить читае- мость кода. Это приложение работает очень хорошо, его довольно интересно наблю- дать. Когда возникает проблема, я повторяю почти в точности те же три стро- ки, которые использовал, чтобы отобразить несколько точек, потом стираю их и вывожу сообщение о том, что время задержки истекло. В PBASIC, как и в большинстве языков программирования, можно дать оп- ределения и имена подпрограммам, что позволяет повторно использовать не- который текст в приложении. Оператор gosub сохраняет адрес следующего за ним рператора, так что когда выполнение кода подпрограммы (начинающего- ся с метки (label) подпрограммы) завершается, то оператор возврата return позволит продолжать выполнение программы с того места, где оно было оста- новлено. Ниже показано, как операторы gosub и return используются для скач- кообразного перехода в подпрограмму и возврата из нее (рис. 13.19). Программа Timer Demonstration 1 использует подпрограммы в языке PBASIC, чтобы исключить один из участков кода, применяемых для отображения
Эксперимент 91. Сохранение отрезков текста с помощью подпрограмм 361 ^atattausi^ Рис 13.19. Блок-схема алгоритма подгрогроммы периодов и их последующего стирания. Теперь наберите следующее приложение и сохраните его как Timer Demonstration 2 в папке Timer Demonstration: ' Timer Demonstration 2 - Использование подпрограммы Count Down '{$STAMP BS2} '{$PBASIC 2.5} • Переменные i var byte j var byte ' Основная программа i = 5 ' Считать в обратном порядке начиная с 5 секунд gosub CountDown i = 10 ' Считать в обратном порядке начиная с 10 секунд gosub CountDown end CountDown: ' Подпрограмма Count Down debug rep "."\i ’ Считать в обратном порядке i секунд for j = 1 to i: pause 1000: debug bksp: next debug dec i, " Second Delay Finished",
362 ГЛАВА 13. Изучение программирования но языке Parallax BASIC Stomp 2 cr, cr return ' Возврат по адресу Эта программа проходит тот же путь, что и предыдущая, но там, где в пер- вой версии я жестко запрограммировал задержки, здесь я использую перемен- ную i (ее можно назвать параметром подпрограммы), чтобы указать подпро- грамме, на сколько секунд она должна производить задержку. В первый раз при вызове метки подпрограммы CountDown (оператором gosub) переменная i име- ет значение 5, а во второй раз - 10. Эта величина указывает, сколько периодов записывается в отладочный терминал, а также сколько раз выполняется цикл for для стирания различных периодов. Нажав клавиши Ctrl+M, можно увидеть данные программы, хранящиеся в СППЗУ процессора BS2: программа Timer Demonstration 1 требует 160 байт памяти СППЗУ, a Timer Demonstration 2-100 байт. Применение подпрограм- мы в этом приложении приводит к более, чем 35-процентному сокращению требуемого объема программной памяти. Наряду с очень явным выигрышем в объеме памяти, полученном благодаря использованию подпрограммы, вы убе- дитесь, что исключение необходимости повторять один и тот же код в вашей программе окажется довольно важным нематериальным преимуществом ис- пользования подпрограмм. К размышлению Я не сказал ничего о трех наиболее популярных операторах PBASIC: goto Label if Condition then Label branch value, LabelO, Label2, Label3{, ...} Кроме того, кажется, что я придаю мало значения меткам и всего лишь пред- ложил использовать их как индикатор начала подпрограмм. Поискав в Интер- нете (www.hth.com/filelibrary/txtfiles/losa.txt) примеры приложений для BS2, вы можете смутиться моей немногословностью по поводу их применения, по- тому что, только посмотрев на них, вы посчитаете невозможным написание приложений на PBASIC без этих трех операторов. Объясняя программирование в этой главе, я использовал преимущества структурного программирования последней версии компилятора BASIC Stamp. Структурированный код строится из определенных блоков кода, которые работают при конкретных условиях. Это важный аспект философии структур- ного программирования. Каждый текстовый блок должен выполнять опреде- ленную функцию - в идеале перед и после каждого текстового блока вы дол- жны оставлять пустую строку, чтобы тот, кто читает программу, видел, где блок начинается и где кончается.
^aiaHauSt^i К размышлению 363 Каждая функция начинается с текстового блока, включающего оператор if, который указывает, почему он исполняется, отделенного пустой строкой. По- лученные в результате отрезки кода очень легко понять, а конкретные функ- ции очень легко разыскать. Цель структурного программирования - облегчить написание, понимание и изменение программы. Ранние версии PBASIC обеспечивали последовательное выполнение опера- торов, что характерно для большинства языков программирования, но не обес- печивали того, что я называю «позитивным» программированием с проверкой условий. Чтобы выполнить блок кода по условию (после проверки), его прихо- дилось записывать так: if Not_Condition then goto Skip ' Код исполняется, если условие "Condition" истинно Skip: вместо формата, представленного в этой главе: if Condition then ' Код исполняется, если условие "Condition" истинно endif В первом случае оператор i f приводит к тому, что исполнение программы «перепрыгивает» блок текста, когда на ее пути встречается отрицательное усло- вие, необходимое чтобы он исполнялся. Так, если вы хотите, чтобы исполнялся блок кода, когда А меньше, чем В (А < В), вам придется преобразовать условие, чтобы «перепрыгивать» его, на условие А больше или равно В (А >= В). Вот поче- му, просматривая перечень различных условий для оператора if, вы часто види- те также перечень комплементарных (или отрицательных) условий. Я называю первый пример оператора if негативным программированием. Это добавляет дополнительный уровень сложности при обучении программирова- нию и требует усилий, чтобы разобраться в том, что код, следующий за опера- тором if, выполняется, потому что условие ложно, а не истинно. Негативное программирование не яляется интуитивно очевидным, и его следует избегать. Опция else оператора if позволяет коду исполняться тем или иным путем, если условие не истинно. Так, используя оригинальные операторы PBASIC, чтобы реализовать блок кода if-else-end, вы могли бы записать его так: if Condition then True_Skip goto False_Skip True_Skip: ' Код выполняется, если "Condition" истинно goto If_End
364 ГЛАВА 13. Изучение прогроммироеония но языке Poroflox BASIC Stomp 2 False.Skip: ' Код выполняется, если "Condition" ложно If_End: Finished либо, исключив оператор goto после оператора if, как: if Not_Condition then False_Skip ' Код выполняется, если "Condition" истинно goto If_End False_Skip: • Код выполняется, если "Condition" ложно If_End: Finished То, что происходит в этих двух блоках текста, несколько смущает, особенно в сравнении с тем, как выглядит тот же блок кода, написанный так, чтобы задей- ствовать преимущества оператора if-else-endif последней версии PBASIC: if Condition then ' Код выполняется, если "Condition" истинно else ' Код выполняется, если "Condition" ложно endif Я предпочитаю структурированные операторы if-else-endif еще и потому, что они исключают множество меток, для которых приходится придумывать имена. В приведенном выше примере метки True_Skip, False_Skip и If_End до- статочно понятны, но их ясность убывает в геометрической прогрессии с увели- чением их количества. Еще труднее пытаться придумывать осмысленные имена для разных меток, а если вы вырежете и вставите участок кода, чтобы сэконо- мить на времени печати, то, возможно, сделаете ошибку, использовав где-нибуць ту же самую метку или оператор goto (что, возможно, трудно будет обнаружить). Это может показаться тривиальным, но я всегда стараюсь закончить хорошим описанием skip, else и end после того, как воспользуюсь ими больше трех раз. Вот почему я не люблю оператор i f Condition then Label. Но вы можете захотеть использовать оператор goto для таких циклов: Loop: ' Код выполняется внутри цикла goto Loop
К размышлению 365 вместо циклических операторов, представленных в настоящей главе. Возмож- но, сложности с придумыванием разных меток покажутся вам небольшими, а разница в читаемости между двумя методами - несущественной. Я порекомен- довал бы придерживаться циклических операторов, потому что цель их при- менения становится ясной немедленно (это оператор, который включен в цикл), и вы легко можете добавить условное while к оператору do. Наряду с условным циклическим оператором do-while, в PBASIC имеется циклический оператор do until Condition (выполнять, пока не будет выпол- нено Условие). Советую его избегать, поскольку это еще один пример негатив- ного программирования. Вы остаетесь в цикле, пока что-то не является истин- ным, а не пока условие, при котором выполнение остается в цикле, истинно. Находясь в цикле, вы можете выйти из него за счет выполнения оператора выхода exit (например, if Condition then exit): do ' Код выполняется в цикле if Condition then exit ' Код выполняется после проверки loop Это похоже на оператор goto, например do ' Код выполняется в цикле if Condition then Loop_Exit ’ Код выполняется после проверки loop Loop_Exit: и его следует избегать по тем же причинам, которые я указал для оператора if Condition then Label. Кроме того, его можно считать неструктурированным, а это будет вызывать остановку выполнения в середине текстового блока. Ко- нечно, текстовый блок имеется до и после оператора if, однако это дает до- полнительную сложность текстовому блоку, а вы хотите сделать код максималь- но читаемым. Я мог бы долго объяснять, почему не рекомендую пользоваться оператором ответвления branch (необходимость в различных именах для меток, неструкту- рированный вид текста и т. д.), но главная причина в том, что гораздо проще применять оператор select-case. С оператором branch довольно просто рабо- тать, он может управлять множеством величин, но он приводит к трудному для восприятия тексту, тогда как select-case, делая то же самое, прост и понятен. Вы, возможно, заметили, что, говоря о структурном программировании, я не использовал графику для объяснения различных концепций. Я сделал так,
366 ГЛАВА 13. Изучение прогроммировония но языке PoroHox BASIC Stomp 2 дабы продемонстрировать один из важнейших аспектов структурного програм- мирования: результат может быть выражен словами очень просто и не требует никаких графических схем. Неструктурированные программы нельзя так про- сто объяснить словами, и зачастую необходимы блок-схемы алгоритмов и дру- гие визуальные вспомогательные средства. Словесное описание структурированных программ упрощает документиро- вание. Если вы назвали свои переменные и подпрограммы и объяснили работу контактов ввода/вывода, описав контакты (см. главу 14) и дали комментарии, вам, может быть, вообще не придется документировать приложение. Гораздо проще документировать хорошо написанную и структурированную программу.
Глава 14 Оборудование интерфейса для BASIC Stamp 2 В главе 13 я познакомил вас с основами программирования BS2. Представлен- ная информация имеет, в известной степени, общий характер и может быть использована при программировании почти в любой ситуации: для микрокон- троллеров, ноутбуков, карманных ПК и интеллектуальных инструментальных средств. Теперь вы готовы учиться написанию приложения для робота с помо- щью BS2. BS2 основан на микроконтроллере Microchip PIC16C57 PICmicro®, который содержит программный текст, декодирующий и исполняющий лексемы*, кото- рые поступают от Stamp Windows Editor. Он взаимодействует с ПК, который загружает приложение в BS2. PICmicro также обеспечивает аппаратную часть для контактов ввода/вывода (I/O) для BS2. Контакты ввода/вывода PICmicro находятся в режимах выходов или вхо- дов, обеспечиваемых регистром доступа с тремя состояниями (TRI-State Register), который управляется специальной схемой (рис. 14.1). Разрабатывая архитектуру BASIC Stamp и язык PBASIC, авторы Стремились избежать сложностей с контактами ввода/вывода микроконтроллера PICmicro и установили способ доступа к контактам ввода/вывода, похожий на доступ к переменным. Они добавили три метки (и ряд меток второго уровня), чтобы дать возможность взаимодействовать напрямую с контактами ввода/вывода Лексема (token) - в языках программирования минимальная языковая единица, имеющая значе- ние (например, идентификатор, знак операции). - Прим, перев.
368 ГЛЙВЯ14. Оборудовоние интерфейсе для BASIC Stomp 2 Рис. 14.1. Контакт ввода/ вывода микроконтроллера PICmicro в BS2. Вот эти регистры (и регистры второго уров- ня, обеспечивающие вам доступ к небольшим группам контактов): Таблица 14.1. встроенные метки PBRSIC для доступа к контактом ввода/вывода BS2 Имя слом Имена байтов Имена полубайтов Имена битов Функция INS INL, INH INA, INB, INC, IND IN0-IN15 Чтение состояния входных выводов OUTS оитцоитн OUTA, OUTB, OUTC, OUND OUTO-OUT15 Сохранение нового состояния контактов I/O DIRS DIRL, DIRH DIRA, DIRB, DIRC, DIRD DIR0-DIR15 Изменение режима контактов I/O (1 для выхода, 0 для входа) PBASIC обеспечивает тип контакта, позволяющий описать контакт с помо- щью оператора: Label pin # где знак # представляет собой номер контакта (от 0 до 15). Описать выходной контакт, сделав выходным контакт BS2, обозначенный как РО, и выставить на нем напряжение низкого уровня, можно так: outputpin О Output outputpin 'РО переводится в режим выхода outputpin = О 'Установить на контакте низкое или нулевое напряжение Но лучше сделать контакт ввода/вывода РО выходом с низким уровнем на нем с помощью оператора встроенной функции low. По-моему, этот оператор интуитивно гораздо понятнее, чем приведенные выше операторы: те же функ- ции выполняет простой оператор: low outputpin 'Сделать РО выходом, вывести на него низкое напряжение Кроме оператора low, можно использовать другие встроенные операторы для установки режима входа или выхода для контактов и задания состояния контакта (табл. 14.2).
Эксперимент 92. Чпроаление светодиодом 369 Таблица 14.2. Операторы PBRSIC для контактов абодаЛэдеодо (I/O) Оператор Описание функции low# Делает контакт ввода/вывода # выходом и устанавливает на нем низкий уровень high # Делает контакт ввода/вывода « выходом и устанавливает на нем высокий уровень input # Делает контакт ввода/вывода it входом output # Делает контакт ввода/вывода # выходом reverse # Преобразует контакт ввода/вывода из состояния входа в состояние выхода toggle # Делает контакт ввода/вывода # выходом и переключает его состояние на обратное Эти операторы существенно упрощают управление контактами ввода/вы- вода и исключают необходимость записи на отдельные контакты ввода/выво- да с помощью оператора присваивания. Описание контакта обеспечивает до- ступ к данным, как если бы он был переменной, в то же время позволяя вам использовать метку как константу в операторах функций. Если у вас несколько контактов ввода/вывода, к которым вы хотите иметь доступ, либо вы проверя- ете состояние бита (или группы бит), то вам понадобятся перечисленные име- на регистров контактов ввода/вывода. Эти имена используются так же, как и имена переменных. Кроме обеспечения простого цифрового ввода и вывода, контакты I/O у BS2 можно использовать в различных операторах функций PBASIC. В данной главе я познакомлю вас со многими из этих функций, которые являются одной из сильных сторон семейства PBASIC Stamp и позволят вам без всяких затруд- нений создавать очень сложные приложения. Функции последовательного ввода/вывода BS2 позволяют применять 17 входов/выходов, а не 16, как можно было бы ожидать. Семнадцатый вход/ выход (под номером 16), предназначенный для последовательных операций, представляет собой программный интерфейс. Он может служить для связи с BS2 в тех ситуациях, когда интерфейс последовательного порта уже собран в устройстве (как, например, на печатной плате из Приложения 3). Эксперимент 92. Управление светодиодом Смонтированная печатная плата с макетной платой, батареей и установлен- ным BS2. Светодиод лю- бого цвета ПК. Кабель RS-232-Набор инструментов для радио- монтажа Чтобы отобразить данные с BS2, я использовал в главе 13 оператор отладки debug. Однако, в большинстве робототехнических приложений этот оператор отладки неудобен. Например, если бы у вас был робот, отслеживающий стены,
370 Г/1ЯВЯ14. Оборудовоние интерфейсе для BASIC Stomp 2 и вы хотели понять, как исполняется программа, то есть вероятность, что вы бы не смогли проложить кабель RS-232 от робота к ПК, чтобы робот при этом работал правильно. Возможность выводить с BS2 информацию о выполнении программы для пользователя без применения оператора debug - важная воз- можность робототехнических приложений. В этом эксперименте, а также в нескольких последующих я познакомлю вас с различными способами, которы- ми данные можно вывести с BS2 и которые не требуют прямого взаимодей- ствия с компьютером. Самый главный выходной прибор для BS2 - светодиод. Сейчас мы подсоеди- ним его к BS2, и по сигналу управления он будет включаться и выключаться. Схема состоит из светодиода, подключенного к одному из контактов ввода/ вывода BS2 и к выходу его стабилизированного источника питания (рис. 14.2). Ниже показано, как светодиод будет установлен на макетной плате (рис. 14.3). Рис. 14.2. Выход на светодиод В Интернете вы найдете прикладные схемы с BS2 и микроконтроллером PICmicro, в которых вообще нет токоограничивающих резисторов (я же ис- пользую встроенные резисторы 220 Ом, установленные на печатной плате). При этом разработчики рассчитывают на то, что контакты ввода/вывода ми- кроконтроллера PICmicro способны выдать во внешнее устройство максималь- ный ток 20 мА или потреблять от внешнего устройства максимальный ток 25 мА. Не делайте так: это неэкономично и не обеспечивает никакой защиты кон- тактов ввода/вывода BS2 и микроконтроллера PICmicro. Исключить токоогра- ничивающий резистор - значит получить в результате схему, в которой контакт ввода/вывода может сгореть, оставив вас с неисправным BS2. В этой схеме я подсоединил анод светодиода (положительный вывод) к од- ной из цепей источника питания печатной платы, а катод (отрицательный
^lalatiaus,^ Эксперимент 92. Управление светодиодам 171 Vdd Vin[ Vss □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ P5 P4 P3 P2 P1 J3 D-9/F $ Q CD b 2 P15 P14 P13 P12 PH РЮ P9 P8 UUUUuUUUUlJ □ □□□□ □ □□□□ □ □ □ □ □ ДПлоская сторона п корпуса светодиода. ° соединенная ° с контактом Р15 □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□ □ □□□□ □ □□□□ □ □□□□ □ □□□□ □ □□□□ □ □□□□ □ □□□□ □ □□□□ □ □□□□ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □□□□ □ □□□□ □ □ □□□ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ о □ □ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ о о □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □ □ о □ □ □ □ о □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ о □ □ □ □ □ Рис. 14.3. Установка одного светодиода на печатную плоту вывод) - к контакту ввода/вывода BS2. Такой монтаж соответствует соглаше- нию, которое обычно используется для микроконтроллеров, так как некото- рые микросхемы прежних лет (лучший пример - Intel 8051) не могли служить источниками тока - только потребляли его. Чтобы обеспечить непосредствен- ное соединение светодиода с контактом ввода/вывода, анод придется соеди- нить с источником питания, а катод - с контактом ввода/вывода как раз так, как я сделал здесь. Заставить светодиод мигать дважды в секунду благодаря доступу к контакту ввода/вывода, как к переменной, с помощью оператора присваивания может такое приложение: ' LED Flash Demonstration 1 - Мигание светодиода на контакте РО дважды в секунду '{$STAMP BS2) LED pin 15 ' Определение контакта ввода/вывода * Основная dirl5 = 1 ' Р15 является выходом do LED = 0 * Включение светодиода pause 250 ' Задержка 0,25 с LED = 1 * Выключение светодиода pause 250 Loop * Повторение Сохраните этот текст как LED Flash 1 в папке LED Flash внутри папки Evil Genius. Проверив программу, вы можете создать приложение LED Flash 2
372 ГЛДВД14. Оборудование интерфейса для BASIC Stomp 2 (сохранив ее в той же папке). В этой программе используются встроенные в PBASIC операторы функций low и high: * LED Flash Demonstration 2 - Мигание светодиода на контакте РО дважды в секунду ’{$STAMP BS2} LED pin 15 ' Определение контакта ввода/вывода * Основная do low LED ' Включение светодиода pause 250 ' Задержка 0,25 с high LED ' Выключение светодиода pause 250 Loop ' Повторение Программа LED Flash 2 работает так же, как LED Flash 1, потому что по существу это одна и та же программа. Мне не нужны операторы dirO = 1 или output 0 в программе LED Flash 2, поскольку первый оператор low 0 перево- дит контакт ввода/вывода в режим выхода, прежде чем установить на нем низ- кий потенциал. Эксперимент 93. Силоновый глаз Детали Смонтированная печатная плата с макетной платой, батареей и установлен- ным BS2. Дисплей на де- сяти светодиодах типа столбцовой диаграммы ПК. Кабель RS-232.Ha6op инструментов для радио- монтажа В главе 13 я показал, как на основе переменных определять другие переменные путем их переименования или выделения их меньшей части. Эта возможность порой очень полезца, что я сейчас и продемонстрирую. В 1970-х годах некоторым успехом пользовалось телешоу «Галактика Бетл- стар» («Battlestar Galactica»), о чем можно было бы забыть, если бы не роботы. Эти роботы не были особенными любителями поговорить (их главная фраза была «Слушаюсь!»), но у них были просто классные глаза. Глаз робота состоял из источника красного света, который двигался вперед и назад, пристально рассматривая то, что перед ним находилось. Хотя сериал основательно забыт, этот сканирующий глаз существует в качестве индикатора во множестве компью- терных систем, показывая, что система «жива и функционирует».
ftataHausfly. Эксперимент 93. Силоновый глаз 373 Схема состоит из соединения дисплея типа столбцовой диаграммы на 10 светодиодах с BS2 (рис. 14.4). Как и в других экспериментах со светодиодами, я использую установленные на печатной плате токоограничивающие резисторы. в Vdd И Дисплей «Столбцовая диаграмма» на 10 свето- диодах видимого света Метка в углу, указывающая аноды свето- диодов Рис. 14.4. Силоновый глаз Монтируя дисплей типа столбцовой диаграммы на 10 светодиодах, устано- вите его так, чтобы метка-срез, указывающая ориентацию анодов светодиодов, была в правом нижнем углу (см. рис. 14.4). Сохраните следующее приложение в папке Cylon Eye внутри папки Evil Genius: ' Cylon eye - Сканирование светодиодов на дисплее display •{$STAMP BS2} ’{$PBASIC 2.5} ' Переменные Direction var byte LSB pin 0 * Бит светодиода младшего двоичного разряда MSB pin 9 ' Бит светодиода старшего двоичного разряда ' Инициализация outs * %1111111110 • Сделать выходами все контакты, связанные со светодиодами dirs = %1111111111 • Со включенным светодиодом на контакте РО Direction = О
374 ГЛЯВЯ14. Оборудовоние интерфейсе для BASIC Stomp 2 • Начало выполнения do if (Direction = 0) then outs = outs «1+1 ' Сдвиг зажженного светодиода вверх if (MSB = 0) then Direction = 1 ' Изменить направление движения endif else outs = outs » 1 ' Сдвиг зажженного светодиода вниз MSB = 1 ' Убедиться, что бит старшего двоичного разряда установлен If (LSB = 0) then ’ Внизу Direction = 0 ' Начало движения вверх endif endif pause 1000 ' Отвести 1 секунду на обход 10 светодиодов loop Это приложение довольно легко понять. Оно действительно выгладит сим- патично (и может служить основой для новогоднего или другого праздничного украшения). Вместо объявления контактов младшего и старшего бит из директории outs я мог бы просто подсчитать конкретные биты (то есть, outO и out9 для млад- шего и старшего бит соответственно) или использовать математические вели- чины, чтобы определить, являются ли числа каким-либо из экстремумов. На- пример, я мог бы записать первый тест (if (MSB = 0) then) так: if (out9 = 0) then или ввести полностью строку бит, которая ожидается. Другой способ записи оператора if (MSB = 0) then: if (outs = %0111111111) then Этот метод проверки данных довольно привлекателен, поскольку ожидае- мое состояние каждого бита отображается в исходном коде. В этом приложе- нии запись каждого бита в том состоянии, которого вы ожидаете, согласуется с характером самой программы благодаря способу инициализации регистров dirs и outs. Может показаться странным, что для сдвига вниз я использовал два опера- тора. Первый сдвигает биты вправо (перемещая зажженный светодиод вниз), а второй явно устанавливает самый старший значащий бит дисплея (оператор MSB = 1). Я мог бы объединить эти два оператора в один из трех, приведенных ниже:
^lalattausH Эксперимент 94, ЖК-дисплей с упровлением от микросхемы Hitochi 44780 375 outs = outs » 2 + 512 Сдвиг вниз и установка старшего двоичного бита outs = outs » 2 + $200 Сдвиг ВНИЗ и установка старшего двоичного бита outs = outs » 2 + %1000000000 Сдвиг вниз и установка старшего двоичного бита Я воздержался от этого, поскольку эти операторы не кажутся такими же простыми для понимания, как два других, особенно для неопытного пользова- теля. Эти три оператора будут сдвигать вниз величину из регистра outs, а за- тем устанавливать наибольший значащий бит. Это как раз так, как я делал со сдвигом вверх, добавляя 1 к биту, который не будет больше устанавливаться после того, как данные сдвинутся вверх. Проблема с добавлением величин 512, $200 или % 1000000000 к сдвинутой вниз величине состоит в том, что я не уве- рен, какой именно код это делает, с той же степенью очевидности, как при явной установке старшего двоичного бита. Эксперимент 94. Жидкокристаллический дисплей с управлением от микросхемы Hitachi 44780 Детали Смонтированная печатная плата с макетной платой, батареей и установлен- ным BS2. Жидкокристал- лический дисплей 16x2 Инструменты ПК. Кабель RS-232.Ha6op инструментов для радио- монтажа До сих пор мы использовали светодиоды в качестве выходных устройств, но вы можете подумать о других методах передачи информации пользователю. Я уверен, что вы знакомы с жидкокристаллическими дисплеями (ЖКДу, они при- меняются практически везде, от часов до устройств компьютерного отображе- ния. Их главное достоинство - низкая потребляемая мощность. Возможно, вас очень удивит, что в ЖКД действительно находится жидкость. Нематические кристаллы (от греческого слова нема- строка) - очень длинные, тонкие молекулы, взаимодействующие с электрическими полями, - являются взвесью в жидкой среде (обычно в воде). Когда к таким кристаллам, находя- щимся в жидкости, прикладывают электрическое поле, они ориентируются так, что устанавливаются параллельно силовым линиям электрического поля и блокируют прохождение света (рис. 14.5). Когда электрическое поле не при- ложено, кристаллы ориентируются случайным образом, и свет может прохо- дить сквозь них. ЖКД работают с очень малым потребляемым током, потому что через жидкость ток не проходит.
376 ГЛАВА 14. Оборудование интерфейса для BASIC Stomp 2 пластины, /Д /Д/Д А. электрического ^“Z V X «Л/vz потенциала нет ЖЖ^екло Напряжение, приложенное к металлическим пластинам и нематическим жидким кристаллам, ориентирует их параллельно электри- ческому полю, блокируя прохождение света насквозь К нематическим жидким кристаллам не приложено напряжение. Ориентация хаотическая. Свет проходит насквозь Рис. 14.5. Робота жидкокристаллического дисплея Взаимодействие с оборудованием, управляющим ЖКД, на практике доволь- но сложно и должно быть очень точно синхронизировано. Чтобы упростить вза- имодействие с ЖКД, был разработан ряд интерфейсов. Наиболее популярный интерфейс - микросхема Hitachi 44780, которая связана с держателем ЖКД. ЖКД, микросхему и держатель обычно называют модулем. У него 14 контактных отверстий (табл. 14.3). Модуль ЖКД работает, как телетайп или однострочный телевизионный дисплей - по мере того как вы записываете в него символы, кур- сор перемещается вправо, чтобы подготовиться к следующему символу. Таблица 14.3. Контактные выводы модуля Выводы Описание и функция 1 «Земля» 2 Vcc 3 Напряжение контрастности 4 RS - „Команда /выбор регистра 5 RW - -Выбор запись/чтение 6 Е-синхронизация 7-14 Контакты ввода/вывода данных (DO на выводе 7/ D7 на выводе 14) Я обычно подсоединяю ряд штырьков к 14 соединительными отверстиями, так чтобы ЖКД можно было легко установить на макетную плату. Как вы убе- дитесь, у некоторых ЖКД имеется 16 контактных отверстий, причем 2 допол- нительных отверстия служат для подсветки. Некоторые другие модули ЖКД имеют два ряда по семь или восемь контактов в каждом. Для простоты созда- ния схем и их монтажа на макетной плате вам следует использовать только модули ЖКД с одним рядом выводов. Я рекомендую вам купить недорогой дис- плей 16 х 2. Соединение ЖКД с BS2 незатейливо (рис. 14.6). Единственная странность - потенциометр для установки постоянного напряжения, используемого ЖК-дис- плеем. Напряжение, которое снимается с этого делителя напряжений, указыва- ет, насколько темными должны быть символы на ЖКД. В зависимости от типа ЖКД это напряжение будет выше или ниже.
ftataHausll Эксперимент 94. ЖК-дисплей с управлением от микросхемы Hitochi 44760 377 Рис. 14.6. Интерфейс ЖКД Чтобы упростить монтаж, я просто подал сигналы данных прямо с разъема BS2 на ЖКД. Из-за этого мне придется менять местами биты данных (с помо- щью оператора rev), чтобы символы ASCII, считанные из оператора lookup, можно было подать прямо на модуль ЖКД. Код приложения будет распечатывать надпись «Evil Genius» в верхней стро- ке ЖКД и может использоваться как основа для других приложений. • LCD Test - Отображение простого сообщения в модуле ЖКД • ($STAMP BS2} • {$PBASIC 2.5} ' Переменные i var byte Character var byte ' Символ, подлежащий отображению Display LCDData var outl ’ Определение выводов ЖКД на BS2 LCDE pin 8 LCDRW pin 9 LCDRS pin 10 • Инициализация dirs = %11111111111 ’ Сделать 11 младших двоичных разрядов выходами LCDRW = 0: LCDRS =0: LCDE - 0 ' Инициализация интерфейса ЖКД pause 20 ' Ожидание, пока ЖКД сбросится LCDData = $0С: pulsout LCDE, 300: pause 5 ’ Инициализация модуля ЖКД
378 ГЛАВА 14. Оборудование интерфейсе для BASIC Stomp 2 pulsout LCDE, 300: pulsout LCDE, 300 ' Вызвать сброс в ЖКД LCDData = $1С: pulsout LCDE, 300: pause 5 ' Инициализация/ установка 8 битов LCDData = $08: pulsout LCDE, 300 ' Нет сдвига LCDData = $80: pulsout LCDE, 300: pause 5 ' Очистка ЖКД LCDData = $60: pulsout LCDE, 300 * Указать перемещение курсора LCDData = $70: pulsout LCDE, 300 ' Включить дисплей и курсор Character =1: i = 0 LCDRS =1 ’ Печать символов do while (Character <> 0) lookup i, ("Evil Genius", 0], Character if (Character <> 0) then LCDData = Character rev 8: pulsout LCDE, 300 i = i + 1 endif loop end Эксперимент 95. Вывод музыкальной мелодии Инструменты ПК. Кабель RS-232.Ha6op инструментов для радио- монтажа Смонтированная печатная плата с макетной платой, батареей и установлен- ным BS2. LM386, 6-воль- товый усилитель звуковых частот в 8-контактном корпусе DIP. Два резисто- ра 1 кОм. Конденсатор 0,01 мкФ любого типа. Конденсатор 0,1 мкФ любого типа. Электролитический конденсатор 330 мкФ, 16 В. Потенциометр 10 кОм. Громкоговоритель 8 Ом К этому моменту я познакомил вас с тремя способами, которыми BS2 можно ис- пользовать для создания обратной связи с вами в процессе его работы. Функ- ция debug годится для возврата подробной, информации для программиста или пользователя, но требует соединения с ПК. Светодиоды можно разглядеть с до- статочного расстояния, но они не подходят, когда требуется большой объем ин- формации или в информации имеется разброс (изменения интенсивности
^ataHauSfiii Эксперимент 95. Вывод музыкальной мелодии 379 выходного сигнала). Наконец, ЖКД могут отображать много данных и показы- вать. разброс, но их трудно считывать с большого расстояния (разработчик, ползущий за своим роботом, чтобы прочитать выходную информацию на ЖКД, - не такая уж большая редкость). А что, если добавить громкоговоритель, который сможет обеспечить для вас информацию о состоянии робота с опре- деленного расстояния? В PBASIC есть функция freqout, которая будет выводить музыкальный тон с указанного контакта. Формат функции приведен ниже. Длительность проиг- рывания ноты обозначена Duration, Frequencyl. Это исходная частота выход- ного сигнала с BS2, указанная в герцах, и, если вы хотите, то можете иметь вторую частоту (Frequency2), чтобы сделать аккорд из двух нот. freqout Pin, Duration, Frequencyl{,Frequency2} Вы думаете, что выход freqout будет прямоугольным колебанием указанной частоты? Нет. Выходной сигнал состоит из последовательности, импульсов, которые подлежат фильтрации с преобразованием в плавный синусоидальный сигнал, как я показал на рис. 14.7, который представляет собой осциллограм- мы двух сигналов во время работы. На рис. 14.7 верхняя осциллограмма - это выходной сигнал с контакта ввода/вывода BS2, а нижняя - результирующая синусоида. Необработанный выход BS2 Синусоидальное колебание, после фильтрации поступающее на микросхему LM386 Рис. 14.7. Форма сигнала freqout Схема применяемого фильтра состоит из резисторов и конденсаторов меж- ду выходным контактом BS2 и входом LM386 (рис. 14.8). Смонтировав схему, наберите код: 'Hawaii 5-0 - Играть мелодию '{$STAMP BS2} '{$PBASIC 2.5} ’ Переменные i var byte
380 ГЛАВА 14. Оборддоеоние интерфейсе для BASIC Stomp 2 Рис. 14.8. Выход музыки Note var word Duration var word SoundOut pin 15 • Определение нот A con 88 AS con 932 В con 988 С con 1046 ' Среднее до CS con 1108 D con 1174 DS con 1249 E con 1318 F con 1396 FS con 1480 G con 1568 GS con 1662 hA con 1760 hAS con 1873 hB con 1976 hC con 2094 hCS con 2218 hD con 2350 ' Приложение Note =1: i = 0 ' Начало считывания do while (Note <> 0) • Цикл по мелодии
ftatattausiiik Эксперимент 96. Электронная игральная кость 381 lookup i,[G,G,hAS,hD,hC, G,-1,G,G,F, hAS,G,0],Note if (Note <> 0) then lookup i, [1,1,1,2,4, 5,2,1,1,1,2,7,0],Duration Duration = Duration * 208 ' Начать c 72 бит в минуту if (Note <> -1) then freqout SoundOut, Duration, Note else pause Duration ' -1 означает пробел, просто задержка endif endif i = i + 1 end Это приложение играет несколько начальных тактов мелодии из телешоу «Hawaii 5-0», и она звучит удивительно хорошо, если учесть простоту схемы. В разделе «Определение нот» программы я перечислил основные частоты нот от «ля» ниже среднего «до» и до «ре» октавой выше. Когда в тексте встре- чается -1, в мелодию включается пауза. Величина Duration измеряется в еди- ницах, равных четверти тона, и я умножил ее на число миллисекунд, которое составляет длительность одной четверти тона (играя при 72 битах в минуту), чтобы получить в мелодии реальную длительность. Возможно, вы захотите попробовать запрограммировать другую мелодию. Чтобы сделать это, найди- те музыкальный отрывок и транспонируйте ноты и длительности в таблице преобразования (lookup), которую я создал. Запустив приложение, вы убедитесь, что потенциометр 10 кОм должен быть установлен в положение достаточно низкого сопротивления, иначе усилитель звуковых частот LM386 будет перегружаться, и ничего не будет на его выходе. Даже при низком установленном сопротивлении потенциометра вы убедитесь, что звук на выходе довольно громкий. Эксперимент 96. Электронная игральная кость Детали Смонтированная печатная плата с макетной платой, батареей и установлен- ным BS2. Семь светодио- дов любого цвета. Рези- стор 10 кОм. Кнопка ПК. Кабель RS-232.Ha6op инструментов для радио- монтажа Одна из наиболее полезных встроенных функций PBASIC - button - предо- ставляет вам очень простой способ борьбы с дребезгом входа с кнопочного
382 ГЛЯВЯ14. Оборудование интерфейса для BASIC Stomp 2 переключателя (параметры операторов кнопки объясняются в Приложении 2 «Справочная информация о PBASIC»): button Pin, DownState, Delay, Rate, Workspace, Targetstate, Address Функция button выполняется каждый раз при нажатии кнопки как в случае приращения, так и в случае сброса переменной Workspace. Эта функция не обеспечивает для вас синхронизацию - вам придется поместить оператор внутрь цикла заданной длительности. Это не так уж трудно, если принять во внимание, что вы можете рассчитывать, что каждый оператор PBASIC занима- ет по времени 250 мкс (согласно параметрам, представленным компанией Parallax, BS2 выполняет 4000 операций в секунду). Кроме того, вы можете ис- пользовать преимущества имеющейся в PBASIC функции pause. Давайте развлечемся и для данного эксперимента создадим «цифровую иг- ральную кость» с помощью BS2 и нескольких светодиодов, загорающихся при нажатии кнопки (рис. 14.9). Рис. 14.9. Цифровой игрольноя кость Электромонтаж этого эксперимента несколько сложнее из-за того, что мы хотим, чтобы светодиоды выглядели, как игральная кость. Сохраните програм- му как Digital Dice в папке Digital Dice внутри папки Evil Genius: 'Digital Dice - Создание цифровой игральной кости с нажимной кнопкой '{$STAMP BS2} '{PBASIC 2.50}
^lataHaus^i Эксперимент 96. Электронная игрольноя кость 383 ’ Переменные ButtonPin pin 15 ButtonCount var byte Dice var byte i var byte j var byte ' Инициализация outs = $ffff ' Сделать потенциал на всех светодиодах высоким/ выключить dirl = %1111111 ' Сделать контакты с РО по Рб выходами do ButtonDownWait: ' Ожидать нажатия кнопки Dice = Dice + 1 ' Уравнять вероятности значений для игральной кости pause 4 ' Цикл занимает примерно 5,5 мс button ButtonPin, 0, 10, 180, ButtonCount, 1, ButtonDown goto ButtonDownWait ’ Противодребезновая защита через 55 мс, повторять 1 раз в секунду ButtonDown: for i = 0 to 5 ' Кнопка нажата for j = 0 to 5 ’ Отобразить как уменьшение pause i * 125 ’ Увеличение задержки для отображений величин Dice = Dice + 1 select (Dice // 6) ’ Отобразить значение кости с помощью Select case 0: outl = %1110111 ’ Начать с 1 easel: outl = %0100010 ' Отобразить 5 case2: outl = %0111110 ’ Отобразить 2 •case3: outl = %1100011 ' Отобразить 3 case4: outl = %0001000 ’ Отобразить б case5: outl = %0101010 ' Отобразить 4 endselect next next loop Этот текст вам, конечно, понравится, но чем он может быть полезен для робототехники? По-моему, функция button очень полезна для реализации чув- ствительных «усиков» робота. «Усики» можно опрашивать с помощью опера- торов button, каждый со своей собственной переменной Workspace.
384 ГЛЯВЯ14. Обор99овоние интерфейсе для BASIC Stomp 2 Эксперимент 97. Вход с клоеиотуры Детали Смонтированная печатная плата с макетной платой, батареей и установлен- ным BS2. Резисторная сборка с однорядным расположением выводов из 9 резисторов номина- лом 4,7 кОм. Клавиатура Инструменты ПК. Кабель RS-232.Ha6op инструментов для радио- монтажа Многие устройства снабжены несколькими кнопками, и бороться с их дребез- гом при помощи функции button было бы не особенно эффективно ни с точки зрения числа опрашиваемых линий связей, ни с точки зрения способа опроса кнопок. В большинстве таких устройств применяются не отдельные кнопки, а матрица. Матрица из кнопок смонтирована в виде набора электрических свя- зей, состоящего из рядов и колонок, что позволяет «адресовать» отдельные переключатели и опрашивать их (рис. 14.10). Vdd Vdd Управление Колонкой О Управление Колонкой 1 Рис. 14.10. Работе матричного переключателя Хотя использование четырех линий связи для доступа к четырем переклю- чателям и не выглядит лучше, чем монтаж отдельных переключателей, но, если переключателей много, преимущества матрицы становятся очевидными. Так, 16-кнопочную матрицу можно «адресовать» с помощью восьми линий связи
Эксперимент 97.6x09 с клавиатуры 385 (четырех рядов и четырех колонок). Если вы найдете где-то лишнюю телефон- ную клавиатуру (только не разбирайте ту, что у вас дома), вы убедитесь, что она смонтирована как матрица «четыре на три» с семью выходящими наружу про- водами. Я взял в кавычки слово «адресовать», поскольку процесс считывания состо- яния матрицы из переключателей (ее часто называют клавиатурой или пуль- том управления на матричном переключателе) отличается от того, как адресу- ется память. Обычно ряды привязаны через нагрузку к питанию, а колонки через переключатели - к «земле» (см. рис. 14.10). Чтобы считывать из колонки переключателей, ее транзистор открывают (подключив колонку к «земле»), а затем опрашиваются отдельные переключатели. Если один из них возвращает 0 (вместо 1, что получается при соединении с шиной питания), то переключа- тель на пересечении ряда и колонки идентифицируется как замкнутый, а кноп- ка - как нажатая. Вероятно, вы столкнетесь с тремя трудностями при работе с клавиатурой на матричном переключателе. Первая: если одновременно нажать две клави- ши, может получиться, что ненажатые клавиши также вернут 0, ошибочно по- казывая, что они были нажаты. В большинстве клавиатур и пультов управления это не является серьезной проблемой, так как они обычно снабжены клавиша- ми Shift, Ctrl, Alt и др., которые можно нажимать совместно с другими во вре- мя работы и которые не соединены с теми рядами и колонками, где располо- жены клавиши букв и цифр. Вы.должны использовать транзисторы в цепи управления с открытым кол- лектором или с открытым стоком (см. рис. 14.10) для замыкания колонок на «землю». В тексте приложения для этого эксперимента я использую выводы, соединенные с клавиатурой, либо в режиме входов, либо в режиме выходов с нулевым потенциалом, чтобы смоделировать цепь управления с открытым кол- лектором. Наконец, вы можете обнаружить, что соединительные связи пульта (или кла- виатуры) не будут расположены в логическом порядке. Причиной этого являет- ся рациональность с точки зрения производителя; пульты обычно предполага- ют использование односторонней печатной платы, и во избежание соединений на другой стороне, связи проводятся так, что могут показаться случайными. В своей программе я рассматриваю все соединения как потенциальные колонки и соединяю их с «землей» при опросе других контактов, что устраняет эту проблему. В других книгах я объясняю, как декодировать связи, выходящие из клавиа- туры, и документировать их как матрицу, что позволяет осуществить эффектив- ный монтаж контроллера. В данном эксперменте указанная стадия исключена, и программа прорабатывает каждую линию связи как колонку с опросом дру- гих линий в качестве рядов и возвращает уникальную шестнадцатеричную ве- личину для каждого из переключателей. Это, вероятно, наиболее эффектив- ный способ декодирования клавиатуры; когда вы выполните программу и запишете шестнадцатеричные величины для различных переключателей, код
386 ГЛЯВЙ14. Оборудование интерфейса для BASIC Stomp 2 и шестнадцатеричные величины могут быть использованы в операторе выбо- ра select в приложении для выполнения функций отдельной кнопки. Принципиальная схема эксперимента очень проста (рис. 14.11): я исполь- зовал 10-контактную резистивную матрицу с однорядным расположением вы- водов в качестве набора нагрузочных резисторов; резистивная матрица состо- ит из 9 резисторов и имеет общий вывод, маркированный точкой. Рис. 14.11. Кловиатура на матричном переключателе Приложение Switch Matrix возвращает уникальную шестнадцатеричную величину для каждой кнопки. На клавиатуре 20 кнопок и 9 выводов для внеш- них связей. ' Switch Matrix - Возвращает коды клавиш клавиатуры на матричном переключателе в виде шестнадцатеричного числа '($STAMP BS2) '{$PBASIC 2.50} ' Переменные i var byte j var byte Flag var byte LastButton var word CurrentButton var word ButtonCount var byte ' Основная ButtonCount = 0: LastButton = -1 'Ни одна кнопка еще не нажата do Flag = 0 ' Нажата ли кнопка
NalaHautf^l Эксперимент 98. Измерение сопротивления 387 for i = 0 to 7 dirs = DCD i: outs = 0 ' Сделать контакты ввода/вывода выходами с нулевым потенциалом for j = i + 1 to 8 if (ins.lowbit(j) = 0) then Flag = 1 ’ Кнопка нажата CurrentButton = (j * 8) + i ' Запись адреса if (LastButton = CurrentButton) then ButtonCount = ButtonCount + 1 ' Предыдущая кнопка else ' Новая кнопка сбрасывает счетчик LastButton = CurrentButton: ButtonCount = 0 endif endif next next if (Flag = 0) then ' Ни одна кнопка не нажата? ButtonCount = 0: LastButton = -1 ’ Нет else ' Иначе - кнопка нажата if (ButtonCount = 2) then ' Кнопку держат нажатой? Debug "Button = ", shex LastButton, cr else ' Держат нажатой, повторного нажатия нет if (ButtonCount = 3) then ButtonCount = 2 endif endif loop Эксперимент 98. Измерение сопротивления Инструменты ПК. Кабель RS-232.Ha6op инструментов для радио- монтажа Детали Смонтированная печат- ная плата с макетной платой, батареей и уста- новленным BS2. Дисплей на десяти светодиодах типа столбцовой диа- граммы. Элемент систе- мы цветного отображения (фотореэистор 10 кОм). Три конденсатора 0,01 мкФ любого типа. Электролипнесхий конденсатор 330 мкФ, 16 В. Потенциометр 10 кОм. Динамик 8 Ом. LM386, 6-вольтовая микросборка усилителя в 8-контактном корпусе DIP
388 ГЛЯВЙ14. Оборудование интерфейса для BASIC Stomp 2 Робот, ориентирующийся на свет*, был основан на элементе системы цветного отображения с переменным сопротивлением, который работал с таймером 555. Сопротивления элементов системы цветного отображения можно исполь- зовать и для функции retime, встроенной в BS2. Вы можете легко подсоединить резистор с конденсатором к BS2, чтобы измерить его временную задержку (рис. 14.12). Следующая схема может также использоваться для считывания положения потенциометра. , Vcc С f retime Pin, 1, Variable Форма сигнала на выводе BS2 ~ Переменная = 600000 х R х С Рис 14.12. Функция retime Рекомендуемый формат функции retime таков (параметры объясняются в «Справочной информации о PBASIC* в конце книги): high Pin ' Установка состояния контакта before retime retime Pin, 1, Variable Прочитав объяснение функции retime в «Руководстве по программирова- нию на PBASIC», вы увидите, как выводится формула для ожидаемой возвраща- емой величины. Я опущу этот вопрос и перейду к общему случаю, когда возвра- щаемая величина count определяется формулой: Count = 600000х Rx С R - это сопротивление в омах, а С - емкость в фарадах. Если бы вы собира- лись использовать резистор 10 кОм (темновое сопротивление) с конденсато- ром 0,01 мкФ, ожидаемая величина Count составила бы: Count = 600000 х 10 кОм х 0,01 мкФ = = бОООООх 10(1 (У)х 0,01 (106 ) = = 60 При использовании элемента системы цветного отображения 10 кОм, со- противление которого понижается при воздействии на него света, ожидаемый диапазон значений составляет от 0 до 60. Проверяя схему, я установил, что максимальное значение с элементом системы цветного отображения и конден- сатором 0,01 мкФ составляет 67. Так что это довольно точное приближение ожидаемой выходной величины. Схема этого эксперимента будет выдавать на выходе порядок (при основа- нии, равном 2) индицированных величин сопротивления элемента системы См. эксперимент 42. - Прим, перев.
ftatatiauslik Эксперимент 98. Измерение сопратмаленмя 389 цветного отображения, которые зависят от направленного на элемент света). Индикация производится с помощью жидкокристаллического дисплея типа столбцовой диаграммы и динамика (рис. 14.13). Рис 14.13. Световой термемвомс* Вот исходный код для эксперимента Light and Sound: ' Light and Sound - Измерение сопротивления элемента системы цветного отображения/ отображение данных ’{$STAMP BS2} •($PBASC 2.50} ’ Переменные CDSValue var word ' Возвращаемая величина элемента системы цветного отображения (CDS) Translate var word • Порядок амплитуды величины элемента системы цветного отображения ’ Инициализация dirs = %0001001111111111 ' Р15 - вход элемента системы цветного отображения, Р12 - звук outs = $ffff do high 12 retime 12, 1, CDSValue • Считывание состояния элемента системы цветного отображения Translate = NCD CDSValue ' Получить старший бит порядка * Терменвокс - электронный музыкальный инструмент, созданнный российским физиком Львом Терменом в 1920 году, - подобие современного синтезатора. - Прим, перев.
390 ГЛАВА 14. Оборудование интерфейса для BASIC Stomp 2 outs = DCD Translate - 1 л $3ff freqout 15, 100, (Translate * (440 / 7)) + 440 loop Обратите внимание на два момента. Первый: я преобразовал величину за- держки в порядок амплитуды для выходов на светодиодный дисплей и на дина- мик. Это очень удобно: вы можете как видеть, так и слышать результат на рас- стоянии. Во-вторых, я написал целое приложение без оператора if; вместо этого я рассчитал все величины, подлежащие выводу на выход, в одном опера- торе, использовав преимущества порядка работы BS2 слева направо. Собрав это приложение, я столкнулся с тремя проблемами..Первая состоя- ла в том, что я не ввел оператор high 12, устанавливающий состояние контак- та ввода/вывода для функции retime. Если его нет, retime всегда будет возвра- щать 1, что указывает на нужное состояние контакта до операции. Далее, меня смущал монтаж схемы - это не только самая сложная схема на BS2 из встречав- шихся до сих пор в книге, но и самая полезная. Она показывает, как свет и звук могут быть использованы для вывода на выход информации об изменяющихся данных. Наконец, я не уделил внимания 9-вольтовой батарее на печатной пла- те, и схема стала работать странно. Это был хороший способ напомнить мне о необходимости проверять батарею (с помощью тестера), если приложение, как кажется, не работает по написанной для него программе. Рассмотрите операторы outs = и freqout. Чтобы показать, что вы поняли, как работает программа, почему бы вам не изменить ее так, чтобы при подаче более интенсивного света на элемент системы цветного отображения (фото- резистор) светодиоды горели ярче, а звук становился выше? Эксперимент 99. Вывод аналогового напряжения ШИМ Детали Смонтир^-лтиная печатная плата с макетной платой, батареей и установлен- ным BS2. Два резистора 10 кОм. Резистор 100 Ом. Конденсатор 0,47 мкФ любого типа. Кнопка ПК. Кабель RS-232. Набор инструментов для радио- монтажа. Цифровом муль- тиметр Формирование настоящих аналоговых сигналов полностью цифровым устрой- ством, например, BS2 производится на удивление просто. В этом и следующем экспериментах я покажу, как сформировать аналоговые напряжения, которые можно использовать как опорные напряжения для источников питания, ЖКД и других схем. Ранее я представил схемы на дискретных компонентах, способные вырабатывать аналоговый сигнал ШИМ, а сейчас для выработки аналоговых напряжений я применю встроенную функцию PBASIC под названием РИМ.
1\lataiiau^‘ Эксперимент 99. Вывод аналогового напряжения ШИМ 391 PWM Pin, Duty, Cycles Типичной схемой, применяемой с функцией PWM в BS2, является резистив- но-емкостной фильтр (рис. 14.14). Напряжение на конденсаторе равно рабоче- му циклу, деленному на 255 и умноженному на напряжение источника питания BS2 (в номинале 5 В). Рис. 14.14. Схема ШИМ Команда РИМ языка PBASIC выполняется с периодом 1 мс (1000 Гц). Когда выполнение заканчивается, она устанавливает контакт в режим входа, чтобы дать возможность поддерживать постоянное напряжение на резистивно-емко- стных цепях, вместо того чтобы они разряжались или потребляли энергию от BS2. Чтобы получить стабильное и точное напряжение на выходе, компания Parallax рекомендует применять формулу для времени заряда: Время заряда = 4 х Rx С Для сопротивления 10 кОм и конденсатора 0,47 мкФ это время равно: Время заряда = 4 х 10 кОм х 0,47 мкФ = ~4х 10(103)х 0,47(106)с = 0,0188 с - 19 мс. Результирующий оператор функции PWM, который будет использоваться в приложении: РИМ Pin, Duty, 19 Чтобы продемонстрировать работу ШИМ, я создал схему приложения (см. рис. 14.14), которая позволит вам изменять выходное напряжение цепи на «ступеньку» при каждом нажатии кнопки и измерять его с помощью циф- рового мультиметра.
392 ГЛЯВЯ14. Оборудование интерфейса для BASIC Stomp 2 Вот текст приложения PWM Test (сохраните его в папке PWM Test внутри папки Evil Genius): ' PWM Test - Вывод значения ШИМ при нажатии кнопки '{$STAMP BS2} '($PBASIC 2.50} ' Объявление переменной и контактов PWMDuty var byte PWMOut pin 15 ButtonPin pin 3 ' Инициализация PWMDuty = 0 ' Старт при рабочем цикле 0% Cycle PWM do ' Бесконечный цикл debug dec PWMDuty, "/255=", DECI PWMDuty / 51, "." debug DEC2 ((PWMDuty // 51) * 100) / 51, cr do while (ButtonPin = 0) * Ожидание высокого напряжения с кнопки PWM PWMOut, PWMDuty, 19 • Выдача на выход величины ШИМ loop do while (ButtonPin = 1) ' Ожидание низкого напряжения с кнопки PWM PWMOut, PWMDuty, 19 ' Выдача на выход величины ШИМ loop PWMDuty = PWMDuty + 1 loop В этом приложении каждый раз при нажатии кнопки рабочий цикл ШИМ увеличивается, пока не достигнет 255. Два оператора debug позволяют прогно- зировать, какое значение вы прочитаете на цифровом мультиметре (предпола- гая, что высокий уровень напряжения равен 5 вольтам, а низкий уровень - 0). Нажимая кнопку, вы увидите, как аналоговое напряжение на выходе увеличи- вается на 20 мВ. Эксперимент 100. Цифро-аналоговый преобразователь Я-ЯЯ Детали Смонтированная печат- ная плата с макетной платой, батареей и уста- новленным BS2. Рези- стор 10 кОм. Резистор 220 Ом. Семь резисторов 100 Ом. Кнопка Инструменты ПК. Кабель RS-232.Ha6op инструментов для радио- монтажа. Цифровой муль- тиметр
^aiaHaus,^. Эксперимент 100. Цифро-аналоговый преобразователь R-2R 191 Давайте вернемся к теоретическим основам электротехники*. Я хочу показать вам очень хитроумный цифро-аналоговый преобразователь (ЦАП), который не нуждается в регенерации, не имеет задержки по времени до того, как выход- ной сигнал станет действительным, и может иметь любое число битов разре- шения, какое вам хотелось бы. В схеме цифро-аналогового преобразователя R-2R используются переключае- мые резисторы номиналом 2R, подсоединяемые к Vdd или к «земле» (рис. 14.15). vdd____________________ j-| SW0 --| SW1 —|SW2 2R^ 2R^ 2R^ —I—•—•———evout R R Рис. 14.15. ЦАП A-2A на 3 бита В табл. 14.4 я перечислил значения состояния переключателей (0 для потен- циала земли и 1 для Vdd) и значения выходного сигнала ЦАП. Таблица 14.4. Выходные значения сигнала ЦАП А-2А на 3 бита SW2 SW1 SW0 Выход 0 0 0 ов 0 0 1 1/8 Vdd 0 1 0 1/4 Vdd 0 1 1 3/8 Vdd 1 0 0 1/2 Vdd 1 0 1 5/8 Vdd 1 1 0 3/4 Vdd 1 1 1 7/8 Vdd Рассмотрев схему, вы легко решите, каковы значения сигнала на ее выходе для случаев, когда переключателями SW2, SW1 и SW0 установлены значения %000, 96001, %010, %100 и %111. Случаи, когда два переключателя замкнуты на Vdd, а один - на «землю», сложнее (рис. 14.16). Глядя на эту некрасивую схе- му, вы, вероятно находитесь в затруднении, как решить ее и найти Vout. Чтобы помочь вам, я присвоил обозначения токам через каждый из резисторов и на- пряжениям в трех узлах схемы; к каждому из которых подсоединено по три резистора. Напряжения VI, V2 и Vout можно найти с помощью закона Ома и законов Кирхгофа. * См. главу 3. - Прим, перед.
394 ГЛЙВЙ14. Оборудование интерфейса для BASIC Stomp 2 Рис. 14.16. ЦЯП R-2R на 3 бита при выходном напряжении, равном 5/8Vdd Чтобы сделать это, запишем все, что мы знаем об этой схеме. Вот некото- рые полезные формулы: VI = 2Rx i4 = Vdd - (2Rx il) i3 = (VI -V2) / R il + i2 — i4 + Подставляя различные величины в эти формулы, первую и последнюю фор- мулы можно переписать: 4Vl = Vdd + 2V2 6V1 = 5Vdd - 5V2 Умножив второе выражение на два и заменив величину 12V1 на утроенную величину 4V1 из первого выражения, вы получите, что V2 равно 7/16 Vdd. Про- работав схему, вы установите, что Vout равно (R/3R(Vdd - V2)) + V2), что упро- щается до 10/16Vdd или 5/8Vdd. Именно это значение и указано в табл. 14.4 для SW2 = 1, SW1 = 0 и SW0 = 0. Если вы похожи на меня, то вы извели кучу бумаги, пока пришли к этому ответу. Это хорошее упражнение - разобрать все восемь возможных для этой схемы уровней выходного напряжения, что поможет закрепить основные принципы в вашей памяти. Нерационально тщательно разбирать все 256 воз- можных выходных уровней схемы ЦАП на 8 бит, созданной для данного экспе- римента (рис. 14.17). ’ R-2R DAC Test - Выдача на выход значения сигнала ШИМ при нажатии кнопки '{$STAMP BS2} ’{$PBASIC 2.50} ButtonPin pin 15 ' Инициализация dirl = ' Все 8 бит имеют низкий потенциал
^aiaHaus,^. Эксперимент 100. Цифро-онологовый преобразователь R-2R 395 Outputs outl - $ff ' Все биты - высокий уровень +1=0 do ' Бесконечный цикл outl = out + 1' Увеличение выходной величины на 1 Output Value debug dec outl, 1/255=1, DECI outl I 51, 1.1 debug DEC2 ((outl // 51) * 100) / 51, cr do while (ButtonPin = 0) 'Ожидать высокого уровня с кнопки loop do while (ButtonPin = 1) 'Ожидать низкого уровня с кнопки loop loop Когда вы проведете этот эксперимент, у вас, возможно получится, что ре- альная величина не настолько точна, как у ЦАП ШИМ. Причина состоит в ис- пользовании резисторов номиналом 100 Ом в качестве значений R - это не совсем точный номинал для цифро-аналогового преобразователя R-2R. Заме- нив их резисторами 110 Ом, вы убедитесь, что точность схемы очень высока и совпадает с точностью ЦАП ШИМ из эксперимента 99. Рис 14.17. Схема ЦАП R-2R на 8 битое
Глава 15 Датчики В «Программировании контроллеров для роботов» (глава 18) я описал датчи- ки роботов как имеющие в точности те же цели, что и датчики на корабле* «U.S.S. Enterprise» в телешоу «Астроориентация» («Star Treck»). Датчик должен анализировыать условия окружающей среды и сообщать, есть ли что-нибудь в пределах зоны его чувствительности. Если объект обнаружен, даже при том, что он может повредить робот, датчик ничего не должен делать - это работа ПО, управляющего роботом. Ниже показаны объекты, о наличии которых робот должен быть осведом- лен (рис. 15.1). Эти объекты могут быть чем-либо, чего робот должен избе- гать, или местом, куда, как предполагается, робот движется. Вот почему я хочу, чтобы «сообразительность» робота находилась в центральной програм- ме управления, а не в стандартных программах для датчиков. Датчик может обнаружить объект, но только робот повернет неправильно, потому что до- полнительная информация от датчиков не была включена в процесс приня- тия решения. Источник света Объект Источник тепла Рис 15.1. Поле обзоро датчика
$Уа1аНам5^г Датчики 397 Светло-серый конус, показывающий поле обзора датчиков, - попытка про- демонстрировать, что данный датчик не в состоянии чувствовать объекты во всех направлениях вокруг робота и обнаруживает только объекты, находящие- ся на указанном расстоянии от робота. Рассматривая типы датчиков, вы долж- ны убедиться, что понимаете, каково поле обзора и глубина обзора (расстоя- ние) для каждого типа датчиков. Критической для успешной разработки робота является интеграция цен- тральной программы управления с датчиками и приводом. Это не значит, что вам придется конструировать робот, снабдив его всеми возможными датчика- ми, чтобы он мОг справиться с любыми непредвиденными обстоятельствами. Это значит лишь четко определить, что робот собирается делать. Вы должны выбирать датчики и ходовую часть, которые позволят роботу ориентировать- ся в окружающей среде и выполнять конкретные задания в соответствии с цен- тральной программой управления. Датчики должны справляться с массой различных ситуаций (табл. 15.1). Таблица 15.1. Различные датчики для роботов и их характеристики Параметр Датчик Комментарии Свет Элементы систем цветного отображения Несколько элементов систем цветного отображения размещаются на роботе; каждому присваивается собственная уникальная точка обзора, чтобы помочь идентифицировать освещенные и темные участки окружающей робот среды. Легко реализуются Видеокамера Охватывает область перед роботом. Способна идентифицировал» светлые/темные области окружающего пространства. С большим трудом различает объекты, их ориентацию и расположение относительно робота Объекты Проволочные усики Просто реализуются. Однако их легко повредить, и они являются потенциальным Источником электростатического разряда, действующего на электронику, если допускается их трение по поверхности Ультразвуковой дальномер Хорошее измерение направления для объектов, находящихся на Пути луча. Требует много энергии, а угол обзора очень мал Отражение ИК-лучей Хорошее измерение направления на объект при относительно низкой стоимости и низком потреблении энергии. Очень большой угол обзора. Сложно определить расстояние до объекта Микрофон Воспринимает звук, возникающий при столкновении робота с объектом. Может оказаться сложным в реализации из-за других звуков, окружающих робот Радиолокатор Обеспечивает точность в расстоянии и направлении, которые зависят от устройства Видеокамера Предусматривает расположение объектов вокруг робота. Может оказаться сложно реализовать аппаратное/программнОе обеспечение и получить освещение, необходимое чтобы объект было легко обнаружить Звук Микрофон Позволяет управлять роботом криком или хлопками. Дешево стоит, достаточно просто реализовать. Могут появиться проблемы из-за шума, издаваемого роботом Поверхность Датчик скольжения Распознает, скользит ли колесо или ножка робота по поверхности. Информация о скольжении и подпрыгивании воспринимается при отслеживании движения робота и его положения Датчик уклона Возвращает информацию о том, что робот движется вверх по возвышению или спускается с него и требует изменения потребляемой мощности
398 ГЛАВА 15. Датчики Таблица 15.1. (окончание) Параметр Датчик Комментарии Положение Одометр Сохраняет д анные о движении робота, так что его текущее положение можно определить арифметически. Довольно просто реализовать, но опред елить точное положение робота может сказаться очень труд но Компас Возвращает текущее направление робота. Полезен для одомет> для определения того, не отклонился ли робот от прямого направления пути, а также для начальной установки направления движения. Помогает роботу найти указанное положение или следовать по запрограммированной траектории Глобальная система навигации и определения положения (Global Positioning System, GPS) Используйте спутники GPS для определения положения (и курса) с точностью до нескольких метров. Приемнику, размещенному в здании, может быть трудно найти спутники GPS Ультразвуковой дальномер Служит для тригонометрической съемки положения робота относительно окружающих его объектов. Может оказаться трудно реализовать. Требует механизма для кругового движения ультразвукового передатчика и приемника Радиолокатор Может служить для идентификации положения объектов вокруг робота, как ультразвуковой дальномер Видеокамера Позволяет определить местонахождение и расположение объектов вокруг робота. Очень трудно реализовать Тепло (включая людей и животных) Пирометр Служит для обнаружения людей. Очень чувствителен, имеет очень широкое поле обзора ИК-фотодиоды Трудно установить для распознавания тепла. ИК-фотздиоды предназначены для оптических прерывателей и могут быть нечувствительны к частотам, излучаемым человеком. Успешно используются для обнаружения огня Видеокамера Большинство видеокамер будут обнаруживать в ближней ИК-области спектра. Могут потребовать закаленных линз и доработки камеры, чтобы воспринимать тепло Эксперимент 101. Компьютер Снарк, bLiza Детали Смопироаанная печатная платасВ$2 ПК. Кабель RS-232 Вы, может быть, захотите смоделировать данные, возвращаемые от датчи- ков, чтобы проверить оперирующее с ними ПО. Хорошая мысль, потому что
NataHausifo. Эксперимент 101. Компьютер Снорк, bliza 399 оперировать данными с интеллектуальных датчиков столь же трудно, как под- соединить датчик к роботу. Знакомя вас с программированием, я разрешал вам изменять или добавлять новые значения в исходный текст приложения. Но изменять исходный код каждый раз, чтобы попробовать что-нибудь новое, не слишком эффективно, а кроме того, изменив одну из величин, вы можете не- предвиденно воздействовать на другую. Работая с приложением на ПК, вы можете создать файл с прочитанными данными и с переработанными данными, как если бы он поступил от датчиков. Преимущество такого способа в том, что вы можете легко изменять данные, не воздействуя на приложение. Но вот вопрос: как применить этот метод к BS2, у которого нет файловой системы, откуда можно было бы считывать файлы? Можно использовать способность BS2 хранить данные в СППЗУ с помощью операторов data, но технически это затрагивает исходный код, а это именно то, чего мы и не хотели делать. А нужен какой-то способ передачи произволь- ных данных на BS2. Команда PBASIC debugin почти идеально отвечает всем этим требованиям. Она противоположна команде debug; вместо передачи данных от BS2 вам вы можете передать данные на BS2 с помощью этой команды, имеющей следую- щий формат: debugin formatter Variable Форматтер, используемый для debugin, - это та же команда форматирова- ния, что использовалась для debug и serout. Для ввода числа с пользователь- ского терминала в переменную i служит оператор: debugin dec i Применить оператор debugin для ввода десятичных чисел довольно просто, и вы можете сделать это сами. Я же хочу использовать оператор debugin как метод ввода для эксперимента по искусственному интеллекту. Когда я говорю «искусственный интеллект», я подразумеваю главным обра- зом попытки разработать алгоритм .программирования, копирующий прими- тивных животных (например, муравьев). Это противоречит тому, что люди обычно вкладывают в это понятие. Им бы хотелось видеть компьютер (или робот), который ведет себя так, как если бы он был человеческим существом. Это представление укоренилось в сознании многих людей благодаря англий- скому специалисту по вычислительной технике Алану Тьюрингу (Alan Turing), который предположил, что компьютер станет «интеллектуальным», если чело- век сможет общаться с ним, как если бы он был другим человеком, и при этом не сможет уловить, в1 чем разница. Один из первых экспериментов по разработке программ, которые выдер- живают тест Тьюринга, назывался Eliza. Eliza была создана Джозефом Вейзен- баумом (Joseph Weizenbaum) в Массачусетском Технологическом Институте в 1965 году для демонстрации того, как компьютер может показать, что он обла- дает искусственным интеллектом, отыскивая ключевые слова в операторах и реагируя на них. Для своего времени Eliza была удивительной программой. Она
400 ГЛЯЯЯ15. Датчики вырабатывала отклики на операторы, переданные ей от обычных людей (че- рез пользовательский терминал RS-232). По-настоящему поразительным было то, что это программа была реализована всего на 8 килобайтах памяти. Я решил воспроизвести эту работу на BS2 (у которого имеется только 2 ки- лобайта памяти) при помощи операторов debug и debugin и добился успеха*, хотя я осознаю, что приложение bLiza несколько длинновато: *bLiza - Попытка реализовать программу демонстрации искусственного интеллекта "Eliza" на BS2 '($STAMP BS2} '{PBASIC 2.5} ’ Объявление переменных Inputstring var byte(20) 'Строка из 20 символов Temp var byte i var byte k var byte Randomword var word j var RandomWord.HIGHBYTE RandomCount var RandomWord.LOWBYTE LastCharFlag var bit FoundFlag var bit * Инициализация debug "Hello. I’m bLiza.", cr ’ RandomCount = 0 'Random постоянно обновляется, начальная величина не требуется * Главный цикл do * Бесконечный цикл i = 0 ч Inputstring (г) = 0 'Начать с ну евой строки LastCharFlag = 0 'Хочу выполнить по крайней мере один раз do while (LastCharFlag = 0) 'Ожидание возврата каретки debugin str TempM 'Ожидание ввода символа if (Temp = cr) then LastCharFlag = 1 'Строка закончилась else if (Temp = bksp) and (i <> 0) then debug " ", bksp 'Запас в один пробел i = i - 1 'Передвинуть строку назад Inputstring = О else if (i >= 18) or ((Temp <> " ") and ((Temp < "a") or (Temp > "z"j) and ((Temp < "A") or (Temp > "Z"))) then debug bksp , 11 'В конце строки или символ НЕ else ' Можно сохранить символ if ((Temp >= "a") AND (Temp <= "z")) then Temp = Temp - "a" + "A" debu bksp, str TempM Название компьютера Снарк, видимо, происходит от имени фантастического персонажа поэмы Л. Кэрролла «Охота на Снарка» («The Hunting of the Snark»)*- Прим, перев.
Эксперимент 101. Компьютер Спори, blizo 401 Inputstring(i) = Temp i = i + 1 InputString(i) = 0 'Добавить конец новой строки RandomCount = RandomCount + Temp endif endif endif loop if (i = 0) then ' Пустая строка debug "Type something!", cr 'Напечатайте что-нибудь! else * Ответить на комментарий i = 0: k = 1; FoundFlag = 0 'Поиск совпадения co входом do while (FoundFlag = 0) 'Просмотр таблиц данных j = 0 'Отслеживание символов read i, Temp 'Считывание текущего символа if (Temp = 0) then 'Если :ервый - нуль, то совпадения нет FoundFlag = 1 else do while ((Temp = Inputstring(j))) and (InputString(') <> 0)) j = j + 1 i = i + 1 read i. Temp loop if (Temp = 0) then 'Совпадение строк FoundFlag = 1 else do while (Temp <> 0) i = i + 1 read i, Temp loop i = i + 1 'Переход к началу следующей строки k = k + 1 'Обозначить тип следующей строки endif endif loop 'На выходе, j указывает на несовпадение i = 0 'Удалить все в InputString до j do while (Inputstring(j) <> 0) Inputstring(i) = Inputstring(j) i=i+l:j=j+l ’ После копирования байта перейти к следующему loop Inputstring i = 0 ’ Ввести нуль (null) на конце новой строки RANDOM RandomWord ' ^Получить значение случайного отклика i = (RandomWord / 8) & 3 if (i = 0) then i = 3 ' Результат 1, 2 или 3 if (k = 1) then j = 11 ' Только один отклик отвергается else j = ((k - 2) * 3) + i endif
402 ГЛАВА15. Датчики * Формирование откликов на входной текст if (j <= 9) then select(j) ’ Отклик на "I AM ..." case 1: debug "Do you like being ", str Inputstring, •?• 'Вам нравится быть....? case 2: debug "And you're happy?" ' И вы довольны? case 3: debug "That explains your friends."' Это объясняет то, с кем вы дружите * Отклик на "I HAVE А ..." • case 4: debug "Do you like it?" ' И вам это нравится? case 5: debug "Knowing you, it's cheap" 'Если знать вас, это дешево. case 6: debug "Bite me ", str Inputstring, "-boy." • Поделись co мной, -владелец. ' Отклик на "I WANT ..." case 7: debug "All the young dudes want a ", str Inputstring, "." 'Bee молодые пижоны хотят case 8: debug "Well, if you want it —" 'Ну, если вы хотите это____ case 9: debug "Ask the police."'Попросите полицию, endselect else if (j <= 18) then select(j) ' Отклик на 'I HATE ..." case 10: debug "That's too bad." 'Это жаль, case 11: debug "Should I be scared?" 'Мне следует испугаться? case 12: debug "Are you a psycho?" 'А Вы не псих? ' Отклик на "MY ..." case 13: debug "Honest?" 'Честно? case 14: debug "You must be proud." 'Должно быть, вы гордитесь. case 15: debug "No way, Jose!" 'Вряд ли, Джоз! ' Отклик на "BECAUSE __" case 16: debug "Wrong." 'Неправда, case 17: debug "Sure...I believe you." 'Конечно______Я верю Вам. case 18: debug "That's dumb." 'Это бессмысленно, endselect else select(j) ' Отклик на "I like ..." case 19: debug "You should stay off the Internet." • Вы не должны посещать Internet. case 20: debug "Good for you!" 'Хорошо! case 21: debug "Don't tell anybody." 'He говорите никому. ' Отклик на "IT IS___" case 22: debug "That and four dollars will buy a cup of double-latte." ' На это и четыре доллара можно купить чашку двойного кофе-латте, case 23: debug "Check your facts." ' Проверьте свои сведения, case 24: debug "You believe that?" ’ Вы в это верите? ' Отклики на "WHY [__]" case 25: debug "Live with it." ' Смиритесь с этим, case 26: debug "That's life." ' Такова жизнь, case 27: debug "Nobody knows why." ' Никто не знает, почему.
^alattaus^k Эксперимент 101. Компьютер Снорк, bliza 403 ' Отклики на что-либо другое case 28: debug "Are you gaining weight?" ' Вы худеете? case 29: debug "I'm impressed...NOT!" ' Я поражен... НЕТ! case 30: debug "Tell me more." ' Продолжайте, endselect endif debug cr endif loop ' Потенциальные варианты старта для ответов (ключевые слова для диалога) RT01 data "I HATE YOU", 0 RT02 data "I AM ", 0 RT03 data "I HAVE A ", 0 RT04 data "I WANT", 0 RT05 data "I HATE ", 0 RT06 data "MY ", 0 RT07 data "BECAUSE ", 0 RT08 data "I LIKE", 0 RT09 data "IT IS ", 0 RT10 data "WHY ", 0 RTEnddata О В этом тексте я выделил три области. Первая из них - это текст ввода дан- ных, в котором я ожидаю, когда пользователь введет данные, а затем про- веряю, есть ли символы возврата каретки, возврата на один символ (Backspace), пробела или же буквенный символ. Этот текст повторяется цик- лически до того, как будет получен символ возврата каретки (клавиша Enter на вашем ПК). По мере того как программа ожидает нажатия клавиши ввода, она анализирует другие поступающие символы ASCII, добавляя символы и пробелы в массив Input String и убирая их, когда нажимают клавишу возвра- та на один символ. Добавляемые в Inputstring символы преобразуются в символы верхнего регистра (прописные буквы). Это сделано для упрощения сравнения, которое производится во втором выделенном серым фоном фра- гменте программы. При запуске программы bLiza текст, подлежащий вводу (в верхней строке ввода), отображается заглавными буквами в основном окне отладочного терминала. Во втором блоке я сравниваю входную строку с каждым из 10 наборов клю- чей, сохраняемых в СППЗУ операторами data. Этот текст описывает сравнение операторов с ключами и останов, если имеется совпадение. Я всегда заканчиваю текстовую строку символом Null (0), чтобы показать, где она заканчивается. Программа сравнения строк сравнивает каждый символ в Inputstring с текущим значением данных, и, если две строки совпадают, то она возвращает номер опе- ратора data. Символ Null в конце строки символов служит в PBASIC индикатором окон- чания строки. Традиционное название строк такого типа - ASCIIZ. Это значит, что данная строка символов ASCII завершается нулем; этот термин использует- ся во многих языках программирования.
404 ERROR. Роде not found Затем я перемещаю все, что лежит после совпадающих частей текста строк (это третья часть программы). Я сделал это, потому что некоторые отклики используют подлежащее этого предложения, и с помощью перемещения суще- ствительного и глагола легко получить доступ к подлежащему. Выделенные области кода обычно встроены в библиотеки программирова- ния. Используйте эти вспомогательные программы в качестве основы для ва- шего собственного текста. Например, в первом выделенном блоке кода вы могли бы захотеть добавить возможность ввода цифр (от 0 до 9) или других символов. Изменить регистр букв довольно просто. Сначала я проверяю, не находится ли данный символ в диапазоне от а до z, и, если это так, я вычитаю значение ASCII для а и прибавляю значение для А. Имейте в виду эту хитрость на тот случай, если вам когда-нибудь придется изменять регистр символов на вариант, когда все они прописные или когда все строчные. Эксперимент 102. Несколько семисегментных дисплеев Детали Смонтированная печатная плата с макетной платой и BS2. Две сборки по два семисегментных дисплея с общим катодом. Четыре транзистора п*р-п типа ZTX649 Инструменты Набор инструментов для радиомонтажа Глава 14, посвященная взаимодействию различных устройств аппаратного обеспечения с BS2, может показаться более подходящей для этого эксперимен- та, но я хотел познакомить вас с тем, как производится отладка программы для робота. Отлаженные робототехнические программы состоят из приложений, объединяющих управление двигателями, взаимодействие с датчиками, работу выхода и программирование задания. Создать приложение для каждого из этих интерфейсов просто, но объединить их довольно сложно. Реализация несколь- ких семисегментных дисплеев требует навыков, похожих на навыки разработ- ки робототехнического приложения. Код для создания данных должен быть интегрирован с форматированием данных и с их выводом на дисплеи. Это соответствует задачам для робота по опросу аппаратных датчиков, интерпре- тации данных, формированию отклика, передаваемого на вход, и наконец, управлению двигателями. Эти операции можно изобразить в виде алгоритма программы (рис. 15.2). Следует принять во внимание обеспечение совместного выполнения этих функций. В случае управления двигателями постоянного тока часть управления от выходного устройства должным образом синхронизирует ШИМ для двига- телей. Это можно осуществить за счет указания аппаратного обеспечения или,
Эксперимент 102. Несколько семисегментных дисплеев 405 Рис. 15.2. Алгоритм программы робота с некоторым упреждением, за счет контроллера робота. Последнее предпочти- тельнее, так как это минимизирует стоимость и сложность робота в целом. Я использую четыре семисегментных дисплея, чтобы продемонстрировать архи- текруру робототехнической программы, поскольку при возникновении каких- то проблем они будут очевидны в буквальном смысле. Самый традиционный способ реализации приложения, отображающего данные на нескольких семи- сегментных дисплеях, - циклический просмотр каждого из дисплеев с очень большой скоростью, причем данные каждого дисплея мелькают быстрее, чем может воспринять человеческий глаз (рис. 15.3). Первая отображенная цифра Вторая отображенная цифра Третья отображенная цифра Четвертая отображенная цифра Рис. 15.3. Работа нескольких дисплеев Согласно приближенному практическому расчету, каждый дисплей должен быть активен не менее 50 раз в секунду. Чем медленнее каждый дисплей зажи- гается и гаснет, тем вероятнее, что человеческий глаз уловит это мигание. Смотреть на мигающий многоразрядный дисплей неприятно, а у некоторых людей может заболеть голова (особенно, если дисплеи очень ярко светятся). Время, в течение которого включен каждый из дисплеев, должно быть по воз- можности одинаково. Дисплей, светящийся дольше других, кажется ярче, тогда
406 ГЛАВА 15. Дотчики как дисплей, активный более короткий срок, кажется более тусклым. Частота и длительность активного состояния дисплея аналогичны рабочему циклу и периоду широтно-импульсной модуляции двигателя, которую не так легко на- блюдать, как работу светодиодного дисплея. Чтобы удовлетворить основному требованию - активность дисплея 50 раз в секунду - нужно организовать цикл для всего кода отображения 50 раз в секунду, умноженных на число дисплеев. Таким образом, при отображении четырех цифр вы будете иметь цикл 200 раз в секунду, а время выполнения всего приложения 5 мс, в течение которых нуж- но опросить датчики, ответить на данные, поступившие с них, и вывести их на выход. Если вы распланируете эти временные соотношения при создании при- ложения, то убедитесь, что это не так сложно, как могло показаться вначале. В ходе данного эксперимента вам предстоит записывать цифры на четыре семисегментных дисплея. Я использовал две сборки по два дисплея с общим катодом в каждой, которые имеются в продаже в 18-контактном (с десятичной запятой) или 16-контактном корпусах. Я подсоединил дисплеи к BS2 на печат- ной плате (рис. 15.4), а для проверки приложения создал программу Counter Displey. е с светодиодных сегментов (каждый сегмент дисплея соединен с другими Крайний слева дисплей Крайний справа дисплей Соединения сегментами) Сегмент “G" Сегмент *F" Сегмент“Е" Сегмент“D* Сегмент “С‘ Сегмент“В" -1 Сегмент “А” Соединения общих катодов Рис. 15.4. Схема для нескольких светодиодных дисплеев ' Counter Display - Отображать секунды на четырех 7-сегментных светодиодных дисплеях '{$STAMP BS2} {$PBASIC 2.5}
NataHausi^l Эксперимент 102. Несколько семисегментных дисплеев 407 'Объявление переменных и контактов порта ввода/ вывода Counter var word 'Счетчик секунд CurLED var byte 'Текущий отображаемый светодиод Display var byte(4) 'Переменная дисплея Dlay var word 'Счетчик задержки DispOut var OUTS.HIGHBYTE'Выходные биты для светодиодных дисплеев DispDir var DIRS.HIGHBYTE LTDCtrl var OUTS.NIBO 'Четыре бита управления транзисторами LEDDir var DIRS.NIBO CurLED = 0 'Инициализация LEDDir = LEDCtrl = 0 'Выводы транзистора являются выходами и выключены DispDir = DispOut = 0 'Выводы дисплея - выходы for Dlay = 0 to 3: Display(Dlay) = 0: next do 'Цикл для отображения числа на светодиодах Dlay = Dlay + 1 'Отображает увеличение на 1 (4,25 мс) if (Dlay >= 235) then 'Одна секунда прошла? Dlay = 0: Counter = Counter + 1 'Сбросить Dlay и увеличить время на 1 Display(3) = (Counter / 1000) // 10 Display(2) = (Counter / 100) // 10 Display(l) = (Counter / 10) //10: Display(O) = Counter // 10 endif 'Закончено обновление секунд CurLED = (CurLED + 1) // 4: LEDCtrl = 0 'Обратиться к следующему дисплею lookup Display(CurLED), [$7F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F, $00], DispOut 'Запустить вывод символов lookup CurLED, [%0001, %0010, %0100, %1000], LEDCtrl loop 'Повторять бесконечно Каждая итерация цикла do будет выполняться от 2,75 до 4,25 мс, что удов- летворяет требованию к длительности 5 мс для четырех семисегментных дис- плеев, а итоговая Dlay, равная 235, была найдена при помощи наихудшей про- должительности цикла do (4,25 мс). Я установил, что при итоговой Dlay, равной 235, показание счетчика увеличивается на 1 значительно чаще, чем один раз в секунду, но вопреки этому иногда будет казаться, что символ мигает. Вам, воз- можно, захочется повторить текст после if в виде условия else и без увеличе- ния Count на 1. За счет повторения текста в условии else вы получите более постоянные временные соотношения, что важно для таких приложений, как ШИМ для двигателя. Наконец, если вы хотите отобразить начальные пробе- лы, вам придется изменить код обновления переменной Display на следующий: if (Count > 100) then Display(2) = (Count / 100) // 10 else Display(2) = 0
40» ГЛАВА 15. Дотчики Эксперимент 103. Датчик света RCtime Детали Смонтированная печатная плата с BS2. Два элемента цветовой системы отобра- жения номиналом 10 кОм. Два конденсатора 0,01 мкФ любого типа. Две сборки по два семисегментных дис- плея. Четыре транзистора п-р-п типа ZTX649 Инструменты ПК. Кабель RS-232 Я считаю, что для роботов главным типом датчика является визуальный, позво- ляющий обнаружить, в каком направлении перед роботом находится самый яр- кий источник света. Когда я знакомил вас с роботом, ориентирующимся на свет на основе таймера 555*, я использовал фоторезистор, соединенный с конденсато- ром, чтобы сформировать сигнал определенной длительности, который приме- нялся для управления роботом. Комбинацию фоторезистора и конденсатора можно использовать для приблизительного измерения интенсивности света с помощью встроенной функции RCtime (рис. 15.5);выходной сигнал цепи при этом определяется формулой: Value = 600 х R (кОм) х С (Ф) Вывод Retime, 0, переменная Вывод Retime, 1, переменная Vdd Рис. 15.5. Схема Retime При использовании цепи в состоянии 1 код для считывания величины фо- торезистора (или потенциометра) следующий: high Pin ' Разряд конденсатора pause 1 'Ожидать, пока заряд, накопленный на конденсаторе, разрядится retime Pin, 1, PinValue 'Ожидать разряда конденсатора Время, необходимое для измерения сопротивления, можно минимизировать, использовав небольшой резистор или конденсатор. Для данного эксперимента См. эксперимент 42. - Прим, перев.
1\ialallaus^ Эксперимент 103. Дотчии света RCtime 409 я указал фоторезистор номиналом 10 кОм (это его максимальное значение) и конденсатор 0,01 мкФ, что приведет к максимальному значению 60, причем на выполнение операции потребуется 1,5 мс. Эта задержка обращения к фоторези- стору будет проблемой для исходной схемы на четырех 7-сегментных светодиод- ных дисплеях, поскольку один дисплей будет активен в течение необычно долго- го времени, что приведет к миганию. Чтобы выровнять время считывания величины фоторезистора и миними- зировать влияние преобразования величины и передачи ее на дисплеи, я раз- делил три оператора, нужные для считывания фоторезистора (плюс еще два для отображения результата). Эти операторы затем выполняются по одному за раз последовательно с помощью цикла в программном автомате состояний. Программный автомат состояний выполняет одну функцию за цикл (имитируя выход автомата состояний) и обновляет состояние для итерации следующего цикла в зависимости от состояния различных входов и текущего состояния. Мне нравится использовать программный автомат состояний в приложениях, подобных данному, где я могу развернуть задачу на несколько циклических ите- раций. Чтобы обратиться к двум фоторезисторам и представить результаты на 7-сег- ментных дисплеях, добавьте два фоторезистора и два конденсатора 0,01 мкФ к схеме на четырех 7-сегментных светодиодных дисплеях из эксперимента 102 (рис. 15.6). Затем введите текст приложения RCtime Display и поместите его в отдельную папку либо в папку, созданную ранее для приложения Seven-Segment Display в папке Evil Genius. Соединения светодиодных сегментов (каждый сегмент дисплея соединен с другими сегментами) Сегмент Сегмент“F* Сегмент“Е* Сегмент “Р1 Сегмент “С Сегмент “В* Сегмент“А" Левый фото- резистор Vdd Правый фото- резистор Vdd Левый дисплей Крайний справа дисплей Соединения общих катодов 3. Рис. 15.6. Схеме датчике сеете но фоторезисторах
410 ГЛЙВЙ 15> Датчики ' Retime Display - Отображение величин сопротивления фоторезисторов '{$STAMP BS2} ’{$PBASIC 2.5} 'Объявление переменных и контактов порта ввода/ вывода RightLDR . pin 4 LeftLDR pin 5 RLDRVal var word 'Сохраненные величины фоторезисторов LLDRVal var word CurLED var byte 'Текущий отображаемый светодиод Dsplay var byte(4) 'Переменная дисплеев Dlay var byte 'Счетчик задержки DispOut var OUTS.HIGHBYTE ' Выходные биты для светодиодных дисплеев DispDir var DIRS.HIGHBYTE LEDCtrl var OUTS.NIBO 'Четыре бита управления транзисторами LEDDir var DIRS.NIBO State var byte 'Считывание переменной состояния CurLED = 0: 'Инициализация State = 0 'Начать с начала LEDDir = %1111: LEDCtrl = 0 'Выводы транзисторов - выходы и выключены DispDir = DispOut = 0 'Выводы дисплеев - выходы for Dlay = 0 to 3: Dsplay(Dlay) = 10: next 'Все пробелы do 'Цикл для отображения числа на светодиодах select(State) 'Состояние: Главный Второстепенный case 0: '0 high RightLDR Читать правый светодиод Начать чтение State = 1 case 1: State =2 '1 Читать • правый светодиод Заряд конденсатора case 2: '2 retime RightLDR, 1, Читать правый светодиод RLDRVal Читать заряд конденсатора State = 3 case 3: '3 Читать правый светодиод Форматировать старший символ if (RLDRVal <= .9) then Dsplay(1) =10 else Dsplay(1)=RLDRVal/10 State = 4 case 4: '4 Dsplay(0) = RLDRVal Читать правый светодиод // 10 Форматировать младший символ State = 10 case 10: '10 Читать левый Начать чтение светодиод high LeftLDR State = 11
RaiaHausiiilk Эксперимент 104. Розничные датчики света 411 case 11: State = 12 *11 Читать Заряд case 12: левый светодиод ’ 12 Читать конденсатора Читать retime левый светодиод LeftLDR, 1, LLDRVal заряд. конденсатора State case 13: = 13 '13 Читать Форматировать if (LLDRVal левый светодиод .<= 9) then Dsplay(3)=10 старший символ else Dsplay(3)=LLDRVal/10 State case 14: = 14 ’14 Читать Форматировать левый младший светодиод символ Dsplay(2) = LLDRVal //10 State = 0 ’Начать заново ... endselect CurLED = (CurLED + 1) // 4: LEDCtrl = 0 ‘Обращение к следующему дисплею lookup Dsplay(CurLED), [$3F, $06, $5B, $4F, $66, $6D, $7D, $07,$7F, $6F, $00], DispOut ’Установить выход символа lookup CurLED, [%001, %0010, %0100, %1000], LEDCtrl loop 'Повторять бесконечно Эксперимент 104. Различные датчики света Детали Оман гироианная печатная плата с макетной платой и BS2. Микросхема LM339, четыре компаратора. Два элемента цветовой систе- мы отображение номина- лом 10 кОм. Три резисто- ра 10 кОм. Конденсатор 0,01 мкФ любого типа Набор инструментов для радиомонтажа. Цибровей мультиметр Оператор RCtime позволяет просто и качественно измерять свет, падающий на элемент системы цветового отображения. К сожалению, когда вы будете исполь- зовать другие микроконтроллеры, функция или оператор Retime не будет встро- ена в микросхему или средства разработки программы (компилятор и ассемблер, которыми вы пользуетесь). Программируя робот на ассемблере, вы, вероятно, могли бы разработать текст, обеспечивающий такую же функцию, как RCtime, но если программирование на ассемблере для этой микросхемы для вас внове, воз- можно вам это будет не по силам. Понять, какой из датчиков света подвергается действию самого яркого света, можно, соединив их вместе в виде делителя
412 ГЛАВА 15. Датчики напряжения. Измерив напряжение в точке соединения двух элементов систем цветового отображения, можно судить, какой из них получает более яркий свет. Когда одинаковое количество света падает на два элемента систем цветового отображения, включенных в виде делителя напряжения, то выходное напряже- ние будет составлять половину напряжения, приложенного к делителю (для дан- ного примера я обозначил его Vdd) (рис. 15.7). Одинаковая освещенность с обеих сторон Слева больше света Справа больше света Правый элемент Vdd Правый элемент системы цветного отображения ---------1/2 Vdd Левый элемент системы цветного отображения Vdd Правый элемент системы цветного отображения ---------Vdd Левый элемент системы цветного отображения имеет пониженное сопротивление Vdd системы цветного отображения имеет пониженное сопротивление ---------Vdd Левый элемент системы цветного отображения Свет, падающий на два элемента системы цветного отображения, одинаков с обеих сторон. Выходное напряжение равно 1/2 Vdd Большее количество света, падающее на левый элемент системы цветного отображения, снижает его сопротивление до величины, меньшей, чем у правого элемента Большее количество света, падающее на правый элемент системы цветного чт< Лражэния, снижает его сопротивление до величины, меньшей, чем у левого элемента Рис. 15.7. Робота дифференциального датчике света Когда на один из элементов системы цветного отображения падает больше света, напряжение на другом элементе системы цветного отображения станет больше, воздействуя на выходное напряжение. Чтобы проверить работу дели- теля напряжения из двух элементов системы цветного отображения, можно собрать схему и понаблюдать за выходным напряжением, прикрывая рукой сначала один элемент системы цветного отображения, а затем другой. Я реко- мендую вам следовать соглашениям относительно того, какой элемент «пра- вый», а какой «левый», а также того, как они смонтированы, чтобы наши ре- зультаты совпадали (см. рис. 15.7). При использовании BS2 у вас не будет возможности измерять напряжение, поступающее с делителя напряжения, на элементах системы цветного отобра- жения, но вы легко можете сравнить его с известной величиной. Благодаря установке еще одного резистора фиксированной величины или делителя на- пряжения, обеспечивающего номинальное половинное напряжение, компара- тор очень легко определит, какой из элементов системы цветного отображе- ния подвергается воздействию более яркого света. Возможно, вместо двух резисторов одинаковой величины вы захотите ис- пользовать потенциометр. Целесообразность этого основана на том, что боль- шинство резисторов имеют допуск номинала 5%, а это может привести к тому, что напряжение будет несколько отличаться от идеального, равного половине входного напряжения. Это не главное соображение, поскольку вы убедитесь, что, когда входной свет на элементах системы цветного отображения хоть
^alattausiSk Эксперимент 104. Розничные датчики света 413 немного разный, выход делителя напряжения окажется далеко за пределами возможных отклонений, обусловленных допусками резисторов. Кроме того, если выходное напряжение делителя напряжения на элементах системы цветного отображения равно напряжению с делителя на резисторах фиксированного номинала, схема будет вести себя, как если бы входной свет с одной стороны был ярче, чем с другой. Если бы эта схема использовалась в робо- те, у вас могло бы получиться, что робот поворачивается в одном направлении в ббльшей степени, чем вам бы хотелось. Вы могли бы устранить эту проблему, добавив второй компаратор и доработав делитель напряжения на фиксирован- ных резисторах (рис. 15.8). При этом, если контроллер считывает 0 с обоих ком- параторов, свет, падающий на два элемента системы цветного отображения при- близительно одинаков, и робот должен просто продолжать двигаться вперед. Резистор 1/10R обеспечивает разницу между напряжениями для ситуаций, когда имеется очевидное расхождение между правым и левым элементами. Изменение уровня света на одном элементе будет вызывать изменение выходного сигнала одного из компараторов на логическую единицу, и в случае робота, ориентирую- щегося на свет, будет вызывать команду повернуть в направлении света. Правый элемент системы цветного отображения Левый элемент системы цветного отображения Когда свет на обоих элементах системы цветного отображения одинаков, выходы обоих компараторов равны «0» Выход равен «1», когда свет справа ярче, чем свет слева Выход равен «1», когда свет слева ярче, чем свет справа Рис. 15.8. Фиксированный дифференциальный датчик света Однако на практике необходимости в дополнительном компараторе и дора- ботанном делителе напряжения на фиксированных резисторах нет. Если со- гласно программе робот должен двигаться вперед, одновременно выполняя поворот (что в случае двухколесного дифференциально управляемого робота наилучшим образом реализуется при помощи перемещения одного колеса впе- ред «импульсами», тогда как второе колесо остается неподвижным), проблем с поворотом робота от света у вас не возникнет.
414 ГЛАВА 15. Дотчики Единственная проблема со сравнением уровней света с помощью делителя напряжения на двух элементах системы цветного отображения, как я показал здесь, состоит в том, что эта схема не может распознать тот случай, когда она находится в неосвещенном помещении, а эту возможность вы получаете «бес- платно» в схемах измерения света RCtime. Подсоедините к BS2 светочувствительную дифференциальную схему на двух элементах системы цветного отображения (рис. 15.9). Я использую стабилизи- рованное питание 5 В, которое обеспечивает BS2 для делителей напряжения и компаратора (микросхема LM339). Я использую только один из четырех ком- параторов в LM339, а мне еще нужно обеспечить его питание (включая развя- зывающий конденсатор). Микросхема LM339 имеет выходы с открытым кол- лектором, и поэтому я добавил нагрузочный резистор 10 кОм на ее выходе. Приложение будет показывать, когда уровень входного света сдвигается с од- ного элемента системы цветного отображения к другому. Рис. 15.9. Дифференциальная светочувствительная схема * Differential Light Sensors - Показать, какой из элементов системы цветного отображения получает больше света '{$STAMP BS2} •{PBASIC 2.50} ’ Переменные CDSCells pin 15 'Входные элементы системы цветного отображения LeftMsgFlag var bit 'Индикаторные биты выходного сообщения RightMsgFlag var bit ' Инициализация/ главная
flafattaustl Эксперимент 105. Упроеление с помощью звука 415 input CDSCells LeftMsgFlag = 0: RightMsgFlag = 0 do 'Повторять бесконечно if (CDSCells = 0) then if (LeftMsgFlag = 0) then debug "Brighter Light to the Left", cr 'Самый яркий слева endif LeftMsgFlag = 1: RightMsgFlag = 0 else if (RightMsgFlag = 0) then debug "Brighter Light to the Right", cr ‘Самый яркий справа endif LeftMsgFlag = 0: RightMsgFlag = 1 endif loop 'Бесконечный цикл, конец приложения Эксперимент 105. Управление с помощью звука Детали Смонтированная печат- ная плата с макетной платой и BS2. Микросхе- ма LM324, четыре опера- ционных усилителя. Мик- росхема 74LS74, два D-триггера. Электретный микрофон. Четыре рези- стора 2,2 МОм. Резистор 10 кОм. Два резистора 470 Ом. Два резистора 220 Ом. Шесть конденсато- ров 0,01 мкФ любого типа Инструменты Набор инструментов для радиомонтажа Увидев название этого эксперимента, вы, возможно, подумали, что он будет посвящен управлению роботом с помощью звука (а в идеале вашим голосом). Может быть, вы думаете, что я открою вам секрет распознавания голосов, что позволит вашем}' роботу реагировать на команды, как это делает собака. Увы, нет. Я покажу, как создать устройство, откликающееся на громкий звук на вхо- де, что по крайней мере позволит вам криком остановить робот, прежде чем он наедет на тетю Марту. Следующая схема (рис. 15.10) отфильтровывает высокие частоты (те, что с наибольшей вероятностью могут возникнуть в самом роботе), оставляя низко- частотные звуки, которые с наибольшей вероятностью были вызваны внешни- ми источниками. Два операционных усилителя (ОУ) играют роль фильтров и усилителей сигнала с очень высоким коэффициентом усиления. Чтобы проверить схему, я просто довольно громко сказал: «Ох!» Высокоча- стотные гармоники были отфильтрованы из сигнала, и во входном сигнале осталось всего несколько -<широких» импульсов, которые подаются на вход
416 ГЛАВА 15. Дотчики синхронизации D-триггера (рис. 15.11). Импульсы синхронизации изменяют состояние триггера, и BS2 может опрашивать его в любой момент времени. Vdd Vdd Рис. 15.11. Роботе звуковой схемы Поскольку BS2 не может постоянно опрашивать выход ОУ, я подал сигнал с его выхода на вход синхронизации D-триггера, что будет изменять состояние выхода триггера из «О» (который загружается в микросхему 74LS74 с помощью BS2) в «1». Благодаря этому BS2 придется обращаться к выходу D-триггера лишь периодически, чтобы посмотреть поступали ли на схему громкие звуки, на ко- торые BS2 должен реагировать. После того, как звук будет отмечен с помощью
^labSUaus^k Эксперимент 105. Чпровление с помощью звука 417 изменения состояния триггера, BS2 может сбросить триггер и ждать, когда будет принят следующий звук. Монтаж схемы довольно сложен, поскольку в ней все резисторы и конден- саторы дискретные, но она обязательно поместится на макетной плате с неко- торым запасом места. Собрав схему, наберите код следующего приложения: 'Too Loud - Индицировать, когда звук принят с помощью BS2 ’{$STAMP BS2} *{$PBASIC 2.50} 'Переменные ResetPin pin 1 Soundinput pin 0 'Инициализация/ главная программа high ResetPin input SoundInput do pulsout ResetPin, 10 'Сброс триггера pause 1000 if (Soundinput = 1) then 'Опрос контакта звукового входа debug "Keep it Quiet - that was TOO LOUD!", cr 'Спокойнее, было СЛИШКОМ ГРОМКО! endif loop Это приложение вам, должно быть, удастся собрать без всяких ухищрений, и оно не должно подарить вам никаких сюрпризов, за исключением случая, когда у вас будет микрофон, в корне отличный от того, которым пользовался я. Может получиться так, что вам придется поэкспериментировать с резистором нагрузки микрофона 10 кОм, пока сигнал на входе схемы не будет в диапазоне от 50 до 100 мВ (см. рис. 15.11). В зависимости от микрофона схема может получиться чувствительней, чем надо. Первый ОУ представляет собой двухполюсный фильтр нижних частот по схеме Баттерворта (Butterworth) с усилением, приблизительно равным 1 и гра- ничной частотой порядка 340 Гц. Эта схема очень эффективно отфильтровы- вает все высокочастотные компоненты звука, в результате чего сигнал приоб- ретает форму меандра с периодом приблизительно 3 мс. Я считаю, что эта схема работает довольно хорошо и нет смысла ее усовершенствовать. Второй ОУ - неинвертирующий усилитель, коэффициент усиления которого опреде- ляется по формуле: Усиление = 1 - R2/ R1 Здесь R2 - резистор 2,2 МОм, a R1 - резистор 220 Ом. Используя эти номина- лы, вы получите усиление порядка 10 000 раз. Изменяя величину R2 (2,2 МОм), можно изменить коэффициент усиления усилителя, сделав схему в целом менее чувствительной к окружающим шумам.
418 ГЛАВА 15. Дотчики Микрофон обнаруживает громкие звуки. Кроме того, он может использо- ваться для распознавания, когда робот сталкивается с другими объектами за счет его размещения на бамперах или шасси робота. Думаю, это надежный метод обнаружения соударений, хотя другие считают в точности наоборот из- за шумов двигателя, привода и колес, проходящих через робот. Я считаю, что фильтрация высоких частот, которую я применяю, минимизирует наводки от окружающих шумов. Об использовании этой схемы для обнаружения соударе- ния объектов стоит подумать, если у вас есть робот, который может удариться при повороте или движении обратным ходом. Вместо того чтобы размещать датчики объектов по периметру робота, можно прикрепить микрофон к шас- си, упростив конструкцию робота. Эксперимент 106. Датчики робота в форме усиков Детали Смонтированная печатная плата с макетной платой и BS2. Два микропере- ключателя с длинными рычагами исполнительно- го механизма. Два рези- стора 10 кОм Инструменты Набор инструментов для ра- диомонтажа. Жесткий про- вод сечением 0,2 мм2 (крас- ный). Паяльник. Припой Я редко добавляю «усики» или другие датчики физических объектов к кон- струкции робота. «Усики» мне не нравятся по двум причинам. Во-первых, их трудно реализовать на практике. Во-вторых, мне хотелось бы распознавать объекты на расстоянии в несколько дюймов (10 см) и далее от робота, что1 бы дать ему возможность остановиться или повернуть до столкновения с объектом. Я всегда думал, что кошачьи усы становятся совершенно бесполезными, ког- да котенок подрастает настолько, что у него открываются глазки. На самом деле усы - важный источник сенсорной входной информации на протяжении всей жизни кошки. Усы помогают ей обнаружить препятствия, находясь в полной темноте (кошки способны видеть лучше, чем люди, в условиях очень слабой ос- вещенности, но в темноте они становятся такими же «слепыми», как и мы), буду- чи втрое толще обычных волосков и имея корень, более глубоко проникающий в кожу, кошачьи усы очень чувствительны к подтональным звукам и вибрациям. В робототехнике «усики» (рис. 15.12) имеют три основных области приме- нения. Когда обнаруживается объект впереди робота, то формируется команда роботу остановиться, либо это инициирует поворот или движение робота в об- ратном направлении от объекта. «Усик» можно использовать и для распознава- ния наличия стены около робота, что позволяет ему отслеживать одной «ру- кой» ход лабиринта и в результате найти выход из-него Реализуя датчик стен,
ftatallausiik Эксперимент 1Q6. Дотчики робота в форме усиков 419 обеспечьте соединение усика с землей, и потенциал земли будет передан на рабочую поверхность. Вам не нужно, чтобы во время работы робота на нем возникал статический электрический заряд. Наконец, усики, движущиеся по полу, могут служить для распознавания неровностей или изменений поверхно- сти (от гладкого пола к утолщению из-за ковра). Отслежива- Датчик ющий стены поверхности Основной Традиционные «усики» для распознавания столкновений с объектами «Усик», исполь- зуемый для распознавания стен вблизи робота «Усики», исполь- зуемые для распознавания изменений поверхности, по которой движется робот Рис. 15.12. Типы «усиков» «Усики» можно реализовать многими способами; некоторые выглядят, как большие петли, другие - как тараканьи усы, третьи, действуя подобно направ- ляющим, помогают уравновесить робот. Усики изменяют электрический сиг- нал, прикасаясь к объекту (рис. 15.13). Схема с подключенным к питанию рези- стором нагрузки, который усик заземляет, когда он создает контакт, является реализацией наиболее общего метода взаимодействия усика с роботом (изо- бражение слева на рис. 15.13). Этому сигналу нужна противодребезговая защи- та, как если бы это была кнопка кратковременного включения. Величину силы, приложенной к усику, можно измерить с помощью нескольких контактов, при- чем каждый из них должен замыкаться при различных значениях силы, или же с помощью соединения усика с подвижным контактом потенциометра. Простое включение/ выключение Заземленный «усик» подключает вывод микро- контроллера к земле при соприкосновении с нагруженным выводом во время столкновения Многоступенчатая Заземленный «усик» подключает один или несколько выводов микроконтроллера к земле в зависимости от силы, приложенной к «усику» во время столкновения На основе потенциометра «Усик» соединен механически с подвижным контактом потенциометра, который включен как делитель напряжения, и соединен электрически с аналого- цифровым преобразователем (АЦП) на микроконтроллере Рис. 15.13. Реолизоция усиков
420 ГЛАВА 15. Дотчики Многие делают усики из проволоки малого диаметра, например, из гитар- ной или рояльной струны. Такие усики достаточно чувствительны, но очень легко деформируются. Простота, с какой усики можно деформировать, может оказаться главной проблемой, и вам потребуется проверять их перед запуском робота. Вместо проволоки я часто использую микропереключатель с длинным рычагом исполнительного механизма (рис. 15.14), деформировать который труднее. Рис. 15.14. Микропереключатель со встроенным рычагом исполнительного механизма идеален для использования в качестве усика для робота Чтобы продемонстрировать работу усиков в роботе на основе BS2, смонтиру- ем два микропереключателя (рис. 15.15). Собрав схему, наберите следующий текст. Здесь используется оператор Button языка PBASIC, который защищает от 1 nu> Микропереключатель ’^^кратковременного t *] включения, | I используемый ► как левый«Усик» < Микропереключатель '^^кратковременного 5 включения, используемый > как правый «Усик» Рис. 15.15. Схема усика
Эксперимент 106. Датчики робота в форме усиков 421 дребезга два сигнала от усиков. Это важно, поскольку у вас может получиться, что при движении робота самодельный усик будет периодически дребезжать, возвращая сигнал о мнимом соударении. Текст программы несколько неуклюж из-за необходимости противодребезговой защиты, когда усик контактирует с объектом, а также противодребезговых мер, когда усик остановлен, оставаясь в контакте с объектом. ’ Whisker Sensors - Показ работы двух усиков впереди от робота '{$STAMP BS2} '{PBASIC 2.50} ' Переменные Leftwhisker pin 15 'Определение усиков Rightwhisker pin 14 LeftFlag var bit 'Флаги соприкосновения RightFlag var bit LeftCount var byte 'Переменные противодребезгового счета Rightcount var byte * Инициализация LeftFlag = 0: RightFlag = 0 ’Очистка флагов/Ударов нет do 'Повторять бесконечно if (Leftwhisker = 0) and (LeftFlag = 0) then 'Ждать левого button Leftwhisker, 0, 180, LeftCount, 1, LeftButtonDown goto LeftButtonDownSrip LeftButtonDown: LeftFlag = 1: debug "Ouch, collision on Left Side", cr 'Ой, столкновение слева LeftButtonDownSkip: else ' Сброс, когда усик будет свободен if (Leftwhisker = 1) then LeftFlag = 0 LeftCount = 0 'Сброс счетчика левого усика endif if (Rightwhisker = 0) and (RightFlag = 0) then 'Ждать правого button Rightwhisker, 0, 180, Rightcount, 1, RightButtonDown goto RightButtonDownSrip RightButtonDown: RightFlag = 1: debug "Ouch, collision on Right Side", cr 'Ой, столкновение справа RightButtonDownSkip: else 'Сброс, когда усик свободен if (Rightwhisker = 1) then RightFlag = 0 Rightcount = 0’Сброс счетчика правого усика endif loop 'Бесконечный цикл, конец приложения
422 ГЛЯВЯ15. Датчики Эксперимент 107. Инфракрасные датчики объектов Детали Смонтированная печат- ная плата с макетной платой и BS2. Модуль Sharp GD2D120 (элемент Digi-Key № 425-1162- ND). Микросхема LM339. Потенциометр для уста- новки на макетную плату номиналом 10 кОм. Резистор 10 кОм Инструменты Набор инструментов для радиомонтажа. Жесткий провод сечением 0,2 мм2 (красный, белый и чер- ный). Паяльник. Припой. Эпоксидная смола со вре- менем дтвержден» 5 минут Помимо использования усиков, существуют бесконтактные методы обнаруже- ния объектов вокруг робота. Они требуют несколько большего опыта в эле- ктронике, чем простые проволочные усики, однако в целом превосходят про- волочные усики, потому что не придется восстанавливать их начальную форму и обычно их легко калибровать для новых окружающих условий. Наиболее ши- роко применяемый метод основан на импульсах инфракрасного (ИК) излуче- ния, хотя часто применяется и ультразвук (частоты выше предела человече- ского слуха). Эти средства работают подобно гидролокаторам в подводных лодках: излучается энергия, а приемник ждет возврата импульсов. В зависимо- сти от времени, которое требуется для возврата или даже от наличия эха, оп- ределяется, что объект находится вблизи робота. Сейчас мы будем работать с широкодоступным ИК-модулями обнаружения объектов (или детекторами бли- зости). Эти модули работают по модели гидролокатора (SONAR): ИК-светоди- од излучает серию импульсов, которые могут быть отражены объектом в сто- рону приемника (рис. 15.16). Скорость света обычно служит препятствием для возможности измерить «время полета» (и расстояние до объекта), и поэтому такой тип обнаружителей объектов называют детекторами близости: они спо- собны обнаружить объект только на определенном расстоянии от робота. Инфракрасный светодиод, посылающий импульсы счастотой 38 кГц Непрозрачный барьер между светодиодом и детектором Преграда Волны отраженного света Инфракрасный \ детектор на 38 кГц Рис. 15.16. Инфракрасные обнаружители
ftalatlausill Эксперимент 107. Инфракрасные датчики объектов 423 Эти ИК-модули детекторов близости обычно имеют широко используемый узел, о котором вы никогда не думали: телевизионный приемник дистанцион- ного управления. Этот небольшой модуль обеспечивает прием простых команд (менее 16 бит) на телевизор, DVD-плеер и т. п. Биты данных (или пакет) пере- даются с помощью схемы манчестерского кодирования, в которой, когда сиг- нал принят, приемник соединяет выход с «землей». Старт пакета индицирует- ся длинным индикаторным импульсом, а нули и единицы данных формируются за счет изменения длины посылки низкого уровня. Этот сигнал модулирует синусоидальное напряжение частотой 38 кГц. Когда на выходе должен быть низкий уровень, ИК-светодиод посылает сигнал частотой 38 кГц, который вы- ключается, когда уровень на выходе станет высоким. Я использовал ИК-средства телевизионного дистанционного управления для непосредственного управления роботом и для реализации простого детектора близости (рис. 15.17). Хотя он выглядит очень простым и довольно дешев, ИК- приемник телевизионного дистанционного управления - весьма сложная схема, состоящая из усилителей с очень высоким коэффициентом усиления и фильтров для распознавания и передачи на выход ИК-сигналов от окружающих объектов, «размытых» световыми сигналами от множества источников. Эта сложность оз- начает, что если бы у вас передавался постоянный сигнал частотой 38 кГц, то ИК телевизионное дистанционное управление распознало бы его в течение при- мерно 50 мс, а затем игнорировало бы его, потому что он считался бы частью фоновых шумов. Вот почему после формирования сигнала, модулирующего си- гнал 38 кГц, я использую сигнал ШИМ, чтобы включать и выключать его. Генератор импульсов частотой 38 кГц Схема управления с тремя состояниями Широтно-импульсный модулятор с рабочим циклом 0,5%, рабо- тающий на 20 кГц Непрозрачный барьер Сигнал к микроконтроллеру Телевизионный инфракрасный приемник дистанционного управления Инфракрасный ^светодиод 100 :47 мкФ Рис. 15.17. Возможная схема ИК-детектора Для улучшения характеристик рабочий цикл сигнала, модулирующего 38 кГц, должен составлять 50%. Это означает, что вы не можете использовать чип 555 для генерации сигнала 38 кГц, так как он не может сформировать сигнал с истинным 50-процентным рабочим циклом. Вместе с тем управление
424 ГЛЙВЙ15. Дотчики ШИМ, хотя его и легко построить, потребует ряда микросхем, что увеличит сложность и стоимость устройства. Если у вас имеется микроконтроллер со встроенным генератором ШИМ, то, вероятно, вы могли бы легко сформиро- вать этот сигнал, но это потребует еще и нескольких дискретных микросхем, что делает такой способ непригодным для использования с печатной платой (см. Приложение 8). Компания Sharp предлагает серию ИК-детекторов близости (рис. 15.17), заключенных в простой корпус. От вас требуется только подать на него пита- ние и опрашивать выходной сигнал. У модуля Sharp GD2D120 есть небольшой белый соединитель, на который надо распаять провода (рис. 15.18). Эти про- вода должны иметь цветовое кодирование, чтобы гарантировать вас от пута- ницы с назначением проводов. Кроме цветового кодирования, стоит покрыть паяное соединение эпоксидной смолой со временем отверждения 5 минут, что- бы сделать механическое соединение прочнее и гарантировать его от корот- ких замыканий. Рис. 15.18. Монтаж модуля Sharp Припаяв провода к GD2D120, установите его на макетную плату (рис. 15.19). Выходной сигнал GD2D120 лежит в пределах от 0 до 2,25 В (уровень напряже- ния является грубой аппроксимацией растояния до объекта), и, чтобы распозна- вать объекты на указанном расстоянии, я использовал потенциометр, включен- ный как делитель напряжения для подачи опорного напряжения на компаратор. Потенциометр и компаратор будут заставлять схему распознавать объект в неко- тором диапазоне расстояний. Смонтировав схему, наберите следующую програм- му для ее проверки и сохраните ее как IR Test в папке IR Proximity Detector внутри папки Evil Genius. ’ IR Proximity Detector - Отображение выхода детектора близости Sharp GD2D120 '{$STAMP BS2} ’{PBASIC 2.50} ' Переменные
Эксперимент 107. Инфрокросные дотчики обьектое 425 Whisker pin 15 Flag var bit Рис. 15.19. Схема проверки модуля Sharp 'Инициализация Flag = 0 do if (Whisker = 0) and (Flag = 0) then Flag = 1: debug "Ouch, collision",'Ox, ударились cr else 'Когда усик освободится, сброс if (Whisker = 1) then Flag = 0 endif loop Вероятно, вы заметили, что я взял текст из эксперимента 106 и сократил его, чтобы продемонстрировать работу ИК-датчика близости. Модуль GD2D120 защищает продетектированный сигнал от дребезга, что является большим пре- имуществом. Во время работы программы поднимите GD2D120 за углы, переместите его в пределах комнаты и поместите перед ним руку. Вы увидите, что он обнаружи- вает объекты на расстоянии от 6 дюймов до одного фута (от 15 до 30 см), но не все объекты; черные предметы и некоторые ткани не отражают ИК-излучение. В случаях, когда вы собираетесь запускать робот с ИК-датчиками близости, вамг возможно, придется дополнительно оснастить его усиками и поиском в звуковм диапазоне, чтобы робот ни во что не врезался.
Глава 16 Мобильные роботы вп»1яв1ваияв1П1Н1тя1 Прежде чем вы начнете конструировать свой собственный мобильный робот, я хочу, чтобы вы взглянули на тот, с которым, я уверен, каждый читающий эту книгу хорошо знаком. Он способен преодолевать большие расстояния, рабо- тать с впечатляющим множеством различных технологий, осуществлять доступ к очень сложным компьютерным системам, записывать информационные со- общения и отвечать на них. И все же он сконструирован довольно плохо, и несколько его характеристик мне придется изменить. Если вы еще не догадались, робот, о котором я говорю, - это R2-D2 из кино- эпопеи «Звездные войны» («Star Wars»). Области, в которых я считаю R2-D2 (а может быть, и всю серию R2) несо- вершенным, включают трансмиссию робота, датчики, захваты робота, ввод/ вывод и основы программирования. Несмотря на эти ограничения конструк- ция робота хорошо работает во множестве конкретных ситуаций (в особенно- сти, при техническом обслуживании и работе различных космических лета- тельных аппаратов в боевых условиях). Прежде чем вы выбросите это вступление из головы, подчеркну, что в первом фильме «Звездных войн» (Эпизод IV, «Новая надежда» («А New Норе») с R2-D2 были проблемы, угрожавшие срывом графика съемок и превышением бюджета. Несмотря на несомненную сложность С-ЗРО и других очень впечатляющих эф- фектов, одной из самых серьезных задач, с которыми столкнулись авторы филь- ма, было заставить R2-D2 работать как следует. Конструкция трансмиссии R2-D2 выглядит какой-то сумасшедшей: кажется, большую часть времени он бегает на трех колесах, но иногда колеса будто втя- гиваются в опоры, и робот шагает или дрожит на месте. Две главных пробле- мы связаны с центром масс робота и перемещением по неровной поверхности (рис. 16.1). Центр масс - это точка робота (и вообще любого тела), относительно кото- рой робот будет висеть без наклона, если бы он был подвешен на гвозде, нахо- дящемся прямо в этой точке. Летчики и авиаконструкторы называют центр масс центром гравитации. Наилучшее положение для центра масс робота
Мобильные роботы 427 Ла lull a us fit. - Символ центра масс Катящийся робот R2D2 Рис. 16.1. Чтобы обеспечить устойчивость R2-D2, его центр масс должен быть кок можно ближе к земле и в середине между его колесоми/опороми находится вблизи его геометрического центра, причем когда вес робота распре- делен по большой площади (рис. 16.2). Когда центр масс находится высоко ввер- ху, робот может перевернуться в начале движения или при остановке. Если же центр масс находится на одном или другом конце робота, то он будет в опасно- сти постоянного переворачивания или «спускания колеса», начиная движение в каком-либо направлении. Конструкторы гоночных автомобилей стремятся к тому, чтобы центр масс находился как можно ниже и в середине автомобиля, дабы гарантировать, что все колеса будут находиться на земле при наращивании скорости, торможении и повороте. - Символ робота - Символ центра масс Менее стабильный Наиболее стабильный Центр масс в центре робота, вес робота распределен равно- мерно по большой площади --------Центр масс на краю f ш робота, вес робота С—-----/ распределен неравно- мерно по большой площади, и робот может покачнуться при ускорении или остановке Нестабильный Перевора- чивающийся Центр масс в центре робота, вес робота сосредоточен на малой площади. Робот легко может перевернуться Центр масс вдали от центра робота, вес робота сосредоточен на малой площади. Робот легко перевернется, если только его активно не сбалансируют Рис. 16.2. Положение центре масс А вот конструкторы R2-D2, видимо, не определили правильное положение центра масс. Центр масс робота, передвигающегося на колесах, должен нахо- диться где-то между двумя колесами для максимальной устойчивости, но для передвижения шагами робот должен иметь центр масс, который находится на
418 ГЛАВА 16. Мобильные роботы оси робота - там, где находятся его опоры, иначе он перевернется. Одной из больших проблем при съемках фильма было то, что робот R2-D2 упорно про- должал переворачиваться при старте, остановке или работе на неровной по- верхности. У R2-D2 слишком маленькие колеса и короткие ножки для робота, которому нужно двигаться по пересеченной местности, находить дорогу в болотах, пре- одолевать сугробы, карабкаться на ступени. Рассматривая устройство робота, я ожидал бы, что он будет способен только бежать (или идти) по гладкому по- лированному полу. Способность двигаться по различным поверхностям - одна из самых трудных задач, которые ставятся перед роботом - большинство из них будут спотыкаться, переворачиваться или повреждать свою ходовую часть (что R2-D2 и делал неоднократно в течение съемок). Большинство роботов, от которых ожидают, что они будут двигаться по не- ровной поверхности, построены на основе шарнирной конструкции (рис. 16.3). Этот образец робота имеет три набора колес, которые соединены с шасси и могут двигаться сравнительно независимо. В роботе Mars Pathfinder Sojourner использовался такой тип корпуса, чтобы он перемещался по поверхности Марса. Рис. 16.3. Шарнирной ходсюля часть Большим преимуществом мобильного робота такого типа является то, что он поддерживает шасси на относительно неизменном уровне, что обеспечива- ет датчикам сравнительно неизменную точку обзора. Точка обзора датчиков R2- D2 будет меняться вместе с углом, под которым он установлен, и когда повора- чивается головная часть робота (где я предполагаю разместить датчики). Робот, поддерживающий достаточно плоскостное расположение по высоте, будет способен чувствовать, что происходит вокруг него, гораздо последова- тельнее, чем R2-D2.
Эксперимент 108. Основание для двигателей постоянного тока 429 Эксперимент 108. Основание для двигателей постоянного тока со схемой управления на Н-образном мосте Детали Смонтированная печатная плата с макетной платой и BS2. Собранное фанер- ное основание с двигате- Инструменты лями постоянного тока, блоком из четырех бата- рей типа АА и выключате- лем литания. Схема уп- равления двигателями 754410. Чип таймера 555. Набор инструментов для радиомонтажа. Эпоксид- ная смола со временем от- верждения 5 минут. Набор отверток. Жесткий провод сечением 0,2 ммг (см. текст). Паяльник и припой (см. текст) Восемь кремниевых диодов 1N914 (1N4148). Два мик- ропереключателя с рычагами. Два резистора 10 кОм. Два резистора 1 кОм. Потенциометр 10 кОм. Три кон- денсатора 0,01 мкФ Во многих любительских мобильных роботах используется микросхема управ- ления двигателями LM293. Этот популярный чип годится в качестве схемы управления двумя двигателями постоянного тока в виде Н-образного моста при токе вплоть до 1 А. Официально LM293 сняты с производства, но многие по- ставщики все еще обладают некоторыми их запасами на складе, или же вы мо- жете приобрести чип TI754410 - обновление LM293 с некоторыми усовершен- ствованиями (включая тепловую защиту). Соединить чип 754410 с микроконтроллером довольно просто (рис. 16.4). У него есть входы питания, один для входов управления логикой (применяет- ся ТТЛ), а другой - для источников питания двигателей. У чипа нет диодов для защиты от обратного напряжения на выходах, так что их придется доба- вить. Это гарантирует, что переходные напряжения, возникающие в двигате- ле при его включении/выключении, не повредят микросхемы робота. Наряду с четырьмя входами, которые управляют четырьмя ветвями Н-образ- ного моста и выдают на выходе полярность сигнала (две половины нужно объе- динить, чтобы получить полный Н-образный мост), две линии связи служат для запуска управления двигателями. Эти две линии связи обычно обеспечивают управление роботом с помощью ШИМ и позволяют программировать управле- ние двигателями упрощенно. Чтобы показать, как работает 754410, я вернусь назад и добавлю шасси из обработанной фанеры с двигателями постоянного
430 ГЛЯВЯ16. Мобильные роботы демпфирующая цепь Рис. 16.4. Соединение двигателя с чипом 754410 тока подсоединенным к ним держателем для четырех батарей типа АА. Мы будем делать простой программируемый робот (для вас он первый). Прежде чем скрепить болтами фанерное шасси и плату, нужно приклеить эпоксидной смолой со временем отверждения 5 минут два микропереклю- чателя с длинными рычагами исполнительных элементов к основанию, что- бы они служили усиками робота (рис. 16.5). Возможно, вам предварительно придется припаять провода, чтобы соединить эти микропереключатели с макетной платой. Рис. 16.5. Микропереключатели, играющие роль усиков, приклеенные эпоксидной смолой к шасси из обработанной фанеры
Эксперимент 108, Основание для двигателей постоянного тока 431 Когда усики будут установлены на место, выведены провода для макетной платы, а фанерное основание соединено болтами с печатной платой, вы буде- те готовы к монтажу робота. Наш робот будет двигаться по комнате случайным образом, а, натолкнувшись на что-нибудь, даст задний ход и снова начнет дви- гаться хаотично (рис. 16.6). Я пометил стрелками направления сигналов управ- ления и питания и рекомендую вам поступать так же во избежание ошибок. Рис. 16.6. Структурной сеемо робота с двигателями постоянного токо Я добавил настраиваемый таймер 555 с одним устойчивым состоянием, что- бы он работал в качестве генератора ШИМ для двигателей. В зависимости от того, какие двигатели вы используете, у вас может получиться так, что робот будет двигаться слишком быстро для того, чтобы BS2 адекватно управлял им; таймер 555 (с потенциометром) представляет собой схему управления скоро- стью робота (с рабочим циклом, составляющим от 66 до 91%). Вам, вероятно, будет довольно легко собрать принципиальную схему робо- та (рис. 16.7). Робот будет полностью готов двигаться после загрузки следую- щего приложения. Не демонтируйте этот робот по окончании эксперимента - он еще пригодится в дальнейшем. ‘DC Robot 1 - Первая программа для робота с двигателями постоянного тока; движется случайным образом ’{$STAMP BS2} '($PBASIC 2.5} 'Объявление переменных и контактов порта ввода/вывода i var word LeftCount var byte RightCount var byte
432 ГЛАВА 16. Мобильные роботы Рис. 16.7. Структурная схема робота с двигателями постоянного тока Randomvalue var word Motorvalue var Randomvalue.NIBO RandomActive var Randomvalue.NIB1 LeftWhisker pin 14 RightWhisker pin 15 MotorCtrl var OUTS.NIBO MotorDir var DIRS.NIBO MotorCtrl = %0000: MotorDir = %1111 Randomvalue = 6 i = 1 do i = i - 1 if (i = 0) then MotorCtrl = %0000: pause 100 random Randomvalue ' Получить новое случайное значение MotorCtrl = MotorValue i = ((RandomActive & 3) +1) * 100 endif if (LeftWhisker = 0) then Button LeftWhisker, 0, 100, 0, LeftCount, 0, LeftWhiskerDown Goto LeftWhiskerSkip LeftWhiskerDown: ' Столкновение MotorCtrl = %0110: pause 3000
Эксперимент 108. Основание для двигателей постоянного токо 43 3 ^alatiausiiiv. LeftWhiskerSkip: else LeftCount = 0 endif if (Rightwhisker = 0) then Button Rightwhisker, 0, 100, 0, RightCount, 0, RightWhiskerDown Goto RightWhiskerSkip RightWhiskerDown: ' Столкновение MotorCtrl = %0110: pause 3000 RightWhiskerSkip: else RightCount = 0 endif loop В ходе этого эксперимента я удлинил один из комплектов проводов, идущих к двигателям, и провода держателя блока из четырех батарей типа АА и подсо- единил их прямо к чипу 754410. Я сделал так, чтобы устранить относительно высокое (порядка единиц Ом) сопротивление контактов макетной платы. Ко- гда вы будете собирать собственные роботы, вы, возможно, обеспечите при монтаже двигателей низкое сопротивление, чтобы минимизировать эти пара- зитные потери. После нескольких секунд работы робота чип 754410 нагреется из-за проте- кания тока через двигатели и падения напряжения на транзисторах внутри чипа. Вы не почувствуете нагрева, только если используете двигатели с низким потреблением. По мере нагревания эффективность чипа 754410 будет падать (двигатели будут не так быстро вращаться, и они могут «подвывать»). Карди- нальное решение этой проблемы - согласовать двигатели с чипом 754410 или использовать дискретный Н-образный мост на транзисторах с высоким коэф- фициентом усиления (см. главу 6). В любом случае монтаж следует производить медным проводом большого сечения и идеально разместить его на печатной плате. Вы убедитесь, что хотя усики робота будут распознавать объекты и перед роботом, и позади него, он будет точно так же врезаться в объекты, двигаясь обратным ходом, и оставаться в этом положении с заторможенными двигате- лями. На самом деле мне следовало установить усики во всех направлениях вокруг робота. В реальных приложениях я стремлюсь применять всего пару датчиков объектов впереди робота и никогда не использовать задний ход, если только не двигаю его от объекта.
434 ГЛАВА 16. Мобильные роботы Эксперимент 109. Программирование автомата состояний Детали Смонтированная печатная плата с макетной платой и BS2. Собранное фанер- ное основание с д вигате- лями постоянного тока, блоком из четырех бата- рей типа АА и выключате- Набор инструментов для радиомонтажа. Набор'от- верток лем питания, и усиками из микропереключателей. Схема управления двигате- лями 754410. Чип таймера 555. Восемь кремниевых диодов 1N914 (1N4148). Два резистора 10 кОм. Два резистора 1 кОм. Потенциометр 10 кОм. Три конден- сатора 0,01 мкФ Понять текст программы эксперимента 108 довольно трудно, хотя этот код работает достаточно хорошо. Я написал его таким образом, по двум причинам. Во-первых, я пытался продемонстрировать работу схемы управления двигате- лями 754410 в реальном роботе, а во-вторых, у меня было немного места, где делать это. Благодаря отображению битов из оператора random прямо на дви- гатели я создал совсем короткий и функциональный код. При работе над ва- шим собственным ПО для роботов всегда старайтесь сделать его как можно проще, хорошая читаемость кода - задача второстепенная. Может показаться, что это очень сложно сделать, но в этом мне помог авто- мат программных состояний. Этот инструмент применяется для периодического обновления состояния целого ряда выходных бит на основе их предыдущего состояния и любых изменений входных бит. Автомат состояний используется во множестве различных приложений, включая микропроцессоры. Обычно его легко создать и запрограммировать с конкретными величинами. Он работает почти так же, как аппаратный автомат состояний. Различия между ними совсем незначительны; аппаратный регистр состояний заменяется переменной состоя- ния state, а ПЗУ становится последовательностью операторов if (или един- ственным оператором select) (рис. 16.8). Преимущество программного автомата состояний перед традиционными методологиями программирования не только в том, насколько легко увидеть, что происходит, но и в том, насколько легко его можно изменять по мере изме- нения требований к приложению. Эти преимущества проявляются, только если вы следуете двум простым правилам при создании вашего программного автомата состояний.
4\alaHaus^k Эксперимент 109. Программировоние оетомото состояний 435 Программный код Входы Выходы Рис. 16.8. Программный автомат состояний • Номера состояний должны отстоять друг от друга на 10, а не на 1. Если они следуют через 1, вам придется перенумеровывать их по всему прило- жению, если будет нужно добавить новое состояние. • Не выполняйте операторы if внутри ПЗУ автомата состояний. Вместо этого используйте внешние входы для изменения состояния, если требу- ется действие. Это может вызвать затруднения у начинающих програм- мистов. Если вы опрашиваете бит, а отображаемое состояние истинно, увеличьте переменную state на 1, прежде чем она будет проверена, а код состояния - выполнен. Чтобы продемонстрировать автомат состояний, я доработал программный код предыдущего эксперимента, чтобы использовать автомат состояний, и ко- гда роботу будет дан задний ход после столкновения, он будет поворачиваться от усика, у которого было столкновение. Сохраните код в той же папке, что и предыдущий: • DC Robot State Machine - Версия первой программы робота с двигателями постоянного тока с автоматом состояний • {$STAMP BS2} * {$PBASIC 2.5} • Объявление переменных и контактов порта ввода/вывода Statevar byte TurnAway var byte i var word LeftCount var byte RightCount var byte WhiskerCount var byte RandomValue var word MotorValue var RandomValue.NIBO RandomActive var RandomValue.NIB1 LeftWhisker pin 14 Rightwhisker pin 15
436 ГЛАВА 16.Мобильные роботы MotorCtrl var OUTS.NIBO MotorDir Var DIRS.NIBO State = 0 MotorCtrl = %0000: MotorDir = %1111 Randomvalue = 5 i = 1 do i = i - 1 if (i = 0) then State = State + 1 if (RightWhisker = 0) and (State <> 30) then State = 10: MotorCtrl = %0010 if (LeftWhisker = 0) and (State <> 30) then State = 10: MotorCtrl = %0100 if (WhiskerCount = 20) then State = 20 select (State) case 0: 'Продолжать делать то, что вы делали WhiskerCount = 0 case 1: 'Перерыв random RandomValue MotorCtrl = MotorValue i = ((RandomActive & 3) +1) * 100 WhiskerCount = 0 State = 0 case 10: 'Столкновение WhiskerCount = WhiskerCount + 1 i = 40 State = 0 case 20: 'Предотвращенное столкновение WhiskerCount = 0 MotorCtrl = %0110: i = 100 State = 30 case 30: 'Движение задним ходом case 31: 'Закончено, возобновление работы i = 1 State = 0 endselect loop
Эксперимент 110. Пример: робот-мотылек 437 ^aiaHaus,^. Эксперимент 110. Пример: робот-мотылек Детали Смонтированная печатная плата с макетной платой и BS2. Собранное фанер- ное основание с двигате- лями постоянного тока, блоком из четырех бата- рей типа АА и выключате- Инструменты Набор инструментов для радиомонтажа. Набор от- верток. Ручной электри- ческий фонарь. Два бруска лем питания, и усиками из микропереключателей. Схема управления двигате- лями 754410. Чип таймера 555. Восемь кремниевых диодов 1N914 (1N4148). Два элемента системы цвет- ного отображения номиналом 10 кОм. Два резистора 10 кОм. Два резистора 1 кОм. Потенциометр 10 кОм. Пять конденсаторов 0,01 мкФ Давайте создадим приложение, которое будет демонстрировать заранее за- программированное поведение робота при поиске наиболее яркого в комна- те пятна света. Сталкиваясь с источником света, робот дает задний ход и по- ворачивает в противоположную сторону (как он делал в эксперименте 109), движется случайным образом в течение 30 секунд и вновь начинает поиск света (рис. 16.9). Робот, который приближается к свету и движется в обрат- ном направлении хаотично, как этот, часто называют роботом-мотыльком. Рис. 16.9. Траектория движения робота-мотылька Добавить два элемента системы цветного отображения с конденсаторами к схеме робота с двигателями постоянного тока довольно просто (рис. 16.10). Если вы следовали монтажным схемам, которыми был снабжен исходный ро- бот с двигателями постоянного тока, то для этих дополнительных элементов
438 ГЛЙВЙ16. Мобильные роботы должно было остаться место на макетной плате в передней части слева. Как и в более ранних экспериментах по включению в схемы элементов систем цвет- ного отображения, я соединил их корпуса под углом и направил так, чтобы они имели разные поля обзора. Vdd Vdd Vdd Vdd Рис. 16.10. Схемо робото-мотылько Программный код для «мотылька» представлен ниже (сохраните его в той же папке, что и предыдущие два). Я преобразовал некоторые состояния в про- грамме, что вновь демонстрирует, как легко модифицировать автомат состоя- ний. 'DC Robot Moth - Текст автомата состояний для реализации робота-мотылька '{$STAMP BS2} '{$PBASIC 2.5} ' Объявление переменных и контактов порта ввода/вывода State var byte TAwayvar byte Left Value var word Rightvalue var word i var word j var byte WhiskerCount var byte RandomValue var word MotorValue var RandomValue.NIBO RandomActive var RandomValue.NIB1 LeftLight pin 13 RightLight pin 12 LeftWhisker pin 15 RightWhisker pin 14
ftalaHautfik Эксперимент 110. Пример: робот-мотылек 439 MotorCtrl var OUTS.NIBO MotorDir var DIRS.NIBO State = 0 MotorCtrl = %0000: MotorDir = %1111 RandomValue = 5 i = 1: j = 1 do i = i - 1 if (i = 0) then State = State + 1 ’Задержка закончена if (j =0) then State = 0: MotorCtrl =. %0000 if (LeftWhisker = 0) and (State < SO) then State = 10: Taway = %0001 if (RightWhisker = 0) and (State < 30) then State = 10: Taway = %0100 if (WhiskerCount = 20) then State = 20 select (State) case 0: ’Заряд конденсаторов элементов системы цветного отображения high LeftLight: high RightLight WhiskerCount = 0: j = 1 case 1: ’Считывание левого элемента системы цветного отображения retime LeftLight, 1, Leftvalue: State = 2 case 2: 'Считывание правого элемента системы цветного отображения retime RightLight, 1, Rightvalue: State = 3 case 3: •Качнуться в сторону света if (Rightvalue < Leftvalue) then MotorCtrl = %1000 else MotorCtrl = %0001 endif i = 70: State = 0 case 10: 'Столкновение WhiskerCount = WhiskerCount + 1 State = 0 case 20: MotorCtrl = %0110: i = 100 WhiskerCount = 0 State =30 case 30: ’Движение задним ходом case 31: 'Закончено движение задним ходом MotorCtrl = Taway: i = 50: State = 40 case 40: 'Повернуть назад case 41: 'Закончено, двигаться случайным образом j = 8
440 ГЛЙВЙ 16. Мобильные роботы i = 1 State = 50: ’Случайное ожидание case 51: random RandomValue MotorCtrl = MotorValue i = ((RandomActive & 3) + 1) * 100 WhiskerCount = 0 j = j - 1 State = 50 endselect loop При проверке робота поместите мигающий источник света между двумя брусками (см. рис. 16.9). Это обеспечит робот источником света, на который он будет ориентироваться, и барьером, который вызовет изменение курса ро- бота на обратный, хаотическое движение и новый старт. Двигаясь к свету, робот будет забавно покачиваться. Это происходит вслед- ствие того, что одно колесо включено, а другое следует за ним. В зависимости от двигателей и схем управления может получиться, что время, в течение кото- рого робот поворачивается, слишком велико, ц придется изменить значение, присвоенное переменной i после загрузки MotorCtrl со значением поворота. Эксперимент 111. Объяснение хаотического движения Детали Смонтированная печатная плата с макетной платой и BS2. Собранное фанер- ное основание с двигате- лями постоянного тока, блоком из четырех бата- рей типа АА и выключате- Инструменты Набор инструментов для радиомонтажа. Набор от- верток лем питания и усиками из микропереключателей. Схема управления двигателя- ми 754410. Чип таймера 555. Восемь кремниевых ди- одов 1N914 (1N4148). Два элемента системы цветно- го отображения номиналом 10 кОм. Два резистора 10 кОм. Два резистора 1 кОм. Потенциометр 10 кОм. Пять конденсаторов 0,01 мкФ Три строки программного кода, используемые для случайного перемещения робота, пока не получили должного объяснения. В том, как они работают, мно- го взаимовыгодного партнерства (терпеть не могу это выражение!). ПО и ро- бот очень тесно объединены (рис. 16.11). Сейчас я хочу объяснить идею, на которой основан код.
^atatLausT^i Эксперимент 111. Объяснение хаотического движения 441 Рис. 16.11. Псевдослучайное событие Оператор random представляет собой работу программного сдвигового ре- гистра с обратной связью с поданным на него значением, и на выходе возвра- щает псевдослучайную величину. Возвращаемую величину трудно определить исходя из поданных на него величин. Она будет где-то в диапазоне от 1 до 65 535 и не повторится, пока не будут отображены все возможные величины. Если бы вам было нужно отображать различные величины из оператора random раз в секунду, то величина повторилась бы через 18 часов 12 минут и 5 секунд. Каж- дый из бит возвращаемой величины может быть установлен или сброшен яко- бы случайным образом и может быть подан прямо на двигатели, как я и сде- лал в экспериментах 108-110. На подачу двух бит на два чипа управления 754410, соединенных с двигателем, последний реагирует одним из трех спо- собов (табл. 16.1). Таблица 16.1. Отклик двигателя на различные соединения двух проводов Бит красного провода Бит черного провода Отклик двигателя 0 0 Двигатель остановлен (оба входа подключены к «земле», и потому ток не течет) 0 1 Двигатель работает в обратном направлении (ток от минуса к плюсу) 1 0 Двигатель работает в прямом направлении (ток от плюса к минусу) 1 1 Двигатель остановлен (оба входа подключены к питанию, и потому ток не течет) Итак, просто подавая самые младшие биты из оператора random, я случай- ным образом указываю, должен ли данный двигатель работать и в каком на- правлении он будет вращаться. Для выполнения подобной функции я мог бы использовать оператор select языка PBASIC: random Randomvalue MotorValue = Randomvalue & %1111 select (MotorValue) case 0: 'Левый двигатель вращается вперед, правый двигатель остановлен MotorCtrl = %1000
443! ГЛАВА 16. Мобильные роботы case 1: 'Левый двигатель вращается вперед, правый двигатель вращается вперед MotorCtrl = %1010 case 2: ’Левый двигатель вращается вперед, правый двигатель вращается назад MotorCtrl = %1001 case 3: 'Левый двигатель остановлен, правый двигатель вращается вперед MotorCtrl = %0010 case 4: 'Левый двигатель остановлен, правый двигатель вращается назад MotorCtrl = %0001 case 5: 'Левый двигатель вращается назад, правый двигатель остановлен MotorCtrl = %0100 case 6: 'Левый двигатель вращается назад, правый двигатель вращается вперед MotorCtrl = %0110 case 7: 'Левый двигатель вращается назад, правый двигатель вращается назад MotorCtrl = %0101 case else 'Что-либо другое, двигатели остановлены MotorCtrl = %0000 endselect При таком тексте несколько проще читать и понимать, что происходит в этой программе, но он длинноват и занимает много места в памяти BS2. Про- сматривая операторы, не слишком опытный в программировании и работе роботов человек, вероятно, будет иметь пару вопросов, скажем, почему нет последнего варианта «Левый двигатель остановлен, правый двигатель останов- лен»? Можно заметить, что в 8 случаях (из 16) будет выполняться код case else, и оба двигателя будут остановлены. Почему? С точки зрения читаемости моди- фицированный код ничуть не лучше оригинального. Я организовал биты управления двигателем таким образом, чтобы упрос- тить разработку ПО. Возможно, вы думаете, что биты управления двигателем и соответствующие контакты обычно указывают в порядке, упрощающем на- писание программы и ее изменения. Вы должны использовать что-то вроде предыдущего оператора select или приведенного ниже оператора branch, где bred, Lblk, Rred и Rblk, определенные оператором pin, являются входами/ выходами BS2, взаимодействующими со схемой управления двигателями. random RandomValue MotorValue = RandomValue & %1111 branch MotorValue, [MO, Ml, М2, М3, M4, M5, Мб, M7, M8] Lred = 0: Lblk = 0: Rred = 0: Rblk - 0: goto Mend 'Останов MO: Lred = 1: Lblk = 0: Rred = 0: Rblk = 0: goto Mend Ml: Lred = 1: Lblk = 0: Rred = 1: Rblk = 0: goto Mend М2: Lred = 1: Lblk = 0: Rred = 0: Rblk = 1: goto Mend М3: Lred = 0: Lblk = 0: Rred = 1: Rblk = 0: goto Mend M4: Lred = 0: Lblk = 0: Rred = 0: Rblk = 1: goto Mend
^alatLaus^. Эксперимент 112, Основание робота-су,томобиля с радиоуправлением 443 М5: Lred = 0: Lblk = 1: Rred = 0: Rblk = 0: goto Mend M6: Lred = 0: Lblk = 1: Rred = 1: Rblk = 0: goto Mend M7: Lred = 0: Lblk = 1: Rred = 0: Rblk = 1: goto Mend Mend: Эксперимент 112. Основание робота-автомобилп с радиоуправлением Детали Игрушечный автомобиль с дистанционным управ- лением Как вы помните, я смело утверждал, что неудачных экспериментов не бывает. Что бы ни случилось, вы всегда можете извлечь уроки из своих экспериментов и идти дальше. Иногда, как в этом эксперименте, то, чему вы учитесь - это раз- ница между высокомерием и смирением. Мы хотели построить робот на основе недорогого игрушечного автомобиля, способного самостоятельно двигаться и поворачивать, управляемого электиче- ством. Нам требуются два шасси (для робота с двигателями постоянного тока и для робота с радиоуправляемыми серводвигателями). Я подумал, что будет инте- ресно начать с полуфабриката, у которого уже установлены трансмиссия и руле- вой привод, и таким образом, усилия, необходимые для превращения его в ро- бот, будут минимальны. Я предполагал просто добавить Н-образный мост для двигателя и сервомеханизм для рулевого привода. Кроме того, вы получите опыт работы с основаниями роботов-автомобилей и поймете, почему их обычно счи- тали условно оптимальными в сравнении с дифференциально управляемыми роботами. Я никогда не видел игрушечного автомобиля, преобразованного в робот, ни в каких книгах или журнальных статьях, и я был в значительной степе- ни уверен, что занимаюсь чем-то, на что никто другой не обратил внимания. В магазине игрушек я нашел подходящую модель - полицейский автомобиль «Шевроле Блэйзер» («Chevrolet Blazer), имеющую проводное дистанционное управление, которое позволяло подавать команды двигаться вперед или назад и осуществлять рулевое управление (рис. 16.12). Размеры автомобиля - 14 дюймов (35,6 см) на 5,5 дюймов (14 см) - привели меня к уверенности в том, что я с лег- костью установлю на него нашу печатную плату с сервомеханизмом для управле- ния углом разворота передних колес. Цена меня устраивала (10 канадских долла- ров). К сожалению, в магазине имелась всего одна такая модель, иначе я купил бы две, а то и больше.
444 ГЛЙАЙ16. Мобильные роботы Рис 16.12. Автомобиль с проводным дистанционным управлением, который предполагается использовать как основание для простого и дешевого робота Я принес игрушку домой, и моя дочка поиграла с ней. Кроме дистанционно- го управления, у автомобиля было несколько мигающих огней, несколько пред- варительно записанных звуковых сигналов (мой самый любимый из них: «Стой, это полиция! Вы арестованы!», затем выстрел - уверен, реальный поли- цейский вздрогнул бы, услышав это) и микрофон на пульте дистанционного управления, выводящий голос пользователя через автомобиль. Дочка получа- ла от игрушки большое удовольствие, пока батарейки не разрядились; открыв дверцу батарейного отсека в нижней части автомобиля, я убедился, что он пуст и в нем нет контактов для замены батарей (рис. 16.13). Это был последний раз, когда автомобиль можно было наблюдать в виде единого целого. Два винта с крестовым шлицем на днище автомобиля скрепляют переднюю часть шасси с корпусом. Я думал, что, вывинтив эти два винта, я приподниму корпус над шасси и заменю батареи. Не тут то было: корпус был приклеен к шасси; кажется, винты скрепляли автомобиль, пока клей высыхал. Я аккуратно отрезал шасси от корпуса по нижней стороне, чтобы после замены батарей корпус было можно вновь собрать. После 30 минут работы роторным отрезным инструментом и фрезой я отде- лил дно корпуса от шасси. Увы, к шасси была приклеена и крыша, которую я нечаянно сломал... То, что у меня осталось, уже не было игрушкой [в лучшем слу- чае это была модель автомобиля, которой пользовался Джекки Глисон (Jackie Gleason) в конце фильма «Смоки и бандит» («Smokey and the Bandit»)].
Эксперимент 112. Основание робота-автомобиля с радиоуправлением 445 ^aiaHaus,^. Рис. 16.13. Отсек для батареек Сняв корпус, я обнаружил, что две батареи типа АА припаяны прямо к схе- ме автомобиля, а затем приклеены к шасси. Что произошло при попытке открыть рулевой механизм - запечатанную коробочку с двумя соленоидами внутри, вы, вероятно, догадались. Долго ли, коротко ли, но часа через два часа кропотливой разборки автомо- биля, передо мной лежала гора деформированных кусков черного пластика, причем из некоторых торчали цветные провода. Сначала я подумал, что меня подкупила дешевизна - может, если б я купил игрушку подороже, у меня был бы более удачный опыт. Еще через два часа, в течение которых я рассматривал игрушечные автомобили (в том числе очень дорогие радиоуправляемые моде- ли), я установил, что все игрушечные транспортные средства предназначены для использования в том виде, в каком поставляются, и никто не рассчитывал на их модификацию для других целей. Так что, если вы найдете подходящий для трансформации в робот игрушеч- ный автомобиль и установите на нем печатную плату, пожалуйста, черкните мне об этом пару строк. Просто помните о моем опыте и не тратьте денег, если только вы не увере- ны в успехе абсолютно.
446 ГЛЙВЙ16. Мобильные роботы Эксперимент 113. Установка сервомеханизма с радиоуправлением Детали Инструменты Набор инструментов для радиомонтажа. Эпоксид- ная смола со временем от- верждения 5 минут. Набор отверток. Паяльник и при- пой. Нож. Роторный отрез- ной инструмент (см. текст) Смонтированная печатная плата с макетной платой и BS2. Блок из четырех ба- тарей типа АА с подсоеди- ненным выключателем пи- тания. Сервомеханизм с радиоуправлением. Трех- контактные соединители одрвомехамома с радиоуправлением (см. текст). Коле- со для модели самолета диаметром 5-7,5 см или коле- со ссреппринада для робота. Два резистора 2,2 кОм В схеме дифференциального привода я использовал основные двигатели по- стоянного тока, управляющие колесами. Преимущество такого метода управ- ления роботом состоит в сравнительно простом программном интерфейсе, с которым легко работать, несмотря на потенциальные сложности в части рабо- ты механики, которые придется преодолеть, чтобы заставить его действовать. В большинстве же роботов, разработанных начинающими конструкторами, используются доработанные сервомеханизмы с радиоуправлением, у которых вра- щение сделано непрерывным, чтобы реализовать трансмиссию и электронику схемы управления двигателем в одном простом узле. Я покажу, как их приме- нять в мобильных роботах. Стандартные сервомеханизмы (но не «Futaba») управляются импульсами длительностью от 1 до 2 мс (при этом значение 1,5 мс является серединой диа- пазона), тогда как сервомеханизмы «Futaba» управляются импульсами длитель- ностью от 1 до 1,5 мс. Если вы используете сервомеханизмы «Futaba», значе- ния данных должны быть соответствующим образом изменены. Вам уже знакома структурная схема радиоуправляемого сервомеханизма. Основной сервомеханизм может поворачиваться только на 90' (по 45° в каж- дом направлении от центра), и, чтобы позволить выходной оси поворачивать- ся постоянно, в сервомеханизме нужно сделать следующие три изменения. 1. Отсоедините потенциометр позиционной обратной связи и замените его либо на два резистора равной величины, включенных в виде делителя на- пряжения, либо на подстроечный потенциометр (триммер), подключен- ный идентично потенциометру в серводвгателе. Благодаря отсоединению потенциометра и подаче сигнала на делитель напряжения, установленный на половину входного напряжения этого потенциометра, сервомеханизм не будет двигаться, когда на него подан импульс длительностью 1,5 мс.
Эксперимент 113. Устоновко сервомеханизма с радиоуправлением 447 Этот сервомеханизм будет вращаться в одном направлении, когда на него подают импульс длительностью меньше 1,5 мс, и в другом направлении, когда на него подан импульс длительностью больше 1,5 мс. Это идеально для подачи команд сервомеханизму поворачиваться вперед, назад или ос- тановиться. Ниже показан сервомеханизм Hitec Model 322 со снятой верхней крыш- кой (рис. 16.14). Чтобы отсоединить потенциометр, перекусите идущие к нему провода и подключите два резистора 2,2 кОм, включив их как де- литель напряжения. Общее сопротивление потенциометра в составе сер- вомеханизма Hitec Model 322 составляет 4,7 кОм, так что два резистора по 2,3 кОм будут приемлемым приближением. Рис. 16.14. верхняя крышке сервомеханизме удалена, и видна передача внутри сервомеханизма. Привод двигателя находится справа, а потенциометр слева Вместо двух резисторов можно с внешней стороны сервомеханизма приклеить подстроечный потенциометр. В таком случае сервомеханизм проще согласовать с ПО. Однако внешний потенциометр занимает мес- то, кроме того, это должен быть подстроечный потенциометр (который дороже стандартного потенциометра для объемного или печатного мон- тажа). У стандартного потенциометра весь диапазон значений укладыва- ется в один оборот, тогда как подстроечный может иметь от 10 до 20 оборотов. Увеличенное число оборотов позволит точнее настроить по- тенциометр совместно с ПО. 2. Удалите все механические стопоры внутри сервомеханизма и предохра- ните его от вращения на полный угол 360°. Зачастую потенциометр по- зиционной обратной связи допускает движение только на 90°, и при этом потребуется либо удалить его, либо доработать, чтобы вращение проис- ходило постоянно. Наряду с этим вы, вероятно, обнаружите внутри сер- вомеханизма ограничители движения выходного вала, которые следует удалить ножом или роторным инструментом (Dremel) (рис. 16.15).
448 ГЛАВА 16. Мобильные роботы Ограничитель сбоку выходной шестерни удалить ножом или роторным режущим инструментом Рис. 16.15. Ограничитель, подлежащий удалению В некоторых сервомеханизмах вам придется удалить подвижный контакт (движок) потенциометра позиционной обратной связи, ограничиваю- щий пределы вращения потенциометра. 3. Замените стандартные выходные ручки, колеса, рукоятки и другие дета- ли исполнительного механизма на колесо. Некоторые колеса предназна- чены для использования в роботах, но я выбрал колесо от модели само- лета диаметром 2,5 дюйма (-6 см), которое было приклеено эпоксидной смолой со временем отверждения 5 минут на место срезанной ручки уп- равления. Ступицу колеса, возможно, придется рассверлить, чтобы до- браться до рукояти сервомеханизма, удерживающей винт. Вам еще понадобится адаптер соединителя сервомеханизма с макетной пла- той, изготовленный для эксперимента 41. Этот адаптер не является абсолютно необходимым (вы могли бы увидеть провода сечением 0,32 мм2 между макетной платой и соединителем сервомеханизма), однако он очень надежен и ре по- вреждает ни соединитель сервомеханизма, ни макетную плату. Изготовьте сра- зу шесть или пять адаптеров, так как эти детали легко потерять. На рис. 16.16 показана функциональная схема модифицированного сервомеханизма. Я не включил сюда иллюстраций для доработки каких-либо конкретных сер- вомеханизмов (даже фотографии и инструкции для Hitec Model 322 несколько схематичны) - их легко найти в Интернете. Большинство инструкций по модифи- кации сервомеханизмов будут предупреждать вас о том, что вы должны должны быть уверены в том, что именно вы делаете. Это создаст впечатление, что работа будет угрожающе сложной, но вы убедитесь, что практически она довольно бес- хитростна и займет у вас меньше 15 минут на каждый сервомеханизм. При моди- фикации сервомеханизма важно отслеживать элементы конструкции (делать их снимки цифровым фотоаппаратом перед демонтажом - совсем не плохая мысль). Для этого эксперимента допустим, что вы собираетесь заменить потенцио- метр позиционной обратной связи двумя резисторами 2,2 кОм. Хотя эти два резистора довольно близки к точному значению номинала 2,2 кОм, на практи- ке они все же отличаются от номинала на несколько процентов. Если только вы не очень-очень большой счастливчик, эти два резистора будут разной вели- чины, и напряжение на делителе напряжения не будет в точности равно поло- вине суммарного напряжения. Эта разница означает, что вы не сможете подать
Natalia Эксперимент 113. Установке сервомеханизма с радиоуправлением 449 Рычаг управления, приклеенный эпоксидной смолой к колесу от модели самолета Колесо от модели самолета Двигатель Компаратор Резистивный делитель напряжения Преобразователь длительности импульса в напряжение Отсоединенный от схемы потенциометр датчика положения Сигнал управления Схема управления двигателем Рис. 16.16. Доработанные внутренние части сервомеханизма сигнал длительностью 1,5 мс с помощью оператора pulsout 750 и гарантиро- вать, что сервомеханизм будет остановлен. Вам понадобится приложение, что- бы находить центр или калибровать значение, которое будет поддерживать со- стояние останова сервомеханизма. Найти это калибрующее значение поможет следующая схема (рис. 16.17) и программа для BS2. Рис. 16.17. Схема калибровки сервомеханизма
450 ГЛЙВЙ16. Мобильные роботы 'Calibrate - Нахождение центра/ точки останова для сервомеханизма '{$STAMP BS2} '{PBASIC 2.50} 'Переменные Servo pin 15 CurrentDelay var word 'Центральная точка сервомеханизма i var byte ' Инициализация/ главная low Servo 'Установка на контакте сервомеханизма низкого уровня CurrentDelay = 750 'Начать с 1,5 мс do 'Повторять бесконечно debug "Current Servo Delay Value = ", dec CurrentDelay, cr for i = 0 to 50 'Вывести на выход значение для сервомеханизма для 1 с pulsout Servo, CurrentDelay pause 18 'Длительность цикла 20 мс next debug "Enter in New Delay Value" 'Введите новое значение задержки debugin dec CurrentDelay do while (CurrentDelay < 500) or (CurrentDelay > 1000) debug "Invalid Value, Must be between 500 and 1000", cr debug "Enter in New Delay Value" debugin dec CurrentDelay loop loop Если сервомеханизм не движется при вводе значения 500 или 1000, проверь- те источник питания и монтаж. Возможные ошибки в монтаже не должны по- вредить сервомеханизм, если только вы не подаете на него больше 6 В. Не подавайте питание на сервомеханизм от источника питания BS21 Источник питания BS2 не способен обеспечить достаточный ток для рабо- ты сервомеханизма, и если вы подадите питание на сервомеханизм с BS2, то сожжете встроенный источник питания BS2. Вам нужен отдельный батарейный источник питания напряжением от 4,8 до 6 В, способный выдать выходной ток 300 мА для сервомеханизмов. Это приложение будет ждать, пока вы укажете центральное значение, а за- тем передаст его на секунду на сервомеханизм, и вы увидите, вызывает ли оно поворот сервомеханизма. Оператор debugin, позволяет вводить числовые зна- чения с клавиатуры ПК, чтобы отыскать значение pulsout, которое поддержи- вает неподвижность сервомеханизма. Найденное центральное значение pulsout сразу запишите в сервомеханизм. Наряду с применением для центровки сервомеханизма это приложение при- годится для наблюдения за работой модифицированного сервомеханизма при подаче на него различных значений. Помните: значения, подаваемые на сер- вомеханизм через оператор pulsout должны находиться в пределах от 500 (1 мс) до 1000 (2мс).
^latatfaus^ Эксперимент 114. Управление несколькими сервомехонизмоми 451 Детали Эксперимент 114. Управление несколькими сервомеханизмами Смонтированная печатая плата с макетной платой и BS2. Собранное фанер- ное основание с серво- двигателями, блоком из четырех батарей типа АА и выключателем питания Инструменты Набор инструментов для радиомонтажа Установить и калибровать сервомеханизм для роботов при помощи BS2 (или любого другого микроконтроллера) несложно. А вот если встроенных сервоме- ханизмов несколько? Скорости BS2 более чем достаточно для эффективного управления двумя (или более) сервомеханизмами одновременно, но вам придет- ся потратить несколько минут, чтобы понять, как управлять двумя сервомеханиз- мами совместно, в то же время вычисляя, как должен двигаться робот. К счастью для вас, я проделал эту работу. Очевидное решение проблемы управления сервомеханизмами состоит в том, чтобы посылать импульс на каждый из них раз в 20 мс, находясь в цикле (рис. 16.18). Кажется, что это довольно просто сделать: ведь BS2 рассчитан на выполнение одного оператора каждые 250 мкс. Проблема появляется, когда вы рассматриваете реальную скорость выполнения операторов, в частности опера- тора pulsout и составных операторов. Чтение кода и вводная часть оператора pulsout занимают около 250 мкс, но чтобы получить реальное время его вы- полнения, вам придется прибавить время, в течение которого он активен. Если бы у вас был составной математический оператор, например, A = (B + C)xD вам пришлось бы помнить, что каждому оператору требуется около 250 мкс и, таким образом, выполнение этого оператора займет примерно 500 мкс. Проблему меняющейся временной длительности оператора pulsout можно решить, выполнив два оператора pulsout за установленное максимальное вре- мя. Я всегда предполагаю, что максимальное время для импульса равно 2,25 мс, а значит, первый оператор pulsout подается на сервомеханизм, пока второй захватывает разницу. В общем случае форма для выходного импульса на серво- механизм такова: pulsout Selectservo, ServoValue pulsout DummyServo, 1125 - ServoValue
452 ГЛАВА 16. Мобильные роботы Рис. 16.18. Программа для нескольких сервомеханизмов Контакт DummyServo обеспечивает место для ввода оставшейся задержки, так что оператор pulsout выполняет выдачу импульса полной длительности 2,25 мс и поддерживает равными временные параметры оператора. Контакт DummyServo должен быть таким контактом ввода/вывода BS2, который не ис- пользуется для другой цели. Оператор pulsout в BS2 обеспечивает дискретность в 2 мкс. Таким образом, чтобы получить суммарную задержку 2250 мкс с помощьюpulsout, используют суммарную задержку 1125 мкс. В этих двух операторах обратите внимание на то, что на самом деле будет три командных задержки (код 1125 - ServoValue потребует дополнительно 250 мкс). Когда эта величина добавляется к задерж- ке для вывода импульса 2,25 мкс, общая задержка для выходного импульса на сервомеханизм составит 3 мкс. Это очень облегчает расчет временных соотно- шений при циклическом управлении двумя или большим количеством серво- механизмов, которое нужно выполнять в пределах времени 20 мс. Чтобы продемонстрировать работу этих команд, я разработал приложение, которое двигает робот случайным образом с помощью сервомеханизмов (кото- рые могут работать одновременно). ’Servo Random Movement - Перемещение по комнате случайным образом '($STAMP BS2} ’{PBASIC 2.50} 'Переменные LeftServo pin 15 RightServo pin 0 DummyServo pin 1 LeftServoVal var word Right ServoVai var word Leftstop con 750 Right Stop con 750 LeftForward con 600 LeftBackward con 900 RightForward con 900
NataHausiiify Эксперимент 114. Упроаление несколькими сереомехонизмоми 453 RightBackward con 600 Currentstep var word Randomvalue var word i var byte ' Инициализация/ главная low LeftServo: low RightServo: low DummyServo Randomvalue = 1000 i = 1 do i = i - 1 if (i = 0) then random Randomvalue select ((Randomvalue /4) & 3) case 0: LeftServoVal = LeftForward, case 1: LeftServoVal = LeftForward case 2: LeftServoval = LefrStop case 3: LeftServoval = LeftBackward endselect select ((Randomvalue / 16) & 3) case 0: RightServoVai = RightForward case 1: RightServoVai = RightForward case 2: RightServoVai = Rightstop case 3: RightServoVai = RightBackward endselect i = ((RandomActive & 3) + 1) * 120 else pause 4 endif pulsout LeftServo, LeftServoVal pulsout DummyServo, 1125 - LeftServoval pulsout RightServo, RightServoVai pulsout DummyServo, 1125 - LeftServoval 'Приведенные выше операторы занимают в сумме 11 мс pause 9 loop Этому приложению легко следовать; один и тот же импульс будет подавать- ся на сервомеханизмы, если только счетчик (i) не будет декрементйрован (из его показаний на каждом шаге вычитается 1) до нуля, и в этот момент значе- ния случайного движения будут сохраняться в переменной, соотнесенной с длительностью импульса сервомеханизма. В этом приложении я предполагал, что вращение при полной скорости будет иметь место с импульсом 1200 мкс или 1800 мкс. Значение, которое останавливает импульс, поможет отыскать приложение калибровки.
454 ГЛАВА 16. Мобильные роботы Чтобы проверить это приложение, я просто соединил два сервомеханизма (рис. 16.19) и загрузил приложение. Я не считал, что схема необходима для данного приложения из-за его простоты и уверенности в нашей печатной пла- те. При загрузке приложения держите выключатель питания сервомеханизмов в выключенном состоянии, так как робот может начать двигаться сразу вслед за загрузкой текста приложения. Vdd Vin[ С 13- □ □ □ □ □ □ Р15 Р14 Р13 Р12 Р11 РЮ Р9 Р8 Р7 Р6 Р5 Р4 РЗ Р2 Р1 РО □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ О □ □ <Го □ □ □ □ □ □ □ □ о □ о □ □ □ □ □□ □ □ □ □ □ □ □ □□ nja* □ ша-п □ Я'ба □ □ □ □□□□ □ о □ о о □ □ □ о □ □ □□□□ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ njrn о &бп о □ □ красный □ □ Разъем левого I сервомеханизма □ □ □ □ □ □ о □ □ □ □□□□ □ □ □ □ □ □ □□□□ □ □□□□ □ □□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □□□□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ О □ □ □ □ Разъем правого “1 сервомеханизма □ □ “ □ □ о а о _ . провод □ источника питания*— «О о п на батареях типа АА Черный провод □ □ источника питания —j ц на батареях типа АА □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ Рис. 16.19. Подключение нескольких сервомеханизмов Чтобы проверить, насколько хорошо я понял временные требования к данному приложению, я наблюдал за выходными импульсами, подаваемыми на сервомеханизмы, и за импульсом Dummy Servo с помощью осциллографа (рис. 16.20). Суммарная длительность цикла почти в точности равна 20 мс, Импульс управления левым серво- механизмом Импульс управления правым серво- механизмом Импульсы «фиктивного слежения» DummyServo, следующие за левым и правым импульсами Рис. 16.20. Осциллограммы для работы с несколькими сервомеханизмами
^alatfaus^i Эксперимент 115. Робот-художник 455 что и требовалось. Честное слово, я не «подгонял» результатов! Хотя я и про- вел какое-то время, осмысливая, сколько времени потребуется для выполне- ния каждой части цикла, мне действительно повезло, когда я объединил их и получил идеальный цикл длительностью 20 мс. Даже в случае отклонения в пределах 10% от указанного времени цикла, ваше приложение все еще будет работать прекрасно. Когда вы закончите эксперимент, не разбирайте схему. Платформа сервоме- ханизмов понадобится для двух последующих экспериментов. Эксперимент 115. Робот-художник Детали Смонтированная печат- ная плата с макетной платой и BS2. Собранное фанерное основание с серводвигателями, бло- ком из четырех батарей типа АА и выключателем питания. Эластичный бинт (см. текст). Маркер Magic Marker Инструменты Набор инструментов для радиомонтажа. Плотницкий транспортир (см. текст) «Рисовальные» машины изготавливаются в течение двух или трех последних столетий. Это, конечно, странно: машина не в состоянии создать ценного про- изведения искусства. Но нет ничего проще, чем найти пример «машинной живописи»: загляните в собственный бумажник. Завитки, кольца, рисунки были выполнены машиной, построеной из шестеренок и колес, которая процарапы- вала изображение на печатной форме, используемой для банкнот. Будучи под- ростком, вы, возможно играли со спирографом (spirograph) - набором шесте- рен, который прикалывался к листу бумаги, с одной свободной шестерней, сквозь которую нужно было продеть кончик пера. Спирограф работал точно на том же принципе, по которому наносятся изображения на банкноты; пере- даточный механизм спирографа переносил образец изображения на лист бу- маги почти идентично (с некоторыми различиями). Вы можете воспроизвести это изображение с помощью миллиметровки, карандаша и линейки (рис. 16.21). Чтобы изобразить кривую, которую вы ви- дите на этом рисунке, я начал с двух линий, расположенных под углом 90° и рисовал линии от одного из концов к началу со сдвигом в несколько милли- метров. Оказалось, что результирующая серия пересекающихся линий описы- вает кривую. Эту фигуру можно повторить с линиями разной длины с разны- ми углами. Робота можно научить создавать собственные изображения либо как предва- рительно установленные рисунки, либо в виде отклика на окружающие условия,
456 ГЛАВА 16. Мобильные роботы Рис. 16.21. Кривоя из линий в которых он работает. Роботы, запрограммированные на то, чтобы отвечать на окружающие условия, пользуются либо датчиками света (обычно в виде элемен- тов системы цветного отображения), либо микрофоном и усилителем. Давайте научим робот воспроизводить повторяющееся изображение (рис. 16.22). В этом изображении робот движется по траектории в форме повторяющихся частично накладывающихся друг на друга прямоугольни- ков. Чтобы робот рисовал линию, я просто обмотал эластичный бинт вокруг задних опор основания робота с сервоприводом и использовал его для удер- жания маркера. Рис. 16.22. Предполагаемый рисунок робота Я использовал схему управления двумя серводвигателями из эксперимента 114. Прежде чем пытаться создать программу, мне пришлось придумать какой-то способ определять, сколько времени должен работать робот, чтобы сначала переместиться на 12 дюймов, а затем на 10 дюймов с поворотом на 90е. В напи- санной для этого программе имеется величина stop, необходимая для серво- механизмов, использованных с основанием робота. Программа имеет задерж- ку на 5 с перед тем, как двигаться в течение 200 циклов длительностью по 20 мс
ftatattausfSik Эксперимент 115. Робот-художник 457 (что занимает 4 с). Программу можно запустить повторно, нажав кнопку сбро- са на печатной плате. 'Servo Distance Calibrate - Понять, каковы скорость робота/ единичное время '{$STAMP BS2} '{PBASIC 2.50} * Переменные LeftServo pin 15 RightServo pin 0 DummyServo pin 1 LeftServoVal var word Right ServoVai var word Leftstop con 777 Rightstop con 770 LeftForward con 600 LeftBackward con 900 RightForward con 900 RightBackward con 600 i var word ' Инициализация/ главная low LeftServo: low RightServo: low DummyServo LeftServoVal = LeftForward RightServoVal = RightForward i = 200 pause 5000 do while (i <> 0) i = i - 1 pulsout LeftServo, LeftServoVal pulsout DummyServo, 1125 - LeftServoVal pulsout RightServo, RightServoVal pulsout DummyServo, 1125 - LeftServoVal ’Приведенные выше операторы в сумме занимают 7 мс pause 13 loop end После остановки робота пройденное им расстояние записывалось, и рабо- та повторялась пять раз, чтобы получить среднее значение, и оно использова- лось заданное число циклов по 20 мс, прежде чем остановиться. Я повторил работу 5 раз и усреднением получил результирующую величину (табл. 16.2). Таблица 16Л. Расстояние, которое робот проходит за 5 секунд Проба Расстояние 1 28,00 дюйма 2 28,13 дюйма (28 1/8 дюйма) 3 28,38 дюйма (28 3/8 дюйма) 4 28,13 дюйма (28 1/8 дюйма) 5 28,25 дюйма (28 1/4 дюйма) Средней 28,178 дюйма
458 ГЛЯВЯ16. Мобильные роботы Затем, разделив 200 на это среднее расстояние, мы получим количество циклов на дюйм (7,1 цикла на дюйм). Чтобы продвинуться на 12 дюймов (-30 см), потребуется 85 циклов, а чтобы пройти 10 дюймов (-25 см) - 71 цикл. Для измерения угла понадобилась аналогичная программа (только в LeftServoval подставлялась константа LeftReverse, а не LeftForward, и число циклов вращения было снижено до 25, так что поворот будет меньше, чем на 90°). Прежде чем запустить программу, я выровнял робот на листе бумаги, запустил его и измерил разницу в направлении между стартовым и конечным углами. И, что довольно-таки удивительно, робот поворачивался на 90° постоянно за 25 циклов сервомеханизма. Зная число циклов для перемещения на 12 и 10 дюймов и для поворота на 90°, я был готов проверить программу и посмотреть, насколько хорошо робот рисует то, что я назвал блуждающим квадратом. Ниже приведена программа рисования блуждающих квадратов. Заметьте: после прямолинейного перемещения я останавливал робот на четверть секун- ды. Я делал это, потому что поворот начинается и заканчивается при останов- ленном роботе - ускорение робота в определенное время входило в состав ве- личины. Вместо того чтобы по таблице определить, что роботу предстоит делать дальше, я рассчитал отклики алгоритмически. Из имеющихся 16 пози- ций каждая четная является остановкой, а каждая следующая за номером шага по модулю 4 - прямой линией. Наконец, если происходит движение по прямой, а номер шага больше 8, то это короткая линия. Просмотрев программу, вы уви- дите, что я прошел некоторое расстояние с целью убедиться, что длительность цикла loop составляет 20 мс. 'Robot Artist - Попытка рисовать «Блуждающий квадрат» '{$STAMP BS2} '{PBASIC 2.50} 'Переменные LeftServo pin 15 RightServo pin 0 DummyServo pin 1 LeftServoval var word RightServoVal var word Leftstop con 777 Rightstop con 770 LeftForward con 600 LeftBackward con 900 RightForward con 900 RightBackward con 600 i var word j var word StepNum var byte ' Инициализация/ главная low LeftServo: low RightServo: low DummyServo LeftServoval = Leftstop RightServoVal = RightStop
^latattaus^. Эксперимент 115. Робот-художник 459 i = 250 StepNum = 0 do i = i - 1 if (i = 0) then StepNum = (StepNum + 1) // 16 j = StepNum //2 if (j = 0) then LeftServoval = Leftstop RightServoVal - Rightstop i = 25 pulsout DummyServo, 250 else RightServoVal = RightForward j = StepNum //4 if (j - 1) then LeftServoVal = LeftForward if (StepNum > 8) then i = 71 else i = 85 endif else LeftServoval = LeftBackward i = 25 j = 16 endif endif else pulsout DummyServo, 875 endif pulsout LeftServo, LeftServoVal pulsout DummyServo, 1125 - LeftServoVal pulsout RightServo, RightServoVal pulsout DummyServo, 1125 - LeftServoVal 'Приведенные выше операторы в сумме занимают 8,5 мс pause 11 pulsout DummyServo, 125 loop На фотографии, демонстрирующей результат работы программы (рис. 16.23), вы заметите две вещи. Во-первых, это забавная дуга, нарисованная на каждой кривой. Кончик маркера размещен не в центральной точке, около которой осу- ществляется поворот, и поэтому следует по траектории той части робота, к ко- торой прикреплен. Второй момент: хотя я и измерил 90° с помощью программы Servo Distance Calibrate (его величина 25 циклов), это, очевидно, оказалось неправильным для практического приложения: он должен бы составлять несколько меньше 25 циклов. И все же результат выглядит довольно привлекательно, и, если бы программе позволили продолжать и пройти больше четырех оборотов, фигура получилась
460 ГЛАВА 16. Мобильные роботы Рис. 16.23. Робот не изобразил ожидоемый «блуждающий квадрат». Но создал собственный уникальный рисунок бы довольно интересная. Чтобы добиться большей точности, надо оснастить робот компасом (чтобы обеспечить абсолютное точные значения углов), каким* то образом измерять расстояние и поместить пишущий инструмент точно в цен- тре поворота робота. Эксперимент 116. Программный интерфейс GUI-Bol компании Parallax Детали Смонтированная печатная плата с макетной платой и BS2. Основание робота с двумя серводвигателя- ми, блоком из четырех батарей типа АА и под- ключенным выключате- лем питания. Два радио- управляемых сервомеханизма. Трехконтактные соединители для радиоуправляемых сервомеханизмов (см. текст). Два резистора 10 кОм. Два усика на осно- ве микропереключателей с длинными рычагами ис- полнительных элементов. Жесткий провод сечением 0,2 мм2 Инструменты Набор инструментов для радиомонтажа. Эпоксид- ная смола со временем от- верждения 5 минут. Кусач- ки. Приспособление для зачистки провода или нож. Инструмент для пайки
^lalattaus,^. Эксперимент 116. Программный интерфейс GUI-Bol компании Parallax 461 Если вы интересуететсьлюбительнскими разработками, то наверняка знакомы с Parallax BOE-Bot - роботом с двумя серводвигателями, управляемыми BS2. У него несколько встроенных датчиков и множество различных методов для вывода выходных сигналов. Робот построен на основе печатной платы, разра- ботанной Учебным Центром компании Parallax, которая включает разъем BS2, вход питания, макетную плату и интерфейсы для серводвигателей и для серии адаптеров для дополнительных модификаций BS2 компании Parallax. Печатная плата из Приложения 3 не была в большой мере основана на печатной плате Учебного Центра, чтобы дать вам возможность осуществлять управление про- граммным обеспечением BOE-Bot и такими инструментальными средствами разработки, как GUI-Bot. Одна из особенностей BOE-Bot - ПО GUI-Bot. Этот инструмент позволяет создавать приложения для BOE-Bot, которые заставят его передвигаться и сра- зу выполнять основные операции. Сейчас я покажу вам, насколько просто ра- ботать с ПО GUI-Bot. Кроме того, я расскажу, как реализовать графическое программирование. Чтобы работать с GUI-Bot, вам нужен эквивалент робота BOE-Bot. Используя основание с радиоуправляемыми серводвигателями (см. эксперимент 113) мы изготовим робот, функционально эквивалентный роботу BOE-Bot. Нам только придется добавить два усика на основе микропереключателей, подобных тем, что вы ставили на основание для двигателей постоянного тока. К микропере- ключателям мы припаяем провода так, чтобы при нажатии на их исполнитель- ные элементы замыкалась электрическая цепь, а сами микропереключатели при- паяем к основанию для серводвигателей (рис. 16.24). Рис. 16.24. Основание для серводвигателей с усиками на основе микропереключателей, добавленными в качестве датчиков объектов, чтобы сделать основание для серводвигателей совместимым с ПО для BO€-Bot
462 ГЛRBft 16. Мобильные роботы Монтажная схема для преобразования печатной платы и робота в BOE-Bot довольно проста. Посмотрите, как элементы схемы соединены между собой (рис. 16.25). Провода, связывающие контакты РО и Р8 с Vcc, нужны для имита- ции ИК-приемника дистанционного управления, используемого в BOE-Bot в ка- честве детектора объектов. В данном роботе обнаружением объектов займутся усики на основе микропереключателей. □ □ □ □ □ □ □ □ □ □ □ □ о □ о □ □ □ □ оо дп п а.п I О0ППП • □ □ Разъем левого I сервомеханизма О О 1 о □ g Л П П П П □ □□□□ □ □□□О □ □□□□ плота” □ шзъ □ Хлл л о дя-ггЯл □ □□□□ □ □□□□ □ □ □ □ о □ □□□ □ □ □□□а о □ □ □ 7- □ □ □ SL □ □□□□ Ваал ал э4еа л л о4ие □ о Разъем правого Л П сервомеханизма □ □□□□ л □ п о □ u<- F-3 ляп 1 - - Левый «усик»3 □ □ о о □ □ □ □ □ □ Красный прПАЛП- _-*•) □ д J источника питания ] п q п на батареях типа «АА» j □ D Черный провод |п □ q источника питания гТма =на батареях типа «АА» --- ,-е-с □ □ □ □ □ □ □ □ | Q Q Правый «усик» UUU □ о гТ....ядсшп [□□ Рис. 16.25. Схемо BO€-Bot Собрав робот, загрузите программу GUI-Bot с Web-сайта компании Parallax (www.parallax.com) и инсталлируйте ее так же, как BASIC Stamp Windows Editor (щелкните ссылку на Web-странице и откройте приложение его установ- ки). Я советую вам открыть и распечатать файл readme. Открыв приложение в первый раз, выберите Beginner Mode (Режим для начинающих). Диалоговое окно программы показано на рис. 16.26. При запуске в режиме для начинающих появится окно Действия, подлежа- щие выполнению (Actions to be Performed). Эти семь действий заставляют робот описывать правый угол, треугольник по мере того, как он движется. Ро- бот движется вперед в течение трёх секунд, поворачивает, движется вперед и так до тех пор, пока не закончит. В этой точке он скачком возвращается в точ- ку старта, чтобы повторить попытку. Запустив GUI-Bot, нужно эмпирически определить, в течение какого време- ни должны выполняться действия. Правильные временные параметры для тре- угольника я определял примерно полчаса. Другая проблема состоит в том, что при остановке робота серводвигатели будут вращаться, так как величина Stop для реального аппаратного обеспечения сервомеханизмов неверна. Щелкните кнопку Проверка (Test) интерфейса
Эксперимент 116. Программный интерфейс GUI-Bot компании PoroHox 463 Рис 16.26. Простая программа GUI-Bot GUI-Bot. В появившемся диалоговом окне Test Mode можно проверить усики и откалибровать положение останова сервомеханизмов. Это та же функция, что и программа PBASIC для нахождения положения останова сервомеханизмов, ко- торую я представил ранее. Настроив приложение так, что серводвигатели оста- новятся, щелкните Калибровка сервомеханизмов (Calibrate Servos), чтобы со- хранить эту информацию в приложении. Последняя проблема. После того как вы запрограммируете BS2 [щелкнув Выполнить (Go)], робот начнет двигаться. Чтобы избежать этого, выключай- те подачу питания от четырех батарей типа АА на сервомеханизмы (почему я и разделяю BS2 и питание двигателей) и держите робот в подвешенном состоя- нии, чтобы его колеса ничего не касались. Может, это и чересчур, но наблю- дать, как робот спрыгнет со стола и рухнет на пол, не очень весело. Чтобы протестировать робот на полу, нажмите кнопку сброса на печатной плате и включите питание серводвигателей. После того, как произойдет сброс BS2, у вас будет пара секунд до начала выполнения программы. Выполнив несколько основных программ, которые дают роботу команды двигаться по полу, вы будете готовы для режима Advanced Mode, который под- соединяет усики и другие датчики как части программы. Запустите GUI-Bot повторно и выберите Продвинутый режим (Advanced Mode). Вы увидите простой робот, отслеживающий стены (рис. 16.27). С целью реализовать его, я добавил немного провода к правому усику, чтобы микропереключатель замы- кался, когда робот касался стены. В этой программе нормальным поведением робота является поворот напра- во (в стену), но если правый усик обнаруживает объект, робот отворачивается
464 ГЛАВА 16. Мобильные роботы Рис. 16.27. Продвинутая программа GUI-Bot от него. Это очень простое приложение, и его не отнесешь к особенно полез- ным, так как робот может огибать объект только по часовой стрелке. Чтобы усовершенствовать приложение, установите номинальную программу, а затем создайте программы меньшей величины [их называют установками (sets)], которые реагируют на действия датчиков. В этом примере Setl разворачивает робот в противоположном направлении, если датчик обнаруживает стену. Со- здать приложения продвинутого режима довольно просто, но вы увидите не- которые его ограничения, когда захотите отобразить операции своего робота (с помощью светодиодов, жидкокристаллических дисплеев или звуковых при- боров), а он не позволит вам реализовать приложения, где требуются перемен- ные или принятие сложных решений. Эксперимент 117. Управление шаговым двигателем Детали Смонтированная печатная плата с макетной платой и BS2. Блок из четырех батарей типа АА. Бипо- лярный шаговый двига- тель с питанием от 5 В. Пятиконтактный соедини- Инструменты Набор инструментов для радиомонтажа. Ножницы. Клей Krazy due тель шагового двигателя с макетной платой (см. текст). Восемь кремниевых диодов 1N4148 (1N914). Бумага
Эксперимент 117. Чпровление шаговым двигателем 465 Различные чипы взаимодействуют с шаговым двигателем и обновляют его по- ложение при подаче на них сигнала синхронизации. Эти чипы обычно име- ют три входа: разрешение выдачи выходного сигнала, направление и вход синхронизации (инициирующий изменение положения шагового двигателя). Обычно эти чипы не соединяют напрямую с самим шаговым двигателем из-за различий в требованиях к номинальным напряжению и току у различных дви- гателей; вместо этого сигнал с их выходов подается на схему управления, предназначенную для работы с управляемым двигателем. С этими чипами до- вольно просто работать, но они практически не нужны, как я покажу ниже. Я еще не говорил о широко используемых типах шаговых двигателей. Уни- полярный шаговый двигатель состоит из мотора с четырьмя обмотками, попарно соединенными в виде звезды. Электронная схема управления для униполярно- го шагового двигателя очень проста (рис. 16.28). Для возбуждения обмотки униполярного шагового двигателя ее вывод просто подсоединяются к «земле» с помощью транзистора. Рис. 16.28. Управление униполярным шаговым двигателем Эта схема не обеспечивает такого большого вращающего момента, как бипо- лярный шаговый двигатель, с которым вы уже знакомы. Этот двигатель имеет четыре обмотки, как и униполярный, но он не имеет соединения звездой, и им необходимо управлять с помощью половинок Н-образного моста (рис. 16.29). Я предпочитаю работать с биполярным шаговым двигателем из-за добаво- чного вращающего момента, который он обеспечивает для небольших роботов (две обмотки всегда активны в направлениях X и Y вместо одной обмотки у униполярного шагового двигателя). Я управляю шаговым двигателем с помо- щью схемы управления двигателем 754410. а для демонстрации его работы я подключу его к BS2 (рис. 16.30). Управляющий код для вращения биполярного шагового двигателя удивительно прост. После монтажа схемы приклейте бу- мажную стрелку к шаговому двигателю (так же, как в более раннем эксперимен- те), чтобы вам легко было наблюдать вращение двигателя*. Рис. 5.21. - Прим, перев.
466 ГЛЯВЯ16. Мобильные роботы Рис 16.29. Управление биполярным шаговым фзигателвм Р I Р ' Р SW1 § nnmnnnnrinnn аз 5 о СО ST 3 о го □ □ □ □ □ □ □ □ а а л n_jjl-дд ппппп □ □ □ □ □ □ □ □ □ □ □ □ а □ □ □ □ □ □ □ □ □ □ D □ □ □□□□ ЛПППП JXE □ □ □ □ а □ □ □ □ а □ □ □ □ □ □ □ □ □ □ □ □а □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ Е - >Е|Е1 □ Разъем шагового двигателя е □ -е-и □ □ □ □ □ □ □ о □ □ □ □ □ □ □ □ я а Ли □ La □ □ □ □ □ ып ()□ :i □ :i □ *i □ □ □ □ О □ □ □ □ -ИС л □ □ □ □ □ □ □ □ □ □ □ □ о □ □ □ а □ □ □ Рис 1630. Схема управления шаговым двигателем Собрав схему, введите текст приложения и сохраните его как Stepper Motor Control в папке Stepper Motor внутри папки Evil Genius. 'Stepper Motor Control - Вращение биполярного шагового двигателя '{$STAMP BS2} '{$PBASIC 2.50} 'Переменные
Эксперимент 117, Управление шаговым двигателем 467 MotorDIRS var DIRS.NIBO MotorCtrl var OUTS.NIBO i var byte ’ Инициализация/ главная MotorCtrl = %0000 MotorDIRS = Ш11 i = 0 do pause 100 lookup i, [%0111, %0101, %0001, %1001, %1000, %1010, %1110, %0110], MotorCtrl i = (i + 1) // 8 loop Эти строки кода обманчиво просты, и я должен подчеркнуть некоторые его особенности. Во-первых, я использовал преимущества оператора lookup языка PBASIC, чтобы преобразовать значение счетчика в команды для уп- равления половинками Н-образного моста обмоток двигателя и сохранить значения непосредственно на контактах ввода/вывода BS2. Способность PBASIC устанавливать метки в качестве входных и выходных битов может упростить и ускорить работу приложения в ситуациях, подобных этой. Да- лее, после увеличения на 1 значения счетчика позиции (i) я нахожу его ве- личину по модулю 8. Это поддерживает i в диапазоне от 0 до 7, и, хотя обы- чно я избегаю производить несколько операций в одном операторе PBASIC, это тот случай, когда порядок операций слева направо приводит к легко читаемому оператору. Для управления скоростью двигателя служит опера- тор pause 10; величину в нем можно изменять для корректировки скорости двигателя. Я начал с задержки величиной 100 мс (использовав оператор pause 100), а двигатель делал полный оборот за две или три секунды. При паузе в 10 мс стрелка, приклеенная к выходной оси двигателя, при враще- нии теряет свои очертания. Теперь о движении шагового двигателя. Во-первых, каждая смена обмотки перемещает двигатель всего на несколько градусов (значения для полного ком- плекта из восьми обмоток не повернут двигатель на полный оборот), так что реальная скорость вращения двигателя заметно ниже, чем обновленное значе- ние скорости. Если двигатель обращается на 1,5° за шаг, и вы меняете шаги 1000 раз в секунду, это выливается примерно в 4 об/с. Кроме того, только ротор шагового двигателя может вращаться так быстро; двигатель не будет в состоя- нии реагировать на определенную скорость смены обмоток, и это приведет к останову двигателя (хотя его ось, возможно, будет вибрировать вперед и назад очень быстро). Максимальная скорость шагового двигателя обычно задается производителем, и ее не следует превышать. В табл. 16.3 дан обзор параметров различных типов двигателей для мобиль- ных роботов.
468 ГЛАВА 16. Мобильные роботы Таблица 16.3. Характеристики двигателей, применяемых в роботах Двигатель постоянного тока Шаговый двигатель Радиоуправляемый серводвигатель Размеры Вся номенклатура Вся номенклатура Как правило, небольшие роботы Вращающий момент От удовлетворительно до хорошо в зависимости от привода Очень хорошо. Будет хорошо держать по- ложение Хорошо. Имеются серводвигате- ли с большим моментом Потребление от батареи Хорошо. Можно использовать ШИМ для снижения потре- бления тока Плохо. В любой момент под напря- жением хотя бы одна обмотка Удовлетворительно. Электро- ника серводвигателя может потребовать сравнительно вы- сокого тока, когда двигатели не работают Скорость От удовлетворительно до очень хорошо в зависимости от привода Удовлетворительно, но обычно достаточно хорошо для робото- техники От плохо до удовлетворительно, но обычно достаточно хорошо для робототехники Простота физи- ческой установ- ки в робот Может быть сложно. Есть не- которые комплекты (особен- но, фирмы Татуа), которые могут сделать проще установ- ку двигателя постоянного тока и трансмиссии Довольно просто. Ша- говые двигатели часто имеют установочные фланцы, чтобы об- легчить крепление двигателя болтами в роботе Очень просто. Серводвигатели могут устанавливаться с помо- щью двустороннего скотча или кронштейнов, встроенных в кор- пус двигателя Простота про- граммирования контроллера От просто до сложно в зави- симости от требований и типа контроллера. В некоторых контроллерах может быть очень трудно реализовать ШИМ Довольно просто Удовлетворительно. Реализация синхроимпульсов для серводви- гателей может быть сложной, особенно когда серводвигатели не поддерживают текущее по- ложение, если не посылается серия импульсов Простота из- мерения поло- жения Робот должен быть оснащен дополнительно одометричес- кими датчиками Каждое изменение значений сигналов на обмотках приводит к легко определяемому движению робота Необходимы одометрические датчики Расширяемость Хорошо, моторы большей величины (с различными схемами управления) могут использоваться для наращивания устройств Очень хорошо. Двигатели и схемы управления могут быть легко изменены при небольшом влиянии на ПО Очень трудно, когда робот боль- ше, чем те, которыми может легко управлять стандартный серводвигатель Использование в опасных усло- виях Плохо. Возможные электри- ческая дуга/искра внутри двигателя делают не позво- ляют рекомендовать его для данного типа устройств Очень хорошо. Нет изменений электри- ческих связей в дви- гателях Хорошо, если корпус имеет га- зонепроницаемое уплотнение Стоимость Низкая, хотя трансмиссия и привод могут быть дорогими Умеренная. Шаговые двигатели обычно снабжены приводом, так что привод транс- миссии, как правило, не требуется От низкой до высокой. Дешевые серводвигатели конкурентоспо- собны с другими решениями в части двигателей, но не имеют выходов на шарикоподшипники, металлических шестерен и дру- гих деталей
^aiatiaus^k Эксперимент 118. Двухсторонняя связь но основе инфрокросных приборов 469 Эксперимент 118. Двухсторонняя связь не основе инфрокросных приборов Детали Инструменты Набор инструментов для радиомонтажа Смонтированная печатная плата с макетной платой и BS2. Отдельный BS2. Отдельная макетная пла- та. Батарея 9 В и держа- тель. Два 8-контактных чипа таймера 555. Две микросхемы 74LS74, два D-триггера. ИК телевизионные приемники дистанци- онного управления 38 кГц. Два ИК светодиода. Два светсдиода видимого света, любого цвета. Два рези- стора 680 Ом. Четыре резистора 470 Ом. Резистор 220 Ом. Два резистора 100 Ом. Два электролитиче- ских конденсатора 10 мкФ. Шесть конденсаторов 0,01 мкФ любого типа Значительная часть моей книги посвящена взаимодействию выходных прибо- ров (светодиодов, микрофонов, ЖКД и т. д.) с BS2. Поэтому вы должны пред- ставлять себе, что воспринимает робот и какие решения при этом принимают- ся. Зачастую можно видеть, как инженер следует за роботом, читая сообщения на ЖКД, установленном в верхней части робота. Мне это не нравится по той простой причине, что,это еще вопрос, является ли разработчик частью окру- жающей среды, в которой робот действует. Следует спросить: будет ли робот работать и реагировать одинаково в одних и тех же окружающих условиях не- зависимо от присутствия разработчика? К сожалению, далеко не всегда. Я не однажды видел, как инженер по робото- технике объясняет, что его создание работает отлично, только для того, чтобы, спустив его на пол, обнаружить, что оно не делает ничего либо делает совершен- но не то. Конструктор обычно убегает с проклятиями или пытается запустить робот снова, хлопоча над ним, как заботливая мамаша... Я приравниваю эту ситу- ацию к действию принципа неопределенности Гейзенберга (Hisenberg) на мак- роуровне (а не на микроуровне)*; разработчик, наблюдающий за роботом, стано- вится частью окружающей робот среды и воздействует на его работу. * Принцип неопределенности, одно из основных положений квантовой теории, заключается в том, что нельзя для одного и того же момента времени предсказать точные значения координа- ты и скорости любой элементарной частицы. - Прим, перев.
470 ГЛЯВЯ16. Мобильные робота Вот почему мйе нравится конструировать свои роботы с яркими светодио- дами и звуковыми сигналами на выходе, так что я могу наблюдать за его пове- дением и отображать его входные сигналы и принятие решения дистанцион- но. Для этого я помещаю светодиоды на контроллерах двигателей робота, любых датчиках объектов и датчиках траектории, так что я могу наблюдать с безопасного расстояния за происходящим. Конечно порой происходит боль- ше, чем можно наблюдать с удобствами, и поэтому мне нужен какой-то метод передачи данных к роботу и их приема от робота. Наиболее очевидный способ сделать это - использовать радиоприемник и передатчик. Однако это довольно дорого, и, кроме того, достичь работы с двух- сторонней связью не так просто. Тогда я вспомнил об ИК-диапазоне (рис. 16.31) для обеспечения двухсторонней связи с роботами. Как вы помните, связь в ИК- диапазоне осуществляется при помощи манчестерского кодирования, которое нельзя просто реализовать с BS2, поэтому я решил посмотреть, хорошо ли в этих условиях будет работать связь со стандартным кодированием без возврата к нулю (Nonreturn to Zero, NRZ). Генератор 38 кГц Телевизионный!—— инфракрасный приемник дистанционного управления ч-т- Сигнал к контроллеру робота BS2 Рис. 16Л. Связь на основе последовательности импульсов ИК-диопозона Связь с кодированием без возврата к нулю в обиходе называют асинхронной последовательной связью. Формат данных (рис. 16.32) таков: посылка состоит из начального стартового бита низкого уровня, за которым следуют данные, нео- бязательный бит проверки четности и, наконец, столовый бит высокого уров- ня. От стопового бита высокого уровня асинхронная связь и получила свое на- звание - в конце каждого пакета данных (в котором 1 байт информации) линия возвращается к высокому уровню напряжения. Наиболее популярным форматом
^alaHaus^ik Эксперимент 118. Двухсторонняя связь но основе инфракрасных приборов 471 данных является 8-N-1: пакет содержит 8 бит данных, 1 столовый бит, а провер- ка четности отсутствует. Диапазон скоростей передачи данных в современных компьютерных системах отПОдоИб 200 бит в секунду. BS2 наилучшим образом работает при скоростях передачи данных от 300 до 4800 бит в секунду (другие модели BS2 поддерживают и более высокие скорости). Бит 0 Бит1 Бит 0 БитЗ Бит 4 Данные Рис 16.32. Асинхронные донные Возможно, вы знакомы с термином RS-232 как с названием электрического стандарта для передачи асинхронных последовательных данных. RS-232 - это странный электрический формат, который восходит к самым ранним дням те- леграфной связи. Я еще покажу, как построить интерфейс между BS2 и истин- ным прибором стандарта RS-232, а для данного эксперимента я просто исполь- зую стандарт КМОП/уровни ТТЛ в направлениях от и к ИК-светодиоду и телеприемнику дистанционного управления. BS2 в этом эксперименте будет взаимодействовать с вашим ПК через диало- говое окно debug. Он будет посылать ключевой символ, который вы нажмете на удаленном BS2, посредством модулированного ИК-излучения (см. рис. 16.31). Чтобы промодулировать ИК-излучение, мы с помощью чипа таймера 555 сфор- мируем стабильную временную сетку для схемы. ИК-управление очень чувстви- тельно к рабочему циклу принимаемого ИК-излучения. Чтобы убедиться, что я получил максимально близкую к 50% величину рабочего цикла, я установил тай- мер 555 для формирования частоты, вдвое большей, чем требуется. Затем я раз- делил ее на два с помощью D-триггера, включенного как Т-триггер* (рис. 16.33). Я исподьзую ИК-светодиод и BS2 для замыкания его на «землю», тогда как таймер 555 и микросхема 74LS74 обеспечивают положительное напряжение для его работы. Это положительное напряжение модулировано, и таким образом, когда от BS2 посылаются асинхронные данные, выходной сигнал светодиода также оказывается модулированным. У этой схемы есть и две другие особенно- сти. Во-первых, ИК-приемник дистанционного управления вырабатывает напря- жение низкого уровня на выходе с открытым коллектором при поступлении на него данных, идентичное переданному (и ожидаемому) контроллером BS2 сиг- налу. Во-вторых, я подключил резистор 470 Ом и светодиод видимого света на * Т-триггером или счетным триггером называется триггер, у которого состояние выхода меняет- ся на противоположное при поступлении на его вход счетного сигнала высокого уровня и сохра- няется неизменным при низком уровне счетного сигнала. Кроме того, Т-триггер, имеющий в своем составе управляющую бистабильную ячейку, можно представить себе как соединение двух триггеров - ведущего и ведомого. - Прим, перев.
472 Г/lRBfi16» Мобильные роботы Vdd Vin[ Vssl P15 P14 P13 P12 Pl 1 P10 P9 P8 P7 P6 P5 P4 P3 P2 PI PC □-e- □ □ □ □ □ o' □ □ П П П П П ПП'ПП П g g П.П П П Г| П t~| П П П _g g □□□□□ □□□□□ □□ □ □□□□ □□□□ □ Ln □ □ □ □ □ □ JO □ □ □ t □ □ □ □ t □ □ 3 [ 1 J J □_□ J Q C ЖЕ о и U1 □ □ □ □ a □ □ □ □ □ * s-s—в-а-в-и □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ l/SJ Инфракрасный □ □ U-** светодиод □□ □ □ □ □ Ci Инфракрасный приемник дистанционного управления □ [ Светодиод, излучающий 3 видимый свет □ □ -tx □ □ □ □ □ □ I □ □ I □ □ ° ° I ° c □ □ □ □ □ □ □ □ □ □ ?□ □ □ □ □ □ Рис. 16.33. Асинхронноя сеемо выходе ИК-приемника, чтобы дать визуальную индикацию, когда данные прини- маются ИК-приемником. В первый раз я собрал эту схему на двух печатных платах-прототипах (схема идентична как для ведущего контроллера, так и для ведомого). Взяв простую длинную макетную плату, вы можете повторить монтаж с BS2 на одном ее кон- це с 9-вольтовой батареей и держателем батареи. Таймер 555 и микросхема 74LS74 питаются от 5-вольтового стабилизатора на BS2. Смонтировав аппаратную часть, я разработал программу для передачи проб- ного ИК-пакета с символом, который вы введете из оператора debugin. Сохра- ните эту программу как Master Comms. ’Master Comms - Посылка пробного пакета "Ping" на ведомый BS2 ’{$STAMP BS2} ’{PBASIC 2.50} ’Переменные SerialOut pin 4 Serialln i 3 Retn Flag pin О var byte var byte var byte(5) var bit ’Инициализация/ главная high SerialOut do debugin str i\l
^alaHaus^k Эксперимент 118. Двухсторонняя связь но основе инфрокросных приборов 473 j = i л $ff debug "Sending Character ' " , str i\l, " •, Hex $"; hex i, cr serout SerialOut, 3313, ["Ping ", str i\l, str j\l, cr] ’ Последовательно вывести на выход SerialOut, 3313, [str i\l, str j\l] pause 50 Flag = 0 'Использовать флаг для индикации отклика serin Serialln, 3313, 1000,NoResponse, [WAIT("ACK"),str Retn\5] Flag = 1 'Индикация факта нахождения данных NoResponse: 'Перерыв в работе - нет отклика if (Flag =0) then debug "No Response from Remote", cr 'Нет отклика от дистанционного управления else j = "N" A $FF if (Retn(0) = INI) and (j = INI) then debug "Message not properly received", cr 'Сообщение принято неправильно else j = Retn(2) debug "Response to Message was ’ ", str j\l, " ' ", cr endif endif loop Это приложение ждет сообщения «АСК» от приведенной ниже программы Slave Comms и реагирует на него соответственно. 'Slave Comms - Отклик на "Ping" •{$STAMP BS2} '{PBASIC 2.50} 'Переменные SerialOut pin 4 Serialln pin 0 i var byte j var byte k var byte Message var byte(3) ' Инициализация/ главная high SerialOut do serin Serialln, 3313, [WAIT("Ping "), str Message\3] pause 75 i = Message(0): j = Messaged) A $FF if (i = j) then i = i + 1 j = i A $FF k ="Y" A $FF
474 ГЛЙВЯ16. Мобильные роботы serout SerialOut, 3313, ("ACKY", str k\l, str i\l, str j\l, cr] else 'Принято плохое сообщение к = "N" Л $FF serout SerialOut, 3313, ["ACKN", str k\l, str i\l, str j\l, cr] endif loop Если пакет принят правильно, Slave Comms отвечает подтверждением ACKY и возвращает посланный ей байт, увеличив его на 1. В обеих программах я посы- лаю байт данных, а после него - его дополнение до единицы (каждый бит инвер- тируется оператором ИСКЛЮЧАЮЩЕЕ ИЛИ) в качестве контрольной суммы. Если в течение секунды не принят отклик или данные повреждены, программа Master Comms печатает сообщение об ошибке. С целью упростить эти опера- ции я использовал параметры WAIT и TIMEOUT оператора serin языка PBASIC. С такой простой установкой два BS2 могут успешно поддерживать связь в помещении цокольного этажа моего дома. Вы, возможно захотите иметь не- сколько ИК-светодиодов и ИК-приемников дистанционного управления по разным направлениям, стараясь иметь прямую линию между передатчиком и работающим приемником. Это не должно вызвать проблем благодаря возмож- ности соединения светодиодов и приемников в параллель (выход приемников с открытым коллектором делаёт эту задачу довольно простой).
^ialatlaus^ Глава 17 Ориентирование мдиваивииивмимвмиввммиим Одна из наиболее трудных для реализации в мобильном роботе вещей - это дать ему способность определять свое местонахождение. Роботы по природе своей этой способностью не обладают. Люди естественным образом развива' ют в себе способность чувствовать, где они находятся по отношению к другим объектам, используя зрение и сл)-х. Рассматривая вопрос об оснащении робота этим качеством, вы будете обескуражены и совсем не будете знать, с какой сто- роны подобраться к этой проблеме. В подобных случаях советую рассмотреть ситуации, когда люди решали подобные проблемы исторически. Я говорю «исторически», потому что в условиях технического прогресса мы полагаемся на очень сложные технологически решения. Пример - спутники Глобальной системы навигации и определения положения (Global Position System, GPS) на орбите Земли; они годятся для ориентирования роботов в диапазоне всего несколько футов (менее метра), но требуют свободного обзора небесно- го свода и дороги. Система GPS - исключительно полезный инструмент, по- скольку она возвращает текущие значения положения (в части широты и дол- готы, а также высоты над уровнем моря) и скорости (с направлением). Увы, GPS несколько непрактична для роботов. Поскольку GPS изобретена сравни- тельно недавно, а люди путешествуют по миру уже тысячи лет, возникает во- прос: как люди делали это, не теряя дорогу? Ситуация, в которой людям, подобно роботам, не имея ориентиров, прихо- дится прокладывать себе дорогу, складывается в океане. Как вы знаете, место- положение на поверхности Земли определяется с помощью паратлелей и ме- ридианов (рис. 17.1). Меридианы - линии, идущие от Северного полюса к Южному, имеют номера от -180 до 180. Нулевой меридиан проходит через Гринвич в Великобритании, и номера меридианов возрастают, когда вы движе- тесь на восток, причем единица измерения долготы составляет один градус. Параллели - это концентрические окружности, отсчет которых начинается с экватора (с нулевой широты) и которые простираются до полюсов, как линии северной или южной долготы до максимального значения 90. Им присвоена единица измерения градус, как и меридианам.
476 ГЛАВА 17. Ориентирование Рис. 17.1. Картографические линии Земли В старину навигаторы находили свое местоположение тремя способами. Первый состоял в применении очень точных часов (их называют хронометр), установленных на время по Гринвичу (всемирное время) или на зулусское вре- мя (среднее время по Гринвичу). При этом слово «зулусское» является фоне- тическим названием для буквы Z, первой буквы слова «zero» (нуль). Чтобы найти текущую широту, записывали текущее время, когда Солнце достигало наивысшей точки на небосводе (зенита), а широту вычисляли как разность между моментами, когда Солнце оказывалось в зените на широте Гринвича и для навигатора. Поскольку имеется диапазон широт 360°, а в сутках 24 часа, то на каждый час разницы между временем по Гринвичу и местным временем приходится 15°. Второй способ - применение компаса. Он служил для прокладки траекто- рии движения и позволял определить, когда Солнце находится в наивысшей точке небосвода. Момент прохождения зенита можно определить как время, когда Солнце находится на одной прямой с навигатором и Северным полюсом. И третий способ - использовать секстант. Этот прибор строится на основе системы угломерных шкал и зеркал, позволяющих измерить угловое положе- ние Солнца (или звезд) над горизонтом. Долгота может быть вычислена как разность между 90е и углом, под которым наблюдается Солнце в зените. Посмотрите, как определить местоположение корабля, зная угол Солнца в зените, долготу по Гринвичу и направление на Северный полюс Земли (рис. 17.2). Этот метод - упрощенная модель для навигации по звездам, и он намного проще того, что требуется для реального определения местоположения; я игнориро- вал тот факт, что земная ось наклонена по отношению к плоскости орбиты, по Корабль Угол визирования Северный полюс Г ринвичский меридиан Экватор Рис. 17.2. Определение местоположения корабля
Ориентировоние 477 которой Земля обращается вокруг Солнца. Я также пренебрег и тем фактом, что магнитный Северный полюс находится на удивление далеко от реальной точ- ки, вокруг которой вращается Земля. Итак, для определения положения в пространстве требуются три угла. Это можно использовать в роботах (рис. 17.3). Три источника света можно разме- стить вне предполагаемой области перемещения робота или его зоны сервиса. За счет постоянного видеоопознавания этих трех точек, измерения углов меж- ду ними, зная их реальное положение, довольно легко рассчитать их текущее положение с большой точностью. Я так распланировал зону перемещения ро- бота, что он может ориентироваться только в пределах определенной области, в которой указанные источники света легко обозримы. “I Источник света 1 Светочувствительный датчик, установленный на башенке^,'' । Источник । света 3 Рис. 17.3. Определение местоположения но основе тригонометрии В ходе Второй Мировой войны серьезной проблемой являлось ориентиро- вание бомбардировщиков на цели в Европе. Она возникала из-за суровых погод- ных условий, из-за необходимости ночных полетов и из-за расходов и времени на подготовь штурманов. Даже если штурманы были в наличии, рассчитать по- ложение самолета, начиная со считывания положения звезд, было проблемой, поскольку к моменту окончания расчетов бомбардировщик мог оказаться на зна- чительном расстоянии от пункта, где были произведены измерения. Для реше- ния этой проблемы использовались радиопеленгаторы, в хвостовой части бом- бардировщиков установили мощные передатчики, а пилоты бомбардировщиков получили инструкцию держать передатчик при полете постоянным курсом (рис. 17.4). В роботах можно использовать похожую систему, нанеся черную линию на поверхность, по которой они движутся; линия распознается с помощью комби- нации ИК-светодиода и фототранзистора (см. эксперимент 107). Другой метод ориентирования взят из опыта передвижения по комнате не- зрячих людей. При этом вместо того, чтобы пытаться обойти объекты, слепой пытается найти их, чтобы они помогли ему понять свое положение внутри
478 ГЛЯВЯ17. Ориентирование Рис. 17.4. Навигация бомбардировщика комнаты. Идентифицировать объекты, находящиеся перед человеком, помо- гает трость, играющая роль тактильного датчика. Этот метод тоже можно ре- ализовать в роботе за счет его перемещения от объекта к объекту (рис. 17.5). Обычно датчики объектов робота помогают роботу обогнуть объекты, одна- ко в данном случае производится активный поиск объектов с целью, абсо- лютно противоположной той, которую вы ставили бы перед датчиками объектов. Рис. 17.5. Обнаружение объекта методом незрячего В роботе можно использовать и другие исторические методы ориентирова- ния. В приведенных примерах я не упомянул навигационное счисление, при котором известно направление движения, а также скорость движения и дли- тельность промежутка времени, прошедшего с момента старта из известного пункта. Чтобы получить текущее положение, время умножают на скорость, а произведение представляет собой пройденное расстояние.
Эксперимент 119. Робот, отслеживоющий траекторию 479 ^lataHaus^j. Эксперимент 119. Робот, отслеживающий траекторию Детали Смонтированная печатная плата с макетной платой и BS2. Основание робота с двигателями постоянно- го тока, держателем для четырех батарей типа АА и выключателем. Два оп- Инструменты Набор инструментов для радиомонтажа тических прерывателя, установленных на металлической пластине, из экспе- римента 48, с половинами оптического ИК-прерыва- теля, приклеенными к нему. Микросхема LM339, че- тыре компаратора. Два биполярных п-р-п-транзистора ZTX649. Два биполярных р-п-р-транзистора ZTX749. Два саетцциойа любого цвета. Два резистора 100 кОм. Шесть резисторов 10 кОм. Два резистора 470 Ом. Два реаистци 100 Ом. Два потенциометра 10 кОм, предна- значенные для установки на макетную плату. Кусок бело- го бристольского картона размерим 560 мм х 710 мм с отмеченной на нем траекторией (см. текст) Я стараюсь не повторять эксперименты, но к одному из них надо вернуться. Это робот, отслеживающий траекторию (см. главу 8). Как вы помните, я создал простую методологию для отслеживания линии; при этом каждое колесо управ- ляется при помощи датчика, находящегося со стороны этого колеса. Когда дат- чик обнаруживает внизу перед собой белую поверхность, двигатель должен включаться, а когда черную - двигатель должен быть выключен. Благодаря это- му, если датчик с одной стороны обнаружил под собой черное, то робот отвер- нется от черного сектора за счет выключения двигателя до тех пор, пока он снова не окажется в белом секторе. Вы, вероятно подготовили набор величин, действительных для вашего робота, и он прошел по траектории достаточно точно. Исключение тут составляет только тот случай, когда оба датчика оказы- ваются над черным сектором траектории. При этом робот должен просто там остановиться. Решить эту проблему на практике довольно просто: если оба датчика находятся над черным сектором, робот должен двигаться вперед, пока один из них не окажется над белым. В этой точке робот может повернуть в сторону датчика, который все еще находится над черным, по возможности центрироваться и продолжать двигаться по траектории. Проблема с реализа- цией такой стратегии в главе 8 состояла в том, что мы еще не обсудили цифро- вую логику, и мне пришлось предложить столь простую стратегию.
480 ГЛЯВЯ17. Ориентирование Зная цифровую логику, можно составить таблицу истйнности, чтобы проду- мать, как должен двигаться робот (табл. 17.1). Таблица 17.1. Логическая таблица истинности робота, отслеживающего стены Левый датчик Правый датчик Левый двигатель Правый двигатель Белый (1) Белый (1) Включен (1) Включен (1) Белый (1) Черный (0) Включен (1) Выключен (0) Черный (0) Белый (1) Выключен (0) Включен (1) Черный (0) Черный (0) Включен (1) Включен (1) Эта таблица составлена в предположении, что при возврате логической единицы датчик находится над белой частью бумаги, а логический ноль указы- вает на черный цвет. Используя данные таблицы, можно установить, что левый датчик управляется по формуле: Левый двигатель = !(!Левый • Правый), а правый - по формуле: Правый двигатель = ’(Левый • ’Правый). Это можно было бы реализовать при помощи одной микросхемы 74С00 (че- тыре двухвходовых элемента И-НЕ), но вместо этого я выбрал контроллер BS2. Дело в том, что я решил задействовать встроенные в него функции задержки (delay) и широтно-импульсной модуляции (PWM), а также в возможности его программировать с целью обеспечить более плавную и точную работу. Робот, отслеживающий траекторию, на основе BS2 использует два опти- ческих прерывателя, установленные на куске листового металла (см. экспери- мент 48), а также лист бристольского картона с нанесенной на нем простой траекторией, по которой предстоит следовать роботу. В схеме, которую я использовал для этого эксперимента, применяются те же элементы, что в эксперименте 48 (с добавлением BS2) (рис. 17.6). Смонтировав робот, откалибровав оптические прерыватели и проверив их работу (помещая их над белым и черным листами бумаги и наблюдая свечение светодиодов, когда они находятся над черной поверхностью), вы будете гото- вы к проверке робота по следующей программе: ' Line Follower - Отслеживание траектории 1{$STAMP BS2} *{$PBASIC 2.50} 'Переменные LeftSensor pin 11 RightSensor pin 10 LeftMotor pin 1 RightMotor pin 0 ' Инициализация/ Главная high LeftMotor: high RightMotor
^alallaus^k Эксперимент 119. Робот, отслеживоющий троекторию 481 Рис. 17.6. Схеме отслежиеония траектории input LeftSensor: input RightSensor do if (LeftSensor = 0) and (RightSensor = 1) then high LeftMotor else low LeftMotor endif if (RightSensor = 0) and (LeftSendsor = 1) then high RightMotor 'Остановить правый двигатель else low RightMotor 'Иначе, правый двигатель может работать endif pause 50 high LeftMotor: high RightMotor pause 100 loop Как и для первого отслеживающего траекторию робота, вам придется на- строить время работы (Run) и останова (Stop). Одним из приятных свойств BS2 является то, чтс> вы можете использовать команду PWM, встроенную в язык PBASIC. Поэксперйментировав со значениями для включения/выключения двигателей, я установил, что могу заставить робот двигаться по кругу пример- но вдвое быстрее исходного робота на основе микросхемы LM339 и с гораздо большей точностью. Запустив робот, вы, возможно, заметите, что он скачет назад и вперед, причем это. зависит от величины вращающего момента, возникающего при остановке и
483 ГЛАВА 17. Ориентирование старте двигателей. Мне же пришлось добавить еще одно колесико в передней части робота, чтобы защитить переднюю часть от «ныряния», когда наступает пауза и когда робот неправильно распознает траекторию. Если вы не хотите этого делать, можете увеличить время паузы (понизив результирующую ско- рость робота), чтобы дать роботу возможность перестать дрожать до того, как в следующий раз будут опрошены ИК-датчики. Эксперимент 120. Робот, отслеживающий стену Детали Инструменты Набор инструментов для радиомонтажа. Эпоксид- ная смола со временем от- верждения 5 минут. Мел- кие крепежные детали. Паяльник. Припой Смонтированная печатная плата с макетной платой и BS2. Основание робота с серводвигателями, дер- жателем для четырех ба- тарей типа АА и выключа- телем. Два ИК-детектора объектов производства фирмы Sharp, типа GP2D120. Микросхема LM339, че- тыре компаратора. Два свет ;диода любого цвета. Два резистора 470 Ом. Два потенциометра 10 кОм, пред- назначенные для установки на макетную плату. Два адаптера соединитель серводвигателя - макетная пла- та. Монтажная плата из листового металла. Жесткий провод сечением 0,2 мм2 красного цвета. Жесткий про- вод сечением 0,2 мм2 зеленого цвета. Жесткий провод сечением 0,2 мм2 черного цвета Хотя многие считают «классическим» робот, ориентирующийся на свет, я всегда указываю на робо?, отслеживающий стены. Причина моей симпатии к этому устройству восходит к тем временам, когда я начал работать с набором «Собери- те собственный робот» фирмы TAB Electronics, и у меня было три встроенных приложения (хаотическое перемещение, следование за источником света и ук- лонение от источника света), а я подумывал о четвертом. Мне повезло: я спро- сил дочку, что бы ей хотелось, чтобы робот умел делать, а она ответила, что ро- бот должен уметь двигаться по лабиринту. Так получилось, что я только что прочел книжку комиксов «Флэш» («Flash»), в которой гнусный злодей силой за- хватил в плен жену Флэша и держал ее в заложницах. Чтобы контролировать Флэша, злодей устроил между ними гигантский лабиринт. Его замысел состоял в следующем: хотя Флэш способен перемещаться по лабиринту очень быстро, перемещение все же потребует времени, достаточного, чтобы злодей мог скрыться от него вместе с заложницей. Но он не принял в расчет, что Флэш знал, что можно выбраться из лабиринта, просто держа руку на стене при его прохож- дении. При этом вы неминуемо пройдете от входа, в лабиринт к его выходу.
^alaliaus^i Эксперимент 120. Робот, отслеживоющий стену 483 В конце, через несколько секунд после того, как злодей объяснил Флэшу цель ла- биринта, Флэш разгадал замысел злодея и нежно заключил свою жену в объятия. Я осознавал, что робот, отслеживающий стену, способен выбраться из лаби- ринта. Таким образом, моя дочь, которая обычно ожидает, что ее идеи для ро- бототехнических проектов (например, заставить одну из ее кукол ходить и то- пать в стиле Годзиллы на кукол помельче) будут отвергнуты, очень удивилась, увидев, с каким энтузиазмом я подхватил эту идею. За счет установки ИК-детекторов объектов под углом к передней части ро- бота действительно очень просто заставить его отслеживать стену и двигаться по периметру комнаты (рис. 17.7). Правое колесо робота будет вращаться впе- ред, пока левый датчик не обнаружит объект. В этой точке правое колесо оста- навливается, и поворачивается левое колесо. Когда оба датчика распознают объект перед собой, правое колесо вращается в обратном направлении, а ле- вое - вперед, чтобы в сильной степени развернуть робот от преграды. Я назы- ваю такое движение ходить вразвалку; а почему, вам станет ясно, когда вы уви- дите работающий робот. Стены слева Стена слева Стена слева и впереди обнаружена не обнаружена обнаружены Рис 17.7. Робот, даилжхцийа, ера молку при отслеживании стены Вы уже знакомы с ИК-детекторами объектов фирмы Sharp типа GP2D120 и знаете, как их использовать с компаратором й потенциометром, включенным как делитель напряжения, чтобы индицировать появление объекта на опреде- ленном расстоянии от него. Наклеив два таких датчика на оставшуюся часть монтажной платы из листового металла, которую вы делали для робота, отсле- живающего траекторию (рис. 17.8), вы получите бесконтактные датчики объек- тов, которые могут использоваться для обычных операций, например, для вы- хода из лабиринта или отслеживания стены. Из-за веса и неудобства монтажа придется закрепить детекторы GP2D120 на металлической пластине пока клей не высохнет. Практическая схема робота, отслеживающего стену, довольно проста (рис. 17.9). Я взял основание робота с серводвигателями, но можно использо- вать и основание с двигателями постоянного тока. Единственная неожидан- ность, о которой вам следует знать, - это соединение вывода питания датчиков GP2D120 с держателем четырех батарей типа АА (от которых питаются и сер- водвигатели), так как потребляемый ими ток больше, чем может обеспечить 5-вольтовый стабилизатор на BS2.
484 ГЛЯВЯ17. Ориентирование Рис. 17.8. Передняя часть робота, отслеживающего стены, с датчиками Sharp GP2D120, наклеенными на монтажную плоту из листового металла, которая подсоединена к передней части робота Рис. 17.9. Схема робота, отслеживающего стены При написании текста приложения для основания робота с серводвигате- лями важно помнить, что левые колеса вращаются в противоположном направ- лении по отношению к правым, когда на них подается одна и та же последова- тельность импульсов. Поэтому в приложении Wall follower, которое приведено
NataHausiiiik Эксперимент 120. Робот, отслеживающий стену 485 ниже, я определил значения импульсов при перемещении вперед и назад для каждого серводвигателя: • Wall Follower - Следовать по периметру стены '{$STAMP BS2} '{$PBASIC 2.50} ' Переменные LeftSensor Pin 15 RightSensor Pin 14 LeftServo Pin 1 RightServo Pin 0 LeftForwards var word LeftBackwards var word Right Forwards var word RightBackwars var word i var byte ' Инициализация/ главная low LeftServo: low RightServo LeftForwards = 500: LeftBackwards = 1000 RightForwards = 1000: RightBackwards = 500 input LeftSensor: input RightSensor do if (LeftSensor = 0) then for i = 0 to 5 pulsout LeftServo. LeftBackwards pause 18 next endif if (RightSensor = 0) then for i = 0 to 5 pulsout RightServo, RightForwards pause 18 next else for i = 0 to 5 pulsout LeftServo, LeftForwards pause 18 next endif pause 100 loop
486 ГЛЙВЯ17. Ориентирование Эксперимент 121. Ультразвуковое измерение дальности Детали Инструменты Набор инструментов для радиомонтажа. Батарея 6 В от фонаря (см. текст) Смонтириванкая печатная плата с макетной платой и BS2. Улыразвухозг-й модуль измерения даль- ности Polaroid 6500. Ми- кросхема 74LS123, два ждущих мультивибрато- ра. Микросхема 74LS74, два D-триггера. Резистор 10 кОм. Резистор 2,2 кОм. Электролитический конденсатор 1000 мкФ. Конденса- тор 1 мкФ любого типа. Два конденсатора 0,01 мкФ любого типа Если вы любите старые фильмы про подводные лодки, вам, возможно, захочет- ся рассмотреть ошибку, которую в них очень часто делают. Когда подводная лодка снаряжена для «бесшумного хода», и капитан (Кларк Гейбл, Кэри Грант или еще кто-либо из актеров такого же уровня) «нависает» над гидроакустиком, спрашивая, покинул ли акваторию атаковавший лодку эсминец, вы услышите характерный звук микрофонного шума, который в фильмах должен показы- вать, что гидролокатор подводной лодки работает. Это смущает, поскольку подводная лодка никогда не посылает таких сигналов - на самом деле их будет вырабатывать эсминец при сканировании океана в поисках подводной лодки. Приняв отраженные звуковые волны, капитан эсминца по времени, потребо- вавшемуся сигналам для возврата, и направлению, по которому они поступи- ли, определит местонахождение лодки и глубину, на которой она движется. Затем эсминец мчится, чтобы встать над ней и сбрасывает глубинные бомбы. Игра, цель которой - поиск подводной лодки, не такая простая. Звуковые вол- ны в воде распространяются, только пока они не затухнут до уровня ниже спо- собности микрофона уловить их, и согласно данным слежения за температурой и соленостью воды звуковые волны могут быть отражены от Подводной лодки. Вы уже знакомы с ИК-светодиодами и фототранзисторами и знаете, как их использовать для обнаружения объектов, когда от них отражается модулиро- ванный свет. Ультразвуковой «локатор» работает таким же образом. Чаще все- го роботы оснащают ультразвуковым модулем измерения дальности Polaroid 6500 (рис. 17.10). У модуля есть важные проблемы: трудности в организации интерфейса с BS2, очень узкое поле обзора, и очень высокое энергопотребле- ние (1 А при передаче ультразвуковых импульсов). Первая проблема несколько смягчается, если отпаять соединитель, постав- ляемый с модулем Polaroid 6500, и добавить отдельные провода (рис. 17.10). Через этот 9-контактный соединитель передаются щесть сигналов (табл. 17.2).
^ataHaus^k Эксперимент 121. Ультразвуковое измерение дальности 487 Рис. 17.10. Ультразвуковой модуль измерения, дальности Polaroid 6500 со снятым стандартным соединителем и подсоединенными проводами макетной платы Таблица 17.1. Цепи питания и управления модуля Polaroid 6500 Контакт Наименование Функция/ Комментарии 1 «Земля» (Gnd) 2 BLNK При подаче высокого уровня любой отраженный сигнал стирается 4 INIT Подается высокий уровень для начала ультразвукового измерения дальности. Когда на контакт INIT подается низкий уровень сигнала, работа дальномера 6500 прекращается, даже если еще не был принят эхосигнал 7 ECHO Сигнал в цепи с открытым коллектором поддерживается на низком уровне до тех пор, пока не будет принят отраженный сигнал '6 BINH Подается высокий уровень для отмены внутреннего маскирования 2,38 мс 9 Vcc Напряжение от 4,5 до 6,4 В при токе потребления не более 1 А. Между этим контактом и контактом Gnd следует подключить конденсатор емкостью 1000 мкФ Обычно питание подается на модуль 6500, когда контакты BLNK и BINH подсоединены к «земле», цепь INIT соединена с выходной схемой управления, а цепь ECHO через нагрузку подключена к питанию и соединена с приемни- ком. Взгляните на осциллограммы нормального функционирования модуля 6500, когда цепь INIT подключается к высокому уровню, а сигнал на контакте ECHO переходит в состояние высокого потенциала под действием отраженно- го импульса (рис. 17.11). Таблицу с дополнительной информацией о модуле Polaroid 6500 можно загру- зить из Интернета. Этот модуль разрабатывался как дальномер для фотоаппа- рата (указывая черным и золотым преобразователями на предмет, вы находите расстояние до него). Это было для него отличное применение, так как ультра- звуковые дальномеры обладают очень узким полем обзора (модуль 6500 наибо- лее чувствителен в пределах 4е относительно нормали). Однако это свойство
488 ГЛАВА 17. Ориентирование Рис. 17.11. Ультразвуковое «эхо» может несколько затруднить их применение в роботах. Чтобы решить эту зада- чу, можно установить датчик на «башенке», приводимой в движение серводви- гателем. Благодаря вращению башенки ультразвуковой датчик дальности будет давать угловую координату и расстояние до объектов вокруг робота. Пользуясь информацией о расстоянии и угле, довольно просто определить местоположение робота; сложность механической установки ультразвукового дальномера и необходимые для него данные заставляют меня считать его сред- ством ориентирования, а не датчиком. Чтобы быть датчиком, дальномер дол- жен сканировать окружающую область непрерывно и делать это эффективно, а это существенно замедлит движение робота. Необходимость постоянного сканирования еще больше обостряет главную для ультразвуковых дальномеров проблему. В состоянии активности они потре- бляют большую мощность. Модуль 6500 требует целый ампер тока питания, а это намного больше, чем могут обеспечить 9-вольтовая батарея печатной платы и 5-вольтовый источник питания контроллера BS2. Так что я приобрел большую 6-вольтовую батарею для фонаря. Модуль 6500 можно подключить к батарее на- прямую, однако если применяется батарея с более высоким напряжением, то ее выходной сигнал следует стабилизировать на пониженном уровне в диапазоне от 4,5 до 6,4 В. Для многих крупных роботов требование обеспечить ток 1 А при напряжении 6 В не является существенной проблемой, но для небольших это представляет значительные трудности (фотоаппараты, в которых впервые ис- пользовался ультразвуковой измеритель дальности, снабжались специальными батареями, которые выбрасывали наряду с пустыми кассетами от фотопленки). Я организовал интерфейс BS2 с модулем 6500 с помощью схемы, которая по- зволяет BS2 использовать оператор pul sin изменения времени между переходом сигнала в цепи INIT и переходом сигнала в цепи ECHO в состояние высокого уровня, в одиночный имцульс положительной полярности (рис. 17.12). Это было сделано за счет использования микросхемы 74LS123 в импульсном режиме, когда происходят два указанных события, изменения состояния D-триггера (половина микросхемы 74LS74) и формирования импульса (см. нижнюю осциллограмму на рис. 17.13). Чтобы обеспечить правильное исходное состояние D-триггеров этой
ftaiaHausiiik Эксперимент 121. Чльтрозеукоеое измерение дальности 489 Рис. 17.12. Схема ультразвукового локатора схемы, я ввел дополнительную цепь (я назвал ее InitSetupPin), сигнал в которой скачком переходит в состояние низкого уровня для установки двух триггеров. В этом одно из преимуществ работы с микроконтроллером; он позволяет ини- циализировать внешние аппаратные схемы эффективнее, чем это сделала бы ваша собственная схема сброса. Рис. 17.13. Форма сигналов ультразвукового локатора Разработать такую схему было непросто. BS2 недостаточно хорошо приспо- соблен для такой работы. Во-первых, у него отсутствует метод понимания того, какой интервал времени требуется для выполнения оператора. Время от мо- мента, когда сигнал INIT переходит в состояние высокого уровня (оператор
490 ГЛАВА 17. Ориентировоние pulsout) до момента, когда BS2 начинает опрашивать сигнал ECHO (импульса- ми), неизвестно. Если таковое имело место, его можно прибавить к оператору, опрашивающему сигнал ECHO, чтобы узнать, когда он переходит в состояние высокого потенциала. Такое свойство, как правило, имеется у традиционного микроконтроллера, и дополнительная схема, нужная для данного эксперимен- та, не потребуется. Вторая проблема: возможность выполнять более одного задания за раз или прерывать текущее задание. И вновь, такая возможность имеется у большинства традиционных микроконтроллеров. После монтажа схемы на макетной плате я ввел текст приведенной ниже программы и сохра- нил ее как Ultrasonic Ranging в папке Sonar внутри папки Evil Genius. 'Ultrasonic Ranging - Использование-ультразвукового модуля измерения дальности Polaroid 6500 '{$STAMP BS2} '{$PBASIC 2.50} 'Описание контактов и переменных InitPin pin 15 InitSetupPin pin 13 FlightPin pin 0 SoundFlight var word Soundin var word SoundFt var word ' Инициализация/ главная low InitPin high InitSetupPin input FlightPin do pulsout InitSetupPin, 10 'Установка аппаратного обеспечения для считывания импульса high InitPin 'Обращение к выходу, чтобы вызвать импульс длительностью 150 мс pulsin FlightPin, 0, SoundFligh if (SoundFlight <> 0) then debug "Time of Flight is ", dec ' "Время полета " SoundFlight * 2-, I ms I, cr Soundin - SoundFlight I 153 SoundFt = Soundin I 12: Soundin = Soundin // 12 debug "Distance from Sensor to Object ", dec SoundFt, " ' " , dec Soundin, rep 34\1, cr ’ "Расстояние от датчика до объекта " endif low InitPin pause 1000 loop Чтобы завершить обсуждение различных типов детекторов объектов, я сум- мировал сведения по трем основным методам, используемым в роботах (усики, ИК-детектор приближения и ультразвуковой измеритель дальности), в табл. 17.3.
Эксперимент 122. Компас на основе эффекта Холла 491 Подчеркну: ни один из методов не оптимален для всех областей применения (если только вы не контролируете полностью внешние условия, в которых рабо- тает робот). Таблица 17.3. Методы обнаружения объектов, используемые в роботах Метод обнаружения объектов Преимущества Недостатки Комментарии Физические усики Обнаруживает любые объекты Недорог Множество различных способов изготовления Легко повредить Требует постоянного внимания Требует программных средств борьбы с дребезгом Ограниченный диапазон обнаружения может привести к повреждению робота Возможность накопления электростатического заряда Как правило, небольшое поле обзора Наилучший для обнаружения столкновений в наихудшем случае Наилучшим образом сочетается с механической конструкцией робота ИК-детектор приближения Надежен Сравнительно недорог Не требуется мер против дребезга В продаже имеются готовые модули Широкое поле обзора Трудно получить дальность до объекта Может оказаться сложной установка аппаратного и ПО для детектора Широкое поле обзора может захватить объекты, неопасные и неинтересные для робота Хороший инструмент для обнаружения объектов общего применения. Может быть построен на электронной печатной плате или подсоединен к роботу дистанционно Ультразвуковой измеритель дальности Надежен Узкое поле обзора помогает отслеживать траекторию объектов вокруг робота Большая потребляемая мощность Ограниченное поле обзора требует какого-то метода сканирования для нахождения всех близлежащих объектов Самый дорогой вариант Часто при этом методе очень трудно заставить измеритель работать Годится только для продвинутых робототехнических устройств Эксперимент 122. Компас на оснопе эффекта Холла Детали Смонтированная печатная плата с макетной платой. Два ключа на основе эф- фекта Холла с дифферен- циальным выходом, типа HAL300UA-E Микросхема LM324, четыре операци- онных усилителя. Два ре- Набор инструментов для радиомонтажа. Цифровой мультиметр зистора 3,3 МОм. Два резистора 4,7 кОм Эксперименты для этой книги я выбирал по двум критериям. Первый: рассма- тривать теорию и практику самых основных компонентов робота. По-моему,
492 ГЛАВА17. Ориентировоние я достиг в этом успеха. Вы должны быть способны предложить свою собствен- ную уникальную конструкцию робота, выбрать основные необходимые подси- стемы и точно определить их составные части. Второй: знакомя вас с различны- ми элементами, я пытался представить их нетрадиционным образом, разыскивая не те эксперименты, схемы и конструкции, о которых обычно думают, когда об- суждают робототехническую тематику. Я заговорил об этом, потому что мы еще не обсудили ряд полезных компонентов роботов. Один из наиболее полезных приборов - ключ на основе эффекта Холла (рис. 17.14). При работе этого прибора ток пропускается через кремниевый кристалл, а если на него не воздействует внешнее магнитное поле, то ток про- ходит через него без отклонения. Если имеется магнитное поле, ток отклоня- ется и поступает на другой датчик. Магнит Датчик отклоня- ющегося тока Датчиктока без отклонения Путь тока в магнитном поле Источник тока I Путь тока при отсутствии магнитного поля Рис. 17.14. Ключ на основе эффекта Холла Указанное магнитное отклонение тока через полупроводник известно и ча- сто используется в роботах для реализации одометрии. Вместо того чтобы уста- навливать оптический прерыватель, как я делал ранее, можно просто наклеить один-два магнита на колесо, привод или ось и подсчитывать число оборотов с помощью ключа на основе эффекта Холла. Ключи на основе эффекта Холла очень часто применяются в автомобильных противоблокировочных тормозных схемах в качестве датчиков вращения колес: поскольку они активируются с по- мощью магнита, их механическая прочность очень высока, и они не требуют никакой очистки в отличие от оптического прерывателя. Большинство ключей на основе эффекта Холла поставляется в корпусах с тремя выводами: положительным (вход питания), отрицательным («земля») и сигнальным. На последнем обеспечивается выходной сигнал в различных фор- матах (например, открытый коллектор/сток, двухтактный выход или аналого- вый выход). Как правило, ключи на основе эффекта Холла индицируют нали- чие южного полюса магнитного поля. В этом эксперименте мы используем два ключа на основе эффекта Холла, чтобы указать направление на юг. Я обнаружил это приложение в сборнике технических данных изделий фирмы. Texas Instruments. Как я уже говорил в начале этой главы, для навигации в старину знание направления на север и юг имело важнейшее значение. Мне всегда хотелось испытать эту схему, чтобы посмотреть, насколько хорошо она работает в роботах. Сама по себе схема проста (рис. 17.15), и на ее монтаж потребуется всего несколько минут.
^lalaUatis^ Эксперимент 122. Комлос но основе эффекта Холла 493 Рис. 17.15. Схема компаса Применение указанных на схеме номиналов резисторов дает усиление диф- ференциального сигнала порядка 700 раз. Это отличное применение операци- онного усилителя для таких ситуаций, как данная, когда нужно следить за раз- ностью между двумя сигналами. Прежде чем разрабатывать интерфейс с BS2, я хотел проверить работу этой схемы. Она состоит из двух датчиков на основе эффекта Холла, развернутых в противоположных направлениях, причем их выходные сигналы (включенные дифференциально) многократно усиливаются с помощью операционного усили- теля (ОУ). Когда ключ на основе эффекта Холла, соединенный с неинвертирую- щим (положительным) входом ОУ, указывает прямо на юг, его выходной сигнал принимает максимальное значение, тогда как на ориентированном в северном направлении ключе имеется минимальное значение выходного сигнала. Разно- сти выходных сигналов должны быть очень незначительны из-за сравнительно небольшой индукции магнитного поля Земли, которую детектирует данная схе- ма. Подав эти напряжения на входы ОУ и усилив разность между ними, эта схема должна выдавать наиболее высокое напряжение, когда положительный ключ на основе эффекта Холла указывает на юг, а отрицательный - на север. Я проверил собранную схему, чтобы посмотреть, насколько эффективно она определяет север и юг. Когда я поворачивался дома, на выходе схемы не проис- ходило заметных изменений. Выйдя на улицу, я установил, что схема неодно- кратно показывает выходное напряжение 1,86 В, когда ее конец с батареей ука- зывает на север, и это напряжение падает до величины 1,83 В, когда схему поворачивают в любом ином направлении. Это составляет разницу в 1,6%, и ее очень трудно наблюдать при помощи простой схемы с использованием ком- пьютера. Я продолжал исследовать схему компаса (и искал иные или более эффектив- ные датчики на основе эффекта Холла). Кроме того, когда поворот схемы пре- кращается, устанавливается постоянное значение выходного сигнала компаса,
494 ГЛЯВЯ 17. Ориентировоние что занимает не менее 15 с. Наряду с этим (указанное время велико) пределы, в которых индицируется направление на север, составляют примерно 15е, и это намного более широкие пределы, чем нужно для практического робота любого типа. Кроме того, я интересовался, насколько эффективно будет работать компас на шасси робота совместно с магнитными приборами, многие из которых по- рождают поля, значительно более сильные, чем магнитное поле Земли. Вы можете проверить это последнее предположение, придвинув постоянный маг- нит близко к двум ключам на основе эффекта Холла. Итак, можно сказать, что схема электронного компаса, которую я здесь пред- ложил, не обеспечивает на выходе достаточно заметного сигнала, который было бы просто измерить; диапазон, в котором схема будет индицировать направле- ние на север, превышает тот, что мог бы обеспечить эффективное ориентирова- ние, а время установления выходного сигнала очень велико. Эксперимент 123. Интерфейс ИМ€А GPS Детали Набор инструментов для радиомонтажа. Паяльник. Припой Смонтированная печатная плата с макетной платой и BS2. Прибор GPS с ин- терфейсом RS-232. Ми- кросхема Ma^m МАХ232 с интерфейсом RS-232. Пять электролитических конденсаторов 1,0 мкФ. Штыревой 9-контактный разъем D-Shell, пред назна- ченный для пайки. Жесткий провод сечением 0,2 мм2 черного цвета. Жесткий провод сечением 0,2 мм2 крас- ного цвета. Жесткий провод сечением 0,2 мм2 зелено- го цвета Я до сих пор не познакомил вас с тем, что считаю наиболее важным интерфей- сом между компьютерами. В главе 16 я представил вам концепцию последова- тельной передачи данных без возврата к нулю (Non-retum to Zero, NRZ), и вы использовали RS-232 для программирования BS2, но я не показал электриче- ский интерфейс RS-232, который несомненно является наиболее оптимальным способом соединения двух компьютерных систем. Меня всегда удручало коли- чество дипломированных инженеров, которые ни разу успешно не реализова- ли собственное соединение RS-232 между двумя компьютерами. Это несложно; вам придется только один раз разобрать его шаг за шагом, чтобы понять, как оно выполняется.
^ataHaus^k. Эксперимент 123. Интерфейс NM€R GPS 495 RS-232 восходит к самым ранним компьютерным временам. Старые системы строились не на транзисторах (не говоря уже об интегральных микросхемах), и поэтому их рабочие параметры были несколько необычны по сравнению с со- временными компьютерами. В настоящее время мы, вероятно, захотим исполь- зовать для связи питание 5 В и обеспечим «беседу» двух компьютеров при помо- щи всего нескольких логических элементов, чтобы буферизовать сигналы между ними (защитить и восстановить их уровень). Это действительно тот самый спо- соб, который был выбран для первых компьютеров, но они не работали с про- стыми логическими потенциалами +5 В и Земля. В них для логических операций использовались электровакуумные приборы, а их рабочие напряжения были зна- чительно выше и различались между собой. Чтобы способствовать простому вза- имодействию двух систем, использовался уровень напряжения от -3 до -15 В для индикации 1 (или значащего разряда) и от +3 до 15 В для индикации 0 (или про- бела). Шестивольтовая область между двумя указанными диапазонами напряже- ний (от -3 В до +3 В) была названа областью коммутации, и напряжения сигна- лов связи, проходящие между двумя сисмемами, никогда не должны попадать в эту область. В стандарте указывался максимальный ток, подлежащий передаче между двумя системами, равный 20 мА, - эта величина происходит от первых те- летайпов. Первые две системы, соединенные при помощи RS-232, находились в раз- ных помещениях размером со школьный физкультурный зал; вы должны по- мнить, что эти системы требовали столько электроэнергии, как небольшая фабрика. Это не преувеличение. Из-за требований к пространству и потребля- емой мощности было нереально, чтобы две системы находились в близком со- седстве, и поэтому им приходилось связываться друг с другом по телефонным линиям через устройство под названием модем. Я подчеркиваю это, потому что должен был существовать какой-то способ соединения компьютерных систем с модемом. Это делалось при помощи указания стандартных рзъемов с различ- ными функциями контактов. Эти разъемы известны под названием разъмов D-Shell, и им был присвоен стандартный рисунок распайки, который существу- ет и по сей день (рис. 17.16). В табл. 17.4 представлена распайка стандартного 25-контактного разъема и более нового 9-контактного, созданного для ПК. Таблица 17.4. Распайка контактов разъемов RS-232 Наименование контакта 25-контактный разъем 9-контактный разъем Направление ввода/вывода (I/O) TXD 2 3 Выход (0) RXD 3 2 Вход (1) Gnd 7 5 RTS 4 7 0 CTS 5 8 1 DTR 20 4 О DSR 6 6 1 Rl 22 9 1 DCD 8 1 .1
496 ГЛАВА 17. Ориентировоние DB-25 D-9 (Штыревой) (Штыревой) Рис. 17.16. Разъемы RS-232 Штыревой 9-контактный разъем «D-Shell» Разъемы, встроенные в компьютеры, являются штыревыми [то есть их контакты выполнены в виде штырьков (рис. 17.16)], и их называют разъема- ми оконечного оборудования данных (data terminal equipment, DTE). Моде- мы имеют сопряженные с ними (гнездовые) разъемы оборудования передачи данных (data communication equipment, DCE). Оконечное оборудование дан- ных (а именно ПК) обычно использует переходные соединители для связи с модемами и другими периферийными устройствами (например, с печатной платой). В Интернете или в литературе по RS-232 можно найти довольно странные схе- мы, обеспечивающие взаимодействие схемы стандарта 5 В (или 3,3 В) с линией RS-232. Эти схемы будут работать где угодно, а по времени - от почти всегда до иногда, причем у вас будет очень ограниченая возможность понять проблемы связи. Чтобы избежать проблем при попытках отладить сбои RS-232 в схемах, которые выполняют ускоренно функции с уровнями напряжения, советую вам избегать таких схем и использовать что-либо вроде микросхемы Maxim МАХ232. Она обеспечит вас интерфейсом RS-232, который работает при точных уровнях напряжения. МАХ232 довольно просто включить в схему. При покупке вам при- дется выбирать между МАХ232 (с ней используются конденсаторы 1,0 мкФ) й МАХ232А (с ней используются конденсаторы 0,1 мкФ). Обычно предпочитают оригинальную микросхему МАХ232, так как электролитические конденсатры 1,0 мкФ довольно дешевы. Давайте создадим интерфейс стандарта RS-232 между печатной платой и пе- риферийным устройством - приемником Глобальной системы навигации и оп- ределения положения (Global positioning system, GPS), который взаимодейству- ет с другими устройствами по стандарту связи NMEA 0183. Сокращение NMEA происходит от названия Национальной Ассоциации морской электроники (National Marine Electronics Association). Это соединение RS-232, работающее на скорости 4800 бит/с и передающее навигационную информацию в виде после- довательности «предложений». Возможно, вы знакомы с GPS; множество искус- ственных спутников, находящихся на околоземной орбите, передают сигналы, которые помогают ориентироваться самолетам, кораблям и автомашинам. Вы можете купить великолепные приемники GPS, например, такие, как мой Garmin еТгех (рис. 17.17) всего за несколько сотен долларов. Ищите приемник GPS, обладающий способностью поддерживать связь с другими системами через
ftalaHausiiik. Эксперимент 123. Интерфейс NM6R GPS 497 NMEA 0183 (RS-232) и передавать данные как о местоположении (GPS), так и о направлении (компас). Наряду с такими функциями, как определение местопо- ложения (возвращаемым в виде широты и долготы) и курса по компасу, прибор GPS может отображать движущуюся карту, которая покажет вам в точности, где вы находитесь и куда направляетесь. Рис. 17.17. Приемник Garmin еТгех ewgaer информацию о положении и курсе через интерфейс NM€R, а также отображение движущейся корты «Предложения» NMEA состоят изданных в формате, приведенном в табл. 17.5. Таблица 17.5. Особенности «предложений» при связи в формате NM€fl 0183 Символ Позиция Пример - Комментарии Заголовок 1 Всегда $ Идентификатор 2-3 GP - GPS/ НС - курс по компасу Форматтер 4-6 GSV - спутники GPS в пределах видимости/ HDG - курс с отклонением Данные 7... Данные в коде ASCII, разделенные запятыми. Различны для каждого форматтера Завершение предложения Последние два символа Символы ASCII Возврат каретки и Перевод строки Данные NMEA могут выглядеть, как шумы, и всегда поступают на скорости, которой вы не можете управлять (предложения разделены паузами длительно- стью от 0,8 до 5 с), однако для такого контроллера, как BS2, достаточно просто интерпретировать эти данные и извлечь из них полезную информацию. Последний эксперимент этой книги состоит в создании простого приложе- ния для BS2, которое следит за входящим потоком данных NMEA и выделяет из него информацию о курсе по компасу. Формат предложения для курса по компасу таков: $HCHDG, Heading,,,Deviation,W*0A,cr-lf Его можно принять, используя аппаратное обеспечение, показанное на рис. 17.18, и выделить из потока данных с помощью следующего приложения, которое следует сохранить в папке RS-232 внутри папки Evil Genius.
498 ГЛАВА 17. Ориентирование IMF 1pF I---(C1+ J.+ Lqv+ L---IC1- 1jiF£< C2+ Рис. 17.18. Схема RS-232 C2- Vcc Gndb- T1out h Rlin к Rtout h T1in к dT2out T2in I IR2in R2out I Vdd МАХ232 %F ' GPS Receiver - Принять данные от eTrex '($STAMP BS2} '{$PBASIC 2.50} ' Переменные Serialinput Pin 0 SerialOutput Pin 1 CompassHead var byte(6) i var byte ' Инициализация/ главная high SerialOutput do serin Serialinput, 188, [WAIT("HCYDG,"), STR CompassHead\6] i = 5 do while (CompassHead(i) <> i = i - 1 ‘ Отобразить в виде точки, отделяющей целое от дроби loop debug "Heading ", str CompassHead\i, "degrees.", cr 'Курс градусов loop В этом приложении я использую преимущества оператора последовательного ввода (serin) языка PBASIC и ожидаю строки HCHDG (в PBASIC ее длина ограниче- на шестью символами), прежде чем сохранять следующие шесть символов. Эта спо- собность PBASIC ожидать или искать данные очень облегчает написание подобных приложений. Когда у меня есть последующие шесть символов, я повторно прочи- тываю их, разыскивая десятичную точку, отделяющую целое от дроби в значении угла (десятые доли градуса - это более высокая точность, чем нужная мне для боль- шинства приложений), и передаю на программируемый ПК оператором debug.
^aiaHaus^i' Приложение 1 Российские аналоги применяемых я экспериментах электронных компонентов. материалов и приборов В силу целого ряда экономических и политических причин российская электрон- ная промышленность существенно отставала от развитых зарубежных стран. И все же с середины 60-х вплоть до начала 90-х годов XX века эта отрасль раз- вивалась очень интенсивно, поскольку в ней были сосредоточены огромные материальные и интеллектуальные ресурсы, нацеленные главным образом на освоение космоса и нужды военной связи и управления. Все это время отече- ственные разработчики шли по пути создаия аналогов микрокомпонентов из- вестных и освоенных западных серий, и в первую очередь это касается цифро- вой логики и операционных усилителей.
500 123 эксперимента по робототехнике Последние 15 лет общий кризис российской индустрии и развал СССР, со- провождавшийся нарушением хозяйственных связей в первую очередь с При- балтикой и Украиной, привели к парадоксальной ситуации: на рынке проще найти импортные компоненты, а не отечественные. На них и ориентируются в настоящее время профессиональные разработчики электронной аппаратуры в России, и любителям, приобретающим компоненты для экспериментов дан- ной книги, можно посоветовать то же. По этой причине приведенная в Приложении 3 плата сохранила оригиналь- ный шаг координатной сетки (1 дюйм s 2,54 мм). Схемы экспериментов, кото- рые собираются на макетной плате, допускают применение как российских, так и импортных компонентов, в основном дискретных. Наиболее дешевые. детали (среди них встречаются неликвиды оборонных предприятий) можно приобрести на радиорынках Москвы (главным образом на Царицынском). Для поиска деталей полезно также обратиться к информационному сайту сети спе- циализированных магазинов «Чип и Дип» http://www.chip-dip.ru. Ниже перечислены некоторые российские аналоги упоминаемых в книге компонентов, материалов и приборов (табл. 1.1). Таблица 1.1. Российские аналоги компонентов, материалов, приборов, упоминаемых в данной книге. Наименование Тип Номер эксперимента Аналог, комментарии Припой 40/60 flux core solder 10 ПОС-60 Плата макетная 12 См. данные о платах типа WB на сайте http://www.platan.ru Светодиод 12 ЗЛ102 Цифровой мультиметр 14 МП-1 Микросхема таймер 555 38 1006ВИ1 Фоторезистор 40,98 ФТ-256 Стабилитрон 61 2С156 с подбором напряжения стабилизации 5,1 В Микросхема 74LS74 66 К555ТМ2 Микросхема 74LSOO 69 К555ЛАЗ Микросхема 74LS86 71 К555ЛП5 Микросхема 74LS85 75 К555СП1 Потенциометр 113 СП5-2В (многооборотный)
ftatatlausfiilk Приложение 2 Справочная информация о PBASIC Параметры BS2 Объем памяти: 2К электрически стираемой перепрограммируемой постоянной памяти (СППЗУ), 26 байт переменной памяти (ОЗУ)*. Язык программирования: PBASIC. Число контактов ввода/ вывода: 16 + 2 (предназначенных для интерфейса RS-232). Скорость: приблизительно 4000 операторов в секунду. Потребляемый ток: 8 мА в рабочем режиме, 100 мкА в режиме ожидания. Источник питания: Параметры по току через контакт: втекающий ток от источника 20 мА, вы- текающий - 25 мА (типовые значения). Выходные параметры встроенного стабилизатора: 5 В ± 5%, потребление 50 мА от источника 12 В и 150 мА от источника 7,5 В. Назначение контактов указано в табл. II. 1. Таблица 11.1. Назначение контактов BS2 Контакт Наименование Функция 1 SOUT Последовательный выход RS-232 с BS2. Последовательный контакт 16 2 SIN Последовательный вход RS-232 на BS2. Последовательный контакт 16 3 ATN Контакт привлечения внимания оператора RS-232. Соединен с цепью готовности терминала к передаче данных (DTR) ведущего ПК (DB9, контакт 4) * Информация любезно предоставлена компанией Parallax, Inc., Роклин, Калифорния (http:// www.parallax.com). *
502 123 эксперимента по робототехнике Таблица 11.1. (окончание) Контакт Наименование Функция 4 VSS «Земля» BS2. Аналогичен контакту 23 5-20 Р0-Р15 Контакты ввода/ вывода (I/O) общего назначения 21 Vdd Стабилизированные 5 В. Если внешний источник питания соединен с цепью VIN, то на выходе +5 В (до 90 мА). Может работать от +5 В, чтобы питать BS2 22 RES Подсоединенный к питанию контакт сброса, активен при подаче нуля 23 VSS «Земля» BS2. Аналогичен контакту 4 24 VIN Нестабилизированное питание в пределах от 5,5 до 15 В Операторы паспортной записи PBASIC Следующие операторы должны предшествовать операторам любого текста приложения. Оба оператора должны применяться, чтобы использовать пре- имущества всех встроенных функций PBASIC: '{$STAMP BS2) '{$PBASIC 2.5} Метки встроенных портов ввода/вывода (I/O) языка PBASIC Метки представлены в табл. II.2. Таблица 11.2. Метки портов ваофУвывода Имя Функция INS_____Слово из 16 битов, которое возвращает значение РО - Р15__________________ INL_____Число из 8 битов, возвращаемое из РО - Р7_ _________ _____ INH_____Число из 8 битов, возвращаемое из Р8 - Р15_______________________________ IN#_____Число из 1 бита, возвращаемое для разряда P#_____________________________ OUTS Слово из 16 битов, используемое для установки выходных значений РО - Р15_ OUTL Число из 8 битов, передаваемое на РО - Р7__________________________ OUTH Число из 8 битов, п< ( *\£ляэемое на Р8 - Р15__________'____________________ OUT# Один бит для установки выходного значения разряда P#_____________________ DIRS Слово из 16 битов, используемое для установки состояния ввода/ вывода (I/O) контактов РО - Р15. Записанная на контакт I/O единица переведет его в режим выхода. _________Записанный на контакт I/O ноль пе^еосдет его в режим входа._____________ DIRL__________________________________________________________________________Число из 8 битов, устанавливающее состояние I/O контактов РО - Р7 DIRH Число из 8 битов, устанавливающее состояние I/O контактов Р8 - Р15_ DIR#____Число из одного бита, устанавливающее состояние I/O для контакта P#______ W#Переменная из 16 битов (возможны от W0 до W12) B# Переменная из 8 битов (возможны от ВО до В25). Пространство, используемое для переменных из 8 битов, пересекается с пространством, используемым для переменных из 16 битов. Разделите # в B# на 2 и округлите результат с понижением, чтобы опреднлить, в какой из 16-битовых переменных размещается 8-битовая переменная
?\aiatiaus^k Приложение 2. Сгуюаэчьюя информоция о PBRSIC 503 Описание констант, переменных и контакта» PBASIC Постоянные величины определяются операторами формата: ConstantName con value Постоянные величины могут состоять из других величин, подвергнутых действию математических операторов, или констант с их модификаторами типа, состоящих из следующих символов (табл. П.З): Таблица 11.3. Модификаторы типа для констант Модификатор Тип данных Отсутствует Десятичная величина $## Шестнадцатиричная величина %##j Двоичная величина # Возвращаемое значение кода ASCII Переменным можно дать имена и отвести определенный объем памяти ди- намически внутри с помощью оператора описания: VariableName var Type где Туре может быть бит (bit), полубайт или четыре бита (nib), байт (byte) и слово из 16 битов (word). Тип переменной может также быть другой переменной, чтобы совместно использовать пространство памяти, либо может подразделяться на старший байт (или bytel), младший байт (или byteO), старший полубайт (или nib3 или nibl в зависимости от типа переменной), младший полубайт (или nibO) и бит# (а также старший бит и младший бит). Например, светодиод на выходном кон- такте можно определить как: LED var OUTS, bit О Одномерные массивы (с нумерацией членов от 0 до size 1) определяются как VariableName varType(size) Контакты определяются оператором описания: PinName Pin # причем # представляет собой номер контакта, подлежащего определению (от Одо 15). Арифметические операторы Ниже перечислены операторы языка PBASIC (табл. II.4). Операторы, доступ- ные только в описаниях констант, помечены в колонке «Константа».
504 123 эксперимента по робототехнике Таблица 11.4. Арифметические операторы Символ/Формат Константа Функция SQRA п Возвращает квадратный корень из А ABSA П Возвращает абсолютную величину от А COS А п Возвращает значение косинуса из 16 битов для угла А, выраженного значением из 8 битов (от 0 до 255) SIN А п Возвращает значение синуса из 16 битов для угла А, выраженного значением из 8 битов DCDA п Декодер функции 2 в степени п (DCD 4 = ЗДХЮООООООО010000) NCDA п Приоритетный шифр величины из 16 битов (NCD 12 = 8) AMIN В п Возвращает наименьшую величину АМАХВ п Возвращает наибольшую величину A DIG В п Возвращает цифру В из десятичного числа А A REV В п Инвертирует В битов из числа А (начиная с самого младшего двоичного бита) А“В Y Побитная функция ИСКЛЮЧАЮЩЕЕ ИЛИ величин А и В А| В Y Побитная функция ИЛИ величин А и В А&В Y Побитная функция И величин А и В ~А Y Возвращает побитно дополнительный код от А А» В Y Сдвигает А вправо на В битов А« В Y Сдвигает А влево на В битов А/В Y Делит А на В А//В п Возвращает остаток от деления А на В А*В Y Умножает А на В А** В п Умножает А на В и возвращает старшие 16 битов из 32-битового результата А*/В п Умножает А на В и возвращает средние 16 битоа из 32-битового результата А-В Y Вычитает В из А. -А Y Возвращает А со знаком «минус» А + В Y Прибавляет А к В Команды форматтеров данных debug и serout Выдаваемые на выходе строки указываются внутри двойных кавычек, причем числовые данные и данные в коде ASCII могут быть отображены на дисплее при помощи форматтеров, перечисленных в приведенной ниже табл. П.5. Многокомпонентные данные (иногда с форматтерами) могут быть выведены на выход из одного оператора за счет разделения их запятыми. Таблица 11.5. Форматтеры языка PBASIC Форматтер Функция ? Отображает «Symbol = #» и возврат каретки. Может быть объединен с другими форматтерами, с целью отобразить данные в различных форматах (например, hex? hexVariable)
^'atatfaus^i Приложение 2 Справочной информация о PBASIC 505 Таблица 11.5. (окончание) Форматтер Функция ASC? Отображает «Symbol = #» и возврат каретки, где # это представление в коде ASCII для данного символа. DEC{1j5) Десятичное отображение. Иногда указывается число отображаемых цифр (не обязательно) SDEC{1J5} Десятичное отображение со знаком. Иногда указывается число отображаемых цифр (не обязательно) HEX{1j4) Шестнадцатеричное отображение. Иногда указывается число отображаемых цифр (не обязательно) SHEX{1j4) Шестнадцатеричное отображение со знаком. Иногда указывается число отображаемых цифр (не обязательно) IHEX{1j4) Указывает (вместе с действием символа $) на шестнадцатеричное отображение со знаком. Иногда указывается число отображаемых цифр (не обязательно) ISHEX{1j4) Указывает (вместе с действием символа $) на шестнадцатеричное отображение со знаком. Иногда указывается число отображаемых цифр (не обязательно) BlN{1j16) Двоичное отображение. Иногда указывается число отображаемых цифр (не обязательно) SBIN{1j16} Двоичное отображение со знаком. Иногда указывается число отображаемых цифр (не обязательно) IBIN{1j16) Указывает (вместе с действием символа %) на двоичное отображение со знаком. Иногда указывается число отображаемых цифр (не обязательно) ISBIN{1j16) Указывает (вместе с действием символа %) на двоичное отображение со знаком. Иногда указывается число отображаемых цифр (не обязательно) STR Oytaarray{\#} Отображает строку ASCII в массиве, пока не встретится символ NULfSOO) или же пока не будет отображено указанное (не обязательно) число символов REP byte\# Отображает указанный символ ASCII # раз Для управления дисплеем с оператором debug используются специальные управляющие символы, перечисленные ниже в табл. II.6. Для специальных уп- равляющих символов используйте гер#\1, где # - значение кода ASCII, приве- денное в таблице. При использовании специальных управляющих символов (см. табл. П.6) с оператором serout рекомендуются только символы bell, bksp, tab, Line Feed и cr, так как их будут поддерживать различные оконечные устройства ASCII. Таблица 11.6. Специальные управляющие символы Специальные управляющие символы Символ Код ASCII Функция Clear Screen els 0 Очищает экран и помещает курсор в исходное положение на Отладочном Терминале Home home 1 Помещает курсор в исходное положение (верхний левый угол Отладочного Терминала) Move to (x,y) 2 Перемещает курсор в указанное положение на Отладочном Терминале. За ним должны сл ад;латъ две величины координат (х, а затем у) Cursor Left 3 Перемещает курсор на Отладочном Терминале на одну колонку влево Cursor Right 4 Перемещает курсор на Отладочном Терминале на одну колонку вправо
w g1 <T> X x 2 Я о s 2 g H 2 &* X о О о Wl 8 К I I 8 Таблице 11.8. Функции и операторы PBASIC Оператор Пример Комментарии и параметры Комментарий Все, что написано справа от одиночной кавычки (*), игнорируется Присваивание А=В + С Присваивает переменной значение результата одной арифметической операции. Если в операторе указано несколько операций, то они выполняются слева направо. Порядок операций в многослерационном операторе присваивания может быть «усилен» за счет заключения операций с более высоким приоритетом в круглые скобки Останов BS2 end Прекращает выполнение контроллером BS2 любого дальнейшего программного кода. BS2 переходит в режим пониженного потребления Останов BS2 stop Останавливает работу BS2, не переводя его в режим пониженного потребления Цикл do... loop Неоднократно выполняет программный код, записанный между do и loop. Возможен выход из цикла с помощью операторов goto или exit Цикле условием продолжения do while condition ...loop Повторяет программный код, записанный между операторами do и loop, пока условие (condition) остается истинным Цикле условием завершения do ...loop until condition Повторяет программный код, записанный между операторами do и loop, пока условие (condition) не окажется истинным Адресная метка Label: Конкретный адрес внутри приложения Переход на метку goto Label Изменяет ход выполнения программы, чтобы продолжать после оператора Label: Переход к подпрограмме gosub Label Выполняет команды, записанные после оператора Label:, пока не встретится оператор возврата return Возврат из подпрограммы return Возвращает к оператору, следующему за оператором gosub Label Условный оператор if condition then else statement Если условие истинно, то он выполняет первый оператор. Если условие ложно, то он выполняет оператор после else. Else и оператор, который за ним следует, являются необязательными. Несколько операторов могут выполняться, если условие истинно или ложно, если они разделены дэ^еточием (:) Условное выполнение нескольких операторов if condition then ...else ...endif Если условие истинно, то выполняются операторы, непосредственно следующие за оператором if. Если условие ложно, то выполняются операторы, следующие за пле^гт эром else. Else и следующие за ним операторы являются необязательными Условный переход if condition then Label Проверка условия происходит в формате A cond в, где cond это = (равно), О (не равно), < (меньше), <= (меньше или равно), > (больше) или >= (больше или равно). АиВ могут быть переменными, константами или выражениями. В этом операторе допустимы круглые скобки. Для объединения нескольких выражений в условии могут служить логические операторы (и, ИЛИ и НЕ)
Таблица 11.8. (продолжение) Оператор Пример Комментарии и параметры Оператор повторания for Variable = linitial- Value to StopValue {step StepValue}...next Загружает variable со значением linitialvalue и выполняет код до следующего оператора. В следующем операторе увеличивает variable либо на 1, либо на величину шага stepvalue, если она указана. Когда Variable станет больше, чем stopvalue, выполняет первый оператор после next Переход исполнения branch Offset, [AddressO, Adressl,...] Переходит к адресу Adressi для значения ветви * Выполнение кода в соответствии со значением данных case condition case condition case else endselect Выбор выражения. Выполняется в соответствии со значением выражения. Условие состоит из постоянной величины с необязательным оператором сравнения (=, о, >, >=, < или <=) и выполняет код, следующий за оператором case, если условие истинно. Case else предназначено для значений выражения, которые не совпадают ни с одним из установленных условий Борьба с дребезгом кнопочного переключателя button'Pin, Downstate, Delay, Rate, Workspace, Targetstate, Address Обращается к контакту Pin и увеличивает на 1 переменную типа байт workspace, если Pin находится в нижнем полохсении, каждый раз, когда встречается оператор Button. Переходит к адресу Address, если число раз, указанное с помощью задержки Delay, ревно текущему значению workspace, и встретилось состояние Targetstate. Если кнопка отпущена, Workspace сбрасывается. Если Delay равна 0, то не предпринимаются протиеодребезговые меры и не повторяется символ (по удержанию нажатой кнопки). Если Delay равна 255, выполняются протиеедребвзговые меры, но без повторения символа. Символ повторяется, если оператор Button выполняется с задержкой Delay плюс Rate * п раз (и Delay не равна 0 или 255) Счет импульсов count Pin, Interval, Counter Производит задержку на 1 мс столько раз, каково число interval, и подсчитывает количество раз, когда на pin имеется импульс. Результат сохраняется в счетчике counter Возврат состояния debug {formatter} Data/String/ Constant,... Возвращает строку данных главному ПК на Отладочный Терминал после программирования BS2, с целью показать, что происходит в приложении. Если форматтера нет, значения переменных печатаются в десятичной записи. О форматтерах см. табл. II.5. В.табл. II.6 даны специальные упревляющие символы, которые можно использовать для управления работой Отладочного Терминала Выход сигнала кнопочного тонального набора dtmf Pin, {onTime, off- Time,} [tone{,...}] Генерирует телефонный сигнал кнопочного тонального набора. Необязательные значения onTime и of f Time задают длину тона в миллисекундах. Топе - это кнопка тонального набора для передачи данных. Если onTime и of f Time не указаны, BS2 устанавливает их по умолчанию равными 200 мс и 50 мс, соответственно Выход определенной частоты freqout Pin, Period, Freql {,Freq2} Формирует на выходе частоту Freql для указанного периода Period (в миллисекундах). Если указана Freq2, она будет смешана с Freql. Частоты Freql и Freq2 указываются в герцах, и максимальное значение равно 32767 Гц Высокий уровень на контакте high Pin Контакт Pin будет переведен в режим выхода, и на нем будет сформирован высокий уровень напряжения Таблица 11.8. (продолжение) Оператор Пример Комментарии и параметры Низкий уровень на контакте low Pin Контакт Pin будет переведен в режим выхода, и на нем будет сформирован низкий уровень напряжения Контакт «вход» input Pin Контакт Pin переводится в режим входа Контакт «выход» output Pin Контакт Pin переводится в режим выхода Изменение режима контакта reverse Pin Режим контакта Pin иэиеняится с выхода на вход или наоборот Изменение значения на контакте toggle Pin Знхпднло значение сигнала на контакте Pin изменяется на его дополнение до 1 Нахождение смещения в списке lookdown Target, {ComparisionOp}, [valueO, valuel {,...}], Variable Возвращает смещение Target в списке значений переменной variable. Зачения могут быть строками, заключенными в двойные кавычки. Необязательный оператор ComparisionOp позволяет указать, как должен выполняться поиск (по умолчанию критерием является равенство [=]) Нахождение значения в списке lookup Index, [valueO, value 1 {,...}], Variable Возвращает значение index из списка для переменной variable. Значения могут быть строками, заключенными в двойные кавычки Пониженное потребление nap Value Понижает потребление на время value, причем, если va lue равно 0, то длительность режима ожидания 18 мс. Оно равно 36 медля value, равного 1; 72 медля 2; 144мс дляЗ; 288 медля 4; 576 медля 5; 1,15 с для 6 и 2,30 с для 7. На практике задержка может отличаться от указанной на 50% Пониженное потребление pause Value Приостановка на число миллисекунд, указанное величиной value. В этом ражиме питание не экономится в такой сильной степени, как в предыдущем (пар) или последующем (sleep) Пониженное потребление sleep Value Понижает потребление на время, равное Value раз по 2,3 с Измерение импульса pulsin Pin, State, Variable Ожидает, когда контакт Pin будет в указанном состоянии state, и времени, в течение которого он находится в этом состоянии. Затем оператор возвращает время (с шагом по 0,2 мс) в переменную variable Выдача импульса на выход pulsout Pin, Period Выдает на контакте pin импульс на указанное величиной Period число интервалов по 0,2мс Выдача на выход ШИМ pwm Pin, Duty, Cycles Выдает на выход период сигнала широтно-импульсной модуляции (ШИМ) на указанном контакте Pin определенное величиной Cycles число раз. Период ШИМ равен 255 мс, причем рабочий цикл Duty составляет число миллисекунд, когда выход ШИМ находится в активном состоянии высокого уровня Получение случайной величины random Variable Возвращает в переменную variable псевдослучайное число из 16 битов 123 эксперимента по робототехнике __________________ Приложение 2 Справочная информация о PBfiSK 509
Таблица 11.8. (продолжение) Оператор Пример Комментарии и параметры Измерение постоянной времени (RC) retime, Pin, State, Vari- able Измеряет время заряда/ разряда (указано с помощью State) и ссицинмет результат в переменной variable, которая требуется для создания RC-цепи на контакте Pin. Рекомендуемый метод использования этой цепи: подключить конденсатор к Vdd с резистором, заземленным с другого конца, и использовать state, равное 1. Возвращаемое время разряда измеряется в единицах, равных 0,2 мс Предваритель- ная загрузка СППЗУ data {@StartingAddress,} Value{,"string*} Сохраняет указанную величину или строку в СППЗУ на первом доступном адресе. Начальный адрес можно задать целым числом, идущим за символом ®, перед сохраняемыми данными Запись в СППЗУ write Location, {word} Value Записывает величину типа байт в указанную ячейку памяти СППЗУ. Номер ячейки Location может быть от 0 до 2047. Чтобы убедиться, что программный код приложения не «затерся», используйте команду Ctrl+M из программы BASIC Stamp Editor, проверяя размещение приложения. Необязательный параметр word пока- зывает, что Value состоит из 16 битов вместо 8 битов по умолчанию Чтение из СППЗУ read Location, {word} Variable Считывает 8 битов из СППЗУ, находящихся в ячейке Location, в переменную Variable. Необязательный па- раметр word показывает, что Value состоит из 16 битов вместо 8 битов по умолчанию Последователь- ный ввод serin Pin {\Ffpin}, Baudmode, ={Plabel,} (Timeout, Tlabel,} [InputData] Получает данные для последовательного ввода с контакта I/O. Pin 16 - это программируемый последова- тельный порт. Выходной контакт для контроля потока данных (сигнал на нем показывает, что данные могут быть приняты) назван fpin. Определение режима передачи с измерением скорости в бодах Baudmode было дано выше. Переходы по меткам Plabel и Tlabel на адреса в случае ошибок (четность и истечение вре- мени ожидания события, соответственно) являются необязательными. Если используется опция Tlabel, должны быть указаны интервал Timeout (единица измерения - мс) и контакт контроля потока данных {fpin). InputData состоит из переменной адресата информации и переменной форматирования. Если ожидается числовая строка любого вида, используются фильтры DEC (десятичный), HEX (шестнадцатиричный) или BIN (двоичный), а также префиксы S или I, показывающие соответственно, требуется ли значение со знаком или же целое. Применение фильтра str сохраняет строку в массиве, пока не будет принято указанное число символов (с помощью параметра \#). Второй параметр \# позволяет указать завершающий строку символ. Фильтр wait(#[,# ...]) не будет возвращать никаких значений, пока указанные значения не будут впервые приняты. Фильтр waitstr будет ожидать, чтобы последовательность байтов совпала с содержимым указан- ного массива (которое может быть ограничено до \# символов). Наконец, фильтр skip # позволяет проиг- норировать заданное количество символов, прежде чем считывать входные данные Последователь- ный выход serout Pin {\Ffpin}, Baud- mode, {Pace,} {Timeout, Tlabel,} [Data] Выводит на выход последовательный поток данных на указанном контакте. Необязательный контакт для контроля потока данных fpin. О режиме передачи с измерением скорости в бодах Baudmode см. выше. Вре- мя между поступлением на выход байтов Расе измеряется в миллисекундах. Timeout и Tlabel работают так же, как и при последовательном вводе. Данные Data и их необязательные форматированные опции иден- тичны используемым с оператором debug (см. табл. II.5) Выход X-10 XOUT Mpin, Zpin, [House/ Command {\Cycles} {,...}] Выводит выходы X-10 на другие устройства. Контакт Mpin является источником модуляции для устройства интерфейса линии источника питания, zpin - это сигнал пересечения нулевого уровня с устройства ин- терфейса линии источника питания. House - это «домашний код» Х-10, a Command - подлежащая передаче команда. Cycles - количество передач величин House и Command Таблица 11.8. (окончание) Оператор Пример Комментарии и параметры Сдвиг данных на входе shiftin Dpin, Cpin, Mode, [Variable {\Bits} {,...}] Синхронный сдвиг данных на контактах Data и clock. Значения Mode - это MSBPRE (значение 0 является первым самым старшим битом и служит образцом перед синхроимпульсом), LSBPRE (значение 1 является первым самым младшим битом и служит образцом перед синхроимпульсом), MSBPOST (значение 2 является первым самым старшим битом и служит образцом после синхроимпульса), LSBPOST (значение 3 является первым самым младшим битом и служит образцом после синхроимпульса). Данные сдвигаются в указанную переменную при необязательно указанном количестве битов (по умолчанию - при восьми). Синхросигнал имеет высокий уровень в течение 1,4 мс и низкий уровень - в течение 4,6 мс Сдвиг данных на выходе shiftin Dpin, Cpin, Mode, [{\Bits) {,...}] Синхронный сдвиг выходных данных на контактах Data и Clock. Значения Mode - это LSBFIRST (значение 0 является первым самым старшим битом) и MSBFIRST (значение 1 является первым самым старшим битом). Данные берутся из OutputData и могут иметь заланжм» число сдвинутых битов (по умолчанию 8). Синхросигнал имеет высокий уровень в течение 1,4 мс и низкий уровень - в течение 4,6 мс, причем данные доступны за 1,4 мс до того, как синхросигнал переходит в состояние высокого уровня 510 123 эксперимента по робототюнике____________________________ ______________________________________Приложение 2 Справочная информация о PBBSK 511
Приложение 3 Печатная плата для экспериментов Для проведения большинства экспериментов, описанных в этой книге, вам понадобится печатная плата, чертеж которой представлен на рис. III. 1. Полу- чить эту плату можно двумя путями: заказать ее изготовление у профессиона- лов, специально оказывающих подобные услуги, или же сделать это самостоя- тельно. Первый путь обеспечит гарантированное качество платы и сэкономит время, но потребует некоторых денежных затрат. Достаточно сделать запрос в крупной поисковой системе Интернет (http://yandex.ru, http://rambler.ru), и вы получите десятки ссылок на сайты и рекламу фирм, где вам изготовят пе- чатную плату. У второго пути - самостоятельно изготовить плату - тоже есть свои преимущества: он гораздо дешевле и даст незаменимый опыт в изготов- лении печатных плат. Правда, при этом неизбежно придется повозиться, а успех не гарантирован (вы просто можете ошибиться, перенося чертеж на плату). Если у вас нет опыта самостоятельного изготовления печатных плат, следуй- те приведенной ниже методике. 1. Аккуратно вырежьте страницы 513-514 из книги, сделайте их ксероко- пию (каждую сторону - отдельно). Вырежьте из ксерокопий рис. III. 1 (а) и Ш.1 (Ь). 2. Отрежьте заготовку из двустороннего фольгированного стеклотекстоли- та толщиной 1,5 мм и размерами 120 х 90 мм. Зачистите ее вначале гру- бой, а потом мелкой шкуркой до блеска. 3. Наложите копию рис. III. 1 (а) на заготовку, скрепите их между собой (до- статочно капнуть по углам клеем ПВА). Выполните сколку отверстий, то есть тонкой острой иглой, держа ее строго вертикально, проколите бу- магу по центрам всех отверстий платы, чтобы на фольге остался ясный след. Снимите бумагу.
^alattausj^ Приложение 3. Печатной плота для экспериментов 513 Рис. III.1а. Чертеж печатной платы 4. По нанесенной разметке просверлите отверстия в плате. Крупные отвер- стия 0 3,0 проходите вначале тонким сверлом, а затем уже толстым. После сверлбвки тщательно зачистите заусенцы, протрите плату влаж- ной тряпкой, затем сухой, а затем обезжирьте ее спиртом. 5. Подложите под плату бумагу и перенесите рисунок печатных проводников и контактных площадок с чертежа на плату нитрокраской при помощи тонкого стеклянного рейсфедера. На плате есть довольно узкие места, поэтому рекомендуется делать это под лупой, закрепленной на штативе.
514 123 эксперимента по роб< тотехнике Чем крупнее вам удастся сделать площадки, тем лучше. Каждое отверстие должно иметь контактную площадку с обеих сторон платы. Даже если слу- чайно при рисовании вы замкнете между собой две соседние площадки, которые по чертежу не должны соединяться, не исправляйте работу, так как нежелательную связь всегда легко потом перерезать скальпелем на го- товой плате (нужно только не забыть это сделать до начала монтажа компо- нентов). Маркировка позиционных обозначений элементов будет вам по- лезна при монтаже и измерениях, но и ее выполняйте уже на готовой плате.
ftalaHausiisk Приложение 3. Печотной плота для экспериментов 515 6. Дайте плате высохнуть в течение часа при комнатной температуре. Затем переверните ее и приступайте к перенесению проводящего рисунка обрат- ной стороны (в этом слое платы разведена цепь земли), сверяясь с черте- жом рис. III. 1 (Ь) и обращая внимание на координаты сетки. Старайтесь соблюдать конфигурацию и ширину проводников, как на чертеже (провод- ники земляной цепи и цепи питания выполняйте более широкими, чем сигнальные цепи). Снова дайте плате высохнуть. 7. Погрузите плату в лоток для травления (подойдет лоток для фотора- бот) в раствор хлорного железа. Время травления составляет пример- но 1,5 ч. После травления промойте плату проточной водой, вытрите насухо, и снова обезжирьте спиртом. Помните, что хлорное железо, как и нитрокраска, образует небезопасные для здоровья пары и имеет неприятный запах, поэтому работу выполняйте в хоро ю вентилируе- мом помещении. 8. Плата готова. Теперь внимательно сверьте печать с чертежом, так как любая ошибка в разводке не позволит вашему устройству работать, а что еще хуже, может привести к выходу из строя дорогих компонентов. В заключение найдите те отверстия, к которым печатные проводники подходят с обеих сторон платы (таких всего 4-5). Искать удобнее, пооче- редно вставляя в отверстия тонкую иглу. Для таких отверстий нужно обеспечить переход с одной стороны платы на другую, и вы можете это сделать, установив в них небольшую заклепку. При промышленном изго- товлении отверстия платы металлизируют, осаждая на их стенки прово- дящее покрытие, что обеспечивает такой переход, а вам придется сде- лать это подручными средствами. Теперь можно приступать к монтажу компонентов на вашей собственной пе- чатной плате. Делайте его постепенно, следуя порядку изложения эксперимен- тов в книге. Как правило, пайку компонентов со штырьковыми выводами выпол- няют не со стороны установки элементов, а с обратной стороны, в то время как ко многим контактам микросхем на этой плате печатный проводник подходит со стороны установки элементов. Если бы все отверстия платы были металлизи- рованными, хороший электрический контакт обеспечивался бы автоматически. У вашей самодельной платы металлизации нет, поэтому успех целиком зависит от вашей аккуратности при пайке. Для пайки используйте паяльник мощностью не более 30-40 Вт. Выполняйте ее с обратной стороны, положив плату на кусок поролона, чтобы при случайном нажатии не повредить элементы, хорошо про- гревайте каждое соединение, чтобы припой затек в отверстие, образуя надеж- ный контакт. По возможности (если не мешают компоненты) пропаяйте компо- ненты также и со стороны их установки. По окончании монтажа прозвоните контакты элементов с соответствующими печатными проводниками для допол- нительного контроля.
Предметный указатель А Автомат состояний 434 Амперметр на основе компаса 101 Асинхронные данные, формат 470 Аустенит 128 в Балка двутавровая 29 Батарея внутреннее сопротивление 86 никель-кадмиевая 87 никель-металлогидридная 85 супер-эффект 84, 86 Биметаллическая проволока 128 преимущества и недостатки 129 Блок подъемного механизма 115 Бор, примесь к полупроводникам 134 Булева алгебра 221 законы 241 Буль, Джордж 219 в Ввода/вывода цепь (I/O) 44 Вейзенбаум, Джозеф (Weizenboum, Joseph) 399 Вентиль логический. Си. Ключ логический Взрыватель 48, 49 Всемирное время 476 Г Генератор импульсов автоколебательный режим 161 ждущий 163 релаксационный 207 ШИМ 311 Герц, единица измерения частоты 90 Гистерезис 308 Глобальная система навигации и определения положения, GPS 475, 496 приемники 496 Громкоговоритель динамический 200 пьезоэлектрический кристаллический 201 д Датчик 48 RCtime 408 дифференциальный на элементах системы цветного отображения 412 звуковой 415
Предметный указатель 517 компьютера Снарк, bLiza 400 объекта в виде усика 419 объектов инфракрасные 422 черного и белого, И К 192 Двигатель постоянного тока 104 дребезг 147 крутящий момент 105 реверс 116 частота вращения 108 шаговый 124 биполярный 465 униполярный 465 Двухсторонняя связь в ИК диапазоне 470 Декарт 218 Декодер трехразрядный 236 Делитель напряжения 73, 253 Детектор близости 422 Детонатор 48 Дешифратор и демультиплексер 291 Диафрагма 200 Диод выпрямление переменного тока 135 направление тока 135 Дисплей семисегментный светодиодный 406 схема включения 187 Дистанционное управление 111 Дифракционная решетка 176 Дифференциал 12 Дребезг кнопки, защита при помощи 555 чипа 164 переключателя, устранение с помощью RC-цепи и триггера Шмитта 307 Древесностружечная плита, ДСП 24 Ж Жидкокристаллический дисплей, ЖКД 375 3 Закон ассоциативности 241 двойного отрицания 241 дистрибутивности 241 идемпотентности 241 Кирхгофа для напряжений 69 для токов 78 коммутативности 241 комплементарности 241 Мура (Moor) 286 Ома 65 термодинамики, первый 61, 63 Земля, заземление 61 Зубчатая передача 110 и Изгиб 28 ИК детектор Sharp 424 Инвертирующий буферный каскад 158 Инвертор КМОП 228 Инициализация 282 Инсектоид 9 недостатки 10 Инфракрасный диапазон 178 Искусственный интеллект 399 Источник питания 253 импульсный 264 контроллера 255 линейный 262 закорачивание 261 на стабилитроне 256 теплоотвод 261 Исходный код программы 326 К Картон 24 Катушка индуктивности, сохранение энергии 264
518 123 эксперимента по робототехнике Квант 176 Клей 33 области применения 34 Ключ логический 222 на основе эффекта Холла 492 КМОП-структура 222 Кодирование без возврата кнулю, NRZ 470, 494 Комментарии в программах 327 Компаратор 156, 216 Компас на основе эффекта Холла 492 Конденсатор 158 электрический заряд 158 Конкатенация 336 Коробка передач 116 Корпус микросхемы с двухрядным расположением выводов (DIP) 45, 154 Коэффициент усиления 211 Крепежные детали 35 Кручение 27 Л Логика Микки-Мауса, ММЛ 248, 291 резисторно-транзисторная 187 транзисторно-транзисторная, ТТЛ 284 Логические схемы комбинационные 268 последовательностные 268 Логический элемент исключающее ИЛИ 242, 243 И на КМОП-элементах ИЛИ-НЕ 240 на основе реле 223 И-НЕ 233 ИЛИ 237 на КМОП-элементах ИЛИ-НЕ 240 ИЛИ-НЕ 238 НЕ 231 на КМОП-элементах ИЛИ-НЕ 240 м Магнит постоянный полюсы 91 правило левой руки 94 силовые линии 91 Магнитное поле проводника с током 92 Земли 102 Макетная плата 53 Манипулятор Canadarm 15 зажимное устройство 14 степени свободы 16 эффектор 14 Мартенсит 128 Матричный переключатель 384 управление 385 Меандр 266 Международная система единиц СИ 89 Меридианы, долгота 475 Методы обнаружения объектов, сравнение 491 Микросхемы логические 252 Микрофон динамический 202 конденсаторный 203 кристаллический 202 электретный 203 Модем 495 Монтажное И 192 Морзе, Сэмуэл 200 Мост Н-образный 116 транзисторный 152 Уитстона 80
ftalattausfik Мощность механическая 110 определение 82 рассеиваемая 83, 253 Мультивибратор 266 н Нагрузки в электрической цепи параллельное соединение 77 последовательное соединение 68 Напряжение, аналогия с механическим давлением 58 Насыщение транзистора 213 Нематические кристаллы 375 Обратная связь в сервомеханизме 272 отрицательная 212 положительная 212 Ограничение сигнала 212 Оконечное оборудование данных, DTE 496 Операторы PBASIC Stamp 2 описания 329 присваивания 331 Операционный усилитель, ОУ 226 Оптоэлектроника, цвет и длина волны 178 Оптрон 189 Ориентирование бомбардировщиков 477 методом незрячего 477 по компасу 476 Основание робота трехколесное 11 управляемое дифференциально 13 гусеничное 13 Осциллограмма 216 Предметный укозотель 519 Отверстие сквозное металлизированное 44 Отрицательный электрический ток 65 п Падение напряжения 62, 69 Пайка 39 виды флюсов 41 интерметаллическая зона 40 паяльник 41 припой оловянно-свинцовый 40 технология 44 Параллели, широта 475 Пенопласт 24 Передаточное отношение 114 Передача данных последовательная асинхронная 294 Манчестерское кодирование 295 синхронная 295 Переключатель 51 двухполюсный 116 кнопочный 163 общие выводы 53 однополюсный на два направления 52, 98 Переменные PBASIC оверлейные 330 типы 329 Период сигнала 90 Планк, Макс 176 Плата макетная 47 печатная материал 24 монтаж 45 Плексиглас 24 Подшипник 21 Полистирол 24
520 123 эксперимента по робототехнике Полуповодник 133 п-типа 134 р-типа 134 акцептор 134 донор 134 Полупроводниковые приборы 133 Полусумматор 244 Пороговый ток 232 Потенциометр включение в схемах 74 параметры 72 подстроечный 447 Прерыватель оптический 189 Провод монтажный 51 изоляция 51 Программа моделирования с ориентацией на ИМС 142 Прочность конструкции 28 повышение 29 Работа 82 Растворитель 34 Растяжение 27 Регистр доступа с тремя состояниями 367 Резерфорд 176 Резистор 61 обозначения номиналов 66 параллельное соединение 77 переменный. См. Потенциометр токоограничивающий 131 цветовое кодирование номинала и допуска 62 Резисторно-транзисторная логика, РТЛ 249 Реле принцип действия 97 свойства 99 управление уровнями логики 99 Рефлекс 21 Робот двуногий 4 зона сервиса 16 определение 1 отслеживающий стену 483 отслеживающий траекторию 197 движущийся случайно 431 Робототехника, определение 1 С Сброс триггеров, схема на компараторе 284 Светодиод 53, 370 падение напряжения 180 падение напряжения на 140 регулирование яркости 183 цветной 179 Связывающее вещество. См. Клей Сдвиговый регистр 296 с линейной обратной связью 297 Секстант 476 Секунда 89 Сервомеханизм радиоуправляемый 166 с радиоуправлением 446 сигнал управления с ШИМ 168 управление несколькими одновременно 452 Сжатие 27 Силовой привод 21 Символы ASCII 335 управляющие 336 Синхронизация 269 Система громкой связи 203 Соленоид 21 Сопротивление 61 эквивалентное, последовательной цепи 68 Среднее время по Гринвичу 476 Стабилизатор напряжения 255 на стабилитроне 259
Предметный указатель 521 Стабилитрон 257 Сталь, латунь: магнитные свойства 95 Степень свободы 111 Сумматор полный 244 с ускоренным переносом 245 со сквозным переносом 245 Сустав пальца человека механический аналог 22 синовиальная жидкость 20 строение 20 Схема задания высокого потенциала 245 Сцепление 11 Счетчик 303 т Таблица истинности 219 для логического И 219 для логического ИЛИ 220 логического НЕ 221 Теорема де-Моргана 241 Теплоотвод 84 Тестер внутрисхемный 246 Толкатель 21 Транзистор п-р-п, управление двигателем 145 р-п-р, управление двигателем 150 база 142 выход с открытым коллектором 192 коллектор 142 коэффициент усиления по току 143 многоэмиттерный 233 МОП с п-каналом 227 МОП с р-каналом 227 область насыщения 146 область проводимости 145 эмиттер 142 Транзисторно-транзисторная логика, ПЛ 230 Трансмиссия 108 Трение аналогия с сопротивлением 61 в крепежных деталях 37 Триггер синхронизируемый фронтом 276 Шмитта 308 Триггер-защелка. См. Триггер, синхронизируемый фронтом Тьюринг, Алан (Turing, Alan) 399 У Ультразвуковой измеритель дальности 486 интерфейс с BS2 488 Ультрафиолетовый диапазон 178 Управление аналоговое 71 бинарное 71 Устоновка/сброс выхода 241 Устойчивость вибрационная 23 ф Фанера 25 окраска 31 Флюид 65 Фосфор, примесь к полупроводникам 134 Фоторезистор 172 управление роботом 173 Фототранзистор 189 Фотоэффект 178 Функции идентичности 241 Фунт-сила, Ibf 82 X Хронометр 476 ц Центр масс 120, 426 Цепь электрическая 50
522 123 эксперимента по робототехнике Цифро-аналоговый преобразователь R-2R 393 Цифровой мультиметр 100, 223 измерение напряжения 59 ш Шайба Гровера 39 пружинящая 39 разновидности 38 Шасси с двигателями управление через Н-образный мост 431 Широтно-импульсная модуляция, ШИМ генератор 183 рабочий цикл 182 Шов клеевой 33 э Эксперимент безопасность при 16 принципы постановки 17 Электрический ток, направление 65 Электромагнит 93 устройство 95 Электронно-лучевая трубка катод 175 электронный луч 175 Электроскоп 100 Электростатический разряд 227 D D-триггер 280 I Light-emitting diode, LED 53 Р Parallax BASIC Stamp 2 (BS2) аналоговый сигнал ШИМ 391 бесконечный цикл 345 вывод музыки 379 загрузка Windows Editor 318 измерение сопротивления 389 индекс 338 компилятор 327 контакты ввода/вывода (I/O) 367 манипуляции со строками 336 модификаторы 330 оператор branch 442 debugin 450 exit 365 gosub 360 if 350 lookup 467 random 441 return 360, 361 select-case 365 выбора case 354 отладки 328 управления контактами I/O 368 отладка 331 параметр подпрограммы 362 переменная типа массив 338 последовательный порт RS-232 321 пузырьковая сортировка 357 рисование 458 системы памяти 337 сохранение приложений в ПК 324 средства задания формата данных 334 структурированный код 362
^aiattaus,^. Предметный указатель 523 таймер с обратным счетом 359 типы данных 329 управление шаговым двигателем 466 цикл do 343, цикл do while 345 РСВ (printed circuit board) 24 A RC-цепь 160 постоянная времени 160 RS-триггер 272 метастабильное состояние 275 на элементах И-НЕ 275 S Systeme International, SI 66
Майк Предко 123 эксперимента по робототехнике Главный редактор Захаров И. М. zim@ntpress.ru Научный редактор Ответственный редактор Верстка Графика Дизайн обложки Попова В. П. Тулъсанова Е. А. Родионов Е. С. Шахина А. Г. Харевская И. А. Издательство «НТ Пресс», 129085, Москва, Звездный б-р, д. 21, стр. 1. Издание осуществлено при техническом участии ООО «Издательство АСТ» Отпечатано с готовых диапозитивов в ООО «Типография ИПО профсоюзов Профиздаг» 109044, Москва, Крутицкий вал, 18 Отсканировано специаиально для натахаус.ру