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

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

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

Планируйте свой следующий проект Arduino ››

Среда кодирования Arduino и основные инструменты

Код Arduino написан на C++ с добавлением специальных методов и функций, о которых мы поговорим позже. C++ — человекочитаемый язык программирования. Когда вы создаете «скетч» (имя, данное файлам кода Arduino), он обрабатывается и компилируется в машинный язык.

Ардуино IDE

Интегрированная среда разработки Arduino (IDE) — это основная программа редактирования текста, используемая для программирования Arduino. Здесь вы будете набирать свой код перед загрузкой на доску, которую хотите запрограммировать. Код Arduino называется скетчами.

Примечание. Важно использовать последнюю версию Arduino IDE. Время от времени проверяйте обновления здесь.

Как видите, IDE имеет минималистичный дизайн. В строке меню всего 5 заголовков, а также ряд кнопок под ними, которые позволяют вам проверять и загружать свои эскизы. По сути, IDE переводит и компилирует ваши скетчи в код, понятный Arduino. Как только ваш код Arduino скомпилирован, он загружается в память платы.

Все, что нужно сделать пользователю, чтобы начать компиляцию своего эскиза, — это нажать кнопку (руководство по этому вопросу можно найти ниже).

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

Последовательный монитор и последовательный плоттер

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

Код, который вы загружаете с Circuito.io, имеет раздел тестирования, который поможет вам протестировать каждый компонент с помощью последовательного монитора, как вы можете видеть на снимке экрана ниже:

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

Отладка кода и оборудования Arduino

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

Используя класс Serial, вы можете печатать на последовательном мониторе, отлаживая комментарии и значения переменных. На большинстве моделей Arduino для этого будут использоваться последовательные контакты 0 и 1, которые подключены к порту USB.

Структура кода

Библиотеки

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

Чтобы импортировать новую библиотеку, вам нужно перейти в Sketch › Import Library

Кроме того, в верхней части вашего .ino-файла вам нужно использовать #include для включения внешних библиотек. Вы также можете создавать собственные библиотеки для использования в изолированных эскизах.

Определения выводов

Чтобы использовать выводы Arduino, вам необходимо определить, какой вывод используется, и его функциональные возможности. Удобный способ определить используемые контакты — использовать:

‘#define pinName pinNumber’.

Функционал может быть либо вводом, либо выводом и определяется с помощью метода pinMode() в разделе настройки.

Декларации

Переменные

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

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

Экземпляры

В программировании программного обеспечения класс – это набор функций и переменных, которые хранятся вместе в одном месте. Каждый класс имеет специальную функцию, известную как конструктор, которая используется для создания экземпляра класса. Чтобы использовать функции класса, нам нужно объявить для него экземпляр.

Настройка()

Каждый скетч Arduino должен иметь функцию настройки. Эта функция определяет начальное состояние Arduino при загрузке и запускается только один раз.

Здесь мы определим следующее:

  1. Функциональность PIN-кода с использованием функции pinMode
  2. Исходное состояние пинов
  3. Инициализировать классы
  4. Инициализировать переменные
  5. Логика кода

Цикл()

Функция цикла также является обязательной для каждого скетча Arduino и выполняется после завершения setup(). Это основная функция, и, как следует из названия, она выполняется в цикле снова и снова. Цикл описывает основную логику вашей схемы.

Например:

Примечание. Использование термина «недействительно» означает, что функция не возвращает никаких значений.

Базовая логика кода Arduino

Базовая логика кода Arduino представляет собой структуру «если-то» и может быть разделена на 4 блока:

Настройка — обычно записывается в разделе настройки кода Arduino и выполняет действия, которые необходимо выполнить только один раз, например калибровку датчика.

Входные данные — в начале цикла считываются входные данные. Эти значения будут использоваться в качестве условий (если), таких как показания окружающего освещения из LDR с использованием analogRead().

Управление данными — этот раздел используется для преобразования данных в более удобную форму или выполнения вычислений. Например, функция AnalogRead() дает значение от 0 до 1023, которое может быть преобразовано в диапазон от 0 до 255 для использования в ШИМ (см. analogWrite()).

Вывод — в этом разделе определяется окончательный результат логики («тогда») в соответствии с данными, рассчитанными на предыдущем шаге. Глядя на наш пример с LDR и PWM, включайте светодиод только тогда, когда уровень окружающего освещения опускается ниже определенного порога.

Библиотеки кода Arduino

Структура библиотеки

Библиотека — это папка, состоящая из файлов с файлами кода C++ (.cpp) и заголовочными файлами C++ (.h).

Файл .h описывает структуру библиотеки и объявляет все ее переменные и функции.

Файл .cpp содержит реализацию функции.

Импорт библиотек

Первое, что вам нужно сделать, это найти библиотеку, которую вы хотите использовать, из множества библиотек, доступных в Интернете. После загрузки на компьютер вам просто нужно открыть Arduino IDE и нажать Sketch › Include Library › Manage Libraries. Затем вы можете выбрать библиотеку, которую хотите импортировать в IDE. После завершения процесса библиотека будет доступна в меню эскиза.

В коде, предоставленном circuito.io, вместо добавления внешних библиотек, как упоминалось ранее, мы предоставляем им папку с прошивкой. В этом случае IDE знает, как их найти при использовании #include.

От программного обеспечения к оборудованию

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

Код → Компилировать → Загрузить → Запустить

В основе Arduino лежит возможность компилировать и запускать код.

После написания кода в IDE его нужно загрузить в Arduino. Нажатие кнопки «Загрузить» (значок со стрелкой вправо) скомпилирует код и загрузит его, если он прошел компиляцию. После завершения загрузки программа запустится автоматически.

Вы также можете сделать это шаг за шагом:

  1. Во-первых, скомпилируйте код. Для этого просто щелкните значок проверки (или щелкните эскиз › Проверить/Компилировать в строке меню.

Как видите, значок проверки расположен в левом верхнем углу под тегом «Файл» в разделе меню.

Как только вы это сделаете, Arduino начнет компилироваться. После завершения вы получите сообщение о завершении, которое выглядит следующим образом:

Как видите, зеленая строка внизу страницы говорит вам, что вы «завершили компиляцию». Если ваш код не запустится, вы получите уведомление в том же разделе, а проблемный код будет выделен для редактирования.

После того, как вы скомпилировали свой эскиз, пришло время загрузить его.

  1. Выберите последовательный порт, к которому в данный момент подключен ваш Arduino. Для этого нажмите Инструменты › Последовательный порт в меню, чтобы указать выбранный вами последовательный порт (как показано выше). Затем вы можете загрузить скомпилированный скетч.
  2. Чтобы загрузить скетч, нажмите на значок загрузки рядом с галочкой. В качестве альтернативы вы можете перейти в меню и нажать «Файл»> «Загрузить». Ваши светодиоды Arduino будут мигать во время передачи данных.

После завершения вас встретит сообщение о завершении, в котором сообщается, что загрузка Arduino завершена.

Настройка IDE

Чтобы подключить плату Arduino к компьютеру, вам понадобится USB-кабель. При использовании Arduino UNO USB передает данные программы непосредственно на вашу плату. USB-кабель используется для питания Arduino. Вы также можете запустить Arduino через внешний источник питания.

Прежде чем вы сможете загрузить код, необходимо настроить некоторые параметры.

Выберите свою плату — вам нужно указать, какую плату Arduino вы собираетесь использовать. Для этого нажмите Инструменты › Доска › Ваша доска.

Выберите свой процессор — есть определенные платы (например, Arduino pro-mini), для которых вам нужно указать, какая у вас модель процессора. В разделе инструменты › процессор › выберите модель, которая у вас есть.

Выберите свой порт — чтобы выбрать порт, к которому подключена ваша плата, перейдите в Инструменты › Порт › COMX Arduino (это последовательный порт Arduino).

Как установить сторонние платы (например, NodeMCU)

Некоторые модели плат не предустановлены в Arduino IDE, поэтому вам необходимо установить их перед загрузкой кода.

Чтобы установить стороннюю плату, такую ​​как NodeMCU, вам необходимо:

  1. Нажмите на инструменты › Доски › Менеджер досок
  2. Найдите доску, которую хотите добавить, в строке поиска и нажмите «Установить».

Некоторые доски не могут быть найдены через Менеджер досок. В этом случае вам нужно будет добавить их вручную. Для этого:

  1. Нажмите «Файлы» > «Настройки».
  2. В поле Диспетчер дополнительных плат вставьте URL-адрес установочного пакета вашей платы. Например, для nodeMCU добавьте следующий URL-адрес: http://arduino.esp8266.com/stable/package_esp8266com_index.json.
  3. Нажмите ОК
  4. Перейдите в инструменты › Доски › Менеджер досок
  5. Найдите доску, которую хотите добавить, в строке поиска и нажмите «Установить».

Выполнив этот шаг, вы увидите установленные платы в списке плат в разделе «Инструменты».

Примечание: процесс может немного отличаться для разных плат.

Arduino: чрезвычайно универсальная платформа

Arduino — это гораздо больше, чем просто микроконтроллер. Благодаря обширной IDE и широкому спектру аппаратных конфигураций Arduino представляет собой действительно разнообразную платформу. Разнообразие его библиотек и интуитивно понятный дизайн делают его фаворитом как для новых пользователей, так и для опытных разработчиков. Существуют тысячи ресурсов сообщества, которые помогут вам начать работу как с аппаратным, так и с программным обеспечением.

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

Первоначально опубликовано на сайте www.circuito.io 11 марта 2018 г.