Проекты с использованием контроллера Arduino — Рассмотрены основные платы Arduino и платы расширения (шилды), добавляющие функциональность основной плате. Подробно описан язык и среда программирования Arduino IDE. Тщательно разобраны проекты с использованием контроллеров семейства Arduino. Это проекты в области робототехники, создания погодных метеостанций, "умного дома", вендинга, телевидения, Интернета, беспроводной связи (bluetooth, радиоуправление). Для всех проектов представлены схемы и исходный код. Также приведен исходный код для устройств Android, используемых в проектах для связи с контроллерами Arduino. Также в архиве исходные коды программ проектов из книги, библиотек, описания и спецификации электронных компонентов, схемы из книги в формате spl7.
Название: Проекты с использованием контроллера Arduino Автор: Петин В. А. Издательство: БХВ-Петербург Год: 2014 Страниц: 400 Формат: PDF Размер: 20,05 МБ ISBN: 978-5-9775-3337-9 Качество: отличное Серия: Электроника Язык: русский
Содержание:
Предисловие Для кого и о чем эта книга? Структура книги Благодарности Часть I. Arduino - общий обзор Глава 1. Введение в Arduino 1.1. Arduino - что это? 1.2. В чем преимущество Arduino? 1.3. История создания Arduino Глава 2. Обзор контроллеров семейства Arduino 2.1. Arduino Pro Mini 2.2. Arduino Duemilanove 2.3. Arduino Nano 2.4. Arduino LilyPad 2.5. Arduino Uno 2.6. Arduino Mega2560 2.7. Arduino Leonardo 2.8. Arduino Due Глава 3. Платы расширения Arduino Часть II. Среда разработки и язык программирования контроллеров Arduino Глава 4. Среда программирования Arduino IDE 4.1. Установка Arduino IDE в Windows 4.2. Установка Arduino IDE в Linux 4.3. Настройка средв Arduino IDE Глава 5. Программирование в Arduino 5.1. Базовые знания 5.1.1. Цифровые выводы 5.1.2. Аналоговые входы 5.1.3. Широтно-импульсная модуляция 5.1.4. Память в Arduino 5.2. Структура программы 5.2.1. Функции setup() и loop() 5.3. Синтаксис и операторы 5.3.1. Управляющие операторы 5.3.1.1. Оператор if (условие) и операторы сравнения ==,!=, <, > 5.3.1.2. Оператор if.. else 5.3.1.3. Оператор for 5.3.1.4. Оператор switch 5.3.1.5. Оператор while 5.3.1.6. Оператор do… while 5.3.1.7. Оператор break 5.3.1.8. Оператор continue 5.3.1.9. Оператор return 5.3.2. Синтаксис 5.3.2.1. ; (точка с запятой) ; (semicolon) 5.3.2.2. {} (фигурные скобки) {} (curly braces) 5.3.2.3. Комментарии // (single line comment), /* */ (multi-line comment) 5.3.3. Арифметические операторы 5.3.3.1. = (assignment) = оператор присваивания 5.3.3.2. + (cложение), - (вычитание), * (умножение), / (деление) 5.3.3.3. % (modulo) 5.3.4. Операторы сравнения 5.3.5. Логические операторы 5.3.5.1. && (логическое И) 5.3.5.2. || (логическое ИЛИ) 5.3.5.3.! (логическое отрицание) 5.3.6. Унарные операторы 5.3.6.1. ++ (увеличение значения) / - (уменьшение значения) 5.3.6.2. +=, -=, *=, /= 5.4. Данные 5.4.1. Типы данных 5.4.1.1. boolean 5.4.1.2. char 5.4.1.3. byte 5.4.1.4. int 5.4.1.5. unsigned int 5.4.1.6. long 5.4.1.7. unsigned long 5.4.1.8. float 5.4.1.9. double 5.4.1.10. string - текстовые строки 5.4.1.11. Массивы 5.4.1.12. void 5.4.2. Константы 5.4.3. Переменные 5.4.3.1. Объявление переменных 5.4.3.2. Границы переменных 5.4.4. Преобразование типов данных 5.4.4.1. char() 5.4.4.2. byte() 5.4.4.3. int() 5.4.4.4. long() 5.4.4.5. float() 5.5. Функции 5.5.1. Цифровой ввод/вывод 5.5.1.1. Функция pinMode 5.5.1.2. Функция digitalWrite() 5.5.1.3. Функция digitalRead() 5.5.2. Аналоговый ввод/вывод 5.5.2.1. Функция analogRead() 5.5.2.2. Функция analogReference() 5.5.2.3. Функция analogWrite() 5.5.3. Дополнительные фунции ввода/вывода 5.5.3.1. Функция tone() 5.5.3.2. Функция noTone() 5.5.3.3. Функция shiftOut() 5.5.3.4. Функция pulseIn() 5.5.4. Работа со временем 5.5.4.1. Функция millis() 5.5.4.2. Функция micros() 5.5.4.3. Функция delay() 5.5.4.4. Функция delayMicroseconds() 5.5.5. Математические функции 5.5.5.1. Функция min (x, yx) 5.5.5.2. Функция max (x, y) 5.5.5.3. Функция abs() 5.5.5.4. Функция constrain (x, a, b) 5.5.5.5. Функция map (value, fromLow, fromHigh, toLow, toHigh) 5.5.5.6. Функция pow (base, exponent) 5.5.5.7. Функция sq (x) 5.5.5.8. Функция sqrt (x) 5.5.6. Тригонометрические функции 5.5.6.1. Функция sin (rad) 5.5.6.2. Функция cos (rad) 5.5.6.3. Функция tan (rad) 5.5.7. Генераторы случайных значений 5.5.7.1. Функция randomSeed (seed) 5.5.7.2. Функция random() 5.5.8. Операции с битами и байтами 5.5.8.1. Функция lowByte() 5.5.8.2. Функция highByte() 5.5.8.3. Функция bitRead() 5.5.8.4. Функция bitWrite() 5.5.8.5. Функция bitSet() 5.5.8.6. Функция bitClear() 5.5.8.7. Функция bit() 5.5.9. Внешние прерывания 5.5.9.1. Функция attachInterrupt 5.5.9.2. Функция detachInterrupt Часть III. Практическое применение Arduino Глава 6. Arduino и набор функций Serial 6.1. Функции библиотеки Serial 6.1.1. Функция Serial. begin() 6.1.2. Функция Serial. end() 6.1.3. Функция Serial. available() 6.1.4. Функция Serial. read() 6.1.5. Функция Serial. flush() 6.1.6. Функция Serial. print() 6.1.7. Функция Serial. println() 6.1.8. Функция Serial. write() 6.1.9. Функция Serial. peek() 6.2. Библиотека SoftwareSerial 6.2.1. Функция SoftwareSerial() 6.2.2. Функция SoftwareSerial. listen() 6.2.3. Функция SoftwareSerial. isListening() 6.2.4. Функция SoftwareSerial. overflow() Глава 7. Arduino и знакосинтезирующие жидкокристаллические индикаторы 7.1. Принцип работы модулей ЖКИ WINSTAR WH1604 7.2. Библиотека LiquidCrystal 7.2.1. Функция LiquidCrystal() 7.2.2. Функция begin() 7.2.3. Функция clear() 7.2.4. Функция home() 7.2.5. Функция setCursor() 7.2.6. Функция write() 7.2.7. Функция print() 7.2.8. Функция cursor() 7.2.9. Функция noCursor() 7.2.10. Функция blink() 7.2.11. Функция noBlink() 7.2.12. Функция display() 7.2.13. Функция noDisplay() 7.2.14. Функция scrollDisplayLeft() 7.2.15. Функция scrollDisplayRight() 7.2.16. Функция autoscroll() 7.2.17. Функция noAutoscroll() 7.2.18. Функция leftToRight() 7.2.19. Функция rightToLeft() 7.2.20. Функция createChar() 7.3. Библиотека LiquidCrystalRus Глава 8. Библиотека EEPROM 8.1. Функции библиотек EEPROM 8.1.1. Функция чтения EEPROM.read 8.1.2. Функция записи EEPROM.write 8.2. Примеры использования памяти EEPROM 8.2.1. Воспроизведение звука 8.2.2. Звонок с мелодиями Глава 9. Подключение клавиатуры и мыши 9.1. Обмен данными по протоколу PS/2 9.2. Библиотека ps2dev 9.3. Подключение клавиатуры 9.4. Редактор текста на дисплее WH1604 9.5. Подключение мыши 9.6. Опрос состояния мыши Глава 10. Arduino и сенсорная панель 10.1. Как работает резистивный экран? 10.2. Программа чтения координат сенсорного экрана 10.3. Библиотека Arduino TouchScreen Глава 11. Arduino и 1-Wire 11.1. Что такое 1-Wire? 11.2. Применение 1-Wire 11.3. Протокол 1-Wire 11.3.1. Описание интерфейса 1-Wire 11.3.2. Обмен информацией по 1-Wire 11.3.3. Протокол обмена информацией 1-Wire 11.4. Библиотека OneWire 11.4.1. Функция begin() 11.4.2. Функция requestFrom() 11.4.3. Функция beginTransmission() 11.4.4. Функция endTransmission() 11.4.5. Функция write() 11.4.6. Функция available() 11.4.7. Функция read() 11.4.8. Функция onReceive() 11.4.9. Функция onRequest() 11.5. Устройство iButton и программирование электронного замка 11.5.1. Поиск устройств 1-Wire и получение уникального кода 11.5.2. Режимы работы 11.5.3. Режим пользователя 11.5.4. Первоначальный ввод ключа в пустую базу 11.5.5. Просмотр, запись и удаление кодов ключей в режиме администратора 11.5.6. Блок-реле. Открывание замка 11.5.7. Проигрывание мелодий Глава 12. Arduino и цифровой датчик температуры DS18B20 12.1. Описание датчика DS18B20 12.2. Использование библиотеки OneWire 12.3. Библиотека DallasTemperature Глава 13. Arduino и датчики температуры и влажности DHT 13.1. Характеристики датчиков DH11, DH22 13.2. Подключение к Arduino 13.3. Библиотека DHT Глава 14. Сетевой обмен с помощью Arduino 14.1. Устройство Arduino Ethernet shield 14.2. Библиотека Ethernet library 14.2.1. Класс Ethernet (Ethernet class) Функция Ethernet. begin() Функция Ethernet. localIP() 14.2.2. Класс IPAddress (IPAddress class) Функция IPAddress() 14.2.3. Класс Server (Server class) Функция ethernetServer() Функция begin() Функция available() Функция write() Функция print() Функция println() 14.2.4. Класс Client (Client class) Функция client() Функция EthernetClient() Функция connected() Функция connect() Функция write() Функция print() Функция println() Функция available() Функция read() Функция flush() Функция stop() 14.2.5. Класс EthernetUDP (EthernetUDP class) Функция begin() Функция read() Функция write() Функция beginPacket() Функция endPacket() Функция parsePacket() Функция available() Функция remoteIP() Функция remotePort() 14.3. Домашняя метеостанция с доступом через Интернет 14.3.1. Устройство, настройка и отладка метеостанции 14.3.2. Создание виджета для планшетов с ОС Android 14.3.3. Размещение данных метеостанции на сайте Глава 15. Arduino и карта памяти SD 15.1. Arduino-библиотека SD 15.1.1. Класс SD Функция begin() Функция exists() Функция mkdir() Функция rmdir() Функция open() Функция remove() 15.1.2. Класс File Функция available() Функция close() Функция flush() Функция peek() Функция position() Функция print() Функция println() Функция seek() Функция size() Функция read() Функция write() Функция isDirectory() Функция openNextFile() Функция rewindDirectory() 15.2. Запись показаний датчиков на SD-карту Глава 16. Arduino и светодиодные матрицы 16.1. Светодиоды и светодиодные матрицы 16.2. Светодиодная матрица FYM-23881BUG-11 16.3. SPI-расширитель выходов 74HC595 16.4. Игра «Тетрис» на светодиодных матрицах FYM-23881BUG-11 16.4.1. Управление изображением на светодиодных матрицах 16.4.2. Фигуры игры «Тетрис» 16.4.3. Управление фигурами игры «Тетрис» 16.4.4. Проверка столкновения фигур 16.5. Светодиодная матрица RGB 16.6. RGB-ночник, управляемый с помощью движения рук Глава 17. Работа Arduino с купюроприемником 17.1. Купюроприемник ICT серий A7 и V7 17.2. Подключение купюроприемника ICT V7 к Arduino 17.3. Скетч для получения номинала принимаемой купюры Глава 18. Arduino и радиочастотная идентификация (RFID) 18.1. Радиочастотная идентификация 18.2. Датчик считывания RFID-карт 18.3. Скетч для считывания RFID-карт Глава 19. Arduino и датчики расстояния 19.1. Ультразвуковые дальномеры HC-SR04 19.2. Принцип работы ультразвукового дальномера HC-SR04 19.3. Библиотека Ultrasonic 19.4. Инфракрасные датчики расстояния Sharp 19.5. Подключение датчиков Sharp к Arduino Глава 20. Arduino и передача данных в инфракрасном диапазоне 20.1. Обмен данными в инфракрасном диапазоне 20.2. Протоколы для ИК-пультов 20.2.1. Протокол RC5 20.2.2. Протокол NEC 20.2.3. Протокол JVC 20.2.4. Протокол Sony 20.3. Подключение ИК-приемника 20.4. Библиотека IRremote 20.5. Скетч для получения кодов ИК-пульта Глава 21. Создаем робота 21.1. Ходовая часть 21.2. Драйвер двигателей L293D 21.3. Массив возможных состояний моторов 21.4. Разработка скетча движений робота 21.5. Движение робота по линии в автономном режиме Глава 22. Arduino и шаговые двигатели 22.1. Управление шаговым двигателем 22.2. Arduino-библиотека Stepper 22.2.1. Функция Stepper() 22.2.2. Функция setSpeed (rpm) 22.2.3. Функция step (steps) 22.3. Пример использования библиотеки Stepper 22.4. Arduino-библиотека AccelStepper Глава 23. Arduino и сервоприводы 23.1. Сервоприводы 23.2. Arduino-библиотека Servo для управления сервоприводом 23.2.1. Функция attach() 23.2.2. Функция detach() 23.2.3. Функция write (int) 23.2.4. Функция writeMicrosconds (int) 23.2.5. Функция read() 23.2.6. Функция attached() 23.3. Робот-паук на сервоприводах 23.4. Скетч для управления роботом-пауком Глава 24. Arduino и Bluetooth 24.1. «Голубой зуб» 24.2. Модуль Bluetooth HC-05 24.3. Управление роботом с Android-устройства по Bluetooth Глава 25. TV-выход на Arduino 25.1. Схема подключения 25.2. Arduino-библиотека TVOut 25.2.1. Функция установки режима begin() 25.2.2. Функции задержки Функция delay() Функция delay_frame() 25.2.3. Функции получения параметров Функция hres() Функция vres() Функция char_line() 25.2.4. Основные графические функции Функция set_pixel() Функция get_pixel() Функция fill() Функция clear_screen() Функция invert() Функция shift_direction() Функция draw_line() Функция draw_row() Функция draw_column() Функция draw_rect() Функция draw_circle() Функция bitmap() 25.2.5. Функции вывода текстовой информации Функция select_font() Функция print_char() Функция set_cursor() Функция print() Функция println() 25.2.6. Функции вывода аудио Функция tone() Функция noTone() 25.3. Создание пользовательских шрифтов 25.4. Создание графических примитивов 25.5. Создание простейшей игровой консоли 25.6. Разработка игры для игровой консоли 25.6.1. Создание переменных игры 25.6.2. Управление положением «игрока» с помощью джойстика 25.6.3. Генерация и перемещение объектов-цифр 25.6.4. Проверка столкновения «игрока» и объектов-цифр 25.6.5. Счетчик баллов «игрока» 25.6.6. Переход на новый уровень 25.6.7. Отображение данных игры на табло 25.6.8. Звуковое сопровождение игры 25.6.9. Основной цикл игры 25.6.10. Добавляем меню для выбора игр Глава 26. Arduino и радиоуправление 26.1. Принципы формирования радиосигнала 26.2. Установка связи приемника с передатчиком 26.3. Разработка скетча приема команд для Arduino Глава 27. Arduino и беспроводной радиомодуль NRF24L01 27.1. Радиомодуль NRF24L01 27.2. Библиотека для работы с модулем NRF24L01 27.2.1. Параметры библиотеки Mirf 27.2.2. Функции библиотеки Mirf Функция init() Функция setRADDR() Функция setTADDR() Функция config() Функция dataReady() Функция getData() Функция send() Функция isSending() 27.3. Пример соединения двух плат Arduino с помощью модуля NRF24L01 Глава 28. Работа Arduino с USB-устройствами 28.1. Интерфейс USB 28.2. USB Host Shield 28.3. HID-устройства USB 28.4. Подключение HID-мыши USB 28.5. Использование HID-устройства (руль Defender) для управления роботом 28.6. Подключение к Arduino Android-устройства через USB Host Shield Глава 29. Arduino и ROS 29.1. Что такое ROS? 29.2. Дистрибутивы ROS 29.3. Установка ROS 29.4. Узлы и темы в ROS 29.5. Пакет rosserial 29.6. Подготовка сообщения (publisher) на Arduino 29.7. Создание подписки (subscriber) на Arduino 29.8. Связь через ROS двух плат Arduino Глава 30. Arduino и «умный дом» X10 30.1. Система домашней автоматизации X10 30.2. Двусторонний интерфейс TW523 30.3. Arduino-библиотека X10 30.3.1. Функция begin() 30.3.2. Функция write() 30.4. Блок на Arduino для голосового управления приборами X10 Приложение 1. Список использованных источников Приложение 2. Описание электронного архива
Скачать Проекты с использованием контроллера Arduino