На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

Проекты с использованием контроллера Arduino. 3-е изд.

Автор Петин В.
Название Проекты с использованием контроллера Arduino. 3-е изд.
Серия Электроника
ISBN 978-5-9775-4004-9
Формат 70×100/16 (165×233 мм)
Объем 496
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Предисловие 11
Для кого и о чем эта книга? 11
Структура книги 11
Благодарности 12

ЧАСТЬ I. ARDUINO — ОБЩИЙ ОБЗОР

13

Глава 1. Введение в Arduino

15
1.1. Arduino — что это? 15
1.2. В чем преимущество Arduino? 16
1.3. История создания Arduino 16

Глава 2. Платы семейства Arduino и платы расширения для них

19
2.1. Обзор плат семейства Arduino 19
2.1.1. Arduino Uno 20
2.1.2. Arduino Nano 21
2.1.3. Arduino Pro Mini 22
2.1.4. Arduino LilyPad 23
2.1.5. Arduino Mega2560 24
2.1.6. Arduino Leonardo 25
2.1.7. Arduino Due 26
2.1.8. Arduino Yun 27
2.2. Платы расширения для Arduino 28

ЧАСТЬ II. СРЕДЫ РАЗРАБОТКИ И ПРОГРАММИРОВАНИЕ ПЛАТ ARDUINO

33

Глава 3. Среда разработки Arduino IDE

35
3.1. Установка Arduino IDE в Windows 35
3.2. Установка Arduino IDE в Linux 36
3.3. Настройка среды Arduino IDE 37

Глава 4. Облачная среда разработки Arduino Create

41
4.1. Начало работы в среде Arduino Create 41

Глава 5. Программирование плат Arduino

45
5.1. Базовые знания 45
5.1.1. Цифровые выводы 45
5.1.2. Аналоговые входы 46
5.1.3. Широтно-импульсная модуляция 46
5.1.4. Память в Arduino 46
5.2. Структура программы 48
5.2.1. Функции setup() и loop() 48
5.3. Синтаксис и операторы 49
5.3.1. Управляющие операторы 49
5.3.1.1. Оператор if (условие) и операторы сравнения ==, !=, < , > 49
5.3.1.2. Оператор if...else 49
5.3.1.3. Оператор for 50
5.3.1.4. Оператор switch 51
5.3.1.5. Оператор while 51
5.3.1.6. Оператор do...while 52
5.3.1.7. Оператор break 52
5.3.1.8. Оператор continue 52
5.3.1.9. Оператор return 53
5.3.2. Синтаксис 53
5.3.2.1. ; (semicolon, точка с запятой) 53
5.3.2.2. {} (curly braces, фигурные скобки) 53
5.3.2.3. Комментарии: // (single line comment, однострочный), /* */ (multi-line comment, многострочный) 54
5.3.3. Арифметические операторы 54
5.3.3.1. = (assignment, оператор присваивания) 54
5.3.3.2. + (cложение), – (вычитание), * (умножение), / (деление) 55
5.3.3.3. % (modulo) 55
5.3.4. Операторы сравнения 55
5.3.5. Логические операторы 55
5.3.5.1. && (логическое И) 55
5.3.5.2. || (логическое ИЛИ) 55
5.3.5.3. ! (логическое отрицание) 56
5.3.6. Унарные операторы 56
5.3.6.1. ++ (увеличение значения), / – – (уменьшение значения) 56
5.3.6.2. += , -= , *= , /= 56
5.4. Данные 56
5.4.1. Типы данных 56
5.4.1.1. boolean 57
5.4.1.2. char 57
5.4.1.3. byte 57
5.4.1.4. int 57
5.4.1.5. unsigned int 58
5.4.1.6. long 58
5.4.1.7. unsigned long 58
5.4.1.8. float 59
5.4.1.9. double 59
5.4.1.10. string — текстовые строки 59
5.4.1.11. Массивы 60
5.4.1.12. void 61
5.4.2. Константы 61
5.4.3. Переменные 62
5.4.3.1. Объявление переменных 62
5.4.3.2. Границы переменных 62
5.4.4. Преобразование типов данных 63
5.4.4.1. char() 63
5.4.4.2. byte() 63
5.4.4.3. int() 63
5.4.4.4. long() 63
5.4.4.5. float() 64
5.5. Функции 64
5.5.1. Цифровой ввод/вывод 64
5.5.1.1. Функция pinMode 64
5.5.1.2. Функция digitalWrite() 64
5.5.1.3. Функция digitalRead() 65
5.5.2. Аналоговый ввод/вывод 66
5.5.2.1. Функция analogRead() 66
5.5.2.2. Функция analogReference() 67
5.5.2.3. Функция analogWrite() 67
5.5.3. Дополнительные фунции ввода/вывода 69
5.5.3.1. Функция tone() 69
5.5.3.2. Функция noTone() 69
5.5.3.3. Функция shiftOut() 69
5.5.3.4. Функция pulseIn() 71
5.5.4. Работа со временем 72
5.5.4.1. Функция millis() 72
5.5.4.2. Функция micros() 72
5.5.4.3. Функция delay() 73
5.5.4.4. Функция delayMicroseconds() 74
5.5.5. Математические функции 75
5.5.5.1. Функция min(x,yx) 75
5.5.5.2. Функция max(x, y) 75
5.5.5.3. Функция abs() 75
5.5.5.4. Функция constrain(x, a, b) 76
5.5.5.5. Функция map(value, fromLow, fromHigh, toLow, toHigh) 76
5.5.5.6. Функция pow(base, exponent) 77
5.5.5.7. Функция sq(x) 77
5.5.5.8. Функция sqrt(x) 77
5.5.6. Тригонометрические функции 78
5.5.6.1. Функция sin(rad) 78
5.5.6.2. Функция cos(rad) 78
5.5.6.3. Функция tan(rad) 78
5.5.7. Генераторы случайных значений 78
5.5.7.1. Функция randomSeed(seed) 78
5.5.7.2. Функция random() 79
5.5.8. Операции с битами и байтами 79
5.5.8.1. Функция lowByte() 80
5.5.8.2. Функция highByte() 80
5.5.8.3. Функция bitRead() 80
5.5.8.4. Функция bitWrite() 80
5.5.8.5. Функция bitSet() 81
5.5.8.6. Функция bitClear() 81
5.5.8.7. Функция bit() 81
5.5.9. Внешние прерывания 81
5.5.9.1. Функция attachInterrupt 82
5.5.9.2. Функция detachInterrupt 82
5.6. Управление портами через регистры ATmega 83

ЧАСТЬ III. СОПРЯЖЕНИЕ ARDUINO СО ВСПОМОГАТЕЛЬНЫМИ УСТРОЙСТВАМИ

87

Глава 6. Arduino: вводы и выводы

89
6.1. Цифровые выводы — «бегущий огонь» на светодиодах 89
6.1.1. Подключение светодиода к выводу Arduino 90
6.1.2. Подключение к плате Arduino 8-ми светодиодов 94
6.2. Цифровые входы — управляем светодиодами с помощью кнопок 99
6.2.1. Подключение кнопки к плате Arduino 99
6.2.2. Управление кнопками количеством горящих светодиодов 106
6.3. Аналоговые входы — светодиодный индикатор аналоговых значений 109
6.3.1. Подключение потенциометра к плате Arduino 111
6.3.2. Вывод показаний потенциометра на светодиодную шкалу 114
6.4. ШИМ — радуга на RGB-светодиоде 116
6.4.1. Подключение к плате Arduino RGB-светодиода 117
6.5. Светодиодные индикаторы 120
6.5.1. Подключение к плате Arduino семисегментного индикатора 120
6.6. Расширение цифровых выходов — микросхема 74HC595 124
6.6.1. Подключение к плате Arduino сдвигового регистра 74HC595 125
6.7. Расширение цифровых входов и выходов — микросхема MCP23017 130
6.8. Расширение аналоговых входов — мультиплексор CD4051 131

Глава 7. Использование библиотек в проектах Arduino

135
7.1. Установка библиотек 135
7.1.1. Установка библиотеки через Менеджер библиотек 136
7.1.2. Установка библиотеки из ZIP-архива 136
7.1.3. Установка библиотеки вручную 138
7.2. Подключение библиотеки 138
7.3. Создание собственной библиотеки 139
7.3.1. Создание заголовочного файла D5651.h 139
7.3.2. Создание файла реализации D5651.cpp 140
7.3.3. Создание файла keywords.txt 141

Глава 8. Arduino и последовательный порт UART

143
8.1. Библиотека Serial 143
8.1.1. Функция Serial.begin 143
8.1.2. Функция Serial.print 144
8.1.3. Функция Serial.println 144
8.1.4. Функция Serial.write 144
8.1.5. Функция Serial.available 145
8.1.6. Функция Serial.read 145
8.2. Использование UART для отладки программ 145
8.2.1. Подключение к плате Arduino нескольких кнопок 145
8.3. Использование UART для установки параметров 148
8.4. Библиотека SoftwareSerial 152
8.5. Соединение по UART двух плат Arduino 153

Глава 9. Подключение датчиков к плате Arduino

157
9.1. Подключение аналоговых датчиков 157
9.1.1. Подключение к плате Arduino аналогового датчика температуры LM335 158
9.2. Подключение датчиков по протоколу 1-Wire 160
9.2.1. Подключение к плате Arduino цифрового датчика температуры DS18B20 161
9.3. Подключение датчиков влажности и температуры DHT 167
9.4. Подключение датчиков по протоколу I2C 171
9.4.1. Подключение к плате Arduino датчика интенсивности света BH1750 173

Глава 10. Использование дисплеев в проектах Arduino

177
10.1. Символьные дисплеи на микроконтроллере HD44780 177
10.1.1. Функция begin() 180
10.1.2. Функция clear() 180
10.1.3. Функция home() 181
10.1.4. Функция setCursor() 181
10.1.5. Функция write() 181
10.1.6. Функция print() 181
10.1.7. Функция cursor() 182
10.1.8. Функция noCursor() 182
10.1.9. Функция blink() 182
10.1.10. Функция noBlink() 182
10.1.11. Функция display() 183
10.1.12. Функция noDisplay() 183
10.1.13. Функция scrollDisplayLeft() 183
10.1.14. Функция scrollDisplayRight() 183
10.1.15. Функция autoscroll() 183
10.1.16. Функция noAutoscroll() 184
10.1.17. Функция leftToRight() 184
10.1.18. Функция rightToLeft() 184
10.1.19. Функция createChar() 184
10.2. Подключение дисплеев на контроллере HD44780 по протоколу I2C 185
10.2.1. Вывод на ЖК-дисплей данных с датчика, работающего по протоколу I2C 187
10.3. Графический дисплей Nokia 190
10.4. OLED-дисплеи 196
10.4.1. Электронные часы на OLED-дисплее 197
10.5. Дисплеи Nextion 201
10.5.1. Создание нового проекта для дисплея Nextion 202
10.5.2. Прошивка дисплея через UART 206
10.5.3. Прошивка дисплея с помощью карты microSD 207
10.5.4. Подключение дисплея Nextion к плате Arduino 207

Глава 11. Подключение к Arduino исполнительных устройств

213
11.1. Подключение к плате Arduino электромагнитного или твердотельного реле 213
11.2. Подключение к плате Arduino электродвигателя постоянного тока 217
11.2.1. Управление двигателем с помощью транзистора 217
11.3. Управление двигателями с помощью драйвера 219
11.4. Подключение к плате Arduino сервопривода 222
11.4.1. Использование сервопривода в проекте звуковой сигнализации 225
11.5. Подключение к плате Arduino шагового двигателя 227
11.5.1. Управление дроблением шага и направлением вращения шагового двигателя с платы Arduino 230
11.6. Подключение к плате Arduino бесколлекторного двигателя 233

Глава 12. Arduino и беспроводная связь

237
12.1. ИК-управление 237
12.1.1. Управление сервоприводом с помощью ИК-связи 240
12.2. Радиомодули для частоты 433 МГц 243
12.2.1. Управление светодиодом платы Arduino с другой такой же платы по радиоканалу 433 МГц 243
12.3. Радиомодули NRF24L01 246
12.3.1. Организация связи между двумя платами Arduino с использованием модулей NRF24L01 248
12.4. Использование Arduino c аппаратурой радиоуправления 253
12.4.1. Принципы формирования радиосигнала 255
12.4.2. Организация связи приемника с передатчиком 256
12.4.3. Разработка скетча для приема платой Arduino команд передатчика 257
12.5. Arduino и Bluetooth 260

Глава 13. Arduino и Интернет вещей

269
13.1. Подключение к Интернету с помощью платы расширения Ethernet shield 269
13.1.1. Получение IP-адреса по DHCP 270
13.1.2. Отправка данных на сайт «Народный мониторинг» через Ethernet shield 272
13.2. Подключение к Интернету с помощью платы расширения GSM/GPRS shield 279
13.2.1. Отправка и получение SMS-сообщений с помощью GSM/GPRS shield 281
13.2.2. Отправка данных на сайт «Народный мониторинг» через GSM/GPRS shield 285

Глава 14. Специальные возможности отдельных плат Arduino

291
14.1. Использование Arduino Leonardo в качестве USB-устройства 291
14.1.1. Arduino Leonardo: имитация клавиатуры 292
14.1.2. Блокируем клавиатуру с наступлением темноты 294
14.1.3. Arduino Leonardo: имитация компьютерной мыши 294
14.2. Плата Arduino Esplora 297
14.2.1. Arduino Esplora: установка цветов RGB-светодиода 300
14.2.2. Arduino Esplora: создание игры 301
14.3. Плата Arduino LilyPad 319
14.4. Плата Arduino Yun 324
14.4.1. Arduino Yъn shield: управляем веб-камерой 326

Глава 15. Взаимодействие Arduino c другими программируемыми системами

329
15.1. Использование Arduino в проектах LEGO 329
15.1.1. Получение микрокомпьютером LEGO данных с датчика влажности и температуры DHT11, подключенного к плате Arduino 330
15.2. Arduino в проектах ROS 333
15.2.1. Установка ROS 334
15.2.2. Узлы и темы в ROS 334
15.2.3. Пакет rosserial 335
15.2.4. Подготовка сообщения (publisher) на Arduino 336
15.2.5. Создание подписки (subscriber) на Arduino 340
15.2.6. Связь через ROS двух плат Arduino 342

Глава 16. Программирование в среде Arduino IDE других плат

345
16.1. ESP8266 — микроконтроллер с интерфейсом Wi-Fi 345
16.1.1. Установка Arduino IDE для работы с ESP8266 346
16.1.2. Печать курса валют на термопринтере в проекте Интернета вещей 349
16.2. Z-Uno — плата для прототипирования устройств Z-Wave 356
16.2.1. Установка Arduino IDE для Z-Uno 358
16.2.2. Подключение к плате Z-Uno датчика влажности DHT11 361

ЧАСТЬ IV. ПРАКТИКА РАЗРАБОТКИ ПРОЕКТОВ ДЛЯ ARDUINO

363

Глава 17. Умная теплица «Домашний цветок»

365
17.1. Мониторинг климатических параметров умной теплицы 366
17.2. Индикация показаний умной теплицы 371
17.3. Организация полива, обдува и освещения в умной теплице 377
17.4. Переносим функции мониторинга и управления теплицей на смартфон с ОС Android 386
17.5. Создаем собственное мобильное приложение для управления умной теплицей 393
17.6. Превращаем нашу умную теплицу в объект Интернета вещей 397

Глава 18. Светодиодное табло футбольных матчей

407
18.1. RGB-светодиодная лента WS2812 407
18.2. Arduino-библиотека Adafruit_NeoPixel 409
18.3. Создание табло результатов ЧМ-2018 по футболу на RGB-ленте WS2812 410

Глава 19. Голосовое управление исполнительными устройствами

417
19.1. Управление электроприборами с помощью радиорозеток UNIEL 417
19.2. Радиомодули FS1000A/MX-RM-5V 419
19.3. Модуль распознавания голоса Voice Recognition Module V2 422
19.4. Система голосового управления 426

Глава 20. Проекты для вендинга: всюду деньги, деньги, деньги...

433
20.1. Купюроприемник ICT серий A7 и V7 433
20.1.1. Подключение купюроприемника ICT V7 к плате Arduino 437
20.1.2. Скетч для получения номинала принимаемой купюры 439
20.2. Монетоприемник CH-926 440
20.2.1. Настройка монетоприемника 441
20.2.2. Калибровка монетоприемника 442
20.3. Разменный автомат (хоппер) Cube Hopper MK II 442
20.3.1. Подключение хоппера к плате Arduino 444
20.3.2. Программирование хоппера 444

Глава 21. Makey: импровизированные клавиатуры

449
21.1. Makey: управление новогодней RGB-гирляндой 450
21.2. Программирование новогодней RGB-гирлянды 450

Глава 22. Arduino и интерфейс USB: управление роботами

455
22.1. Интерфейс USB 455
22.2. Плата расширения USB Host Shield 456
22.3. HID-устройства USB 457
22.4. Подключение HID-мыши USB 460
22.5. Управление роботом с помощью руля Defender 460
22.6. Управление роботом с помощью геймпада Defender 470

Глава 23. Камера Pixy: организация компьютерного зрения

477
23.1. Настройка камеры 478
23.2. Подключение камеры Pixy к плате Arduino 479
23.3. Организация слежения камерой за объектом 481
   
ПРИЛОЖЕНИЯ 485
Приложение 1. Перечень использованных источников 487
Приложение 2. Описание электронного архива 489
Предметный указатель 491


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2019 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.