Arduino — это комбинация аппаратной и программной частей для простой разработки электротехнических устройств.
Аппаратная часть включает в себя большое количество видов плат Arduino со встроенными программируемыми микроконтроллерами, а так же дополнительные модули с различными датчиками и исполнительными устройствами.
Программная часть состоит из среды разработки (программы для написания скетчей и прошивки микроконтроллеров Ардуино), упрощенного языка программирования, огромного множества готовых функций и библиотек.
Микроконтроллер Ардуино умеет принимать и отправлять сигналы в соответствии с инструкциями в прошивке. Звучит весьма скромно, но на практике это позволяет получать и обрабатывать информацию с сенсоров и передавать команды исполнительным механизмам или другим устройствам. Например: микроконтроллер может получать данные с датчиков температуры, давления, влажности и выводить сводную информацию на дисплей. Этих возможностей хватает для реализации сложных устройств, таких как беспилотные летательные аппараты, 3D-принтеры, роботизированные манипуляторы, радиоуправляемые машинки, лодки, вездеходы и т. д. Возможности Ардуино ограничены только воображением.
Основой любого проекта является плата на которой установлен Ардуино - совместимый программируемый микроконтроллер(далее по тексту контроллер). Он выполняет роль миниатюрного компьютера, в который загружается написанная пользователем программа. Основные компоненты установленные на плате представлены на рисунке 1. Рассмотрим их назначение:
Рисунок 1: Основные элементы платы - контроллера
Для написания программ и загрузки их в контроллер нам понадобится специальное программное обеспечение. Это среда для разработки прошивок Arduino IDE. В среде разработки уже предустановленно большое количество примеров и дополнительных библиотек.
Рассмотрим интерфейс Arduino IDE подробнее.
В окне программы вы можете найти четыре главных функциональных элемента:
Меню программы позволяет осуществлять управление проектом, например, создание нового проекта, сохранение текущего, распечатать на принтере исходный код.
Интересной особенностью программы является встроенный набор примеров программ. Это очень удобно, так как примеры программ можно сразу проверить, загрузив их в микроконтроллер. При необходимости вы можете сохранить пример и изменить его в соответствии с вашими потребностями.
Меню «Файл» и «Правка» содержат стандартные параметры.
Меню «Скетч» содержит параметры для компиляции проекта и импорта необходимых библиотек.
Интересным и полезным элементом IDE является меню «Инструменты», которое включает в себя функции автоматического форматирования кода, архивирования проекта, включение монитора последовательного порта (USB в контроллере рассматривается как обычный последовательный порт).
Наиболее важным элементом меню «Инструменты» является возможность выбора соответствующей платы.
В меню «Инструменты» вы также можете установить порт, к которому подключен контроллер. Пакет Arduino IDE сам определяет порт, но иногда требуется вручную установить номер порта в настройках.
С помощью Arduino IDE можно также загрузить, то есть запрограммировать Bootloader (загрузчик) для нового, чистого микроконтроллера Atmega.
Для обычной работы с Arduino IDE используется панель быстрого доступа, которая оснащена наиболее важными кнопками. Это решение, облегчающее работу с пакетом IDE, дает нам прямой доступ к практически всем необходимым параметрам при написании и тестировании программы.
Все опции, расположенные на панели быстрого доступа, продублированы в меню программы.
Дополнительным полезным элементом, находящимся под кнопкой включения монитора последовательного порта — это меню для управления вкладками (7). Вкладки в Arduino IDE упрощают написание сложных проектов, а так же позволяют работать с несколькими проектами одновременно.
Самая большая часть окна программы предназначена для написания непосредственно самого кода программы. Редактор в Arduino IDE не слишком продвинутый, но имеет самые важные элементы, позволяющие облегчить написание простых программ. К таким элементам можно отнести подсветка синтаксиса и блоков (скобки). Это не много, но достаточно для простых проектов.
Последним элементом программы является окно сообщений и статуса. Отображаемая там информация позволяет пользователю найти ошибки в программном коде и получить подтверждение о завершении компиляции и загрузки программы в контроллер.
Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Функция — это просто блок кода с заданным именем, начало блока кода обозначается левой фигурной скобкой `{` , его конец — правой фигурной скобкой `}`.
2 функции с именами setup() и loop() обязательные в любой программе на C++ для Arduino. Они могут ничего и не делать, но должны быть написаны. Иначе на стадии компиляции вы получите ошибку. Подробную справочную информацию о ясыке программирования C++ для Arduino можно найти на множестве ресурсов интернет пространства, к примеру arduino.ru или all-arduino.ru