Глава 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 «Создание библиотек». Рано или поздно вы создадите нечто замечательное, что, по вашему мнению, могли бы использовать другие. Это будет самый подходящий момент оформить свой код в виде библиотеки и выпустить ее в свет. Эта глава покажет вам, как это сделать.
Ресурсы
В поддержку этой книги на веб-сайте автора (www.simonmonk.org) создана страница. Перейдя по ссылке на страницу этой книги, вы найдете исходный код примеров, а также другие ресурсы.
От издательства
Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.
1. Программирование Arduino
Эта глава содержит сводную информацию о плате Arduino. Если вы ничего не знаете об Arduino, возможно, вам стоит также прочитать книгу «Programming Arduino: Getting Started with Sketches» (McGraw-Hill Professional, 2012)[2].
Что такое Arduino?
Термин «Arduino» используется для обозначения физических плат Arduino, наибольшей популярностью из которых пользуется модель Arduino Uno, и системы Arduino в целом. Система включает также программное обеспечение для компьютера (применяется для программирования платы) и периферийные платы, которые можно подключать к основной плате Arduino.
Для работы с платой Arduino вам понадобится подходящий компьютер. Это может быть персональный компьютер с операционной системой Mac, Windows, Linux или нечто более скромное, такое как Raspberry Pi. Компьютер нужен в основном для того, чтобы выгружать программы в плату Arduino. После установки на Arduino эти программы действуют совершенно автономно. На рис. 1.1 показано, как выглядит плата Arduino Uno.
Рис. 1.1. Плата Arduino Uno
Плата Arduino может подключаться к порту USB компьютера. Когда она подключена, вы можете посылать сообщения в обоих направлениях. На рис. 1.2 показано, как соединяются плата Arduino и компьютер.
Рис. 1.2. Плата Arduino и компьютер
В отличие от компьютера, Arduino почти не имеет памяти, а также не имеет операционной системы, клавиатуры с мышью и экрана. Главная ее задача — чтение данных с датчиков и управление исполнительными устройствами. То есть можно, к примеру, подключить к плате датчик измерения температуры и управлять мощностью обогревателя.
На рис. 1.3 перечислены некоторые устройства, которые можно подсоединять к плате Arduino. Это далеко не все виды устройств, которые можно подключить к Arduino.
Рис. 1.3. Устройства, подключаемые к Arduino
Далее перечислены некоторые очень интересные проекты, реализованные на основе Arduino:
• Bubblino — подключенная к Arduino машина для мыльных пузырей, которая выпускает пузыри, когда вы посылаете ей сообщение в Twitter;
• светодиодные кубы;
• счетчики Гейгера;
• музыкальные инструменты;
• дистанционные датчики;
• роботы.
Установка и среда разработки
Для программирования Arduino используется интегрированная среда разработки Arduino (Arduino Integrated Development Environment, IDE). Если вы программист и имеете опыт работы со сложными средами разработки, такими как Eclipse или Visual Studio, то Arduino IDE покажется вам очень простой и, возможно, вы отметите отсутствие интеграции с репозиториями, функции автодополнения команд и прочих удобств. Если вы новичок в программировании, то вам понравятся простота и легкость использования Arduino.
Установка среды разработки
Прежде всего загрузите программное обеспечение для своей операционной системы с официального веб-сайта Arduino: http://arduino.cc/en/Main/Software.
После загрузки вы сможете найти подробные инструкции по установке для каждой платформы по адресу http://arduino.cc/en/Guide/HomePage [3].
Самое замечательное в Arduino то, что для работы с этой платой вам понадобятся лишь сама плата Arduino, компьютер и кабель USB для их соединения между собой. Плата Arduino может даже питаться от порта USB компьютера.
Blink
Чтобы убедиться в работоспособности платы, запишем в нее программу, которая будет включать и выключать светодиод, отмеченный на плате Arduino меткой L, из-за чего его часто называют светодиодом L.
Запустите Arduino IDE на своем компьютере. Затем в меню File (Файл) (рис. 1.4) выберите пункт Examples—>01 Basics—>Blink (Примеры—>01 Basics—>Blink).
Рис. 1.4. Загрузка скетча Blink в Arduino IDE
Чтобы не