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

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

Автор Петин В.
Название Проекты с использованием контроллера Arduino
Серия Электроника
ISBN 978-5-9775-3337-9
Формат 70*100 1/16
Объем 400
Тематика
Оптовая цена 319 руб.
    Вернуться к описанию книги

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

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

Часть I. Arduino — общий обзор

15

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

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

Глава 2. Обзор контроллеров семейства Arduino

20
2.1. Arduino Pro Mini 21
2.2. Arduino Duemilanove 21
2.3. Arduino Nano 23
2.4. Arduino LilyPad 24
2.5. Arduino Uno 25
2.6. Arduino Mega2560 26
2.7. Arduino Leonardo 27
2.8. Arduino Due 28

Глава 3. Платы расширения Arduino

29

Часть II. Среда разработки и язык программирования контроллеров Arduino

35

Глава 4. Среда программирования Arduino IDE

37
4.1. Установка Arduino IDE в Windows 37
4.2. Установка Arduino IDE в Linux 39
4.3. Настройка средв Arduino IDE 39

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

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

Часть III. Практическое применение Arduino

83

Глава 6. Arduino и набор функций Serial

85
6.1. Функции библиотеки Serial 86
6.1.1. Функция Serial.begin() 86
6.1.2. Функция Serial.end() 86
6.1.3. Функция Serial.available() 86
6.1.4. Функция Serial.read() 87
6.1.5. Функция Serial.flush() 88
6.1.6. Функция Serial.print() 88
6.1.7. Функция Serial.println() 89
6.1.8. Функция Serial.write() 89
6.1.9. Функция Serial.peek() 89
6.2. Библиотека SoftwareSerial 90
6.2.1. Функция SoftwareSerial() 90
6.2.2. Функция SoftwareSerial.listen() 90
6.2.3. Функция SoftwareSerial.isListening() 91
6.2.4. Функция SoftwareSerial.overflow() 92

Глава 7. Arduino и знакосинтезирующие жидкокристаллические индикаторы

93
7.1. Принцип работы модулей ЖКИ WINSTAR WH1604 94
7.2. Библиотека LiquidCrystal 99
7.2.1. Функция LiquidCrystal() 100
7.2.2. Функция begin() 101
7.2.3. Функция clear() 101
7.2.4. Функция home() 101
7.2.5. Функция setCursor() 101
7.2.6. Функция write() 102
7.2.7. Функция print() 102
7.2.8. Функция cursor() 103
7.2.9. Функция noCursor() 103
7.2.10. Функция blink() 103
7.2.11. Функция noBlink() 103
7.2.12. Функция display() 103
7.2.13. Функция noDisplay() 104
7.2.14. Функция scrollDisplayLeft() 104
7.2.15. Функция scrollDisplayRight() 104
7.2.16. Функция autoscroll() 104
7.2.17. Функция noAutoscroll() 104
7.2.18. Функция leftToRight() 105
7.2.19. Функция rightToLeft() 105
7.2.20. Функция createChar() 105
7.3. Библиотека LiquidCrystalRus 107

Глава 8. Библиотека EEPROM

112
8.1. Функции библиотек EEPROM 112
8.1.1. Функция чтения EEPROM.read 112
8.1.2. Функция записи EEPROM.write 113
8.2. Примеры использования памяти EEPROM 114
8.2.1. Воспроизведение звука 114
8.2.2. Звонок с мелодиями 117

Глава 9. Подключение клавиатуры и мыши

122
9.1. Обмен данными по протоколу PS/2 122
9.2. Библиотека ps2dev 124
9.3. Подключение клавиатуры 125
9.4. Редактор текста на дисплее WH1604 126
9.5. Подключение мыши 134
9.6. Опрос состояния мыши 135

Глава 10. Arduino и сенсорная панель

139
10.1. Как работает резистивный экран? 140
10.2. Программа чтения координат сенсорного экрана 142
10.3. Библиотека Arduino TouchScreen 143

Глава 11. Arduino и 1-Wire

144
11.1. Что такое 1-Wire? 144
11.2. Применение 1-Wire 147
11.3. Протокол 1-Wire 148
11.3.1. Описание интерфейса 1-Wire 148
11.3.2. Обмен информацией по 1-Wire 149
11.3.3. Протокол обмена информацией 1-Wire 152
11.4. Библиотека OneWire 154
11.4.1. Функция begin() 155
11.4.2. Функция requestFrom() 155
11.4.3. Функция beginTransmission() 155
11.4.4. Функция endTransmission() 156
11.4.5. Функция write() 156
11.4.6. Функция available() 156
11.4.7. Функция read() 157
11.4.8. Функция onReceive() 157
11.4.9. Функция onRequest() 157
11.5. Устройство iButton и программирование электронного замка 157
11.5.1. Поиск устройств 1-Wire и получение уникального кода 159
11.5.2. Режимы работы 161
11.5.3. Режим пользователя 162
11.5.4. Первоначальный ввод ключа в пустую базу 162
11.5.5. Просмотр, запись и удаление кодов ключей в режиме администратора 164
11.5.6. Блок-реле. Открывание замка 167
11.5.7. Проигрывание мелодий 168

Глава 12. Arduino и цифровой датчик температуры DS18B20

170
12.1. Описание датчика DS18B20 170
12.2. Использование библиотеки OneWire 173
12.3. Библиотека DallasTemperature 174

Глава 13. Arduino и датчики температуры и влажности DHT

176
13.1. Характеристики датчиков DH11, DH22 176
13.2. Подключение к Arduino 177
13.3. Библиотека DHT 178

Глава 14. Сетевой обмен с помощью Arduino

180
14.1. Устройство Arduino Ethernet shield 180
14.2. Библиотека Ethernet library 182
14.2.1. Класс Ethernet (Ethernet class) 182
Функция Ethernet.begin() 183
Функция Ethernet.localIP() 183
14.2.2. Класс IPAddress (IPAddress class) 183
Функция IPAddress() 183
14.2.3. Класс Server (Server class) 184
Функция ethernetServer() 184
Функция begin() 184
Функция available() 184
Функция write() 185
Функция print() 186
Функция println() 186
14.2.4. Класс Client (Client class) 186
Функция client() 187
Функция EthernetClient() 187
Функция connected() 187
Функция connect() 188
Функция write() 188
Функция print() 188
Функция println() 188
Функция available() 189
Функция read() 189
Функция flush() 189
Функция stop() 190
14.2.5. Класс EthernetUDP (EthernetUDP class) 190
Функция begin() 190
Функция read() 190
Функция write() 191
Функция beginPacket() 191
Функция endPacket() 192
Функция parsePacket() 192
Функция available() 193
Функция remoteIP() 193
Функция remotePort() 193
14.3. Домашняя метеостанция с доступом через Интернет 193
14.3.1. Устройство, настройка и отладка метеостанции 193
14.3.2. Создание виджета для планшетов с ОС Android 198
14.3.3. Размещение данных метеостанции на сайте 199

Глава 15. Arduino и карта памяти SD

201
15.1. Arduino-библиотека SD 201
15.1.1. Класс SD 201
Функция begin() 202
Функция exists() 202
Функция mkdir() 202
Функция rmdir() 202
Функция open() 202
Функция remove() 203
15.1.2. Класс File 203
Функция available() 203
Функция close() 204
Функция flush() 204
Функция peek() 204
Функция position() 205
Функция print() 205
Функция println() 205
Функция seek() 206
Функция size() 206
Функция read() 206
Функция write() 206
Функция isDirectory() 207
Функция openNextFile() 207
Функция rewindDirectory() 207
15.2. Запись показаний датчиков на SD-карту 207

Глава 16. Arduino и светодиодные матрицы

213
16.1. Светодиоды и светодиодные матрицы 213
16.2. Светодиодная матрица FYM-23881BUG-11 214
16.3. SPI-расширитель выходов 74HC595 215
16.4. Игра "Тетрис" на светодиодных матрицах FYM-23881BUG-11 217
16.4.1. Управление изображением на светодиодных матрицах 219
16.4.2. Фигуры игры "Тетрис" 220
16.4.3. Управление фигурами игры "Тетрис" 222
16.4.4. Проверка столкновения фигур 224
16.5. Светодиодная матрица RGB 226
16.6. RGB-ночник, управляемый с помощью движения рук 227

Глава 17. Работа Arduino с купюроприемником

232
17.1. Купюроприемник ICT серий A7 и V7 232
17.2. Подключение купюроприемника ICT V7 к Arduino 236
17.3. Скетч для получения номинала принимаемой купюры 238

Глава 18. Arduino и радиочастотная идентификация (RFID)

240
18.1. Радиочастотная идентификация 240
18.2. Датчик считывания RFID-карт 243
18.3. Скетч для считывания RFID-карт 245

Глава 19. Arduino и датчики расстояния

248
19.1. Ультразвуковые дальномеры HC-SR04 248
19.2. Принцип работы ультразвукового дальномера HC-SR04 249
19.3. Библиотека Ultrasonic 249
19.4. Инфракрасные датчики расстояния Sharp 250
19.5. Подключение датчиков Sharp к Arduino 253

Глава 20. Arduino и передача данных в инфракрасном диапазоне

254
20.1. Обмен данными в инфракрасном диапазоне 254
20.2. Протоколы для ИК-пультов 256
20.2.1. Протокол RC5 256
20.2.2. Протокол NEC 257
20.2.3. Протокол JVC 259
20.2.4. Протокол Sony 260
20.3. Подключение ИК-приемника 261
20.4. Библиотека IRremote 261
20.5. Скетч для получения кодов ИК-пульта 263

Глава 21. Создаем робота

269
21.1. Ходовая часть 269
21.2. Драйвер двигателей L293D 272
21.3. Массив возможных состояний моторов 275
21.4. Разработка скетча движений робота 277
21.5. Движение робота по линии в автономном режиме 280

Глава 22. Arduino и шаговые двигатели

289
22.1. Управление шаговым двигателем 290
22.2. Arduino-библиотека Stepper 291
22.2.1. Функция Stepper() 291
22.2.2. Функция setSpeed(rpm) 291
22.2.3. Функция step(steps) 292
22.3. Пример использования библиотеки Stepper 292
22.4. Arduino-библиотека AccelStepper 294

Глава 23. Arduino и сервоприводы

295
23.1. Сервоприводы 295
23.2. Arduino-библиотека Servo для управления сервоприводом 298
23.2.1. Функция attach() 299
23.2.2. Функция detach() 299
23.2.3. Функция write(int) 300
23.2.4. Функция writeMicrosconds(int) 300
23.2.5. Функция read() 300
23.2.6. Функция attached() 300
23.3. Робот-паук на сервоприводах 301
23.4. Скетч для управления роботом-пауком 305

Глава 24. Arduino и Bluetooth

310
24.1. "Голубой зуб" 310
24.2. Модуль Bluetooth HC-05 310
24.3. Управление роботом с Android-устройства по Bluetooth 316

Глава 25. TV-выход на Arduino

325
25.1. Схема подключения 325
25.2. Arduino-библиотека TVOut 325
25.2.1. Функция установки режима begin() 326
25.2.2. Функции задержки 326
Функция delay() 326
Функция delay_frame() 326
25.2.3. Функции получения параметров 327
Функция hres() 327
Функция vres() 327
Функция char_line() 327
25.2.4. Основные графические функции 327
Функция set_pixel() 327
Функция get_pixel() 328
Функция fill() 328
Функция clear_screen() 328
Функция invert() 329
Функция shift_direction() 329
Функция draw_line() 329
Функция draw_row() 329
Функция draw_column() 330
Функция draw_rect() 330
Функция draw_circle() 331
Функция bitmap() 331
25.2.5. Функции вывода текстовой информации 331
Функция select_font() 332
Функция print_char() 332
Функция set_cursor() 332
Функция print() 332
Функция println() 333
25.2.6. Функции вывода аудио 333
Функция tone() 333
Функция noTone() 333
25.3. Создание пользовательских шрифтов 334
25.4. Создание графических примитивов 335
25.5. Создание простейшей игровой консоли 338
25.6. Разработка игры для игровой консоли 340
25.6.1. Создание переменных игры 340
25.6.2. Управление положением "игрока" с помощью джойстика 341
25.6.3. Генерация и перемещение объектов-цифр 343
25.6.4. Проверка столкновения "игрока" и объектов-цифр 344
25.6.5. Счетчик баллов "игрока" 345
25.6.6. Переход на новый уровень 346
25.6.7. Отображение данных игры на табло 346
25.6.8. Звуковое сопровождение игры 347
25.6.9. Основной цикл игры 347
25.6.10. Добавляем меню для выбора игр 348

Глава 26. Arduino и радиоуправление

350
26.1. Принципы формирования радиосигнала 351
26.2. Установка связи приемника с передатчиком 353
26.3. Разработка скетча приема команд для Arduino 354

Глава 27. Arduino и беспроводной радиомодуль NRF24L01

357
27.1. Радиомодуль NRF24L01 357
27.2. Библиотека для работы с модулем NRF24L01 358
27.2.1. Параметры библиотеки Mirf 359
27.2.2. Функции библиотеки Mirf 359
Функция init() 359
Функция setRADDR() 359
Функция setTADDR() 359
Функция config() 359
Функция dataReady() 360
Функция getData() 360
Функция send() 360
Функция isSending() 360
27.3. Пример соединения двух плат Arduino с помощью модуля NRF24L01 361

Глава 28. Работа Arduino с USB-устройствами

364
28.1. Интерфейс USB 364
28.2. USB Host Shield 365
28.3. HID-устройства USB 366
28.4. Подключение HID-мыши USB 369
28.5. Использование HID-устройства (руль Defender) для управления роботом 369
28.6. Подключение к Arduino Android-устройства через USB Host Shield 379

Глава 29. Arduino и ROS

380
29.1. Что такое ROS? 380
29.2. Дистрибутивы ROS 381
29.3. Установка ROS 381
29.4. Узлы и темы в ROS 382
29.5. Пакет rosserial 383
29.6. Подготовка сообщения (publisher) на Arduino 384
29.7. Создание подписки (subscriber) на Arduino 387
29.8. Связь через ROS двух плат Arduino 389

Глава 30. Arduino и "умный дом" X10

392
30.1. Система домашней автоматизации X10 392
30.2. Двусторонний интерфейс TW523 394
30.3. Arduino-библиотека X10 395
30.3.1. Функция begin() 395
30.3.2. Функция write() 395
30.4. Блок на Arduino для голосового управления приборами X10 397
Приложение 1. Список использованных источников 399
Приложение 2. Описание электронного архива 400


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