Изучаем Arduino: инструметы и методы технического волшебства

Блум Джереми

Блум Джереми

Изучаем Arduino: инструменты и методы технического волшебства:

 

Об авторе

Джереми Блум недавно защитил магистерскую диссертацию по электронике и вычислительной технике в Корнельском университете, где ранее получил степень бакалавра в той же области. В Корнельском университете он участвовал в разработке и создании нескольких проектов "интеллектуальных" зданий по всему миру, осуществляемых известной организацией Comell University Sustainable Design, удостоенной высокой оценки в США и других странах (Green Building Councils). Увлечение электроникой дало Джереми возможность применить полученные знания при проектировании автономных систем мониторинга домов, работающих на энергии солнца, революционных волоконно-оптических светодиодных систем освещения и систем контроля интеллектуальных солнечных батарей. Он также помогал в создании бизнес-инкубаторов, ежегодно способствовавших развитию десятков студенческих стартапов.

Джереми разработал отмеченные наградами методы управления протезированием, распознавания жестов, автоматизации зданий. Он спроектировал электронику для 3D-принтера MakerBot Replicator, который используется людьми во всем мире, а также такими известными организациями, как NASA. Джереми также разработал аппаратную часть и программное обеспечение 3D-сканера MakerBot Digitizer. Работая в исследовательской лаборатории Machines Lab, он внес вклад в создание самообучающихся роботов и 3D-принтеров, которые преобразили индивидуальное производство. Результаты этих исследований опубликованы в рецензируемых журналах и представлены на конференциях даже в такой далекой стране, как Индия.

Джереми создает и размещает на YouTube самые популярные в Интернете видеоуроки по Arduino, которые просматривают миллионы людей. Он хорошо известен в международном сообществе программистов как автор проектов и учебных пособий с открытым исходным кодом, которые демонстрировались на канале Дискавери и получили несколько наград на хакатонах. В 2012 году Американский институт инженеров по электротехнике и электронике присвоил Джереми звание "Новое имя в инжиниринге" (New Face of Engineering).

Джереми оказывает инженерные консалтинговые услуги через свою фирму Blum Idea Labs LLC и преподает основы инжиниринга для студентов в Нью-Йорке. Его кредо - улучшение качества жизни людей и нашей планеты через творческие инженерные решения. Вы можете узнать больше о Джереми и его работе на его сайте http://www.jeremyblum.com.

- 16 -

О техническом редакторе

Скоп Фицджеральд - дизайнер и педагог, использующий платформу Arduino для обучения с 2006 года. С 2005 года он преподает вычислительную технику по программе Interactive Telecommunications Program (ПР) в Нью-Йоркском университете, знакомя художников и дизайнеров с миром микроконтроллеров. Скотт сотрудничает с командой Arduino в документальном сопровождении новых продуктов и создании обучающих пособий для знакомства с платформой Arduino. Он был техническим редактором второго издания Making Things Talk в 2011 году и является автором книги, которая сопровождает официальный Arduino Starter Kit в 2012 году.

Благодарности

Прежде всего, я должен поблагодарить моих друзей из издательства Wiley за то, что эта книга увидела свет. В первую очередь, я признателен Мери Джеймс за поощрение моего желания написать книгу и Дженнифер Лини за поддержку при работе над каждой главой. Я также хочу сказать большое спасибо Скотту Фицджеральду за критические замечания при техническом редактировании рукописи.

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

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

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

---

От изготовителя файла FB2.

Данный файл НЕ является ТОЧНОЙ копией одноименной книги!

Т.к. работу делал «для себя», то потребовались более качественные рисунки схем сборки моделей. Таковые рисунки взял с сайта https://www.exploringarduino.com. Забавно получилось с схемой «рис. 5.6. Пианино» в исходной (для меня) книге ее нет, а схемка полезная, оставил.

В некоторых случаях, качественных рисунков не нашел, вставил то, что было.

Оставил разбивку на страницы, удобнее искать и исправлять огрехи.

Код листингов на 80% проверен.

W_Cat

---

 

Введение

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

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

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

Для кого эта книга

Эта книга предназначена для энтузиастов Arduino, желающих разрабатывать электронные устройства и писать программы для них. Материал каждой последующей главы опирается на понятия и проекты, описанные ранее. Шаг за шагом вы сможете реализовать все более сложные системы. Если вы что-то забудете, ссылки напомнят, где вы впервые столкнулись с данным вопросом, так что вы сможете легко освежить память. Книга рассчитана на читателя, не обладающего большим опытом в электронике и программировании. По ходу изложения некоторые понятия объясняются более подробно, чтобы глубже разобраться в конкретных теоретических и практических вопросах.

- 20 -

О чем эта книга

В этой книге вы не найдете готовых рецептов. Если при проектировании вы желаете получить четкие инструкции без объяснения последовательности шагов, то эта книга не для вас. Настоящая книга - своего рода введение в мир электроники, информатики и практического применения платформы Arduino, как средства для воплощения ваших идей на конкретных примерах. Здесь вы узнаете не только как собрать готовое устройство, но и как анализировать электрические схемы, читать технические описания, которые позволят вам выбрать подходящие детали при создании собственных проектов. При написании программного обеспечения в каждом примере предоставляется полный программный код, но сначала рассматриваются и объясняются несколько фрагментов, образующих итоговую программу. Такой подход помогает лучше уяснить определенные функции и особенности алгоритма программы. Книга научит принципам цифрового проектирования и специфическим для платформы Arduino понятиям программирования.

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

Что вам понадобится в дополнение к конкретным компонентам для реализации проектов на основе Arduino, перечисленным в начале каждой главы, есть несколько общих инструментов и материалов, которые вам пригодятся при прочтении книги. Это, в первую очередь, компьютер с операционной системой Mac OS Х, Windows или Linux и установленной интегрированной средой разработки IDE для Arduino. Рекомендую также приобрести следующие дополнительные инструменты для сборки и отладки устройств:

• паяльник и припой;

• мультиметр;

• набор небольших отверток;

• клеевой пистолет с нагревом.

Электронные ресурсы к книге

Поддерживаемый автором сайт http://www.exploringarduino.com специально предназначен для сопровождения этой книги. На нем вы можете загрузить исходный код примеров и проектов для каждой главы, а также видеоуроки и другие полезные материалы. Издательство Wiley также предоставляет электронные ресурсы для этой книги на сайте wiley.com. Получить доступ к исходным кодам про

- 21 -

грамм можно на вкладке Download code на странице http://www.wiley.com/go/ exploringarduino. Вы можете найти данную страницу по коду ISBN (для этой книги 978-1-118-54936-0). В начале каждой главы приведены ссылки на скачивание файлов с листингами программ данной главы. Файлы представлены в виде zip-архивов, после скачивания их необходимо разархивировать.

Дополнительный материал и поддержка

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

• официальный сайт проекта Arduino

http://www.arduino.cc/en/Reference/HomePage;

• моя серия уроков по Arduino

http://www.jeremyblum.com/category/arduino-tutorials;

• учебные материалы по Arduino от Adafruit

http://learn.adafruit.com/category/learn-arduino;

• учебные материалы по Arduino от SparkFun

http://learn.sparkfun.com/tutorials;

• официальный форум Arduino

http://www.arduino.cc/forum;

• сообщество Arduino на сайте element14

http://www.element14.com/community/groups/arduino.

Если вы исчерпали все эти ресурсы и до сих пор не можете решить свою проблему, свяжитесь со мной через Twitter (@sciguy14), может быть, я смогу помочь. Вы также можете связаться со мной напрямую через контактную страницу на моем сайте (http://www.jeremyblum.com/contact), но я не гарантирую быстрого ответа.

Что такое Arduino?

С помощью Arduino можно реализовать практически любой ваш замысел. Это может быть автоматическая система управления поливом, или веб-сервер, или даже автопилот для мультикоптера. Итак, Arduino - это платформа для разработки устройств на базе микроконтроллера, на простом и понятном языке программирования в интегрированной среде Arduino IDE. Добавив датчики, приводы, динамики, добавочные модули (платы расширения) и дополнительные микросхемы, вы можете использовать Arduino в качестве "мозга" для любой системы управления. Трудно даже перечислить все, на что способна платформа Arduino, потому что возможности ограничены только вашим воображением. Эта книга послужит руководством, знакомящим вас с функциональностью Arduino путем выполнения большого коли

- 22 -

чества проектов, которые дадут навыки, необходимые для реализации своих собственных разработок. Более подробно об особенностях Arduino мы расскажем в главе 1. Если вы интересуетесь внутренним устройством Arduino, то вам повезло это платформа с открытым исходным кодом, и все схемы и документация находятся в свободном доступе на сайте Arduino.

О движении Open Source

Если вы новичок в мире открытого исходного кода (Open Source), то я рекомендую познакомиться с основными принципами этого сообщества. Здесь мы не будем вдаваться в подробности, а лишь немного коснемся идеологии данного движения, делающей работу с Arduino такой привлекательной. Получить более полное представление можно на веб-сайте Ассоциации открытого аппаратного обеспечения: http://www.oshwa.org/definition.

Как уже упоминалось, Arduino - платформа с открытым исходным кодом, поэтому все схемы и исходный код программ доступны для любого желающего. Это означает, что вы можете не только экспериментировать с Arduino, но и использовать платформу и прилагаемые к ней программные библиотеки в своих проектах, производить и продавать клоны платы Arduino.

Хотя книга ориентирована главным образом на фирменные изделия Arduino, для повторения описанных далее устройств подойдут платы многочисленных сторонних разработчиков. Лицензия Arduino допускает также коммерческое применение конструкций на основе Arduino (без указания торговой марки Arduino) в своих проектах. Итак, если вы создали на основе Arduino оригинальное устройство и хотите превратить его в коммерческий продукт, вы можете сделать это. Например, вся электронная начинка в проекте MakerBot Replicator 3D-принтер выполнена на основе платформы Arduino Mega (http://www.thingiverse.com/thing:16058).

Все примеры программ, которые я написал для этой книги ( если не указано иное) на условиях лицензии GNU General Public License (GPL), можно использовать без ограничений для всего, что вы хотите.

Несколько советов читателю

Некоторые из вас, возможно, знакомы с моими популярными видеоуроками по изучению Arduino и основ электроники на канале YouTube (http://www.youtube.com/sciguy14). Я отсылаю читателя к ним для более полного раскрытия изложенных тем.

Если вам интересно узнать о том, какие замечательные вещи можно создать, творчески сочетая электронику, микроконтроллеры и информатику, рекомендую

- 23 -

посмотреть мое портфолио (http://www.jeremyblum.com/portfolio) с самыми интересными проектами. Как и устройства на основе Arduino, большинство моих разработок соответствуют открытой лицензии, которая позволяет легко дублировать созданное мною для ваших собственных нужд.

Мне будет интересно узнать, как вы примените знания и навыки, полученные при прочтении данной книги. Я призываю вас поделиться ими со мной и с остальным миром. Желаю удачи в ваших экспериментах с Arduino!

Дополнительная информация издательства "БХВ-Петербург" к русскоязычному изданию книги

Для выполнения проектов, описанных в книге, издательство подготовило специальный набор, который включает в себя Arduino Uno, плату прототипирования и необходимые электронные компоненты. Подробную информацию о наборе можно получить по адресу http://www.bhv.ru/books/193108.

Издательство "БХВ-Петербург" выражает благодарность компании "Амперка" за участие в подготовке русскоязычного издания книги. На интернет-ресурсах этой компании вы сможете найти:

• учебные материалы по Arduino на русском от Амперки

http://wiki.amperka.ru.

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

http://www.youtube.com/AmperkaRU или http://wiki.amperka.ru/вндеоуроки:джереми-блюм.