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

Рассмотрено программирование микроконтроллерных плат 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 - это открытая платформа, которая позволяет собирать всевозможные электронные устройства. Arduino будет интересен креативщикам, дизайнерам, программистам и всем пытливым умам, желающим собрать собственный гаджет.

Рассмотрено программирования микро-контроллерных плат Arduino/Freduino Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino, структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных.

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

Предисловие
Введение
Глава 1. Общие сведения о микроконтроллерах
Глава 2. Программирование микроконтроллеров
Глава 3. Краткий обзор семейства микроконтроллеров Arduino
Глава 4. Платы расширения Arduino
Глава 5. Комплектующие изделия
Глава 6. Электронные компоненты и их свойства
Глава 7. Предварительная подготовка
Глава 8. Среда разработки Arduino
Глава 9. Основы программирования Arduino
Глава 10. Дальнейшие эксперименты с Arduino
Глава 11. Шина 1 2 С
Глава 12. Arduino и температурный датчик LM75 с 1 2 С-шиной
Глава 13. Расширитель порта 1 2 С с PCF8574
Глава 14. Ультразвуковой датчик для определения дальности
Глава 15. Сопряжение платы Arduino с GPS
Глава 16. Сервопривод с платой Servo для Arduino
Глава 17. Жидкокристаллические дисплеи
ПРИЛОЖЕНИЯ

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

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

Содержание книги "Занимательная электроника"

Часть 1 . Основы основ

Глава 1. Чем отличается ток от напряжения?
Глава 2. Джентльменский набор
Глава 3. Хороший паяльник - половина успеха
Глава 4. Тригонометрическая электроника

Глава 5. Электроника без полупроводников
Глава 6. Изобретение, которое потрясло мир
Глава 7. Ошеломляющее разнообразие электронного мира

Часть 2. Аналоговые схемы

Глава 8. Звуковой усилитель без микросхем
Глава 9. Правильное питание - залог здоровья
Глава 10. Тяжеловесы
Глава 11. Слайсы, которые стали чипами
Глава 12. Самые универсальные
Глава 13. Как измерить температуру?

Часть 3. Цифровой век

Глава 14. На пороге цифрового века
Глава 15. Математическая электроника, или игра в квадратики
Глава 16. Устройства на логических схемах
Глава 17. Откуда берутся цифры

Часть 4. Микроконтроллеры

Глава 18. Начала микроэлектроники
Глава 19. Персональный компьютер вместо паяльника
Глава 20. Изобретаем велосипед
Глава 21. Основы arduino
Глава 22. Метеостанция на arduino

Приложения

В этой замечательное книге рассмотрены основные платы Arduino и платы расширения (шилды), добавляющие функциональность основной плате. Подробно описан язык и среда программирования Arduino IDE.

Тщательно разобраны проекты с использованием контроллеров семейства Arduino. Это проекты и области робототехники, создания погодных метеостанций, "умного дома", вендинга, телевидения, Интернета, беспроводной связи (bluetooth, радиоуправление).

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

Во втором издании добавлены проекты голосового управления с помощью Arduino, работа с адресуемыми RGB-лентами, управление iRoboi Create на Arduino. Рассмотрены проекты с использованием платы Arduino Leonardo. Приведены пошаговые уроки для начинающих разработчиков.

ЧАСТЬ 1. ARDUINO - ОБЩИЙ ОБЗОР

Глава 1. Введение в Arduino
Глава 2. Обзор контроллеров семейства Arduino
Глава 3. Платы расширения Arduino

ЧАСТЬ 2. СРЕДА РАЗРАБОТКИ И ЯЗЫК ПРОГРАММИРОВАНИЯ КОНТРОЛЛЕРОВ ARDUINO

Глава 4. Среда программировании Arduino IDE
Глава 5. Программирование в Arduino

ЧАСТЬ 3. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ ARDUINO

Глава 6. Arduino и набор функций Serial
Глава 7. Arduino и знакосинтезирующие жидкокристаллические индикаторы
Глава 8. Библиотека EEPROM
Глава 9. Использование Arduino Leonardo в качестве USB-устройства
Глава 10. Arduino и 1-Wire
Глава 11. Arduino и цифровой датчик температуры DS18B20
Глава 12. Arduino идатчики температуры ивлажности DНТ
Глава 13.Сетевой обмен с помощью Arduino
Глава 14. Arduino и карта памяти SD
Глани 15. Arduino н светодиодные матрицы
Глава 16. Arduino и управляемые светодиодные ленты RGB
Глава 17. Работа Arduino с вендииговыми аппаратами
Глава 18. Arduino и радиочастотная идентификация (RFID)
Глава 19. Arduino и датчики расстояния
Глава 20. Arduino и передача данных в инфракрасном диапазоне
Глава 21. Создаем робота
Глава 22. Arduino и шаговые двигатели
Глава 23. Arduino и сервоприводы
Глава 24. Arduino н Bluetooth
Глава 25. TV-выход на Arduino
Глава 26. Arduino н радиоуправление
Глава 27. Arduino и беспроводной радномодуль NRF24L01
Глава 28. Работа Arduino с USB-устройствамн
Глани 29. Arduino и ROS
Глава 30. Голосовое управление

ПРИЛОЖЕНИЯ

Приложение 1. Список использованных источников
Приложение 2. Начальная школа
Приложение 3. Описание электронного архива

4. Делаем сенсоры. Проекты сенсорных устройств на базе Arduino и Raspberry Pi

В этой потрясающей книге более 440 страниц на которых вы найдете самые интересные и прикладные знания для проектирования "Умного дома" на Ардуино (Arduino).

Введение
Глава 1. Знакомство с Raspberry Pi
Глава 2. Знакомство с Arduino
Глава 3. Расстояние
Глава 4. Дым и rаз
Глава 5. Прикосновение
Глава 6. Движение
Глава 7. Свет
Глава 8. Ускорение
Глава 9. Идентификация
Глава 1О. Электричество и магнетизм
Глава 11. Звук
Глава 12. Поrода и климат
Приложение А. Краткий справочник по командам Linux в Raspberry Pi
Предметный указатеnь

The Arduino platform has become a de facto standard when talking about microcontrollers. With a wide range of different board models, it can cover a wide spectrum of projects, and its ease of use has made it the preferred platform for those starting out in the microcontroller world. If you are a hobbyist wanting to develop projects based on Arduino as its main microcontroller platform or an engineer interested in knowing what the Arduino platform offers, then this book is ideal for you.

If you have little or no previous experience in these kinds of tools, this book will help you get a complete view of the platform and the wide peripherals it has to offer by following a carefully designed set of project examples that cover the most important platform features.

Whether you have never written a line of code or you already know how to program in C, you will learn how to work with Arduino from the point of view of both hardware and software thanks to the easily understandable code that accompanies every project that has been developed exclusively with that premise in mind.

This will be easy for those who don"t have previous experience in programming. This book was written with the aim to present the Arduino platform to all those wanting to work with Arduino but without any great knowledge of the microcontrollers scene.

It will gradually develop a wide set of projects that have been designed to cover the most important aspects of the Arduino platform, from the use of digital and analog inputs and outputs to harnessing the power of interrupts.

Table of Contents

Preface
Chapter 1: Meeting the Arduino Family
Chapter 2: The Arduino Development Environment
Chapter 3: Interacting with the Environment the Digital Way
Chapter 4: Controlling Outputs Softly with Analog Outputs
Chapter 5: Sensing the Real World through Digital Inputs
Chapter 6: Analog Inputs to Feel Between All and Nothing
Chapter 7: Managing the Time Domain
Chapter 8: Communicating with Others
Chapter 9: Dealing with Interrupts
Chapter 10: Arduino in a Real Case – Greenhouse Control
Index

СПб.: БХВ-Петербург, 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
Перечень фирм-поставщиков компонентов
Описание компакт-диска
Предметный указатель