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

Оглавление⌄
Часть I. Arduino — общий обзор 17Глава 1. Введение в Arduino 191.1. Arduino — что это? 191.2. В чем преимущество Arduino? 201.3. История создания Arduino 20Глава 2. Обзор контроллеров семейства Arduino 222.1. Arduino Pro Mini 232.2. Arduino Duemilanove 232.3. Arduino Nano 252.4. Arduino LilyPad 262.5. Arduino Uno 272.6. Arduino Mega2560 282.7. Arduino Leonardo 292.8. Arduino Due 30Глава 3. Платы расширения Arduino 31Часть II. Среда разработки и язык программирования контроллеров Arduino 37Глава 4. Среда программирования Arduino IDE 394.1. Установка Arduino IDE в Windows 394.2. Установка Arduino IDE в Linux 414.3. Настройка среды Arduino IDE 41Глава 5. Программирование в Arduino 455.1. Базовые знания 455.1.1. Цифровые выводы 455.1.2. Аналоговые входы 465.1.3. Широтно-импульсная модуляция 465.1.4. Память в Arduino 465.2. Структура программы 485.2.1. Функции setup() и loop() 485.3. Синтаксис и операторы 495.3.1. Управляющие операторы 495.3.1.1. Оператор if (условие) и операторы сравнения ==, !=, < , > 495.3.1.2. Оператор if..else 495.3.1.3. Оператор for 505.3.1.4. Оператор switch 515.3.1.5. Оператор while 515.3.1.6. Оператор do ... while 525.3.1.7. Оператор break 525.3.1.8. Оператор continue 525.3.1.9. Оператор return 535.3.2. Синтаксис 535.3.2.1. ; (точка с запятой) ; (semicolon) 535.3.2.2. {} (фигурные скобки) {} (curly braces) 535.3.2.3. Комментарии // (single line comment), /* */ (multi-line comment) 545.3.3. Арифметические операторы 545.3.3.1. = (assignment) = оператор присваивания 545.3.3.2. + (cложение), - (вычитание), * (умножение) , / (деление) 555.3.3.3. % (modulo) 555.3.4. Операторы сравнения 555.3.5. Логические операторы 555.3.5.1. && (логическое И) 555.3.5.2. || (логическое ИЛИ) 555.3.5.3. ! (логическое отрицание) 565.3.6. Унарные операторы 565.3.6.1. ++ (увеличение значения) / -- (уменьшение значения) 565.3.6.2. += , -= , *= , /= 565.4. Данные 565.4.1. Типы данных 565.4.1.1. boolean 575.4.1.2. char 575.4.1.3. byte 575.4.1.4. int 575.4.1.5. unsigned int 585.4.1.6. long 585.4.1.7. unsigned long 585.4.1.8. float 595.4.1.9. double 595.4.1.10. string — текстовые строки 595.4.1.11. Массивы 605.4.1.12. void 615.4.2. Константы 615.4.3. Переменные 625.4.3.1. Объявление переменных 625.4.3.2. Границы переменных 625.4.4. Преобразование типов данных 635.4.4.1. char() 635.4.4.2. byte() 635.4.4.3. int() 635.4.4.4. long() 635.4.4.5. float() 645.5. Функции 645.5.1. Цифровой ввод/вывод 645.5.1.1. Функция pinMode 645.5.1.2. Функция digitalWrite() 645.5.1.3. Функция digitalRead() 655.5.2. Аналоговый ввод/вывод 665.5.2.1. Функция analogRead() 665.5.2.2. Функция analogReference() 675.5.2.3. Функция analogWrite() 675.5.3. Дополнительные фунции ввода/вывода 695.5.3.1. Функция tone() 695.5.3.2. Функция noTone() 695.5.3.3. Функция shiftOut() 695.5.3.4. Функция pulseIn() 715.5.4. Работа со временем 725.5.4.1. Функция millis() 725.5.4.2. Функция micros() 725.5.4.3. Функция delay() 735.5.4.4. Функция delayMicroseconds() 745.5.5. Математические функции 755.5.5.1. Функция min(x,yx) 755.5.5.2. Функция max(x, y) 755.5.5.3. Функция abs() 755.5.5.4. Функция constrain(x, a, b) 765.5.5.5. Функция map(value, fromLow, fromHigh, toLow, toHigh) 765.5.5.6. Функция pow(base, exponent) 775.5.5.7. Функция sq(x) 775.5.5.8. Функция sqrt(x) 775.5.6. Тригонометрические функции 785.5.6.1. Функция sin(rad) 785.5.6.2. Функция cos(rad) 785.5.6.3. Функция tan(rad) 785.5.7. Генераторы случайных значений 785.5.7.1. Функция randomSeed(seed) 785.5.7.2. Функция random() 795.5.8. Операции с битами и байтами 795.5.8.1. Функция lowByte() 805.5.8.2. Функция highByte() 805.5.8.3. Функция bitRead() 805.5.8.4. Функция bitWrite() 805.5.8.5. Функция bitSet() 815.5.8.6. Функция bitClear() 815.5.8.7. Функция bit() 815.5.9. Внешние прерывания 815.5.9.1. Функция attachInterrupt 825.5.9.2. Функция detachInterrupt 825.6. Управление портами через регистры ATmega 83Часть III. Практическое применение Arduino 87Глава 6. Arduino и набор функций Serial 896.1. Функции библиотеки Serial 906.1.1. Функция Serial.begin() 906.1.2. Функция Serial.end() 906.1.3. Функция Serial.available() 906.1.4. Функция Serial.read() 916.1.5. Функция Serial.flush() 926.1.6. Функция Serial.print() 926.1.7. Функция Serial.println() 936.1.8. Функция Serial.write() 936.1.9. Функция Serial.peek() 936.2. Библиотека SoftwareSerial 946.2.1. Функция SoftwareSerial() 946.2.2. Функция SoftwareSerial.listen() 946.2.3. Функция SoftwareSerial.isListening() 956.2.4. Функция SoftwareSerial.overflow() 96Глава 7. Arduino и знакосинтезирующие жидкокристаллические индикаторы 977.1. Принцип работы модулей ЖКИ WINSTAR WH1604 987.2. Библиотека LiquidCrystal 1037.2.1. Функция LiquidCrystal() 1047.2.2. Функция begin() 1057.2.3. Функция clear() 1057.2.4. Функция home() 1057.2.5. Функция setCursor() 1057.2.6. Функция write() 1067.2.7. Функция print() 1067.2.8. Функция cursor() 1077.2.9. Функция noCursor() 1077.2.10. Функция blink() 1077.2.11. Функция noBlink() 1077.2.12. Функция display() 1077.2.13. Функция noDisplay() 1087.2.14. Функция scrollDisplayLeft() 1087.2.15. Функция scrollDisplayRight() 1087.2.16. Функция autoscroll() 1087.2.17. Функция noAutoscroll() 1087.2.18. Функция leftToRight() 1097.2.19. Функция rightToLeft() 1097.2.20. Функция createChar() 1097.3. Библиотека LiquidCrystalRus 111Глава 8. Библиотека EEPROM 1168.1. Функции библиотек EEPROM 1168.1.1. Функция чтения EEPROM.read 1168.1.2. Функция записи EEPROM.write 1178.2. Примеры использования памяти EEPROM 1188.2.1. Воспроизведение звука 1188.2.2. Звонок с мелодиями 121Глава 9. Использование Arduino Leonardo в качестве USB-устройства 1269.1. Имитация клавиатуры на Arduino Leonardo 1279.2. Имитация компьютерной мыши на Arduino Leonardo 129Глава 10. Arduino и 1-Wire 13310.1. Что такое 1-Wire? 13310.2. Применение 1-Wire 13610.3. Протокол 1-Wire 13710.3.1. Описание интерфейса 1-Wire 13710.3.2. Обмен информацией по 1-Wire 13810.3.3. Протокол обмена информацией 1-Wire 14110.4. Библиотека OneWire 14310.4.1. Функция begin() 14410.4.2. Функция requestFrom() 14410.4.3. Функция beginTransmission() 14410.4.4. Функция endTransmission() 14510.4.5. Функция write() 14510.4.6. Функция available() 14510.4.7. Функция read() 14610.4.8. Функция onReceive() 14610.4.9. Функция onRequest() 14610.5. Устройство iButton и программирование электронного замка 14610.5.1. Поиск устройств 1-Wire и получение уникального кода 14810.5.2. Режимы работы 15010.5.3. Режим пользователя 15110.5.4. Первоначальный ввод ключа в пустую базу 15110.5.5. Просмотр, запись и удаление кодов ключей в режиме администратора 15310.5.6. Блок-реле. Открывание замка 15610.5.7. Проигрывание мелодий 157Глава 11. Arduino и цифровой датчик температуры DS18B20 15911.1. Описание датчика DS18B20 15911.2. Использование библиотеки OneWire 16211.3. Библиотека DallasTemperature 163Глава 12. Arduino и датчики температуры и влажности DHT 16512.1. Характеристики датчиков DH11, DH22 16512.2. Подключение к Arduino 16612.3. Библиотека DHT 167Глава 13. Сетевой обмен с помощью Arduino 16913.1. Устройство Arduino Ethernet shield 16913.2. Библиотека Ethernet library 17113.2.1. Класс Ethernet (Ethernet class) 171Функция Ethernet.begin() 172Функция Ethernet.localIP() 17213.2.2. Класс IPAddress (IPAddress class) 172Функция IPAddress() 17213.2.3. Класс Server (Server class) 173Функция ethernetServer() 173Функция begin() 173Функция available() 173Функция write() 174Функция print() 175Функция println() 17513.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() 17913.2.5. Класс EthernetUDP (EthernetUDP class) 179Функция begin() 179Функция read() 179Функция write() 180Функция beginPacket() 180Функция endPacket() 181Функция parsePacket() 181Функция available() 182Функция remoteIP() 182Функция remotePort() 18213.3. Домашняя метеостанция с доступом через Интернет 18213.3.1. Устройство, настройка и отладка метеостанции 18213.3.2. Создание виджета для планшетов с ОС Android 18713.3.3. Размещение данных метеостанции на сайте 188Глава 14. Arduino и карта памяти SD 19014.1. Arduino-библиотека SD 19014.1.1. Класс SD 190Функция begin() 191Функция exists() 191Функция mkdir() 191Функция rmdir() 191Функция open() 191Функция remove() 19214.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() 19614.2. Запись показаний датчиков на SD-карту 196Глава 15. Arduino и светодиодные матрицы 20215.1. Светодиоды и светодиодные матрицы 20215.2. Светодиодная матрица FYM-23881BUG-11 20315.3. SPI-расширитель выходов 74HC595 20415.4. Игра "Тетрис" на светодиодных матрицах FYM-23881BUG-11 20615.4.1. Управление изображением на светодиодных матрицах 20815.4.2. Фигуры игры "Тетрис" 20915.4.3. Управление фигурами игры "Тетрис" 21115.4.4. Проверка столкновения фигур 21315.5. Светодиодная матрица RGB 21515.6. RGB-ночник, управляемый с помощью движения рук 216Глава 16. Arduino и управляемые светодиодные ленты RGB22116.1. RGB-светодиодная лента WS2812 22116.2. Arduino-библиотека Adafruit_Neopixel 22316.3. Создание табло результатов ЧМ-2018 по футболу на RGB-ленте WS2812 224Глава 17. Работа Arduino с вендинговыми аппаратами 23017.1. Купюроприемник ICT серий A7 и V7 23017.2. Подключение купюроприемника ICT V7 к Arduino 23417.3. Скетч для получения номинала принимаемой купюры 23617.4. Монетоприемник CH-926 237Настройка монетоприемника 238Калибровка монетоприемника 23917.5. Подключение монетоприемника к Arduino 23917.6. Написание скетча 240Глава 18. Arduino и радиочастотная идентификация (RFID) 24218.1. Радиочастотная идентификация 24218.2. Датчик считывания RFID-карт 24518.3. Скетч для считывания RFID-карт 247Глава 19. Arduino и датчики расстояния 25019.1. Ультразвуковые дальномеры HC-SR04 25019.2. Принцип работы ультразвукового дальномера HC-SR04 25119.3. Библиотека Ultrasonic 25119.4. Инфракрасные датчики расстояния Sharp 25219.5. Подключение датчиков Sharp к Arduino 255Глава 20. Arduino и передача данных в инфракрасном диапазоне 25620.1. Обмен данными в инфракрасном диапазоне 25620.2. Протоколы для ИК-пультов 25820.2.1. Протокол RC5 25820.2.2. Протокол NEC 25920.2.3. Протокол JVC 26120.2.4. Протокол Sony 26220.3. Подключение ИК-приемника 26320.4. Библиотека IRremote 26320.5. Скетч для получения кодов ИК-пульта 265Глава 21. Создаем робота 27121.1. Ходовая часть 27121.2. Драйвер двигателей L293D 27421.3. Массив возможных состояний моторов 27721.4. Разработка скетча движений робота 27921.5. Движение робота по линии в автономном режиме 282Глава 22. Arduino и шаговые двигатели 29122.1. Управление шаговым двигателем 29222.2. Arduino-библиотека Stepper 29322.2.1. Функция Stepper() 29322.2.2. Функция setSpeed(rpm) 29322.2.3. Функция step(steps) 29422.3. Пример использования библиотеки Stepper 29422.4. Arduino-библиотека AccelStepper 296Глава 23. Arduino и сервоприводы 29723.1. Сервоприводы 29723.2. Arduino-библиотека Servo для управления сервоприводом 30023.2.1. Функция attach() 30123.2.2. Функция detach() 30123.2.3. Функция write(int) 30223.2.4. Функция writeMicrosconds(int) 30223.2.5. Функция read() 30223.2.6. Функция attached() 30223.3. Робот-паук на сервоприводах 30323.4. Скетч для управления роботом-пауком 307Глава 24. Arduino и Bluetooth 31224.1. "Голубой зуб" 31224.2. Модуль Bluetooth HC-05 31224.3. Управление роботом с Android-устройства по Bluetooth 318Глава 25. TV-выход на Arduino 32725.1. Схема подключения 32725.2. Arduino-библиотека TVOut 32725.2.1. Функция установки режима begin() 32825.2.2. Функции задержки 328Функция delay() 328Функция delay_frame() 32825.2.3. Функции получения параметров 329Функция hres() 329Функция vres() 329Функция char_line() 32925.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() 33325.2.5. Функции вывода текстовой информации 333Функция select_font() 334Функция print_char() 334Функция set_cursor() 334Функция print() 334Функция println() 33525.2.6. Функции вывода аудио 335Функция tone() 335Функция noTone() 33525.3. Создание пользовательских шрифтов 33625.4. Создание графических примитивов 33725.5. Создание простейшей игровой консоли 34025.6. Разработка игры для игровой консоли 34225.6.1. Создание переменных игры 34225.6.2. Управление положением "игрока" с помощью джойстика 34325.6.3. Генерация и перемещение объектов-цифр 34525.6.4. Проверка столкновения "игрока" и объектов-цифр 34625.6.5. Счетчик баллов "игрока" 34725.6.6. Переход на новый уровень 34825.6.7. Отображение данных игры на табло 34825.6.8. Звуковое сопровождение игры 34925.6.9. Основной цикл игры 34925.6.10. Добавляем меню для выбора игр 350Глава 26. Arduino и радиоуправление 35226.1. Принципы формирования радиосигнала 35326.2. Установка связи приемника с передатчиком 35526.3. Разработка скетча приема команд для Arduino 356Глава 27. Arduino и беспроводной радиомодуль NRF24L01 35927.1. Радиомодуль NRF24L01 35927.2. Библиотека для работы с модулем NRF24L01 36027.2.1. Параметры библиотеки Mirf 36127.2.2. Функции библиотеки Mirf 361Функция init() 361Функция setRADDR() 361Функция setTADDR() 361Функция config() 361Функция dataReady() 362Функция getData() 362Функция send() 362Функция isSending() 36227.3. Пример соединения двух плат Arduino с помощью модуля NRF24L01 363Глава 28. Работа Arduino с USB-устройствами 36628.1. Интерфейс USB 36628.2. USB Host Shield 36728.3. HID-устройства USB 36828.4. Подключение HID-мыши USB 37128.5. Использование HID-устройства (руль Defender) для управления роботом 37128.6. Управление iRobot Create с помощью беспроводного геймпада через Arduino 381Глава 29. Arduino и ROS 38829.1. Что такое ROS? 38829.2. Дистрибутивы ROS 38929.3. Установка ROS 38929.4. Узлы и темы в ROS 39029.5. Пакет rosserial 39129.6. Подготовка сообщения (publisher) на Arduino 39229.7. Создание подписки (subscriber) на Arduino 39529.8. Связь через ROS двух плат Arduino 397Глава 30. Голосовое управление 40030.1. Управление электроприборами с помощью радиорозеток UNIEL 40030.2. Радиомодули FS1000A 40230.3. Модуль распознавания голоса Voice Recognition Module V2 40530.3.1. Обучение модуля 40530.4. Система голосового управления 408Приложения 415Приложение 1. Список использованных источников 417Приложение 2. Начальная школа 418Плавное регулирование яркости 418Урок 2. Подключение кнопки 421Урок 3. Работа с монитором порта 425Урок 4. Подключение датчика температуры и влажности, работа с монитором порта 428Урок 5. Подключение модуля часов 431Урок 6. Работа с жидкокристаллическим экраном 433модуляции 435Урок 8. Подключение фоторезистора 438Урок 9. Подключение фоторезистора и 8-ми светодиодов 440Проект 1. Бегущий огонек 443Проект 2. Секундомер 444Проект 3. Тренер 448Проект 4. Цветная температура 453Проект 5. Метеостанция 455Приложение 3. Описание электронного архива 462Описание
Коротко и по делу о том, что важно знать про arduino.
“Пятьдесят лет назад для разработки программного обеспечения вам требовалась команда людей в белых халатах, которые знали все об электронных лампах. Платформа Arduino совершила маленькую “революцию” в деле демократизации процесса разработки микроэлектронных устройств. Но теперь даже моя мама может программировать. Легкость программирования, доступная новичкам, большое количество плат расширения, программных наработок в виде библиотек позволяют разработчику сосредоточиться не на написании громоздкого кода, а на творчестве и фантазии. Мы позволили множеству людей создавать электронные устройства самостоятельно ,” – утверждает Массимо Банци, один из создателей платы Arduino. Данная книга – подтверждение этого утверждения. Робототехника, домашние погодные станции, системы “умного дома”, вендинговые системы, радиоуправление, телевидение, Интернет – вот неполный перечень рассмотренных в книге проектов. Вы увидите, как достаточно просто на Arduino создаются достаточно сложные проекты в различных областях. Вы поймете, что в ваших силах создать подобное и еще больше… В книге рассмотрены основные платы Arduino и платы расширения (шилды), добавляющие функциональность основной плате. Тщательно разобраны проекты с использованием контроллеров семейства Arduino. Подробно описан язык и среда программирования Arduino IDE. Это проекты в области робототехники, создания погодных метеостанций, “умного дома”, вендинга, телевидения, Интернета, беспроводной связи (bluetooth, радиоуправление). Также представлен исходный код для устройств Android, используемых в проектах для связи с контроллерами Arduino. Для всех проектов представлены схемы и исходный код. На сайте издательства размещен архив с исходными кодами программ и библиотек, описаниями и спецификациями электронных компонентов и др. Рассмотрены проекты с использованием платы Arduino Leonardo. Во втором издании добавлены проекты голосового управления с помощью Arduino, работа с адресуемыми RGB-лентами, управление iRobot Create на Arduino. Приведены пошаговые уроки для начинающих разработчиков. = Arduino Leonardo… = Arduino и роботы = Arduino и радиоуправление = Arduino и метеостанции = Arduino и вендинг = Arduino и телевизоры = Голосовое управление умным домом = Управление iRobot Create на Arduino.
Если материал оказался полезен — сохраните страницу.
Поделиться
Частые вопросы
Можно ли скачать «Проекты с использованием контроллера Arduino. 2 изд» бесплатно?
Да, «Проекты с использованием контроллера Arduino. 2 изд» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 7,9 МБ.
Кто автор и когда вышла книга?
автор — Петин Виктор Александрович, издательство БХВ-Петербург, год выпуска 2015, 464 страниц.
О чём книга «Проекты с использованием контроллера Arduino. 2 изд»?
Платформа Arduino совершила маленькую “революцию” в деле демократизации процесса разработки микроэлектронных устройств.