Книга для тех, кто хочет быстро освоить программирование плат Arduino и их практическое применение в проектах автоматизации и робототехники. Все разобранные примеры снабжены необходимыми схемами и листингами программ.
Помимо самих управляющих плат Arduino в книге рассмотрены платы расширения (шилды), которые добавляют новую функциональность основному контроллеру. Подробно описан язык программирования и среда Arduino IDE.
В учебных проектах из книги показаны разнообразные способы применения контроллера в области робототехники, погодных метеостанций, «умного дома», вендинга, компьютерного зрения и беспроводной связи, например: Bluetooth, радиоуправление, связь с устройствами Android и многое другое.
Темы проектов
- Взаимодействие с датчиками.
- Создание «умного дома».
- Системы на радиоуправлении.
- Метеостанции и сбор данных.
- Самодельные вендинговые аппараты.
- Дисплеи и камера Pixy.
- Интернет вещей, нейронные сети, компьютерное зрение.
- Геолокация GPS и Яндекс.Карты.
Особенности четвёртого издания
Рассмотрены новые платы Arduino MKR и Nano 33, новые платы расширения, светодиодные матрицы, протокол MQTT, RFID-идентификация, GPS-трекер, Яндекс.Карты и проекты в области нейронных сетей.
Данные
- Автор: Виктор Петин
- Формат: 165×233 мм
- Кол-во страниц: 560
- Тип издания: мягкая обложка
- Печать: чёрно-белая
- Год выхода: 2021 (четвёртое издание)
- Издательство: «БХВ-Петербург»
- ISBN: 978-5-9775-6711-4
Оглавление
Предисловие
- Для кого и о чем эта книга?
- Структура книги
- Благодарности
Часть I. Arduino — общий обзор
Глава 1. Введение в Arduino
- Arduino — что это?
- В чём преимущество Arduino?
- Новые тенденции и перспективы развития Arduino
Глава 2. Платы семейства Arduino и платы расширения для них
- Обзор плат семейства Arduino
- Arduino Uno
- Arduino Nano
- Arduino Pro Mini
- Arduino LilyPad
- Arduino Mega2560
- Arduino Leonardo
- Arduino Due
- Arduino Yún
- Arduino MKR WiFi 1010
- Arduino Nano 33
- Платы расширения для Arduino
Часть II. Среды разработки и язык программирования плат Arduino
Глава 3. Среда разработки Arduino IDE
- Установка Arduino IDE в Windows
- Установка Arduino IDE в Linux
- Настройка среды Arduino IDE
Глава 4. Облачная среда разработки Arduino Create
- Начало работы в среде Arduino Create
- Загрузка и выполнение пробного скетча
Глава 5. Программирование плат Arduino
- Базовые знания
- Цифровые выводы
- Аналоговые входы
- Широтно-импульсная модуляция
- Память в Arduino
- Структура программы
- Синтаксис и операторы
- Управляющие операторы
- Оператор if (условие) и операторы сравнения ==, !=, < , >
- Оператор if...else
- Оператор for
- Оператор switch
- Оператор while
- Оператор do...while
- Оператор break
- Оператор continue
- Оператор return
- Синтаксис
- ; (semicolon, точка с запятой)
- {} (curly braces, фигурные скобки)
- Комментарии: // (single line comment, однострочный), /* */ (multi-line comment, многострочный)
- Арифметические операторы
- = (assignment, оператор присваивания)
- + (cложение), – (вычитание), * (умножение), / (деление)
- % (modulo)
- Операторы сравнения
- Логические операторы
- && (логическое И)
- || (логическое ИЛИ)
- ! (логическое отрицание)
- Унарные операторы
- ++ (увеличение значения), / – – (уменьшение значения)
- += , -= , *= , /=
- Данные
- Типы данных
- boolean
- char
- byte
- int
- unsigned int
- long
- unsigned long
- float
- double
- string — текстовые строки
- Массивы
- void
- Константы
- Переменные
- Объявление переменных
- Границы переменных
- Преобразование типов данных
- char()
- byte()
- int()
- long()
- float()
- Функции
- Цифровой ввод/вывод
- Функция pinMode
- Функция digitalWrite()
- Функция digitalRead()
- Аналоговый ввод/вывод
- Функция analogRead()
- Функция analogReference()
- Функция analogWrite()
- Дополнительные фунции ввода/вывода
- Функция tone()
- Функция noTone()
- Функция shiftOut()
- Функция pulseIn()
- Работа со временем
- Функция millis()
- Функция micros()
- Функция delay()
- Функция delayMicroseconds()
- Математические функции
- Функция min(x,yx)
- Функция max(x, y)
- Функция abs()
- Функция constrain(x, a, b)
- Функция map(value, fromLow, fromHigh, toLow, toHigh)
- Функция pow(base, exponent)
- Функция sq(x)
- Функция sqrt(x)
- Тригонометрические функции
- Функция sin(rad)
- Функция cos(rad)
- Функция tan(rad)
- Генераторы случайных значений
- Функция randomSeed(seed)
- Функция random()
- Операции с битами и байтами
- Функция lowByte()
- Функция highByte()
- Функция bitRead()
- Функция bitWrite()
- Функция bitSet()
- Функция bitClear()
- Функция bit()
- Внешние прерывания
- Функция attachInterrupt
- Функция detachInterrupt
- Управление портами через регистры ATmega
Часть III. Практическое применение Arduino
Глава 6. Проекты для изучения выводов Arduino
- Цифровые выводы — «бегущий огонь» на светодиодах
- Подключение светодиода к выводу Arduino
- Подключение к плате Arduino 8 светодиодов
- Цифровые входы — управляем светодиодами с помощью кнопок
- Подключение кнопки к плате Arduino
- Управление кнопками количеством горящих светодиодов
- Аналоговые входы — светодиодный индикатор аналоговых значений
- Подключение потенциометра к плате Arduino
- Вывод показаний потенциометра на светодиодную шкалу
- ШИМ — радуга на RGB-светодиоде
- Подключение к плате Arduino RGB-светодиода
- Светодиодные индикаторы
- Подключение к плате Arduino семисегментного индикатора
- Расширение цифровых выходов — микросхема 74HC595
- Подключение к плате Arduino сдвигового регистра 74HC595
- Расширение цифровых входов и выходов — микросхема MCP23017
- Расширение аналоговых входов — мультиплексор CD4051
Глава 7. Использование библиотек в проектах Arduino
- Установка библиотек
- Установка библиотеки через Менеджер библиотек
- Установка библиотеки из ZIP-архива
- Установка библиотеки вручную
- Подключение библиотеки
- Создание собственной библиотеки
- Создание заголовочного файла D5651.h
- Создание файла реализации D5651.cpp
- Создание файла keywords.txt
Глава 8. Arduino и последовательный порт UART
- Библиотека Serial
- Функция Serial.begin
- Функция Serial.print
- Функция Serial.println
- Функция Serial.write
- Функция Serial.available
- Функция Serial.read
- Использование UART для отладки программ
- Подключение к плате Arduino нескольких кнопок
- Использование UART для установки параметров
- Библиотека SoftwareSerial
- Соединение по UART двух плат Arduino
Глава 9. Подключение датчиков к плате Arduino
- Подключение аналоговых датчиков
- Подключение к плате Arduino аналогового датчика температуры LM335
- Подключение датчиков по протоколу 1-Wire
- Подключение к плате Arduino цифрового датчика температуры DS18B20
- Подключение датчиков влажности и температуры DHT
- Подключение датчиков по протоколу I²C
- Подключение к плате Arduino датчика интенсивности света BH1750
Глава 10. Использование дисплеев в проектах Arduino
- Символьные дисплеи на микроконтроллере HD44780
- Функция begin()
- Функция clear()
- Функция home()
- Функция setCursor()
- Функция write()
- Функция print()
- Функция cursor()
- Функция noCursor()
- Функция blink()
- Функция noBlink()
- Функция display()
- Функция noDisplay()
- Функция scrollDisplayLeft()
- Функция scrollDisplayRight()
- Функция autoscroll()
- Функция noAutoscroll()
- Функция leftToRight()
- Функция rightToLeft()
- Функция createChar()
- Подключение дисплеев на контроллере HD44780 по протоколу I²C
- Вывод на ЖК-дисплей данных с датчика, работающего по протоколу I²C
- Графический дисплей Nokia
- OLED-дисплеи
- Электронные часы на OLED-дисплее
- Дисплеи Nextion
- Создание нового проекта для дисплея Nextion
- Прошивка дисплея через UART
- Прошивка дисплея с помощью карты microSD
- Подключение дисплея Nextion к плате Arduino
- Светодиодные матрицы
- Четырёхразрядная светодиодная матрица
- Вывод на четырёхразрядную светодиодную матрицу спрайтов и символов
- Бегущая строка на четырёхразрядной светодиодной матрице
- Русификация «бегущей строки» на четырёхразрядной светодиодной матрице
- Матрица 16×16 на светодиодах WS2812
- Arduino-библиотека Adafruit Neopixel
- Графический аудиоспектроанализатор на матрице 16×16 светодиодов WS2812
Глава 11. Подключение к Arduino исполнительных устройств
- Подключение к плате Arduino электромагнитного или твердотельного реле
- Подключение к плате Arduino электродвигателя постоянного тока
- Управление двигателем с помощью транзистора
- Управление двигателями с помощью драйвера
- Подключение к плате Arduino сервопривода
- Использование сервопривода в проекте звуковой сигнализации
- Подключение к плате Arduino шагового двигателя
- Управление дроблением шага и направлением вращения шагового двигателя с платы Arduino
- Подключение к плате Arduino бесколлекторного двигателя
Глава 12. Arduino и беспроводная связь
- ИК-управление
- Управление сервоприводом с помощью ИК-связи
- Радиомодули для частоты 433 МГц
- Управление светодиодом платы Arduino с другой такой же платы по радиоканалу 433 МГц
- Радиомодули NRF24L01
- Организация связи между двумя платами Arduino с использованием модулей NRF24L01
- Использование Arduino c аппаратурой радиоуправления
- Принципы формирования радиосигнала
- Организация связи приёмника с передатчиком
- Разработка скетча для приёма платой Arduino команд передатчика
- Arduino и Bluetooth
Глава 13. Arduino и Интернет вещей
- Подключение к Интернету с помощью платы расширения Ethernet shield
- Получение IP-адреса по DHCP
- Отправка данных на сайт «Народный мониторинг» через Ethernet shield
- Подключение к Интернету с помощью платы расширения GSM/GPRS shield
- Отправка и получение SMS-сообщений с помощью GSM/GPRS shield
- Отправка данных на сайт «Народный мониторинг» через GSM/GPRS shield
- Протокол MQTT
- Отправка данных по протоколу MQTT
- Получение данных по протоколу MQTT
- Android-приложение IoT MQTT Dashboard
- Плата Arduino MKR WiFi 1010 для проектов IoT
- Отправка данных в облако Arduino IoT Cloud и получение их оттуда
Глава 14. RFID-идентификация
- Считыватель RFID RC522
- Организация контроля доступа по RFID-меткам
- Запись информации на RFID-метку
- Проект «Говорящая фотография»
Глава 15. Специальные возможности отдельных плат Arduino
- Использование Arduino Leonardo в качестве USB-устройства
- Arduino Leonardo: имитация клавиатуры
- Блокируем клавиатуру с наступлением темноты
- Arduino Leonardo: имитация компьютерной мыши
- Плата Arduino Esplora
- Arduino Esplora: установка цветов RGB-светодиода
- Arduino Esplora: создание игры
- Плата Arduino LilyPad
- Плата Arduino Yún
- Плата расширения Arduino Yún shield
- Arduino Yún shield: управляем веб-камерой
Глава 16. Взаимодействие Arduino c другими программируемыми системами
- Использование Arduino в проектах LEGO
- Получение микрокомпьютером LEGO данных с датчика влажности и температуры DHT11, подключённого к плате Arduino
- Arduino в проектах ROS
- Установка ROS
- Узлы и темы в ROS
- Пакет rosserial
- Подготовка сообщения (publisher) на Arduino
- Создание подписки (subscriber) на Arduino
- Связь через ROS двух плат Arduino
- Arduino и Raspberry Pi
- Установка WebIOPi на Raspberry Pi
- Обмен данными по последовательному порту
- Управление движущейся платформой на базе Arduino по web-интерфейсу Raspberry Pi
Глава 17. Программирование в среде Arduino IDE других плат
- ESP8266 — микроконтроллер с интерфейсом Wi-Fi
- Установка Arduino IDE для работы с ESP8266
- Печать курса валют на термопринтере в проекте Интернета вещей
- Z-Uno — плата для прототипирования устройств Z-Wave
- Установка Arduino IDE для Z-Uno
- Подключение к плате Z-Uno датчика влажности DHT11
Часть IV. Интересные проекты на Arduino
Глава 18. Умная теплица
- Мониторинг климатических параметров умной теплицы
- Индикация показаний умной теплицы
- Организация полива, обдува и освещения в умной теплице
- Переносим функции мониторинга и управления теплицей на устройство с ОС Android
- Создаём собственное мобильное приложение для управления умной теплицей
- Превращаем нашу умную теплицу в объект Интернета вещей
Глава 19. GPS-трекер и онлайн-сервис поиска стоянок
- Подключение GPS-модуля к плате Arduino
- Отправка данных по GPRS на сервер
- Создание веб-страницы с использованием API Яндекс.Карт
Глава 20. Проекты для вендинга: купюроприёмник, монетоприёмник, разменный автомат
- Купюроприёмник ICT серий A7 и V7
- Подключение купюроприёмника ICT V7 к плате Arduino
- Скетч для получения номинала принимаемой купюры
- Монетоприемник CH-926
- Настройка монетоприёмника
- Калибровка монетоприёмника
- Разменный автомат (хоппер) Cube Hopper MK II
- Подключение хоппера к плате Arduino
- Программирование хоппера
Глава 21. Создание управляющей платы для автомойки самообслуживания
- Блок приёма денежных средств и блок индикации
- Выбор программ работы мойки
- Отсчёт времени выполнения программы. Реализация паузы
- Режим администратора. Установка параметров
Глава 22. Arduino и интерфейс USB: управление роботами
- Интерфейс USB
- Плата расширения USB Host Shield
- HID-устройства USB
- Подключение HID-мыши USB
- Управление роботом с помощью руля Defender
- Управление роботом с помощью геймпада Defender
Глава 23. Камера Pixy: реализация компьютерного зрения
- Настройка камеры
- Подключение камеры Pixy к плате Arduino
- Организация слежения камерой за объектом
Глава 24. Проекты на плате Nano 33 BLE Sense
- Начало работы с платой Nano 33 BLE Sense
- Bluetooth Low Energy (BLE)
- Отправка данных c датчиков платы Nano 33 BLE Sense по BLE
- БиблиотекаTensorFlow Lite
- Пример создания классификатора объектов с обучением
- Сбор данных
- Обучение модели
- Скетч классификатора для запуска нейронной сети на плате Nano 33 BLE Sense
Приложения
- Приложение 1. Перечень использованных источников
- Приложение 2. Описание электронного архива
- Предметный указатель