Рассмотрено программирования микроконтроллерных плат Arduino/Freduino. Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных. Изложение материала сопровождается более 80 примерами по разработке различных устройств, реле температуры, школьных часов, цифрового вольтметра, сигнализации с датчиком перемещения, выключателя уличного освещения и др. Для каждого проекта приведен перечень необходимых компонентов, монтажная схема и листинги программ.
Предисловие Введение Глава 1. Общие сведения о микроконтроллерах 1.1. Структура и принцип работы контроллера 1.1.1. Центральный процессор 1.1.2. Оперативная память и память программ 1.2. Внешние устройства 1.3. Сравнение технологий RISC и CISC 1.3.1. Технология CISC 1.3.2. Технология RISC 1.3.3. Выводы Глава 2. Программирование микроконтроллеров 2.1. Что такое программа? 2.2. Программирование на С Глава 3. Краткий обзор семейства микроконтроллеров Arduino 3.1. Плата Arduino Mega 3.2. Плата Arduino Duemilanove 3.3. Плата Arduino Mini 3.4. Плата Arduino Nano 3.5. Плата Arduino Pro Mini 3.6. Плата Arduino Pro 3.7. Плата LilyPad 3.8. USB-адаптер Глава 4. Платы расширения Arduino 4.1. Плата расширения Arduino ProtoShield 4.2. Плата расширения Ardumoto 4.3. Плата расширения TellyMate 4.4. Плата расширения ArduPilot 4.5. Модули XBeeZNet 4.6. Плата расширения Ethernet Глава 5. Комплектующие изделия 5.1. Список основных комплектующих 5.2. Список деталей для дополнительных экспериментов 5.3. Экспериментальная плата Freeduino 5.4. Экспериментальная плата микроконтроллера Freeduino 5.5. Электропитание 5.6. Кнопка Reset 5.7. ISP-подключение 5.8. Замечания по технике безопасности Глава 6. Электронные компоненты и их свойства 6.1. Светодиоды 6.2. Резисторы 6.3. Конденсаторы 6.4. Транзисторы 6.5. Диод 6.6. Акустический пьезопреобразователь ("пищалка") 6.7. Монтажный провод 6.8. Кнопка 6.9. Потенциометр 6.10. Фоторезистор 6.11. Монтажная панель с контактными гнездами Глава 7. Предварительная подготовка 7.1. Установка драйвера 7.2. Вспомогательная программа MProg для FT232RL 7.3. Программирование микросхемы FT232R с помощью MProg 7.4. Установка программного обеспечения Arduino Глава 8. Среда разработки Arduino 8.1. Установки в Arduino-IDE 8.2. Наша первая программа "ES_Blinkt" 8.3. Что мы сделали? Глава 9. Основы программирования Arduino 9.1. Биты и байты 9.2. Базовая структура программы 9.2.1. Последовательное выполнение программы 9.2.2. Прерывание выполнения программы 9.3. Структура программы Arduino 9.4. Первая программа с Arduino 9.5. Команды Arduino и их применение 9.5.1. Комментарии в исходном тексте 9.5.2. Фигурные скобки {} 9.5.3. Точка с запятой; 9.5.4. Типы данных и переменные 9.5.5. Имя переменной 9.5.6. Локальные и глобальные переменные 9.5.7. Различные типы данных 9.5.8. Операторы 9.5.9. Директива #define 9.5.10. Управляющие конструкции 9.5.11. Циклы 9.5.12. Функции и подпрограммы 9.5.13. Функции преобразования типа 9.5.14. Математические функции 9.5.15. Последовательный ввод/вывод 9.5.16. Как функционирует последовательный интерфейс? 9.5.17. Программная эмуляция UART 9.5.18. Конфигурация входа/выхода и установка порта 9.5.19. Аналоговый ввод данных и АЦП 9.5.20. Аналоговый выход ШИМ 9.6. Некоторые специальные функции Установка паузы с помощью delay Функции случайных чисел Сколько времени прошло? Глава 10. Дальнейшие эксперименты с Arduino 10.1. Регулятор уровня яркости светодиода с транзистором 10.2. Плавное мигание 10.3. Подавление дребезга контактов кнопок 10.4. Задержка включения 10.5. Задержка выключения 10.6. Светодиоды и Arduino 10.7. Подключение больших нагрузок 10.8. ЦАП на основе ШИМ-порта 10.9. С музыкой все веселей 10.10. Романтичный свет свечи с помощью микроконтроллера 10.11. Контроль персонала на проходной 10.12. Часы реального времени 10.13. Программа школьных часов 10.14. Управление вентилятором 10.15. Автомат уличного освещения 10.16. Сигнализация 10.17. Кодовый замок 10.18. Измеритель емкости с автоматическим выбором диапазона 10.19. Профессиональное считывание сопротивления потенциометра 10.20. Сенсорный датчик 10.21. Конечный автомат 10.22. 6-канальный вольтметр на основе Arduino 10.23. Программирование самописца напряжения 10.24. Осциллограф с памятью на основе Arduino 10.25. Программа StampPlot - бесплатный профессиональный регистратор данных 10.26. Управление через VB.NET 10.27. Реле температуры Глава 11. Шина I2C 11.1. Передача бита 11.2. Состояние "СТАРТ" 11.3. Состояние "СТОП" 11.4. Передача байта 11.5. Подтверждение 11.6. Адресация 11.7. 7-битовая адресация Глава 12. Arduino и температурный датчик LM75 с I2C-шиной Глава 13. Расширитель порта I2C с PCF8574 Глава 14. Ультразвуковой датчик для определения дальности 14.1. Ультразвуковой датчик SRF02 14.2. Считывание данных Глава 15. Сопряжение платы Arduino с GPS 15.1. Сколько требуется спутников? 15.2. Как подключить GPS к Arduino? 15.3. GPS-протокол Глава 16. Сервопривод с платой Servo для Arduino 16.1. Как функционирует сервопривод? 16.2. Подключение привода к Arduino Глава 17. Жидкокристаллические дисплеи 17.1. Поляризация дисплеев 17.2. Статическое управление и мультиплексный режим 17.3. Угол обзора 17.4. Отражающие, пропускающие и полупрозрачные ЖКИ 17.5. Установка контрастности дисплея 17.6. Набор отображаемых символов 17.7. Расположение выводов распространенных ЖКИ 17.8. Управление дисплеем от микроконтроллера 17.9. Инициализация дисплеев 17.10. Подключение дисплея к Arduino 17.11. Первый эксперимент с ЖКИ 17.12. Как же все работает? ПРИЛОЖЕНИЯ Приложение 1. Соответствие выводов Arduino и ATmega Приложение 2. Escape-последовательности Приложение 3. Таблица ASCII Приложение 4. Перечень фирм-поставщиков компонентов Приложение 4. Перечень фирм-поставщиков компонентов Приложение 5. Описание компакт-диска Предметный указатель