Программирование микроконтроллерных плат arduino freeduino торрент


Во втором издании рассмотрена русскоязычная версия Arduino IDE, добавлена информация об особенностях использования кириллических символов, а...

Читать полностью

Рассмотрено программирование микроконтроллерных плат Arduino/Genuino/Free­duino. Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino: структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных. Изложение материала сопровождается более 80 примерами по разработке различных устройств: реле температуры, школьных часов, цифрового вольтметра, сигнализации с датчиком перемещения, выключателя уличного освещения и др. Для каждого проекта приведен перечень необходимых компонентов, монтажная схема и листинги программ. На сайте издательства находятся исходные коды примеров из книги, технические описания, справочные данные, среда разработки, утилиты и драйверы.
Во втором издании рассмотрена русскоязычная версия Arduino IDE, добавлена информация об особенностях использования кириллических символов, а также исправлены опечатки в программном коде.
В книге рассмотрены:
- Общие сведения о микроконтроллерах
- Программирование микроконтроллера на платах Arduino/Genuino/Freeduino/
- Разработка и тестирование собственных приложений
- Более 80 практических проектов: настройка и применение микросхемы-адаптера FT232RL, задержка включения и выключения, реле температуры, измеритель емкости, школьные часы, 6-канальный цифровой вольтметр, управление вентилятором, обмен данными между компьютером и платой Arduino, сенсорный датчик, запись данных с помощью программы построения графиков Stamp PLOT, цифровой осциллограф с памятью, сигнализация с датчиком перемещения, выключатель уличного освещения, свет свечи, музыкальный проигрыватель, графопостроитель, последовательный ввод/вывод данных, эксперименты с ЖК-дисплеями и многое другое.

СПб.: БХВ-Петербург, 2012. — 256 с. — (Электроника). — ISBN978-5-9775-0727-1.Рассмотрено программирования микроконтроллерных плат Arduino/Freduino. Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino: структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных. Изложение материала сопровождается более 80 примерами по разработке различных устройств: реле температуры, школьных часов, цифрового вольтметра, сигнализации с датчиком перемещения, выключателя уличного освещения и др. Для каждого проекта приведен перечень необходимых компонентов, монтажная схема и листинги программ.
На FTP-сервере (в книге есть линк) издательства выложены исходные коды примеров из книги, технические описания, справочные данные, среда разработки, утилиты и драйверы.Arduino — это простая для освоения платформа с открытым кодом на основе встроенного микроконтроллера и среды разработки с программным интерфейсом API для микроконтроллеров. Для взаимодействия между человеком и микроконтроллером могут присоединяться различные аналоговые и цифровые датчики, которые регистрируют состояние окружающей среды и передают данные в микроконтроллер. Микроконтроллер обрабатывает входящие данные, а программа выдает новые данные в виде аналоговых или цифровых значений. В результате открываются широкие горизонты для творчества.
В распоряжении разработчика предоставлены готовые программы и библиотеки функций среды программирования Arduino. Комбинируя аппаратные и программные средства, вы сможете с помощью этой книги связать наш реальный мир с миром микроконтроллера, который состоит из битов и байтов.Общие сведения о микроконтроллерах
Структура и принцип работы контроллера
Внешние устройства
Сравнение технологий RISC и CISCПрограммирование микроконтроллеров
Что такое программа?
Программирование на СКраткий обзор семейства микроконтроллеров Arduino
Плата Arduino Mega
Плата Arduino Duemilanove
Плата Arduino Mini
Плата Arduino Nano
Плата Arduino Pro Mini
Плата Arduino Pro
Плата LilyPad
USB-адаптерПлаты расширения Arduino
Плата расширения Arduino ProtoShield
Плата расширения Ardumoto
Плата расширения TellyMate
Плата расширения ArduPilot
Модули XBeeZNet
Плата расширения EthernetКомплектующие изделия
Список основных комплектующих
Список деталей для дополнительных экспериментов
Экспериментальная плата Freeduino
Экспериментальная плата микроконтроллера Freeduino
Электропитание
Кнопка Reset
ISP-подключение
Замечания по технике безопасностиЭлектронные компоненты и их свойства
Светодиоды
Резисторы
Конденсаторы
Транзисторы
Диод
Акустический пьезопреобразователь ("пищалка")
Монтажный провод
Кнопка
Потенциометр
Фоторезистор
Монтажная панель с контактными гнездамиПредварительная подготовка
Установка драйвера
Вспомогательная программа MProg для FT232RL
Программирование микросхемы FT232R с помощью MProg
Установка программного обеспечения ArduinoСреда разработки Arduino
Установки в Arduino-IDE
Наша первая программа "ES_Blinkt"
Что мы сделали?Основы программирования Arduino
Биты и байты
Базовая структура программы
Структура программы Arduino
Первая программа с Arduino
Команды Arduino и их применение
Некоторые специальные функцииДальнейшие эксперименты с Arduino
Регулятор уровня яркости светодиода с транзистором
Плавное мигание
Подавление дребезга контактов кнопок
Задержка включения
Задержка выключения
Светодиоды и Arduino
Подключение больших нагрузок
ЦАП на основе ШИМ-порта
С музыкой все веселей
Романтичный свет свечи с помощью микроконтроллера
Контроль персонала на проходной
Часы реального времени
Программа школьных часов
Управление вентилятором
Автомат уличного освещения
Сигнализация
Кодовый замок
Измеритель емкости с автоматическим выбором диапазона
Профессиональное считывание сопротивления потенциометра
Сенсорный датчик
Конечный автомат
6-канальный вольтметр на основе Arduino
Программирование самописца напряжения
Осциллограф с памятью на основе Arduino
Программа StampPlot — бесплатный профессиональный регистратор данных
Управление через VB.NET
Реле температурыШина I2С
Передача бита
Состояние "СТАРТ"
Состояние "СТОП"
Передача байта
Подтверждение
Адресация
7-битовая адресация
Arduino и температурный датчик LM75 с I2С-шиной
Расширитель порта I2С с PCF8574Ультразвуковой датчик для определения дальности
Ультразвуковой датчик SRF02
Считывание данныхСопряжение платы Arduino с GPS
Сколько требуется спутников?
Как подключить GPS к Arduino?
GPS-протоколСервопривод с платой Servo для Arduino
Как функционирует сервопривод?
Подключение привода к ArduinoЖидкокристаллические дисплеи
Поляризация дисплеев
Статическое управление и мультиплексный режим
Угол обзора
Отражающие, пропускающие и полупрозрачные ЖКИ
Установка контрастности дисплея
Набор отображаемых символов
Расположение выводов распространенных ЖКИ
Управление дисплеем от микроконтроллера
Инициализация дисплеев
Подключение дисплея к Arduino
Первый эксперимент с ЖКИ
Как же все работает?Приложения
Соответствие выводов Arduino и ATmega
Escape-последовательности
Таблица ASCII
Перечень фирм-поставщиков компонентов
Описание компакт-диска
Предметный указатель

Рассмотрено программирование микроконтроллерных плат Arduino/Genuino/Freeduino. Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino: структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных. Изложение материала сопровождается более 80 примерами по разработке различных устройств: реле температуры, школьных часов, цифрового вольтметра, сигнализации с датчиком перемещения, выключателя уличного освещения и др. Для каждого проекта приведен перечень необходимых компонентов, монтажная схема и листинги программ. На сайте издательства находятся исходные коды примеров из книги, технические описания, справочные данные, среда разработки, утилиты и драйверы.
Во втором издании рассмотрена русскоязычная версия Arduino IDE, добавлена информация об особенностях использования кириллических символов, а также исправлены опечатки в программном коде.

Издательство: БХВ-Петербург.
Мягкая обложка, 256 стр.
ISBN 978-5-9775-3680-6

Предисловие................................................................................................................... 11
Введение.......................................................................................................................... 13
Подготовка к экспериментам........................................................................................................ 13
Лицензия GPL ................................................................................................................................ 14
Требования к системе.................................................................................................................... 14
Обновления и поддержка.............................................................................................................. 14
Дополнительные материалы, сопровождающие книгу.............................................................. 14
Глава 1. Общие сведения о микроконтроллерах .................................................... 15
1.1. Структура и принцип работы контроллера.......................................................................... 16
1.1.1. Центральный процессор................................................................................................... 16
1.1.2. Оперативная память и память программ........................................................................ 16
1.2. Внешние устройства............................................................................................................... 18
1.3. Сравнение технологий CISC и RISC ..................................................................................... 18
1.3.1. Технология CISC .............................................................................................................. 18
1.3.2. Технология RISC .............................................................................................................. 20
1.3.3. Выводы.............................................................................................................................. 20
Глава 2. Программирование микроконтроллеров ................................................. 21
2.1. Что такое программа? ............................................................................................................ 21
2.2. Программирование на языке C .............................................................................................. 21
Глава 3. Краткий обзор семейства микроконтроллеров Arduino ....................... 23
Глава 4. Платы расширения Arduino ........................................................................ 31
4.1. Плата расширения Arduino ProtoShield................................................................................. 31
4.2. Плата расширения Ardumoto ................................................................................................. 32
4.3. Плата расширения TellyMate ................................................................................................. 33
4.4. Плата расширения ArduPilot .................................................................................................. 34
4.5. Модули XBeeZNet .................................................................................................................. 34
4.6. Плата расширения Ethernet .................................................................................................... 35
Глава 5. Комплектующие изделия ............................................................................. 37
5.1. Список основных комплектующих....................................................................................... 37
5.2. Список деталей для дополнительных экспериментов......................................................... 38
5.3. Экспериментальная плата Freeduino ..................................................................................... 38
5.3.1. Подключение платы Freeduino ........................................................................................ 38
5.3.2. Электропитание................................................................................................................ 39
5.3.3. Кнопка Reset ...................................................................................................................... 41
5.3.4. ISP-подключение.............................................................................................................. 41
5.4. Замечания по технике безопасности..................................................................................... 41
Глава 6. Электронные компоненты и их свойства ................................................. 43
6.1. Светодиоды............................................................................................................................. 43
6.2. Резисторы................................................................................................................................ 44
6.3. Конденсаторы......................................................................................................................... 45
6.4. Транзисторы............................................................................................................................ 46
6.5. Диоды...................................................................................................................................... 46
6.6. Акустический пьезопреобразователь («пищалка») .............................................................. 46
6.7. Монтажный провод................................................................................................................ 47
6.8. Кнопка..................................................................................................................................... 47
6.9. Потенциометр......................................................................................................................... 47
6.10. Фоторезистор........................................................................................................................ 48
6.11. Макетная плата с контактными гнездами........................................................................... 48
Глава 7. Предварительная подготовка ..................................................................... 51
7.1. Установка программного обеспечения Arduino в ОС Windows ......................................... 52
7.2. Установка программного обеспечения Arduino в ОС Linux ............................................... 53
7.3. Установка программного обеспечения Arduino в Mac OS X .............................................. 54
Глава 8. Среда разработки Arduino ........................................................................... 57
8.1. Исходные установки Arduino IDE ......................................................................................... 59
8.2. Наша первая программа: ES_Blinkt ....................................................................................... 61
8.3. Что мы сделали? ..................................................................................................................... 63
Глава 9. Основы программирования Arduino и первые эксперименты ........... 65
9.1. Биты и байты........................................................................................................................... 65
9.2. Базовая структура программы............................................................................................... 66
9.2.1. Последовательное выполнение программы................................................................... 66
9.2.2. Прерывание выполнения программы............................................................................. 66
9.3. Структура программы Arduino .............................................................................................. 67
9.4. Первая программа для Arduino .............................................................................................. 68
9.5. Команды Arduino и их применение....................................................................................... 69
9.5.1. Комментарии в исходном тексте..................................................................................... 69
9.5.2. Фигурные скобки { } ......................................................................................................... 70
9.5.3. Точка с запятой; ............................................................................................................... 70
9.5.4. Типы данных и переменные............................................................................................ 70
9.5.5. Имя переменной............................................................................................................... 70
9.5.6. Локальные и глобальные переменные............................................................................ 71
9.5.7. Различные типы данных................................................................................................... 71
Переменная типа Boolean .................................................................................................... 71
Переменная типа Byte .......................................................................................................... 71
Переменная типа Char ......................................................................................................... 72
Переменная типа Unsigned Char ......................................................................................... 72
Переменная типа Int (Integer) .............................................................................................. 72
Переменная типа Unsigned int ............................................................................................. 72
Переменная типа Long ......................................................................................................... 72
Переменная типа Unsigned Long ......................................................................................... 72
Переменная типа Float ........................................................................................................ 72
Переменная типа String ....................................................................................................... 73
Массив Arrays ....................................................................................................................... 73
9.5.8. Операторы......................................................................................................................... 75
Арифметические операторы............................................................................................... 75
Операторы сравнения.......................................................................................................... 75
Побитовая арифметика........................................................................................................ 75
Булева арифметика.............................................................................................................. 75
Увеличение и уменьшение значения.................................................................................. 75
Константы............................................................................................................................. 76
9.5.9. Директива #define ............................................................................................................. 76
9.5.10. Управляющие конструкции........................................................................................... 76
Оператор if ............................................................................................................................ 76
Оператор if ... else ................................................................................................................. 77
Конструкция switch case ...................................................................................................... 80
9.5.11. Циклы.............................................................................................................................. 81
Цикл for ................................................................................................................................. 82
Циклы while и do while ........................................................................................................ 83
9.5.12. Функции и процедуры.................................................................................................... 85
Подпрограмма...................................................................................................................... 85
Функция................................................................................................................................ 86
Команда continue .................................................................................................................. 87
9.5.13. Функции преобразования типа...................................................................................... 88
9.5.14. Математические функции.............................................................................................. 88
Функция min(x, y) ................................................................................................................. 88
Функция max(x, y) ................................................................................................................ 89
Функция abs(x) ..................................................................................................................... 89
Функция constrain(x, a, b) .................................................................................................... 90
Функция map(x, fromLow, fromHigh, toLow, toHigh) ......................................................... 91
Функция pow(base, exponent) .............................................................................................. 91
Функция sq(x) ....................................................................................................................... 92
Функция sqrt(x) ..................................................................................................................... 93
Функция sin(rad) .................................................................................................................. 93
Функция cos(rad) .................................................................................................................. 94
Функция tan(rad) .................................................................................................................. 94
9.5.15. Последовательный ввод/вывод...................................................................................... 95
Функция Serial.begin(Baudrate) .......................................................................................... 96
Функция Serial.end() ............................................................................................................ 97
Функция Serial.read() ........................................................................................................... 97
Функция Serial.available() ................................................................................................... 97
Функция Serial.flush() .......................................................................................................... 98
Функция Serial.print() .......................................................................................................... 98
Функция Serial.println() ..................................................................................................... 100
Функция Serial.write() ........................................................................................................ 101
Проблемы с выводом кириллицы в последовательный порт Arduino IDE ................... 102
9.5.16. Функционирование последовательного интерфейса................................................. 102
Считывание строки символов через последовательный интерфейс.............................. 103
Последовательный вывод данных с вычислением.......................................................... 104
9.5.17. Программная эмуляция UART .................................................................................... 105
9.5.18. Конфигурация входа/выхода и установка порта........................................................ 107
Функция pinMode(pin, mode) ............................................................................................. 107
Функция digitalRead(pin) ................................................................................................... 107
Функция digitalWrite(pin,value) ......................................................................................... 107
Считывание состояния кнопки......................................................................................... 108
Кнопка с согласующим резистором................................................................................. 110
Кнопка с внешним подтягивающим резистором............................................................ 111
9.5.19. Аналоговый ввод данных и АЦП................................................................................ 112
Функция analogRead(pin) .................................................................................................. 113
9.5.20. Аналоговые выходы ШИМ.......................................................................................... 115
Команда analogWrite(pin, value) ....................................................................................... 116
9.6. Некоторые специальные функции....................................................................................... 119
9.6.1. Установка паузы............................................................................................................. 119
С помощью команды delay() ............................................................................................. 119
С помощью команды micros() ........................................................................................... 119
9.6.2. Функции случайных чисел............................................................................................. 120
Функция randomSeed(seed) ................................................................................................ 120
Функция random(min, max) ................................................................................................ 120
9.6.3. Сколько времени прошло? ............................................................................................. 122
Функция millis() .................................................................................................................. 123
Функция micros() ................................................................................................................ 123
Глава 10. Продолжаем эксперименты с Arduino .................................................. 125
10.1. Регулятор уровня яркости светодиода с транзистором................................................... 125
10.2. Плавное мигание................................................................................................................. 127
10.3. Подавление дребезга контактов кнопок........................................................................... 130
10.4. Задержка включения........................................................................................................... 135
10.5. Задержка выключения........................................................................................................ 136
10.6. Arduino и светодиоды......................................................................................................... 137
10.7. Подключение больших нагрузок....................................................................................... 140
10.8. ЦАП на основе ШИМ-порта.............................................................................................. 142
10.9. С музыкой веселей… .......................................................................................................... 146
10.10. Романтический вечер с микроконтроллером при свечах.............................................. 148
10.11. Контроль персонала на проходной................................................................................. 150
10.12. Часы реального времени.................................................................................................. 152
10.13. Программа школьных часов............................................................................................ 154
10.14. Управление вентилятором............................................................................................... 157
10.15. Автомат уличного освещения.......................................................................................... 160
10.16. Сигнализация.................................................................................................................... 162
10.17. Кодовый замок.................................................................................................................. 164
10.18. Измеритель емкости с автоматическим выбором диапазона........................................ 168
10.19. Профессиональное считывание сопротивления потенциометра.................................. 171
10.20. Сенсорный датчик............................................................................................................ 172
10.21. Конечный автомат............................................................................................................ 174
10.22. Шестиканальный вольтметр на основе Arduino ............................................................. 177
10.23. Программирование самописца напряжения................................................................... 180
10.24. Осциллограф с памятью на основе Arduino ................................................................... 182
10.25. Программа StampPlot — бесплатный профессиональный регистратор данных......... 184
10.26. Управление микроконтроллером из VB.NET-программы Ports ................................... 188
10.27. Реле температуры............................................................................................................. 190
Глава 11. Шина I2C ..................................................................................................... 193
11.1. Передача бита..................................................................................................................... 194
11.2. Состояние СТАРТ............................................................................................................... 194
11.3. Состояние СТОП................................................................................................................. 194
11.4. Передача байта.................................................................................................................... 194
11.5. Подтверждение................................................................................................................... 195
11.6. Адресация............................................................................................................................ 195
11.7. 7-битовая адресация........................................................................................................... 195
Глава 12. Arduino и температурный датчик LM75 на шине I2C ....................... 197
Глава 13. Микросхема PCF8574 — расширитель порта I2C ............................... 201
Глава 14. Определение дальности с помощью ультразвукового датчика ....... 205
14.1. Ультразвуковой датчик SRF02 .......................................................................................... 205
14.2. Считывание данных............................................................................................................ 206
Глава 15. Сопряжение платы Arduino с устройством GPS ................................. 209
15.1. Сколько требуется спутников? .......................................................................................... 210
15.2. Как подключить приемник GPS к Arduino? ..................................................................... 210
15.3. GPS-протокол...................................................................................................................... 212
Глава 16. Подключение сервопривода к плате Arduino ...................................... 217
16.1. Как функционирует сервопривод? .................................................................................... 217
16.2. Подключение привода к Arduino ....................................................................................... 218
Глава 17. Жидкокристаллические дисплеи ........................................................... 221
17.1. Поляризация дисплеев........................................................................................................ 222
17.2. Статическое управление и мультиплексный режим........................................................ 222
17.3. Угол обзора......................................................................................................................... 223
17.4. Отражающие, пропускающие и полупрозрачные ЖКИ.................................................. 223
17.5. Установка контрастности дисплея.................................................................................... 223
17.6. Набор отображаемых символов........................................................................................ 225
17.7. Расположение выводов распространенных ЖКИ............................................................ 227
17.8. Управление дисплеем от микроконтроллера................................................................... 228
17.9. Инициализация дисплеев................................................................................................... 228
17.10. Подключение дисплея к Arduino ..................................................................................... 230
17.11. Первый эксперимент с ЖКИ........................................................................................... 232
17.12. Как же все это работает? .................................................................................................. 234
ПРИЛОЖЕНИЯ .......................................................................................................... 237
Приложение 1. Соответствие выводов платы Arduino
и контроллера ATmega ............................................................................................... 239
Приложение 2. Escape-последовательности........................................................... 241
Приложение 3. Таблица ASCII ................................................................................. 243
Приложение 4. Описание электронного архива.................................................... 249
Предметный указатель.............................................................................................. 251

Платформа Arduino постоянно совершенствуется, и ее обновления можно загрузить бесплатно с Web-сайта www.arduino.cc

Электронный архив с сопровождающими книгу дополнительными материалами можно скачать по ссылке ftp://ftp.bhv.ru/978597736806.zip . Ссылка также доступна со страницы книги на сайте www.bhv.ru.
Архив содержит необходимое программное обеспечение, инструменты для программирования, технические паспорта и принципиальные схемы устройств и компонентов, а также программные коды рассматриваемых в книге примеров.

На днях я стал обладателем недавно вышедшей на русском языке книги «Программирование микроконтроллерных плат Arduino/Freeduino». Как один из первых покупателей спешу поведать сообществу, что я в ней увидел.

Выходные данные

Оригинальное название: Arduino: Mikrocontroller-Programmiering mit Arduino/Freeduino, 978-3-6456-5064-9, 2010 г.
Автор: Улли Соммер
Переводчик: Виктор Букирев
Издательство: БХВ-Петербург
ISBN 978-5-9775-0727-1; 2012 г. (?!)

Первая половина книги посвящена основам работы с Arduino. Отдельно я остановлюсь на следующих главах:
Глава 3. Дается обзор семейства Arduino. Увы он уже устарел года на два. Приведенные в книге Duemilanove и Mega уже не выпускаются. Новый Uno же не упоминается, т.к. на момент написания книги он еще не вышел.
Глава 4. Популярные платы расширения. Описывается 6 плат, к сожалению, очень кратко и скучно. Тем более, что интересных плат гораздо больше. Далее в скетчах эти платы все равно не используются.
Глава 6. Электронные компоненты и их свойства. Очень поверхностно и кратко. Изучить для чего нужен тот или иной элемент по этой главе нельзя.
Глава 9. Основы программирования. Тут объяснения достаточно толковые и подробные. Хотя, конечно, описываются не все возможности языка, для начинающих будет в самый раз.

Вторая половина книги содержит готовые примеры работы. В отдельные главы выделена работа с I 2 C, GPS, сервоприводами и ЖКИ.
Не ведитесь на надпись на обложке «Более 80 практических проектов». В книге их штук 30. Число 80, наверное, означает количество листингов.
Большинство примеров я бы назвал достаточно скучными, слишком простыми и оторванными от жизни. Например, «10.12 Часы реального времени» на самом деле просто используют внутренний таймер Arduino. А «Автомат уличного освещения» в зависимости от освещенности зажигает или гасит светодиод на pin 13. Что этим можно осветить я не знаю:) Сопряжение с компьютером тоже описано очень слабо.
Более или менее нормально расписана работа с ЖКИ. А вот в сектче с GPS даже не объясняется, что эта программа делает.

Отдельно хочу отметить «неровный» темп изложения. Какие-то вещи подробно расписываются, какие-то вскользь, иногда просто приводится программный код - разбирайтесь сами.

Трудности перевода

Большим недостатком книги (для меня) является то, что не были переведены надписи с немецкого на скриншотах и некоторых схемах. В коде переведены только немногочисленные комментарии, а все переменные и выводимые сообщения остались на языке оригинала.
Я не вижу в этом ничего страшного, когда книга является переводом с английского, который все программисты знают. Но названия переменных на немецком переваривать весьма трудно, когда по-немецки знаешь только «хенде хох» и «их либе компьютершпилен унд програмирен»:)
Зачем издательство вообще взяло именно немецкую книгу, когда уже выпущено несколько на английском?

Выводы

Достоинства книги:
  • невысокая цена
  • рассчитана на новичков
  • неплохой вводный курс программирования
  • простые примеры хороши для начинающих
  • один из немногих источников информации по Arduino на русском языке
Недостатки:
  • для опытных ардуинщиков примеры будут откровенно неинтересными
  • основы электроники фактически не приводятся
  • не переведен с немецкого код программ, а также часть схем и скриншотов
  • книга немного устарела
  • платы расширений описываются поверхностно, примеров с ними нет


Рассмотрено программирования микроконтроллерных плат Arduino/Freduino. Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino: структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных. Изложение материала сопровождается более 80 примерами по разработке различных устройств: реле температуры, школьных часов, цифрового вольтметра, сигнализации с датчиком перемещения, выключателя уличного освещения и др. Для каждого проекта приведен перечень необходимых компонентов, монтажная схема и листинги программ.
На FTP-сервере издательства выложены исходные коды примеров из книги, технические описания, справочные данные, среда разработки, утилиты и драйверы.

Платы Arduino с возможностями USB-хоста

Некоторые платы Arduino обладают возможностями USB-хоста, что позволяет подсоединить к ним традиционные USB-устройства (клавиатуры, мыши, телефоны на базе Android). Естественно, для поддержки этих устройств потребуются дополнительные драйверы. Например, нельзя просто так соединить веб-камеру с Arduino Due и сразу же ожидать получения фотографий. Arduino Due поддерживает класс USB Host, что позволяет подключить к USB-порту клавиатуру или мышь. Arduino Mega ADK поддерживает протокол Android Open Accessory Protocol (AOA), что упрощает обмен данными между Arduino и устройством на базе Android. Прежде всего, это нужно для управления вводом-выводом Arduino из приложения, работающего на устройствах на базе Android.

Опрос Arduino с компьютера

Основная функция, которую обеспечивает последовательный интерфейс, - вывод данных с Arduino в терминал компьютера. В предыдущих главах об этом уже упоминалось. В этом разделе более детально остановимся на данном вопросе и позже рассмотрим примеры приложений, которые отвечают на данные, которые вы отправляете, вместо того, чтобы просто выводить их в терминал. Этот процесс одинаков для всех плат Arduino.

В отличие от некоторых других терминальных программ, монитор последовательного порта Arduino IDE при нажатии клавиши или кнопки Отправить посылает всю командную строку. Другие последовательные терминалы, например Putty, посылают символы сразу после их ввода.

Чтение информации из компьютера или другого последовательного устройства

Запустив монитор последовательного порта Arduino IDE, вы можете вручную отправлять команды в Arduino. Далее рассмотрим, как отправлять последовательности символов и как создать простой графический интерфейс для отправки команд.

У последовательного порта Arduino есть буфер. Другими словами, вы можете отправить несколько байт данных сразу, и Arduino поставит их в очередь и обработает их в том порядке, как задумано в вашей программе. Скорость передачи данных не особенно критична, а вот отправка слишком большого объема данных может вызвать переполнение буфера и потерю информации.

Плата Arduino в качестве транслятора данных

Проще всего заставить плату Arduino реагировать на все, что передано. Для этого плата Arduino должна запоминать, а затем выводить каждый полученный символ. Чтобы сделать это, потребуются две новые функции:

Создаем компьютерное приложение

В конце концов, вам надоест “общение” с платой Arduino через монитор последовательного порта Arduino IDE. Гораздо удобнее работать с приложением, написанным на каком-либо языке программирования, имеющем библиотеки для обмена по последовательному порту. Вы можете использовать ваш любимый язык программирования для написания программы, которая посылает последовательные команды к плате Arduino и получает данные, передаваемые от Arduino к компьютеру.

В этой книге выбран язык программирования Processing, потому что он очень похож на язык Arduino, с которым вы уже знакомы. На самом деле, язык программирования Arduino основан на Processing! Другие популярные языки программирования, для которых существуют обширные библиотеки для работы с последовательным портом, - Python, РНР, Visual Basic, С и т. п. Сначала выясним, как читать передаваемые последовательные данные в Processing, а затем узнаем, как с его помощью создать простой графический интерфейс пользователя (GUI) для отправки команд на плату Arduino.

Интерфейс Processing

Интерфейс программирования на Processing достаточно прост и он похож на тот, с которым вы уже знакомы при программировании Arduino. В этом разделе вы установите Processing, а затем напишете простой графический интерфейс для отображения данных, передаваемых с платы Arduino через последовательный порт. После этого вы реализуете связь в обратном направлении, чтобы управлять платой Arduino из приложения, установленного на вашем компьютере.