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

СПб.: БХВ-Петербург, 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/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 из приложения, установленного на вашем компьютере.

На днях я стал обладателем недавно вышедшей на русском языке книги «Программирование микроконтроллерных плат 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 на русском языке
Недостатки:
  • для опытных ардуинщиков примеры будут откровенно неинтересными
  • основы электроники фактически не приводятся
  • не переведен с немецкого код программ, а также часть схем и скриншотов
  • книга немного устарела
  • платы расширений описываются поверхностно, примеров с ними нет


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: