Проекты становятся всё более сложными, и в какой-то момент знаний для их реализации уже не хватает. Прочитав книгу, вы научитесь использовать прерывания, управлять памятью, писать программы для Интернета, выполнять цифровую обработку сигналов, освоите многозадачность и сможете создавать собственные библиотеки.
Эта книга задумана как продолжение бестселлера «Программируем Arduino: Основы работы со скетчами. 2-е изд. ». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino. В частности, эта книга расскажет, как:
— обеспечить эффективную работу при минимальном объеме доступной памяти;
— решать сразу несколько задач без помощи механизмов многопоточного выполнения;
— упаковывать код в библиотеки, чтобы им могли пользоваться другие;
— использовать аппаратные прерывания и прерывания от таймера;
— добиться максимальной производительности;
— уменьшить потребление электроэнергии;
— взаимодействовать с последовательными шинами разных типов (I2C, 1-Wire, SPI и последовательный порт);
— взаимодействовать с портом USB;
— взаимодействовать с сетью;
— выполнять цифровую обработку сигналов (Digital Signal Processing, DSP).
Загружаемые примеры
Книга включает 75 примеров скетчей, которые распространяются в открытом виде и доступны на веб-сайте автора www.simonmonk.org. Перейдя по ссылке на страницу этой книги, вы сможете загрузить исходный код примеров, а также самый актуальный список ошибок и опечаток, найденных в книге.
Что необходимо для чтения книги
Данная книга в первую очередь посвящена вопросам программирования. Поэтому для опробования большинства примеров будет достаточно платы Arduino, светодиода и мультиметра. Если у вас имеются дополнительные платы расширения Arduino, они тоже пригодятся. Для рассмотрения примеров из главы 12 вам понадобится плата Ethernet или Wi-Fi. На протяжении всей книги мы будем использовать разные модули для демонстрации разных интерфейсов.
В центре внимания находится Arduino Uno — наиболее широко используемая плата Arduino, но в главах, посвященных программированию порта USB и цифровой обработке сигналов, рассматриваются некоторые особенности других плат Arduino, таких как Leonardo и Arduino Due. В приложении в конце книги вы найдете список поставщиков, у которых сможете приобрести все эти компоненты.
Как работать с этой книгой
Каждая глава посвящена отдельной теме, связанной с программированием Arduino. Главы книги, кроме главы 1, где приводится краткий обзор основ Arduino, можно читать в любом порядке. Если вы опытный разработчик, начните с главы 14, чтобы вникнуть в некоторые особенности программирования Arduino. Далее следует краткое описание глав.
Глава 1 «Программирование Arduino». Эта глава содержит сводную информацию о программировании Arduino. Это учебник для тех, кому требуется быстро ознакомиться с основами Arduino.
Глава 2 «Под капотом». В этой главе мы заглянем под капот и посмотрим, как работают программы для Arduino и откуда они берутся.
Глава 3 «Прерывания и таймеры». Новички обычно стараются не использовать прерывания, и совершенно напрасно, так как часто они оказываются удобным инструментом и их программирование не представляет никаких сложностей. Однако прерывания имеют свои ловушки, и эта глава расскажет вам все, что вы должны знать, чтобы не попасть в них.
Глава 4 «Ускорение Arduino». Платы Arduino оснащены маломощными процессорами с невысоким быстродействием, поэтому иногда требуется выжать из них все, что только можно. Например, встроенная функция digitalWrite надежна и проста в использовании, но неэффективна, что особенно заметно, когда требуется одновременно включить несколько выходов. В этой главе вы узнаете, как увеличить ее производительность, а также познакомитесь с другими приемами создания быстродействующих скетчей.
Глава 5 «Снижение потребления электроэнергии». Когда для питания платы Arduino используются аккумуляторы или солнечные батареи, желательно уменьшить потребление электроэнергии. Этого можно добиться не только оптимизацией конструкции устройства, но и применением особых приемов программирования.
Глава 6 «Память». В этой главе мы посмотрим, как уменьшить потребление памяти, а также познакомимся с достоинствами и недостатками, связанными с динамическим распределением памяти в скетчах.
Глава 7 «Интерфейс I2C». Интерфейс I2C на плате Arduino может существенно упростить взаимодействие с модулями и компонентамии позволит обойтись меньшим числом контактов на плате. Эта глава описывает, как действует интерфейс I2C и как им пользоваться.
Глава 8 «Взаимодействие с устройствами 1-Wire». В этой главе рассказывается о шине 1-Wire для связи с устройствами, такими как датчики температуры компании Dallas Semiconductor, которые часто применяются с платами Arduino. Здесь вы узнаете, как действует эта шина и как ею пользоваться.
Глава 9 «Взаимодействие с устройствами SPI». SPI — еще один стандартный интерфейс, поддерживаемый платами Arduino. В этой главе описывается, как он действует и как им пользоваться.
Глава 10 «Программирование последовательного интерфейса». Поддержка передачи данных через последовательный порт, порт USB или контакты Rx и Tx на плате Arduino — отличный способ организовать обмен данными с периферийными устройствами и другими платами Arduino. В этой главе вы узнаете, как пользоваться последовательным портом.
Глава 11 «Программирование интерфейса USB». В этой главе рассматриваются разные аспекты использования порта USB на плате Arduino. Вы познакомитесь с возможностью эмуляции клавиатуры и мыши, поддерживаемой платой Arduino Leonardo, а также узнаете, как подключить клавиатуру или мышь к соответственно оборудованной плате Arduino.
Глава 12 «Программирование сетевых взаимодействий». Плата Arduino давно стала обычным компонентом «Интернета вещей». В этой главе вы узнаете, как программировать Arduino для работы в Интернете. В число обсуждаемых здесь тем входит описание плат расширения Wi-Fi и Ethernet, использования веб-служб и применения Arduino в качестве маленького веб-сервера.
Глава 13 «Цифровая обработка сигналов». Плата Arduino способна выполнять простую обработку сигналов. В этой главе обсуждаются разные способы такой обработки, от фильтрации сигнала, поступающего на аналоговый вход, с применением программного обеспечения вместо внешних электронных устройств до вычисления относительной величины различных частотных сигналов с применением быстрого преобразования Фурье.
Глава 14 «Многозадачность с единственным процессом». Программисты, пришедшие в мир Arduino из мира больших систем, часто отмечают отсутствие поддержки многозадачности в Arduino как существенное упущение. В этой главе я попробую исправить его и покажу, как преодолеть ограничения однопоточной модели встроенных систем.
Глава 15 «Создание библиотек». Рано или поздно вы создадите нечто замечательное, что, по вашему мнению, могли бы использовать другие. Это будет самый подходящий момент оформить свой код в виде библиотеки и выпустить ее в свет. Эта глава покажет вам, как это сделать.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для читателей данного блога скидка 25% по купону — Монк
Комментарии (21)
osipov_dv
09.02.2017 17:43Спасибо за скидку, ваши анонсы новых книг от этого становятся еще приятнее :)
Ion_beam
09.02.2017 17:44+1"Профессиональная" подразумевает зарабатывание денег, это не про Arduino, как мне кажется.
tmin10
09.02.2017 18:35+1Можно профессионально делать прототипы, а для серии разрабатывать уже нормальный дизайн железа.
Ion_beam
09.02.2017 18:59+2Это после обряда экзорцизма с целью изгнания загрузчика, и программировать голые кристаллы на Си.
tmin10
10.02.2017 09:11+1Ну почему, можно набросать несложную логику на ардуино, показать прототип, допустим, инвесторам или начальству, а потом уже начинать разработку полноценных девайсов. В демо главное, чтобы оно показывало функционал и быстро делалось, там нет нужды оптимизировать использование каждого такта и экономить память, можно просто взять девайс подороже.
r00tGER
10.02.2017 09:54В то же время понятие «зарабатывание денег», вовсе не предполагает обязательно чего-то «профессионального».
Уже не раз обсуждались серийные устройства на базе Ардуины, которые вполне успешны на рынке.
KonstantinSoloviov
09.02.2017 18:20+2«Профессиональная работа со скетчами» — замечательный оксюморон.
Мое любимое место из документации к Arduino:
Pointers are one of the more complicated subjects for beginners in learning C, and it is possible to write the vast majority of Arduino sketches without ever encountering pointers.OYTIS
13.02.2017 08:53Ну, я, кстати, знаю вполне успешных программистов (не на C), которые не понимают, как работают указатели, особенно, когда речь заходит об указателях на указатель и вот этом всем. Я бы не смог жонглировать фреймворками с той же легкостью, как они.
boblenin
09.02.2017 19:10Спасибо за книгу и за скидку. При покупке не удалось оплатить через paypal, сообщение: «произошла ошибка».
Поменять способ оплаты не удалось — переоформил заказ и заплатил карточкой — все прошло.
MartinKiuru
09.02.2017 19:27Не могу удержаться: автор обложки определенно вдохновлялся персонажами замечательного клипа «Робот Виталий».
YRevich
12.02.2017 11:41Книга полезная и интересная, но есть некоторые ошибки. Сюда комментарий не поместился, потому вынес его в отдельную статью.
GarryC
12.02.2017 21:45Посмотрел предлагаемый для ознакомления отрывок…
Просто офигеть — и ЭТО предлагается в качестве обучающего материала?
У меня нет слов, по крайней мере таких, которые можно было бы тут написать.
Нет, все, конечно, работать будет, но ЭТО как образец — я знал что с литературой по Ардуино плохо, но не настолько же.
aytishnikcom
13.02.2017 08:52Две недели назад был у вас в магазине, придется на следующей заехать. Что нибудь по CentOS и Red hat будите выпускать?
vconst
Спасибо за электронную версию! Жаль что не все книги есть в удобном формате — бумага категорически не интересует…
ph_piter
В электронном виде у нас еще книга Джона Бокселла "Изучаем Arduino. 65 проектов своими руками"
vconst
Уже есть, но еще одна подобная книга у вас только в бумаге.
Ogoun
Заказывал у вас эту книгу в бумажном варианте по прошлой акции, ввел промокод, успешно оплатил, но получил письмо:
Со скидкой 50% мы не сможем Вам отгрузить бумажную книгу. Возможно только со скидкой 30% как и указано в рекламной акции.
Немного странно после успешной оплаты получать такое. Возможно стоит доработать корзину.