На FTP-сервере издательства выложены исходные коды примеров из книги, технические описания, справочные данные, среда разработки, утилиты и драйверы.
Оглавление книги
Программирование микроконтроллерных плат Arduino/Freeduino. Соммер
Предисловие 1
Введение 3
Глава 1. Общие сведения о микроконтроллерах
5
1.1. Структура и принцип работы контроллера 6
1.1.1. Центральный процессор 6
1.1.2. Оперативная память и память программ 7
1.2. Внешние устройства 8
1.3. Сравнение технологий RISC и CISC 8
1.3.1. Технология CISC 8
1.3.2. Технология RISC 10
1.3.3. Выводы 10
Глава 2. Программирование микроконтроллеров
11
2.1. Что такое программа? 11
2.2. Программирование на C 11
Глава 3. Краткий обзор семейства микроконтроллеров Arduino
13
3.1. Плата Arduino Mega 14
3.2. Плата Arduino Duemilanove 15
3.3. Плата Arduino Mini 15
3.4. Плата Arduino Nano 16
3.5 Плата Arduino Pro Mini 16
3.6. Плата Arduino Pro 17
3.7. Плата LilyPad 17
3.8. USB-адаптер 18
Глава 4. Платы расширения Arduino
19
4.1. Плата расширения Arduino ProtoShield 19
4.2. Плата расширения Ardumoto 20
4.3. Плата расширения TellyMate 21
4.4. Плата расширения ArduPilot 22
4.5. Модули XBeeZNet 22
4.6. Плата расширения Ethernet 23
Глава 5. Комплектующие изделия
25
5.1. Список основных комплектующих 25
5.2. Список деталей для дополнительных экспериментов 25
5.3. Экспериментальная плата Freeduino 26
5.4. Экспериментальная плата микроконтроллера Freeduino 26
5.5. Электропитание 27
5.6. Кнопка Reset 27
5.7. ISP-подключение 27
5.8. Замечания по технике безопасности 29
Глава 6. Электронные компоненты и их свойства
31
6.1. Светодиоды 31
6.2. Резисторы 32
6.3. Конденсаторы 33
6.4. Транзисторы 34
6.5. Диод 34
6.6. Акустический пьезопреобразователь ("пищалка") 35
6.7. Монтажный провод 35
6.8. Кнопка 35
6.9. Потенциометр 36
6.10. Фоторезистор 36
6.11. Монтажная панель с контактными гнездами 37
Глава 7. Предварительная подготовка
39
7.1. Установка драйвера 39
7.2. Вспомогательная программа MProg для FT232RL 40
7.3. Программирование микросхемы FT232R с помощью MProg 44
7.4. Установка программного обеспечения Arduino 45
Глава 8. Среда разработки Arduino
47
8.1. Установки в Arduino-IDE 48
8.2. Наша первая программа "ES_Blinkt" 50
8.3. Что мы сделали? 52
Глава 9. Основы программирования Arduino
55
9.1. Биты и байты 55
9.2. Базовая структура программы 56
9.2.1. Последовательное выполнение программы 56
9.2.2. Прерывание выполнения программы 57
9.3. Структура программы Arduino 57
9.4. Первая программа с Arduino 58
9.5. Команды Arduino и их применение 59
9.5.1. Комментарии в исходном тексте 59
9.5.2. Фигурные скобки { } 60
9.5.3. Точка с запятой ; 60
9.5.4. Типы данных и переменные 60
9.5.5. Имя переменной 60
9.5.6. Локальные и глобальные переменные 61
9.5.7. Различные типы данных 61
9.5.8. Операторы 65
9.5.9. Директива #define 66
9.5.10. Управляющие конструкции 66
9.5.11. Циклы 71
9.5.12. Функции и подпрограммы 75
9.5.13. Функции преобразования типа 78
9.5.14. Математические функции 79
9.5.15. Последовательный ввод/вывод 86
9.5.16. Как функционирует последовательный интерфейс? 93
9.5.17. Программная эмуляция UART 96
9.5.18. Конфигурация входа/выхода и установка порта 97
9.5.19. Аналоговый ввод данных и АЦП 103
9.5.20. Аналоговый выход ШИМ 105
9.6. Некоторые специальные функции 110
Установка паузы с помощью delay 110
Функции случайных чисел 110
Сколько времени прошло? 113
Глава 10. Дальнейшие эксперименты с Arduino
115
10.1. Регулятор уровня яркости светодиода с транзистором 115
10.2. Плавное мигание 117
10.3. Подавление дребезга контактов кнопок 120
10.4. Задержка включения 124
10.5. Задержка выключения 126
10.6. Светодиоды и Arduino 127
10.7. Подключение больших нагрузок 130
10.8. ЦАП на основе ШИМ-порта 132
10.9. С музыкой все веселей 136
10.10. Романтичный свет свечи с помощью микроконтроллера 139
10.11. Контроль персонала на проходной 140
10.12. Часы реального времени 143
10.13. Программа школьных часов 144
10.14. Управление вентилятором 148
10.15. Автомат уличного освещения 151
10.16. Сигнализация 153
10.17. Кодовый замок 155
10.18. Измеритель емкости с автоматическим выбором диапазона 159
10.19. Профессиональное считывание сопротивления потенциометра 162
10.20. Сенсорный датчик 164
10.21. Конечный автомат 166
10.22. 6-канальный вольтметр на основе Arduino 169
10.23. Программирование самописца напряжения 171
10.24. Осциллограф с памятью на основе Arduino 173
10.25. Программа StampPlot — бесплатный профессиональный регистратор данных 175
10.26. Управление через VB.NET 179
10.27. Реле температуры 181
Глава 11. Шина I2C
185
11.1. Передача бита 186
11.2. Состояние "СТАРТ" 186
11.3. Состояние "СТОП" 186
11.4. Передача байта 186
11.5. Подтверждение 187
11.6. Адресация 187
11.7. 7-битовая адресация 187
Глава 12. Arduino и температурный датчик LM75 с I2C-шиной
189
Глава 13. Расширитель порта I2C с PCF8574
193
Глава 14. Ультразвуковой датчик для определения дальности
197
14.1. Ультразвуковой датчик SRF02 197
14.2. Считывание данных 198
Глава 15. Сопряжение платы Arduino с GPS
201
15.1. Сколько требуется спутников? 202
15.2. Как подключить GPS к Arduino? 202
15.3. GPS-протокол 203
Глава 16. Сервопривод с платой Servo для Arduino
209
16.1. Как функционирует сервопривод? 209
16.2. Подключение привода к Arduino 210
Глава 17. Жидкокристаллические дисплеи
213
17.1. Поляризация дисплеев 214
17.2. Статическое управление и мультиплексный режим 214
17.3. Угол обзора 215
17.4. Отражающие, пропускающие и полупрозрачные ЖКИ 215
17.5. Установка контрастности дисплея 216
17.6. Набор отображаемых символов 217
17.7. Расположение выводов распространенных ЖКИ 218
17.8. Управление дисплеем от микроконтроллера 220
17.9. Инициализация дисплеев 220
17.10. Подключение дисплея к Arduino 222
17.11. Первый эксперимент с ЖКИ 223
17.12. Как же все работает? 226
ПРИЛОЖЕНИЯ 229
Приложение 1. Соответствие выводов Arduino и ATmega 231
Приложение 2. Escape-последовательности 232
Приложение 3. Таблица ASCII 234
Приложение 4. Перечень фирм-поставщиков компонентов 239
Приложение 4. Перечень фирм-поставщиков компонентов 239
Приложение 5. Описание компакт-диска 240
Предметный указатель