Радиотехнический сайт RADIOTRACT

Радиотехника и электроника для разработчиков и радиолюбителей

Информация

 

 

Справочные данные на радиоэлектронные компоненты, приборы, средства связи и измерений. Радиотехническая литература.

Общая

Микроконтроллеры

ПЛИС

Измерения

Радиостанции

Библиотека

Справочники

Доска объявлений

Объявления о покупке и продаже радиокомпонентов. Спрос и предложение на различные радиодетали и приборы.

Куплю

Продам

Магазин

Программы

Полезные программы для радиолюбителей и разработчиков радиоэлектроники.

Радиотехника

Интернет

Калькуляторы

Другие

Мы в соцсетях

  

Arduino

Информация\Микроконтроллеры\Arduino\Проекты с использованием контроллера Arduino


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

Автор: Виктор Петин
Формат издания: 170x240 мм (средний формат)
Количество страниц: 448
Год выпуска: 2015
ISBN: 978-5-9775-3550-2
Язык издания: русский

Рассмотрены основные платы Arduino и платы расширения (шилды), добавляющие функциональность основной плате. Подробно описан язык и среда программирования Arduino IDE. Тщательно разобраны проекты с использованием контроллеров семейства Arduino. Это проекты в области робототехники, создания погодных метеостанций, "умного дома", вендинга, телевидения, Интернета, беспроводной связи (bluetooth, радиоуправление). Для всех проектов представлены схемы и исходный код. Также представлен исходный код для устройств Android, используемых в проектах для связи с контроллерами Arduino. На сайте издательства размещен архив с исходными кодами программ и библиотек, описаниями и спецификациями электронных компонентов и др. Во втором издании добавлены проекты голосового управления с помощью Arduino, работа с адресуемыми RGB-лентами, управление iRobot Create на Arduino. Рассмотрены проекты с использованием платы Arduino Leonardo. Приведены пошаговые уроки для начинающих разработчиков. 2-е издание.

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

Издательство: БХВ-Петербург.
Мягкая обложка, 448 стр.
ISBN 978-5-9775-3550-2

Найти в магазинах со скидкой

Книга состоит из трех частей и включает предисловие, тридцать глав и три приложения.
Часть I содержит описание Arduino, обзор контроллеров семейства Arduino и плат расширения для Arduino.
В части II книги рассмотрены среда разработки и язык программирования для контроллеров Arduino.
Часть III посвящена созданию конкретных устройств на основе контроллера Arduino. Проекты содержат электрические схемы и листинги программ. Рассмотрено использование плат расширения (шилдов). В книге широко используются библиотеки Arduino.
В приложениях приведены перечень использованной литературы и интернет-ресурсов, уроки учебного набора и описание электронного архива, сопровождающего книгу.

Содержание

Предисловие ................................................................................................................... 15
Для кого и о чем эта книга? .......................................................................................................... 15
Структура книги ............................................................................................................................. 15
Благодарности ................................................................................................................................ 16
ЧАСТЬ I. ARDUINO — ОБЩИЙ ОБЗОР ................................................................. 17
Глава 1. Введение в Arduino ....................................................................................... 19
1.1. Arduino — что это? ................................................................................................................. 19
1.2. В чем преимущество Arduino? .............................................................................................. 20
1.3. История создания Arduino ..................................................................................................... 20
Глава 2. Обзор контроллеров семейства Arduino ................................................... 22
2.1. Arduino Pro Mini...................................................................................................................... 23
2.2. Arduino Duemilanove ............................................................................................................... 23
2.3. Arduino Nano ........................................................................................................................... 25
2.4. Arduino LilyPad ....................................................................................................................... 26
2.5. Arduino Uno ............................................................................................................................. 27
2.6. Arduino Mega2560 ................................................................................................................... 28
2.7. Arduino Leonardo ..................................................................................................................... 29
2.8. Arduino Due ............................................................................................................................. 30
Глава 3. Платы расширения Arduino ........................................................................ 31
ЧАСТЬ II. СРЕДА РАЗРАБОТКИ И ЯЗЫК ПРОГРАММИРОВАНИЯ
КОНТРОЛЛЕРОВ ARDUINO .................................................................................... 37
Глава 4. Среда программирования Arduino IDE .................................................... 39
4.1. Установка Arduino IDE в Windows........................................................................................ 39
4.2. Установка Arduino IDE в Linux ............................................................................................. 41
4.3. Настройка среды Arduino IDE ............................................................................................... 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 и набор функций Serial .................................................................. 89
6.1. Функции библиотеки Serial ................................................................................................... 90
6.1.1. Функция Serial.begin() .................................................................................................. 90
6.1.2. Функция Serial.end() ..................................................................................................... 90
6.1.3. Функция Serial.available() ............................................................................................ 90
6.1.4. Функция Serial.read() ................................................................................................... 91
6.1.5. Функция Serial.flush() ................................................................................................... 92
6.1.6. Функция Serial.print() ................................................................................................... 92
6.1.7. Функция Serial.println() ................................................................................................ 93
6.1.8. Функция Serial.write() .................................................................................................. 93
6.1.9. Функция Serial.peek() ................................................................................................... 93
6.2. Библиотека SoftwareSerial ...................................................................................................... 94
6.2.1. Функция SoftwareSerial() ............................................................................................. 94
6.2.2. Функция SoftwareSerial.listen() .................................................................................... 94
6.2.3. Функция SoftwareSerial.isListening() ........................................................................... 95
6.2.4. Функция SoftwareSerial.overflow() ............................................................................... 96
Глава 7. Arduino и знакосинтезирующие жидкокристаллические индикаторы ..... 97
7.1. Принцип работы модулей ЖКИ WINSTAR WH1604.......................................................... 98
7.2. Библиотека LiquidCrystal ..................................................................................................... 103
7.2.1. Функция LiquidCrystal() ............................................................................................. 104
7.2.2. Функция begin() .......................................................................................................... 105
7.2.3. Функция clear() ........................................................................................................... 105
7.2.4. Функция home() .......................................................................................................... 105
7.2.5. Функция setCursor() ................................................................................................... 105
7.2.6. Функция write() ........................................................................................................... 106
7.2.7. Функция print() ........................................................................................................... 106
7.2.8. Функция cursor() ......................................................................................................... 107
7.2.9. Функция noCursor() .................................................................................................... 107
7.2.10. Функция blink() ......................................................................................................... 107
7.2.11. Функция noBlink() ..................................................................................................... 107
7.2.12. Функция display() ...................................................................................................... 107
7.2.13. Функция noDisplay() ................................................................................................. 108
7.2.14. Функция scrollDisplayLeft() ...................................................................................... 108
7.2.15. Функция scrollDisplayRight() ................................................................................... 108
7.2.16. Функция autoscroll() ................................................................................................. 108
7.2.17. Функция noAutoscroll()............................................................................................. 108
7.2.18. Функция leftToRight() ............................................................................................... 109
7.2.19. Функция rightToLeft() ............................................................................................... 109
7.2.20. Функция createChar() ............................................................................................... 109
7.3. Библиотека LiquidCrystalRus ............................................................................................... 111
Глава 8. Библиотека EEPROM .................................................................................. 116
8.1. Функции библиотек EEPROM ............................................................................................. 116
8.1.1. Функция чтения EEPROM.read ................................................................................. 116
8.1.2. Функция записи EEPROM.write ................................................................................ 117
8.2. Примеры использования памяти EEPROM ........................................................................ 118
8.2.1. Воспроизведение звука .............................................................................................. 118
8.2.2. Звонок с мелодиями ................................................................................................... 121
Глава 9. Использование Arduino Leonardo в качестве USB-устройства.......... 126
9.1. Имитация клавиатуры на Arduino Leonardo ....................................................................... 127
9.2. Имитация компьютерной мыши на Arduino Leonardo ...................................................... 129
Глава 10. Arduino и 1-Wire ........................................................................................ 133
10.1. Что такое 1-Wire? ............................................................................................................... 133
10.2. Применение 1-Wire ............................................................................................................. 136
10.3. Протокол 1-Wire ................................................................................................................. 137
10.3.1. Описание интерфейса 1-Wire ................................................................................ 137
10.3.2. Обмен информацией по 1-Wire ............................................................................. 138
10.3.3. Протокол обмена информацией 1-Wire ................................................................ 141
10.4. Библиотека OneWire ........................................................................................................... 143
10.4.1. Функция begin() ...................................................................................................... 144
10.4.2. Функция requestFrom() ........................................................................................... 144
10.4.3. Функция beginTransmission() ................................................................................. 144
10.4.4. Функция endTransmission() .................................................................................... 145
10.4.5. Функция write() ....................................................................................................... 145
10.4.6. Функция available() ................................................................................................ 145
10.4.7. Функция read() ........................................................................................................ 146
10.4.8. Функция onReceive() ............................................................................................... 146
10.4.9. Функция onRequest()............................................................................................... 146
10.5. Устройство iButton и программирование электронного замка ....................................... 146
10.5.1. Поиск устройств 1-Wire и получение уникального кода .................................... 148
10.5.2. Режимы работы ....................................................................................................... 150
10.5.3. Режим пользователя ............................................................................................... 151
10.5.4. Первоначальный ввод ключа в пустую базу ........................................................ 151
10.5.5. Просмотр, запись и удаление кодов ключей в режиме администратора ........... 153
10.5.6. Блок-реле. Открывание замка ................................................................................ 156
10.5.7. Проигрывание мелодий ......................................................................................... 157
Глава 11. Arduino и цифровой датчик температуры DS18B20 .......................... 159
11.1. Описание датчика DS18B20 .............................................................................................. 159
11.2. Использование библиотеки OneWire ................................................................................ 162
11.3. Библиотека DallasTemperature .......................................................................................... 163
Глава 12. Arduino и датчики температуры и влажности DHT .......................... 165
12.1. Характеристики датчиков DH11, DH22 ............................................................................ 165
12.2. Подключение к Arduino ..................................................................................................... 166
12.3. Библиотека DHT ................................................................................................................. 167
Глава 13. Сетевой обмен с помощью Arduino ....................................................... 169
13.1. Устройство Arduino Ethernet shield ................................................................................... 169
13.2. Библиотека Ethernet library .............................................................................................. 171
13.2.1. Класс Ethernet (Ethernet class) ............................................................................... 171
Функция Ethernet.begin() ....................................................................................... 172
Функция Ethernet.localIP() .................................................................................... 172
13.2.2. Класс IPAddress (IPAddress class) ......................................................................... 172
Функция IPAddress() .............................................................................................. 172
13.2.3. Класс Server (Server class) ...................................................................................... 173
Функция ethernetServer() ....................................................................................... 173
Функция begin() ...................................................................................................... 173
Функция available() ................................................................................................ 173
Функция write()....................................................................................................... 174
Функция print() ....................................................................................................... 175
Функция println() .................................................................................................... 175
13.2.4. Класс Client (Client class) ....................................................................................... 175
Функция client() ...................................................................................................... 176
Функция EthernetClient() ....................................................................................... 176
Функция connected() .............................................................................................. 176
Функция connect() .................................................................................................. 177
Функция write()....................................................................................................... 177
Функция print() ....................................................................................................... 177
Функция println() .................................................................................................... 177
Функция available() ................................................................................................ 178
Функция read() ....................................................................................................... 178
Функция flush() ....................................................................................................... 178
Функция stop() ........................................................................................................ 179
13.2.5. Класс EthernetUDP (EthernetUDP class) ............................................................... 179
Функция begin() ...................................................................................................... 179
Функция read() ....................................................................................................... 179
Функция write()....................................................................................................... 180
Функция beginPacket() ........................................................................................... 180
Функция endPacket() .............................................................................................. 181
Функция parsePacket() ........................................................................................... 181
Функция available() ................................................................................................ 182
Функция remoteIP() ................................................................................................ 182
Функция remotePort() ............................................................................................. 182
13.3. Домашняя метеостанция с доступом через Интернет ..................................................... 182
13.3.1. Устройство, настройка и отладка метеостанции ................................................. 182
13.3.2. Создание виджета для планшетов с ОС Android ................................................. 187
13.3.3. Размещение данных метеостанции на сайте ........................................................ 188
Глава 14. Arduino и карта памяти SD ..................................................................... 190
14.1. Arduino-библиотека SD ...................................................................................................... 190
14.1.1. Класс SD .................................................................................................................. 190
Функция begin() ...................................................................................................... 191
Функция exists() ...................................................................................................... 191
Функция mkdir() ..................................................................................................... 191
Функция rmdir() ...................................................................................................... 191
Функция open() ....................................................................................................... 191
Функция remove() ................................................................................................... 192
14.1.2. Класс File ................................................................................................................ 192
Функция available() ................................................................................................ 192
Функция close() ...................................................................................................... 193
Функция flush() ....................................................................................................... 193
Функция peek() ....................................................................................................... 193
Функция position() .................................................................................................. 194
Функция print() ....................................................................................................... 194
Функция println() .................................................................................................... 194
Функция seek() ........................................................................................................ 195
Функция size() ......................................................................................................... 195
Функция read() ....................................................................................................... 195
Функция write()....................................................................................................... 195
Функция isDirectory() ............................................................................................. 196
Функция openNextFile() ......................................................................................... 196
Функция rewindDirectory() .................................................................................... 196
14.2. Запись показаний датчиков на SD-карту .......................................................................... 196
Глава 15. Arduino и светодиодные матрицы ......................................................... 202
15.1. Светодиоды и светодиодные матрицы.............................................................................. 202
15.2. Светодиодная матрица FYM-23881BUG-11 ..................................................................... 203
15.3. SPI-расширитель выходов 74HC595 ................................................................................. 204
15.4. Игра "Тетрис" на светодиодных матрицах FYM-23881BUG-11 .................................... 206
15.4.1. Управление изображением на светодиодных матрицах ..................................... 208
15.4.2. Фигуры игры "Тетрис" ........................................................................................... 209
15.4.3. Управление фигурами игры "Тетрис" .................................................................. 211
15.4.4. Проверка столкновения фигур .............................................................................. 213
15.5. Светодиодная матрица RGB .............................................................................................. 215
15.6. RGB-ночник, управляемый с помощью движения рук ................................................... 216
Глава 16. Arduino и управляемые светодиодные ленты RGB ........................... 221
16.1. RGB-светодиодная лента WS2812 .................................................................................... 221
16.2. Arduino-библиотека Adafruit_Neopixel ............................................................................. 223
16.3. Создание табло результатов ЧМ-2018 по футболу на RGB-ленте WS2812 .................. 224
Глава 17. Работа Arduino с вендинговыми аппаратами ..................................... 230
17.1. Купюроприемник ICT серий A7 и V7 ............................................................................... 230
17.2. Подключение купюроприемника ICT V7 к Arduino ........................................................ 234
17.3. Скетч для получения номинала принимаемой купюры ................................................... 236
17.4. Монетоприемник CH-926 .................................................................................................. 237
Настройка монетоприемника ............................................................................................ 238
Калибровка монетоприемника .......................................................................................... 239
17.5. Подключение монетоприемника к Arduino ...................................................................... 239
17.6. Написание скетча ................................................................................................................ 240
Глава 18. Arduino и радиочастотная идентификация (RFID) ............................ 242
18.1. Радиочастотная идентификация ........................................................................................ 242
18.2. Датчик считывания RFID-карт .......................................................................................... 245
18.3. Скетч для считывания RFID-карт ...................................................................................... 247
Глава 19. Arduino и датчики расстояния ............................................................... 250
19.1. Ультразвуковые дальномеры HC-SR04 ............................................................................ 250
19.2. Принцип работы ультразвукового дальномера HC-SR04 ............................................... 251
19.3. Библиотека Ultrasonic ........................................................................................................ 251
19.4. Инфракрасные датчики расстояния Sharp ........................................................................ 252
19.5. Подключение датчиков Sharp к Arduino ........................................................................... 255
Глава 20. Arduino и передача данных в инфракрасном диапазоне ................... 256
20.1. Обмен данными в инфракрасном диапазоне .................................................................... 256
20.2. Протоколы для ИК-пультов ............................................................................................... 258
20.2.1. Протокол RC5 ......................................................................................................... 258
20.2.2. Протокол NEC ........................................................................................................ 259
20.2.3. Протокол JVC ......................................................................................................... 261
20.2.4. Протокол Sony ........................................................................................................ 262
20.3. Подключение ИК-приемника ............................................................................................ 263
20.4. Библиотека IRremote ........................................................................................................... 263
20.5. Скетч для получения кодов ИК-пульта ............................................................................. 265
Глава 21. Создаем робота ........................................................................................... 271
21.1. Ходовая часть ...................................................................................................................... 271
21.2. Драйвер двигателей L293D ................................................................................................ 274
21.3. Массив возможных состояний моторов ........................................................................... 277
21.4. Разработка скетча движений робота ................................................................................. 279
21.5. Движение робота по линии в автономном режиме .......................................................... 282
Глава 22. Arduino и шаговые двигатели ................................................................ 291
22.1. Управление шаговым двигателем ..................................................................................... 292
22.2. Arduino-библиотека Stepper ............................................................................................... 293
22.2.1. Функция Stepper() ................................................................................................... 293
22.2.2. Функция setSpeed(rpm) ........................................................................................... 293
22.2.3. Функция step(steps) ................................................................................................. 294
22.3. Пример использования библиотеки Stepper ..................................................................... 294
22.4. Arduino-библиотека AccelStepper ...................................................................................... 296
Глава 23. Arduino и сервоприводы .......................................................................... 297
23.1. Сервоприводы ..................................................................................................................... 297
23.2. Arduino-библиотека Servo для управления сервоприводом ............................................ 300
23.2.1. Функция attach() ..................................................................................................... 301
23.2.2. Функция detach() .................................................................................................... 301
23.2.3. Функция write(int) ................................................................................................... 302
23.2.4. Функция writeMicrosconds(int) .............................................................................. 302
23.2.5. Функция read() ........................................................................................................ 302
23.2.6. Функция attached() ................................................................................................. 302
23.3. Робот-паук на сервоприводах ............................................................................................ 303
23.4. Скетч для управления роботом-пауком ............................................................................ 307
Глава 24. Arduino и Bluetooth ................................................................................... 312
24.1. "Голубой зуб" ...................................................................................................................... 312
24.2. Модуль Bluetooth HC-05 .................................................................................................... 312
24.3. Управление роботом с Android-устройства по Bluetooth ................................................ 318
Глава 25. TV-выход на Arduino ................................................................................ 327
25.1. Схема подключения ............................................................................................................ 327
25.2. Arduino-библиотека TVOut ................................................................................................. 327
25.2.1. Функция установки режима begin() ...................................................................... 328
25.2.2. Функции задержки .................................................................................................. 328
Функция delay() ...................................................................................................... 328
Функция delay_frame() ........................................................................................... 328
25.2.3. Функции получения параметров ........................................................................... 329
Функция hres() ........................................................................................................ 329
Функция vres() ........................................................................................................ 329
Функция char_line() ............................................................................................... 329
25.2.4. Основные графические функции........................................................................... 329
Функция set_pixel()................................................................................................. 329
Функция get_pixel() ................................................................................................ 330
Функция fill() .......................................................................................................... 330
Функция clear_screen() .......................................................................................... 330
Функция invert() ..................................................................................................... 331
Функция shift_direction() ....................................................................................... 331
Функция draw_line()............................................................................................... 331
Функция draw_row() .............................................................................................. 331
Функция draw_column() ......................................................................................... 332
Функция draw_rect() .............................................................................................. 332
Функция draw_circle() ........................................................................................... 333
Функция bitmap() .................................................................................................... 333
25.2.5. Функции вывода текстовой информации ............................................................. 333
Функция select_font() ............................................................................................. 334
Функция print_char() .............................................................................................. 334
Функция set_cursor() .............................................................................................. 334
Функция print() ....................................................................................................... 334
Функция println() .................................................................................................... 335
25.2.6. Функции вывода аудио .......................................................................................... 335
Функция tone() ........................................................................................................ 335
Функция noTone() ................................................................................................... 335
25.3. Создание пользовательских шрифтов ............................................................................... 336
25.4. Создание графических примитивов .................................................................................. 337
25.5. Создание простейшей игровой консоли ........................................................................... 340
25.6. Разработка игры для игровой консоли .............................................................................. 342
25.6.1. Создание переменных игры ................................................................................... 342
25.6.2. Управление положением "игрока" с помощью джойстика ................................. 343
25.6.3. Генерация и перемещение объектов-цифр ........................................................... 345
25.6.4. Проверка столкновения "игрока" и объектов-цифр ............................................ 346
25.6.5. Счетчик баллов "игрока" ....................................................................................... 347
25.6.6. Переход на новый уровень .................................................................................... 348
25.6.7. Отображение данных игры на табло ..................................................................... 348
25.6.8. Звуковое сопровождение игры .............................................................................. 349
25.6.9. Основной цикл игры............................................................................................... 349
25.6.10. Добавляем меню для выбора игр ........................................................................ 350
Глава 26. Arduino и радиоуправление .................................................................... 352
26.1. Принципы формирования радиосигнала .......................................................................... 353
26.2. Установка связи приемника с передатчиком ................................................................... 355
26.3. Разработка скетча приема команд для Arduino ................................................................ 356
Глава 27. Arduino и беспроводной радиомодуль NRF24L01 ............................... 359
27.1. Радиомодуль NRF24L01 ..................................................................................................... 359
27.2. Библиотека для работы с модулем NRF24L01 ................................................................. 360
27.2.1. Параметры библиотеки Mirf .................................................................................. 361
27.2.2. Функции библиотеки Mirf ...................................................................................... 361
Функция init() ......................................................................................................... 361
Функция setRADDR() ............................................................................................. 361
Функция setTADDR() ............................................................................................. 361
Функция config() ..................................................................................................... 361
Функция dataReady() .............................................................................................. 362
Функция getData() .................................................................................................. 362
Функция send() ....................................................................................................... 362
Функция isSending() ............................................................................................... 362
27.3. Пример соединения двух плат Arduino с помощью модуля NRF24L01 ........................ 363
Глава 28. Работа Arduino с USB-устройствами ..................................................... 366
28.1. Интерфейс USB ................................................................................................................... 366
28.2. USB Host Shield ................................................................................................................... 367
28.3. HID-устройства USB .......................................................................................................... 368
28.4. Подключение HID-мыши USB .......................................................................................... 371
28.5. Использование HID-устройства (руль Defender) для управления роботом ................... 371
28.6. Управление iRobot Create с помощью беспроводного геймпада через Arduino ........... 381
Глава 29. Arduino и ROS ............................................................................................ 388
29.1. Что такое ROS? ................................................................................................................... 388
29.2. Дистрибутивы ROS ............................................................................................................. 389
29.3. Установка ROS .................................................................................................................... 389
29.4. Узлы и темы в ROS ............................................................................................................. 390
29.5. Пакет rosserial ..................................................................................................................... 391
29.6. Подготовка сообщения (publisher) на Arduino ................................................................. 392
29.7. Создание подписки (subscriber) на Arduino ...................................................................... 395
29.8. Связь через ROS двух плат Arduino .................................................................................. 397
Глава 30. Голосовое управление .............................................................................. 400
30.1. Управление электроприборами с помощью радиорозеток UNIEL ................................ 400
30.2. Радиомодули FS1000A ....................................................................................................... 402
30.3. Модуль распознавания голоса Voice Recognition Module V2 ......................................... 405
30.3.1. Обучение модуля .................................................................................................... 405
30.4. Система голосового управления........................................................................................ 408
ПРИЛОЖЕНИЯ .......................................................................................................... 415
Приложение 1. Список использованных источников .......................................... 417
Приложение 2. Начальная школа ............................................................................ 418
Урок 1. Управление светодиодом. Включение/выключение.
Плавное регулирование яркости................................................................................... 418
Урок 2. Подключение кнопки ..................................................................................................... 421
Урок 3. Работа с монитором порта ............................................................................................ 425
Урок 4. Подключение датчика температуры и влажности, работа с монитором порта ........ 428
Урок 5. Подключение модуля часов .......................................................................................... 431
Урок 6. Работа с жидкокристаллическим экраном ................................................................... 433
Урок 7. Подключение RGB-светодиода, использование широтно-импульсной модуляции..... 435
Урок 8. Подключение фоторезистора ........................................................................................ 438
Урок 9. Подключение фоторезистора и 8-ми светодиодов ...................................................... 440
Приложение 3. Описание электронного архива .................................................... 443

Исходный код всех рассмотренных примеров и проектов, а также используемые в проектах необходимые библиотеки можно скачать здесь.


Комментарии

comments powered by Disqus