image Встречайте новую книгу от Саймона Монка, автора легендарного бестселлера «Программируем Arduino. Основы работы со скетчами»! Гуру электроники поможет преодолеть сложный путь от новичка до профессионала, легко решающего самые сложные задачи программирования скетчей. Пора двигаться дальше!

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

Эта книга задумана как продолжение бестселлера «Программируем 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)


  1. vconst
    09.02.2017 14:44

    Спасибо за электронную версию! Жаль что не все книги есть в удобном формате — бумага категорически не интересует…


    1. ph_piter
      09.02.2017 14:58

      В электронном виде у нас еще книга Джона Бокселла "Изучаем Arduino. 65 проектов своими руками"


      1. vconst
        09.02.2017 15:06

        Уже есть, но еще одна подобная книга у вас только в бумаге.


      1. Ogoun
        10.02.2017 17:13

        Заказывал у вас эту книгу в бумажном варианте по прошлой акции, ввел промокод, успешно оплатил, но получил письмо:

        Со скидкой 50% мы не сможем Вам отгрузить бумажную книгу. Возможно только со скидкой 30% как и указано в рекламной акции.

        Немного странно после успешной оплаты получать такое. Возможно стоит доработать корзину.


  1. osipov_dv
    09.02.2017 17:43

    Спасибо за скидку, ваши анонсы новых книг от этого становятся еще приятнее :)


  1. Ion_beam
    09.02.2017 17:44
    +1

    "Профессиональная" подразумевает зарабатывание денег, это не про Arduino, как мне кажется.


    1. tmin10
      09.02.2017 18:35
      +1

      Можно профессионально делать прототипы, а для серии разрабатывать уже нормальный дизайн железа.


      1. Ion_beam
        09.02.2017 18:59
        +2

        Это после обряда экзорцизма с целью изгнания загрузчика, и программировать голые кристаллы на Си.


        1. tmin10
          10.02.2017 09:11
          +1

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


    1. r00tGER
      10.02.2017 09:54

      В то же время понятие «зарабатывание денег», вовсе не предполагает обязательно чего-то «профессионального».
      Уже не раз обсуждались серийные устройства на базе Ардуины, которые вполне успешны на рынке.


  1. 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.


    1. OYTIS
      13.02.2017 08:53

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


  1. boblenin
    09.02.2017 19:10

    Спасибо за книгу и за скидку. При покупке не удалось оплатить через paypal, сообщение: «произошла ошибка».
    Поменять способ оплаты не удалось — переоформил заказ и заплатил карточкой — все прошло.


  1. MartinKiuru
    09.02.2017 19:27

    Не могу удержаться: автор обложки определенно вдохновлялся персонажами замечательного клипа «Робот Виталий».


  1. Delics
    09.02.2017 22:27

    Смотрю примеры.

    Открывающая скобка на новой строке.

    Низкий поклон!


  1. YRevich
    12.02.2017 11:41

    Книга полезная и интересная, но есть некоторые ошибки. Сюда комментарий не поместился, потому вынес его в отдельную статью.


  1. GarryC
    12.02.2017 21:45

    Посмотрел предлагаемый для ознакомления отрывок…
    Просто офигеть — и ЭТО предлагается в качестве обучающего материала?


    У меня нет слов, по крайней мере таких, которые можно было бы тут написать.
    Нет, все, конечно, работать будет, но ЭТО как образец — я знал что с литературой по Ардуино плохо, но не настолько же.


  1. aytishnikcom
    13.02.2017 08:52

    Две недели назад был у вас в магазине, придется на следующей заехать. Что нибудь по CentOS и Red hat будите выпускать?


    1. ph_piter
      13.02.2017 08:53

      В ближайшее время — нет.


  1. Tikson
    17.02.2017 02:23

    Можно ли все что делается на Arduino реализовывать на raspberry pi 3?


    1. vconst
      17.02.2017 11:02

      Можно, но зачем? Обычно на Ардуино организуют сбор информации с датчиков и управление контроллерами, а Пи содержит логику и веб-сервер.