учебник. Бхв, 2020. Isbn 9781119405375 (англ.) Isbn 9785977567367 (рус.) 2020 by John Wiley & Sons, Inc. Перевод на русский язык, оформление. Ооо бхвпетербург, Ооо бхв, 2020
Скачать 1.9 Mb.
|
EXPLORING ARDUINO ® Tools and Techniques for Engineering Wizardry Second Edition Jeremy Blum Санкт-Петербург «БХВ-Петербург» 2020 И З У Ч А Е М ARDUINO ИНСТРУМЕНТЫ И МЕТОДЫ ТЕХНИЧЕСКОГО ВОЛШЕБСТВА Джереми Блум ВТОРОЕ ИЗДАНИЕ Authorized Russian translation of the English edition of Exploring Arduino ® : Tools and Techniques for Engineering Wizardry, Second Edition, ISBN 978-1-119-40537-5 © 2020 by John Wiley & Sons, Inc., Indianapolis, Indiana. All Rights Reserved. This translation is published under license by BHV, © 2020. Авторизованный перевод с английского на русский язык произведения Exploring Arduino ® : Tools and Techniques for Engineering Wizardry, второе издание, ISBN 978-1-119-40537-5 © 2020 by John Wiley & Sons, Inc., Indianapolis, Indiana. Все права защищены. Этот перевод публикуется по лицензии издательством «БХВ», © 2020. ISBN 978-1-119-40537-5 (англ.) ISBN 978-5-9775-6736-7 (рус.) © 2020 by John Wiley & Sons, Inc. © Перевод на русский язык, оформление. ООО «БХВ-Петербург», ООО «БХВ», 2020 УДК 004 ББК 32.973.26 Б71 Блум Дж. Б71 Изучаем Arduino: инструменты и методы технического волшебства. 2-е изд.: пер. с англ. — СПб.: БХВ-Петербург, 2020. — 529 с.: ил. ISBN 978-5-9775-6736-7 Книга посвящена проектированию электронных устройств на основе микроконтрол- лерной платформы Arduino. Приведены основные сведения об аппаратном и программ- ном обеспечении Arduino. Изложены принципы программирования в интегрированной среде Arduino IDE. Показано, как анализировать электрические схемы, читать технические описания, выбирать подходящие детали для собственных проектов. Приведены приме- ры использования и описание различных датчиков, электродвигателей, сервоприводов, индикаторов, проводных и беспроводных интерфейсов передачи данных. В каждой главе перечислены используемые комплектующие, даны монтажные схемы, подробно описа- ны листинги программ. Материал ориентирован на применение несложных и недорогих комплектующих для экспериментов в домашних условиях. Во втором издании обновлены проекты из предыдущего издания, добавлены проекты с шаговыми двигателями и беспро- водной связью Bluetooth и Wi-Fi, а также более глубоко рассмотрены темы электротехники и разработки устройств. Для радиолюбителей УДК 004 ББК 32.973.26 Группа подготовки издания: Руководитель проекта Игорь Шишигин Зав. редакцией Екатерина Сависте Компьютерная верстка Людмилы Гауль Оформление обложки Карины Соловьевой «БХВ-Петербург», 191036, Санкт-Петербург, Гончарная ул., 20. Посвящается Лиа за ее помощь мне и совет рассматривать каждую трудность как благоприятную возможность. Об авторе В настоящее время Джереми Блум занимает должность технического ди- ректора в компании Shaper (https://www.shapertools.com), где он изобре- тает новый способ использования ручных электроинструментов, применяя для этого машинное зрение. Ранее Джереми работал ведущим конструкто- ром компании Google[x] и разрабатывал различные конфиденциальные про- дукты, включая Google Glass. Джереми присвоена степень магистра по электронике и вычислительной технике в Корнеллском университете, в котором он ранее также получил сте- пень бакалавра по тому же профилю. В Корнеллском университете он осно- вал и возглавлял организацию по экологически щадящему проектированию Cornell University Sustainable Design; создал первое в своем роде офисное про- странство для совместной работы студентов; а также проводил исследования в области робототехники и машинного самообучения. Джереми занимался разработкой медицинских протезов, систем освеще- ния с использованием волоконной оптики и светодиодов, бытовой автомати- ки, 3D-принтеров и сканеров, самособирающихся и самообучающихся робо- тов, переносных вычислительных платформ, а также устройств дополненной реальности. Его работы представлялись на международных конференциях и публиковались в рецензируемых научных журналах и в таких популярных изданиях средств массовой информации, как телеканал Discovery Channel, газета Wall Street Journal и журнал Popular Science. Журнал Forbes включил его в свой ежегодный список “30 младших, чем 30” в знак признания его дея- тельности, которая способствует техническому прогрессу в Америке. Он яв- ляется соавтором нескольких патентов в области конструирования перенос- ных вычислительных платформ и устройств дополненной реальности. В свободное от разработки и реализации новых проектов время Джереми занимается обучением. Его статьи и видеоуроки помогают миллионам людей изучать проектирование в области электротехники и встроенного программ- ного обеспечения. Его книга “Exploring Arduino” была переведена на многие языки и используется в качестве технического учебника во всем мире, включая его альма-матер, Корнеллский университет. Джереми увлекается применени- ем технологии для улучшения жизни людей, и разработкой инструментов для этого. Узнать больше о Джереми можно на его веб-сайте: https://www.jeremy- blum.com. О техническом редакторе 8 О техническом редакторе Д октор Дерек Моллой (Derek Molloy) занимает должность доцента ка- федры электронной техники инженерно-вычислительного факультета Городского университета Дублина в Ирландии. Он читает лекции для студен- тов бакалавриата и аспирантуры по объектно-ориентированному програм- мированию для встроенных систем, цифровой и аналоговой электронике и сетевым встроенным системам. Он занимается исследованиями в основном в области компьютерного и машинного зрения, встроенных систем, трехмер- ной графики и визуализации, а также в области дистанционного обучения. Дерек ведет популярную серию видеоуроков на канале YouTube, благодаря которым миллионы людей смогли познакомиться с предметом встроенной операционной системы Linux и другими областями цифровой электроники. В 2013 г. он создал персональный веб-сайт/блог, в котором размещены его видеоуроки с вспомогательными материалами, исходный код программ и от- зывы пользователей. Этот сайт ежедневно посещают тысячи людей. В мини- серии издательства Wiley он опубликовал свои книги “Exploring BeagleBone” (в 2015 г.) и “Exploring Raspberry Pi” (в 2016 г.). Ранее в этом году вышло второе издание его книги “Exploring BeagleBone”. Узнать больше о Дереке, его работе и других его публикациях можно на его веб-сайте: http://derekmolloy.ie. Благодарности Н а протяжении нескольких лет после выхода первого издания этой кни- ги я получил огромное количество писем от читателей, в которых они сообщали обо всем, чему смогли научиться. Было высказано и немало кон- структивной критики, в основном по поводу незначительных аспектов, кор- ректировка которых может повысить качество книги. Я серьезно относился к этим замечаниям и старательно отслеживал их в течение последних лет. Я намереваюсь сделать второе издание этой книги еще более полезным, чем первое, в то же самое время сохраняя легкость изложения, за которую многие читатели выражали свою признательность. Поэтому БОЛЬШУЩЕЕ СПАСИБО всем тем, кто предоставил мне свои отклики о первом издании книги «Изучаем Arduino». Следующим делом я снова хочу выразить свою благодарность издатель- ству Wiley. В течение нашей совместной работы сотрудники издательства Благодарности 9 проявили себя великолепными партнерами, и я рад, что получил согласие выпустить второе издание книги. В частности, я хочу поблагодарить Джима Минатела (Jim Minatel), Адаоби Оби Тултона (Adaobi Obi Tulton), Доктора Дерека Моллойа (Dr. Derek Molloy), Мерилуизу Виак (Marylouise Wiack) и Атийаппан Лалит Кумара (Athiyappan Lalith Kumar). Также говорю спасибо всем замечательным людям компании Adafruit, ра- ботавшим совместно со мной над обеспечением доступности наборов ком- понентов для проектов из этой книги. Компания Adafruit оказывает большую поддержку сообществам открытого аппаратного и программного обеспече- ния, и я не стал бы тем инженером, каким являюсь в настоящее время, без их отличных компонентов и руководств. Когда я работал над первым изданием книги «Изучаем Arduino», я одно- временно обучался по программе магистратуры. Я получил степень магистра несколько лет тому назад, и теперь мне нужно концентрироваться на рабо- те в компании Shaper. Я также должен высказать благодарность всем моим коллегам как в компании Shaper, так и в компании Google (мой предыдущий работодатель) за их постоянную поддержку и помощь в создании замеча- тельных устройств. Отдельную благодарность я хочу выразить моим преподавателям в Кор- нел лском университете, особенно профессору Франгоису Гимбретиере (Fran- gois Guim b re tiere), который вел занятия, где я познакомился с Arduino. После выхода первого издания этой книги он использовал ее в качестве учебника для своего курса. Мне доставляет большую радость осознавать, что я смог отблагодарить Корнеллский университет таким образом. Наконец, я хочу поблагодарить моих родителей, моего брата, мою жену и моих друзей за их терпение и за постоянную поддержку и ободрение. Считаю, мне очень повезло, что в моей жизни есть такие замечательные люди. Оглавление Об авторе .......................................................................................................................7 О техническом редакторе ......................................................................................8 Благодарности .............................................................................................................8 Об авторских правах .............................................................................................. 19 Введение ..................................................................................................................... 21 Почему Arduino? ........................................................................................................... 22 Для кого эта книга........................................................................................................ 22 Чему вас научит эта книга ........................................................................................ 23 Стиль типографского оформления ...................................................................... 24 Приобретение компонентов .................................................................................. 24 Что вам потребуется ................................................................................................... 25 Исходный код и прочие электронные ресурсы ............................................ 26 Список опечаток ........................................................................................................... 27 Дополнительный материал и поддержка ......................................................... 27 Что такое Arduino? ....................................................................................................... 28 О движении Open Source ......................................................................................... 29 Несколько советов читателю ................................................................................. 29 Часть I. Технические основы платформы Arduino .............. 31 Глава 1. Начало работы и основные сведения о платформе Arduino .................................................................... 33 Что вы узнаете из этой главы.................................................................................. 33 Исследуем среду Arduino ......................................................................................... 34 Функциональные возможности Arduino .................................................. 35 Платы Arduino ....................................................................................................... 41 Создаем и исполняем первую программу ....................................................... 45 Загрузка и установка среды Arduino IDE .................................................. 47 Запускаем среду IDE и подключаемся к плате Arduino ..................... 47 Структура нашей первой программы ....................................................... 49 Резюме .............................................................................................................................. 52 Глава 2. Цифровые входы и выходы и широтно-импульсная модуляция ......................................... 53 Что вы узнаете из этой главы.................................................................................. 53 Ввод цифровых сигналов ......................................................................................... 54 Подключение светодиода и работа с беспаечными макетными платами ........................................................................................... 54 Оглавление 12 Программирование цифровых выводов ................................................. 60 Цикл for .................................................................................................................... 61 Генерирование ШИМ-сигнала с помощью функции analogWrite() ...... 63 Считывание входных цифровых сигналов ....................................................... 67 Использование понижающего резистора для считывания входных цифровых сигналов ...................................... 68 Управляемый ночник на трехцветном светодиоде ..................................... 76 Резюме .............................................................................................................................. 82 Глава 3. Считывание сигналов аналоговых датчиков ........ 83 Что вы узнаете из этой главы.................................................................................. 83 Аналоговые и цифровые сигналы ........................................................................ 84 Сравнение аналоговых и цифровых сигналов ...................................... 85 Преобразование аналоговых сигналов в цифровые ......................... 86 Опрос аналоговых датчиков с помощью Arduino......................................... 87 Считывание выходного сигнала потенциометра ................................. 88 Применение аналоговых датчиков............................................................. 92 Переменные резисторы в качестве аналоговых датчиков ...................... 97 Резистивные делители напряжения........................................................... 97 Управление выходным аналоговым сигналом посредством входного аналогового сигнала .......................................100 Резюме ............................................................................................................................102 Часть II. Взаимодействие с окружающей средой .............. 103 Глава 4. Использование транзисторов и управление электродвигателями постоянного тока......................................................................... 105 Что вы узнаете из этой главы................................................................................106 Электродвигатели постоянного тока................................................................106 Работа с сильноточными индуктивными нагрузками ......................107 Управление скоростью вращения электродвигателя посредством ШИМ ............................................................................................113 Управление направлением вращения электродвигателя с помощью H-моста ..........................................................................................115 Создаем шасси самоходного робота ................................................................125 Выбор компонентов для шасси робота ..................................................125 Собираем схему управления роботом ....................................................128 Разработка программы управления самоходным шасси ...............132 Сборка устройства ............................................................................................136 Резюме ............................................................................................................................137 Оглавление 13 Глава 5. Управление сервоприводами и шаговыми двигателями ......................................................... 139 Что вы узнаете из этой главы................................................................................140 Управление сервоприводами ..............................................................................140 Разница между сервоприводами кругового вращения и с поворотом в пределах сектора ...........................................................140 Управление сервоприводом........................................................................141 Программа управления сервоприводом ...............................................144 Создание сканирующего дальномера .............................................................146 Шаговые двигатели и управление ими ............................................................150 Принцип работы биполярных шаговых двигателей .........................152 Приводим шаговый двигатель в действие ............................................154 Создаем одноминутный хронограф ..................................................................159 Сборка схемы хронографа ............................................................................160 Программа хронографа .................................................................................162 Резюме ............................................................................................................................167 |