Язык программирования Arduino
Arduino – это торговая марка аппаратно-программных средств построения и проектирования простых моделей, систем и экспериментов в области автоматики, электротехники, робототехники и автоматизации процессов.
Программная часть Arduino состоит из программной оболочки для написания программ и их компиляции. Аппаратная часть является набором смонтированных печатных плат, которые также продаются сторонними производителями. Полностью открытая архитектура систем позволяет копировать и дополнять линейку продукции. Техника Arduino может использоваться для создания автономных объектов и для подключения к программному обеспечению через беспроводные и проводные интерфейсы. Программирование техники осуществляется через собственную программную оболочку. У данной оболочки имеются менеджер проектов, текстовый редактор, компилятор, препроцессор, а также инструменты необходимые для загрузки программы в микроконтроллер. Программная оболочка написана на языке Java и может работать под OS X, Linux, Windows и Mac.
Язык программирования Arduino представляет собой язык С++ с фреймворком Wiring. Этот язык отличается по части написания кода, который компилируется и собирается при помощи avr-gcc, с особенностями, которые облегчают процесс написания программы.
Фреймворк – это программная платформа, которая определяет структуру программной системы; программное обеспечение, которое облегчает разработку и объединение компонентов программного проекта.
Программы, которые написаны на языке Arduino, называются скетчами или набросками, они сохраняются в файлах с расширением ino. Перед компиляцией данные файлы обрабатываются препроцессором. Имеется возможность создавать и подключать к проекту файлы C++.
Программисту в Arduino следует написать две обязательные функции: loop - выполняется в бесконечном цикле; setup - вызывается однократно при старте.
Программисту нет необходимости вставлять заголовочные файлы используемых стандартных библиотек в текст своей программы. Такие файлы автоматически добавляет препроцессор в соответствии с конфигурацией проекта, но пользовательские библиотеки указывать нужно.
Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге программной оболочки.
Программной оболочкой не предлагаются никакие настройки компилятора и минимизируются прочие настройки.
Микроконтроллеры Arduino
Микроконтроллеры Arduino отличаются наличием предварительно прошитого в них загрузчика. Благодаря такому загрузчику пользователь может загрузить свою программу в микроконтроллер без использования аппаратных программаторов. Загрузчик сохраняется с компьютера через USB или при помощи отдельного переходника. В случае затирания загрузчика предоставляется возможность прошить его в микроконтроллер самостоятельно. Для этого в программную оболочку встроены популярные программаторы, а большинство плат Arduino имеют разъем для внутрисхемного программирования. Распространенными моделями микроконтроллеров Arduino являются:
- AVR. В классической линейке продукции Arduino, обычно, применяются микроконтроллеры Atmel AVR. Данные микроконтроллеры встречаются на следующих платах: ATmega 2560 - платы Mega; ATmega 32U4 - платы Leonardo, Yun, Micro; ATmega 328 - платы nano, uno; ATmega 168 - платы uno, pro; ATtiny - платы Digispark.
- ARM. Сейчас начали появляться процессоры ARM в линейке микроконтроллеров. Сначала это был AT91SAM3X8E на плате классического конструктива. Позже появились платы MKR в конструктиве DIP.
- ESP32 и ESP8266. Сторонними разработчиками была портирована поддержка Wi-Fi микроконтроллеров ESP32 и ESP8266. Таким образом, компилировать и загружать прошивку с поддержкой Wi-Fi можно прямо из программной оболочки Arduino.
- Intel x86. В рамках сотрудничества с другими производителями в программную оболочку Arduino был включена поддержка некоторых средств Intel x86: Intel Edison, процессор Intel Quark X1000, Arduino 101, которые являются Arduino-совместимыми платами на x86 архитектуре. Электрически и механически данные платы совместимы с платами периферии Arduino. Они функционируют под собственной операционной системой Linux. Поверх операционной системы работает приложение, которое позволяет загружать и исполнять программы, написанные в Arduino.