Как сделать скетч для ардуино
Данный документ описывает создание библиотеки для Arduino. Объяснение начнется с написания скетча передачи кода Морзе посредством светодиода. Затем будет показано как конвертировать скетч в библиотеку. Это позволит другим пользователям легко использовать созданный код, обновлять и дополнять его.
Скетч, воспроизводящий код Морзе:
Данный скетч посредством мигания светодиода на выводе 13 выдает сигнал SOS.
Скетч содержит ряд частей кода, которые необходимо будет перенести в библиотеку. Во-первых, это функции dot() и dash(), которые управляют миганием светодиода. Во-вторых, это переменная ledPin, определяющая какой порт ввод/вывода использовать. И наконец, вызов функции pinMode(), устанавливающий режим вывода на используемом порту ввода/вывода.
Процесс конвертации скетча в библиотеку.
Библиотека содержит два файла: заголовочный файл (с расширением .h) и файлы реализации (с расширением .cpp). Заголовочный файл содержит характеристики библиотеки, т.е. список всего что содержится в ней. Создаваемый заголовочный файл будет называться Morse.h. Для дальнейшей работы с заголовочным файлом необходимо просмотреть содержание файла реализации.
Заголовочный файл содержит класс, в котором объявляются функций и используемые переменные:
Класс в данном случае это набор функций и переменных, объеденных в одном месте. Функции и переменные могут быть публичными (public), что означает общий доступ к ним всех, кто использует библиотеку, или частными (private), что означает доступ к ним только внутри класса. Каждый класс имеет специальную функцию конструктор, которая используется для создания экземпляра класса. Конструктор имеет тоже имя, что и класс, но не имеет типа возвращаемого значения.
В версиях Arduino 1.0 и выше нужно еще добавить:
Также принято заключать содержимое заголовочного файла в следующую конструкцию:
В начале кода библиотеки принято помещать комментарий о ее предназначении, авторе, дате и лицензии на библиотеку.
Готовый заголовочный файл содержит:
Рассмотрим файл реализации Morse.cpp.
Далее по коду находится конструктор. Он используется для создания экземпляра создаваемого класса. В данном случае пользователь задает номер используемого порта ввода/вывода через параметр. Порта устанавливается в режим вывода, а номер сохраняется в частной переменной для использования в других функциях:
Код Morse:: означает, что функция принадлежит классу Morse. Нижний пробел в начале имени переменной _ pin — принятое обозначение для частных переменных. Вообще, имя может быть любое, но согласно принятым конвенциям именования для частных переменных принято использовать префикс "_". Это также позволяет отличить от аргумента функции (в данном случае pin).
Далее код, который конвертируется в библиотеку из изначального скетча, добавилось только Morse:: и изменилось имя переменной с pin, на _pin:
Общепринято помещать некоторые поясняющие комментарии в начале кода файла реализации. Полный код библиотеки:
Использование библиотеки.
Во-первых, необходимо создать папку Morse в подпапке libraries директории блокнота. Во-вторых, требуется скопировать файлы Morse.h и Morse.cpp в созданную папку. После запуска программы Arduino в меню Sketch > ImportLibrary будет находиться библиотека Morse. Библиотека будет компилироваться совместно со скетчами, использующими ее. Если при компиляции библиотеки возникли проблемы, то необходимо проверить, чтобы ее файлы были с расширениями .cpp и .h (не должно быть никаких дополнительных расширений .pde и .txt).
Изначальный скетч, переписанный с использованием созданной библиотеки, будет выглядеть следующим образом:
Несколько отличий от изначального скетча:
Во-вторых, создается экземпляр класса Morse, называемый morse:
При выполнении данной строки (перед выполнением функции setup()) вызывается конструктор для класса Morse и принимает аргумент, данный в примере (13).
При этом функция setup() ничего не содержит, т.к. вызов функции pinMode() произошел внутри библиотеки (когда был создан экземпляр класса).
В-третьих, для вызова функций dot() и dash() необходимо прибавить префикс morse. – имя используемого экземпляра. Может быть несколько экземпляров класса Morse, каждый со своим номером порта, хранящимся в локальной переменной _pin. Вызовом функции конкретного экземпляра определяются какие переменные, используются во время вызова. При наличии следующих двух строк:
внутри вызова morse2.dot(), переменная _pin будет иметь значение 12.
К сожалению автоматическая подсветка кода не работает с подключаемыми библиотеками. Для того чтобы подсветка заработала необходимо создать файл с названием keywords.txt. Пример:
Напротив каждой строки через табуляцию стоит зарезервированное слово, и опять через табуляцию тип слова. Классы соответствуют зарезервированному слову KEYWORD1 и окрашены в оранжевый цвет; функции – KEYWORD2 и окрашены в коричневый. Для распознавания слов необходимо перезапустить среду разработки Arduino.
Созданную библиотеку желательно всегда сопровождают примером ее применения. Для этого создается папка examples в директории Morse. Затем копируется созданный ранее скетч SOS в данную папку. (Файл скетча можно найти через меню Sketch > ShowSketchFolder). После перезапуска Arduino в меню File > Sketchbook > Examples будет находиться пункт Library-Morse, содержащий пример. Также необходимо добавить комментарии о том, как лучше использовать библиотеку.
Arduino — это электронная платформа с открытым исходным кодом, которая позволяет взаимодействовать с окружающим миром. Благодаря ей можно создать всё, что придёт в голову — от простых электронных игрушек и автоматизации быта до электронной начинки боевого робота для состязаний, управляемого силой мысли (без шуток).
Из чего состоит Arduino?
На аппаратном уровне это серия смонтированных плат, мозгом которых являются микроконтроллеры семейства AVR. Подробнее о том, чем микроконтроллер отличается от микропроцессора.
Платы имеют на борту всё необходимое для комфортной работы, но их функциональности часто бывает недостаточно. Чтобы сделать свой проект более интерактивным, можно использовать различные модули и платы расширений, совместимые с платформой Arduino. Сюда входят датчики (температуры, освещения, влаги, газа/дыма, атмосферного давления), устройства ввода (клавиатуры, джойстики, сенсорные панели) и вывода (сегментные индикаторы, LCD/TFT дисплеи, светодиодные матрицы).
На программном уровне платформа Arduino представляет собой бесплатную среду разработки Arduino IDE. Микроконтроллеры надо программировать на языке C++, с некоторыми отличиями и облегчениями, созданными для быстрой адаптации начинающих. Компиляцию программного кода и прошивку микроконтроллера среда разработки берёт на себя.
Существует также s4a.cat — сервис, базирующийся на Scratch, позволяющий более наглядно вести разработку на Arduino. Он подойдёт для обучения детей, а также если вы разово хотите создать простое устройство без изучения языка программирования Arduino и различных документаций. Для остальных же случаев лучше придерживаться традиционного процесса разработки.
Нужно ли уметь паять?
Знания в области электромонтажа приветствуются, но совсем не обязательны. Простые устройства на базе Arduino часто выполняются в виде макета. Для этого используется беспаечная макетная плата (англ. breadboard), на которой происходит коммутация модулей с платой Arduino с помощью перемычек.
Макетная плата на 400 отверстий (имеются шины питания по бокам). Источник
Также существуют наборы, в которые входят сразу плата Arduino (оригинальная или от стороннего производителя), макетная плата, перемычки и различные радиоэлементы, датчики, модули. Например, такой:
Набор для изучения Arduino. Источник
Какие бывают платы
По производителю
Существуют как официальные версии плат Arduino, так и платы от сторонних производителей. Оригинальные платы отличаются высоким качеством продукта, но и цена тоже выше. Они производятся только в Италии и США, о чём свидетельствует надпись на самой плате.
На примере самой популярной платы Arduino UNO:
-
Оригинальная плата. Поставляется только в фирменной коробке, имеет логотип компании, на портах платы — маркировка. Цена от производителя 20 €.
Оригинальная плата Arduino UNO. Источник
Плата Arduino UNO от стороннего производителя. Источник
По назначению
У платы UNO достаточно портов для реализации большинства проектов. Однако иногда возможностей UNO может быть недостаточно, а иногда — избыточно. По этой причине как оригинальный, так и сторонние производители выпускают большое количество плат, различающихся характеристиками микроконтроллера, количеством портов и функциональным назначением.
Различные платы Arduino. Источник
Самые популярные из них:
Установка ПО
После выбора необходимой платы нужно установить бесплатную среду разработки Arduino IDE, которую можно найти на официальном сайте, а также, по необходимости, драйвер CH340.
Недавно открылась облачная платформа Arduino Create, которая покрывает большинство этапов разработки (от идеи до сборки). Вам не нужно ничего устанавливать на свой компьютер, всё необходимое платформа берёт на себя. В первую очередь — онлайн редактор кода.
В Arduino Create имеется доступ к обучающим материалам, проектам. Вы сможете общаться с профессионалами и помогать новичкам.
Среда разработки Arduino IDE
Особенности программирования на платформе Arduino
Термины
Программный код для Arduino принято называть скетчами (англ. sketches). У скетчей есть два основных метода: setup() и loop() . Первый метод автоматически вызывается после включения/сброса микроконтроллера. В нём происходит инициализация портов и различных модулей, систем. Метод loop() вызывается в бесконечном цикле на протяжении всей работы микроконтроллера.
Порты — неотъемлемая часть любого микроконтроллера. Через них происходит взаимодействие микроконтроллера с внешними устройствами. С программной стороны порты называются пинами. Любой пин может работать в режиме входа (для дальнейшего считывания напряжения с него) или в режиме выхода (для дальнейшей установки напряжения на нём).
Любой пин работает с двумя логическими состояниями: LOW и HIGH , что эквивалентно логическому нулю и единице соответственно. У некоторых портов есть встроенный АЦП, что позволяет считывать аналоговый сигнал со входа (например, значение переменного резистора). Также некоторые пины могут работать в режиме ШИМ (англ. PWM), что позволяет устанавливать аналоговое напряжение на выходе. Обычно функциональные возможности пина указываются на маркировке самой платы.
Основные функции
Для базовой работы с платой в библиотеке Arduino есть следующие функции:
- pinMode(PIN, type) — указывает назначение конкретного пина PIN (значение type INPUT — вход, OUTPUT — выход);
- digitalWrite(PIN, state) — устанавливает логическое состояние на выходе PIN ( state LOW — 0, HIGH — 1);
- digitalRead(PIN) — возвращает логическое состояние со входа PIN ( LOW — 0, HIGH — 1);
- analogWrite(PIN, state) — устанавливает аналоговое напряжение на выходе PIN ( state в пределах от 0 до 255);
- analogRead(PIN) — возвращает значение аналогового уровня сигнала со входа PIN (пределы зависят от разрядности встроенного АЦП. Обычно разрядность составляет 10 бит, следовательно, возвращаемое значение лежит в пределах от 0 до 1023);
- delay(ms) — приостанавливает исполнение скетча на заданное количество миллисекунд;
- millis() — возвращает количество миллисекунд после момента запуска микроконтроллера.
В остальном процесс программирования на Arduino такой же, как на стандартном C++.
Пишем первую программу
Вместо всем привычных Hello World’ов в Arduino принято запускать скетч Blink, который можно найти в Файл->Примеры->01.Basics->Blink. Там же можно найти множество других учебных скетчей на разные темы.
Почти на всех платах размещён светодиод, номер пина которого содержится в переменной LED_BUILTIN . Его можно использовать в отладочных целях. В следующем скетче будет рассмотрен пример управления таким светодиодом.
Рассмотрим скетч Blink:
Прошивка
Перед прошивкой микроконтроллера нужно выбрать вашу плату из списка в IDE. Делается это во вкладке Инструменты->Плата. Большинство существующих плат уже там есть, но при необходимости можно добавлять другие через Менеджер Плат.
После этого нужно подключить плату Arduino к любому USB-порту вашего компьютера и выбрать соответствующий порт во вкладке Инструменты->Порт.
Теперь можно приступать к прошивке микроконтроллера. Для этого достаточно нажать кнопку Загрузка, либо зайти на вкладку Скетч->Загрузка. После нажатия начнётся компиляция кода, и в случае отсутствия ошибок компиляции начнётся прошивка микроконтроллера. Если все этапы выполнены правильно, на плате замигает светодиод с периодом и интервалом в 1 сек.
Обмен данными с компьютером
Информацию на стороне компьютера можно не только получать, но и отправлять. Для этого рассмотрим следующий скетч:
Таким способом можно пересылать информацию с компьютера на Arduino и обратно. Подобным образом можно реализовать связь между двумя Arduino.
А как подключать модули?
Для работы с датчиками и модулями их изготовители создают специальные библиотеки. Они служат для простой интеграции модулей в вашу систему. Подключение библиотеки возможно с zip файла или с помощью Менеджера Библиотек.
Однако большое количество датчиков являются бинарными, т. е. считывать информацию с них можно простой функцией digitalRead() .
В этой статье вы узнаете как писать скетчи онлайн с помощью Arduino Web Editor, сохранять их в облаке и работать всегда с самой свежей версией Arduino IDE.
Что такое Arduino Web Editor
Arduino Web Editor – это онлайн инструмент, который позволяет вам писать скетчи и загружать их в любую плату Arduino с помощью вашего веб-браузера (Chrome, Firefox, Safari и Edge). Разработчики платформы Arduino рекомендуют использовать браузер Google Chrome.
Эта IDE (Integrated Development Environment – интегрированная среда разработки) является частью проекта Arduino Create, онлайн платформе, которая позволяет разработчикам писать программы, иметь доступ к обучающим материалам, конфигурировать платы и делиться своими проектами с другими участниками сообщества Arduino. Обеспечивая пользователей непрерывным трудовым процессом, Arduino Create обеспечивает взаимосвязи между всеми процессами создания готового изделия, начиная от его задумки и заканчивая его осуществлением. То есть с помощью этого сервиса вы можете управлять всеми аспектами создания проекта для Arduino.
Arduino Web Editor является онлайн сервисом, поэтому он всегда учитывает все самые последние изменения в платформе Arduino и все самые свежие платы, появившиеся в рамках этой платформы.
Эта интегрированная среда разработки (IDE) позволяет вам писать код программы (скетча) и сохранять его в облаке, к которому вы затем сможете получить доступ с любого устройства, имеющего выход в сеть интернет. Она автоматически распознает все платы Arduino и Genuino, подсоединенные к вашему компьютеру и выполняет необходимые настройки. Аккаунт в этой системе – это все, что вам нужно для начала работы.
Создание аккаунта в Arduino
Создать себе аккаунт в Arduino вы можете по этой ссылке. заполните форму регистрации, затем нажмите кнопку ‘Create Account’ (создать аккаунт). На свою электронную почту (email) вы получите письмо со ссылкой на активацию вашего аккаунта – перейдите по ней и ваш аккаунт в Arduino будет подтвержден.
Выбор платформы: Windows, Mac или Linux
Arduino Web Editor может работать со множеством разнообразных платформ. Если вы используете Windows, Mac или Linux вам необходимо будет просто установить специальный плагин от Arduino Web Editor, который позволит вам загружать скетчи из браузера в ваши платы Arduino.
Если у вас возникли какие либо проблемы с установкой данного плагина, вы всегда можете написать о возникшей проблеме в специальной теме на форуме, где специалисты техподдержки постараются решить вашу проблему.
В конце процесса установки данного плагина вас перебросит на страницу входа в аккаунт Arduino – используйте свои учетные данные чтобы войти в него.
В этом случае у вас есть два способа запуска приложения Chrome:
Если у вас возникнут какие либо вопросы по работе Chrome App (приложения для Chrome), вы можете задать их в этой теме на официальном форуме Arduino.
Структура Arduino Web Editor
После запуска Arduino Web Editor вы увидите в нем три основных столбца.
Первый столбец используется для навигации между:
- Your Sketchbook – собрание всех ваших скетчей;
- Examples – примеры скетчей для демонстрации возможностей основных команд Arduino и примеры работы с библиотеками;
- Libraries – библиотеки, которые можно подключить в вашу программу (скетч) для расширения ее возможностей;
- Serial monitor – монитор последовательной связи, позволяет принимать и передавать данные в вашу плату Arduino через USB кабель;
- Help – полезные ссылки и словарь терминов Arduino;
- Preferences – ваши настройки внешнего вида Arduino Web Editor (размер шрифта, цветовая гамма и т.д.).
При выборе одного из этих пунктов меню его содержимое показывается во втором столбце (боковой панели).
И, наконец, третий столбец представляет собой область для ввода кода программы (скетча) – его вы будете использовать чаще всего. В нем вы будете писать свои скетчи, проверять их работу и загружать их в платы Arduino, сохранять свои скетчи в облаке и давать доступ к ним (расшаривать) всем, кому захотите.
Мигание светодиодом на плате Arduino из браузера
1. Запустите и настройте внешний вид Arduino Web Editor по своему желанию (пункт меню Preferences).
2. Соедините плату Arduino или Genuino с вашим компьютером. Платы и последовательные порты, к которым они подключены, автоматически определяются Arduino Web Editor и отображаются в специальном списке – выберите из этого списка ту плату, с которой хотите работать.
3. Начнем работу с самого простого примера. Для этого выберите в меню слева пункт ‘Examples’ (примеры), затем ‘Basic’ (основные) и затем ‘Blink’ (мигание). После этого код скетча для мигания светодиодом высветится в поле кода.
5. После загрузки скетча в плату светодиод на ней начнет мигать – поздравляем, вы успешно загрузили программу мигания светодиодом в вашу плату.
6. Иногда новые платы Arduino/Genuino уже при изготовлении программируются программой мигания светодиодом. Так как же в этом случае понять что вы успешно загрузили программу мигания светодиодом в плату? Да очень просто. Просто уменьшите задержку в представленном примере и после этого загружайте его в плату – если все прошло успешно, то вы заметите что светодиод начнет мигать быстрее чем он мигал до этого.
Какие виды плат поддерживаются в Arduino Web Editor
Arduino Web Editor позволяет автоматически определять вид платы и к какому порту компьютера она подключена. В настоящее время этот онлайн редактор поддерживает только официальные Arduino/Genuino платы, а также небольшое количество других сертифицированных плат. Вы можете увидеть полный список поддерживаемых плат в соответствующем выпадающем списке ('Select Other Board and Port ') в данном редакторе.
Также в специальном всплывающем окне (popup window) вы можете проверить совместимость кода вашей программы с любой поддерживаемой платой даже если у вас в это время ее нет. Если подсоединенная к компьютера плата автоматически не определилась данным редактором, вы можете вручную выбрать ее из списка, но при этом не забудьте еще и выбрать порт, к которому она подсоединена.
Полный список поддерживаемого аппаратного обеспечения можно увидеть во всплывающем команде. Команда Arduino постоянно работает над расширением этого списка.
Монитор последовательной связи (Serial Monitor)
В Arduino Web Editor монитор последовательной связи Serial Monitor доступен в боковой панели.
Монитор последовательной связи считывает данные с платы, которая в данный момент выбрана в списке плат. Если вы хотите сменить плату (например, у вас к компьютеру подсоединено несколько плат), то просто выберите необходимую плату в списке плат. При смене платы автоматически обновится и используемый последовательный порт.
Если хотите протестировать работу монитора последовательной связи, можете открыть пример Examples > 03.Analog > AnalogInOutSerial. Загрузите код этого примера в плату и после этого вы увидите результат его работы.
В то время когда код программы будет загружаться панель будет серого цвета как показано на следующем рисунке.
Если вы хотите освободить этот порт для работы других приложений просто нажмите кнопку Disconnect (разъединиться) на панели.
Документирование проектов
Документирование ваших проектов является хорошей идеей. Для этого перейдите в панель примеров (Examples panel) и выберите там Fade sketch.
Откройте в нем ‘layout.jpg ’ и ‘schematic.jpg’. Эти примеры наглядно покажут вам как поместить необходимые поясняющие рисунки (со схемой проекта, например) в ваши проекты. В свои проекты вы всегда можете добавить нужную вам документацию кликнув в последней вкладке области кода и выбрав там ‘Import File into Sketch’ (импортировать файл в скетч).
Открытие доступа к вашим скетчам
Если вы дадите этот URL кому то еще он сможет увидеть ваш код, добавить его копию в свой Sketchbook в облаке или скачать его. Если вы написали обучающее руководство в Project Hub и добавили ссылку в разделе программного обеспечения (Software section), ваш код будет включен в него и будет всегда оставаться актуальным.
Мы считаем что скетч Arduino представляет собой структурную единицу информации, которая содержит все что нужно для претворения идеи в жизнь. Когда кто-нибудь предоставляет вам (расшаривает) доступ к своему скетчу, вы будете иметь доступ к его коду, схеме проекта и даже к его описанию (если оно имеется). То есть вы получаете всю информацию, чтобы создать копию проекта-оригинала.
Вы даже можете встроить ваш скетч в веб-страницу скопировав код находящийся в Share window (окне для предоставления доступа).
Библиотеки в Arduino Web Editor
К настоящему времени сообществом Arduino написано более 700 библиотек, которые вы можете включить в ваши скетчи в Arduino Web Editor даже не устанавливая их. Вы можете посмотреть их все в менеджере библиотек (Library Manager) и отметить из них те, которые вам понравились больше всего. Из менеджера библиотек все эти библиотеки легко (автоматически) интегрируются в вашу программу без необходимости их установки.
Поскольку все эти библиотеки располагаются на серверах официального сайта Arduino, то если вы предоставите доступ к вашему скетчу кому то еще, то он в Arduino Web Editor просто может скопировать его код к себе также не утруждая себя какими либо действиями по установке и использованию данных библиотек.
Если в обычных условиях (в оффлайн Arduino IDE) предоставление доступа к своему скетчу со всеми используемыми им библиотеками может быть весьма утомительной задачей, то Arduino Web Editor может значительно упростить и ускорить данный процесс. К примеру, можете протестировать скетч Thermostat Bot с большим количеством используемых им библиотек.
Но что делать если вы хотите использовать строго определенную версию библиотеки? Для этого найдите эту библиотеку в менеджере библиотек и отметьте ее звездочкой – то есть добавьте ее в избранные. После этого она появится во вкладке "избранное" (Favorite) на панели библиотек (Libraries panel). И здесь вы уже можете указать нужную версию данной библиотеки и включить ее в ваш скетч. Сервис Arduino Web Editor добавляет в скетч специальные метаданные с номером версии библиотеки, поэтому компилятор (Arduino Builder) подключит в ваш скетч именно ту версию библиотеки, которая вам нужна. Во время компиляции скетча в этом онлайн редакторе сначала учитываются кастомные (custom) библиотеки, затем те библиотеки, которые вы добавили к себе в избранное, и затем встроенные (built-in) библиотеки Arduino.
Если вы добавили библиотеку к себе в избранные вы можете посмотреть примеры ее использования (related examples), получить подробную информацию по ней и также ссылку на сервис GitHub, откуда вы можете ее скачать.
Если вы хотите импортировать в свой скетч пак (сборник) определенных библиотек, то вам необходимо заархивировать их все в виде единого zip файла и затем импортировать его в сервис.
У нас уже была серия статей про программирование Arduino/Freeduino/CraftDuino . Там мы рассмотрели структуру программы, константы и специфичные для Arduino функции, которые собственно и составляют язык Wiring .
Теперь же настала пора практических занятий :)
Пожалуй, всё же стоит обозначить элементы управления Arduino IDE
Итак, слева направо:
— компиляция (оригинальное название — проверка) кода
— стоп (остановка монитора COM-порта)
— новый скетч
— открыть скетч
— сохранить скетч
— загрузить скетч в микроконтроллер Arduino/Freeduino
— монитор последовательного (COM) порта
Самые важные для нас – первая и две последние кнопки :)
Т.о. цикл разработки скетча для Arduino можно представить так:
Написание кода – компиляция – загрузка в МК.
Кажется — всё просто :)
Попробуем снова загрузить Blink :)
Открываем тестовый скетч из Examples — Digital — Blink
и нажмём кнопку компиляции
Т.к. джампер на плате установлен в Autoreset enable плата сама перезагрузится, произойдёт заливка скетча, снова перезагрузка и через 10 секунд ардуина начнёт весело мигать светодиодом :)
Впрочем, светодиод даже не обязательно вставлять в разъём – на плате уже есть сигнальный светодиод, подключённый к 13-му цифровому порту ардуины через ограничительный резистор.
Используя провода, изготовленные из витой пары,
схему можно перенести на макетную плату.
А если всё делать по-честному и подключать светодиод через ограничительный резистор, то получится такая простейшая схема:
, которая на макетной плате будет выглядеть так:
Теперь немножко переделаем скетч Blink т.о., чтобы плата сообщала нам через COM-порт когда светодиод горит, а когда нет.
Для этого нужно добавить всего три строчки кода:
Компилируем и загружаем скетч в МК.
Для урока Вам понадобится компьютер с доступом в Интернет и любой модуль Arduino.
Многие слышали о таких модулях как Arduino. Появляется вопрос: с чего же начать его изучение? Театр начинается с вешалки, а знакомство с Arduino начинается со среды разработки Arduino IDE.
Давайте найдём ответ на вопрос: зачем нам всё таки нужна эта IDE? Ответ достаточно прост. Среда Arduino IDE необходима для разработки программ и их записи в модули Arduino (и не только).
С предназначением IDE разобрались, теперь давайте изучим, что же она из себя представляет.
Чтобы подробнее разобраться со средой Arduino IDE, дорогой читатель, её нужно скачать и установить (если её нет на компьютере).
Среда разработки Arduino IDE состоит из следующих компонентов:
Подробно останавливаться на предназначении каждого пункта меню мы не будем, а рассмотрим только самые необходимые функции. Более подробно о каждом пункте меню можно прочитать здесь.
Язык программирования Arduino:
Фактически нет особого языка программирования Arduino. Модули Arduino программируются на C/C++. Особенности программирования сводятся к тому, что существует набор библиотек, включающий некоторые функции (pinMode, digitalWrite и т.д.) и объекты (Serial), которые значительно облегчают процесс написания программы.
Настройка среды Arduino IDE:
Открыть настройки среды можно из пункта меню Файл -> Настройки или с помощью комбинации клавиш Ctrl + ,
В меню настроек можно изменить путь сохранения программ по умолчанию, изменить размер шрифтов и т.д.
Различные примеры:
Одной из особенностей Arduino IDE является довольно обширная база различных примеров, что очень удобно для начинающих. Открыть пример можно из пункта меню Файл -> Примеры.
Создание новой программы:
Итак, с настройками среды мы разобрались. Что теперь? А сейчас нужно создать новую программу. Это можно сделать несколькими способами:
Сохранение программы:
Допустим мы написали программу. Далее нужно сохранить. Сделать это можно несколькими способами:
Теперь нужно только ввести имя вашей программы (оно не должно содержать русских символов!) и выбрать место, куда её сохранить. Сохранённая программа автоматически помещается в одноимённую папку, которая создаёт сама Arduino IDE.
Открытие программы:
Теперь мы научились создавать и сохранять программу. Но как теперь открыть сохранённую программу? Для этого в Arduino IDE предусмотрено несколько способов:
В открывшимся окошке нужно выбрать папку, в которой находится нужная программа.
Редактирование текста программы:
Удобный редактор текста программы очень важен при разработке какой-либо программы. В Arduino IDE он довольно неплох, однако уступает конкурентам, таким как Eclipse, Visual Studio и т.д. Однако, его вполне достаточно. В редакторе присутствуют все основные команды, необходимые при редактировании кода. Они находятся в меню Правка. Для самых часто используемых команд (копировать, ставить и т.д.) существуют комбинации, способствующие быстрому доступу к нужной команде правки, что очень удобно. Другими отличительными особенностями встроенного редактора кода являются возможность копирования кода для форумов и в html формате, что позволяет делится Вашими программами, сохраняя наглядность разметки в виде BB кодов или html разметки соответственно.
Давайте остановимся на основных командах, необходимых для редактирования программы:
Дорогой читатель, удобнее и быстрее всего пользоваться комбинациями клавиш при редактировании текста программы.
Подключение библиотеки:
Давайте разберёмся, что же такое библиотека. Библиотека — это набор функций, предназначенных для того, чтобы максимально упростить работу с различными модулями, датчиками и т.д. Например, библиотека LowPower позволяет легко управлять режимами энергосбережения модулей Arduino. Существует огромное количество различных модулей и датчиков. Но как ими управлять? Для этого разработаны специальные библиотеки, которые значительно облегчают работу. Но перед тем, как использовать дополнительные библиотеки, необходимо установить и подключить их. А как подключить библиотеку, спросите Вы? Есть несколько способов:
В каждой библиотеке есть различные примеры использования функционала библиотеки. Имя заголовочного файла можно найти там. Дорогой читатель, рекомендуем внимательно изучать примеры, ведь любая, даже большая программа, состоит из кусочков простых примеров.
Выбор платы:
Существует довольно большое количество модулей Arduino. Загружать написанную программу нужно именно в тот тип модуля, который подключён к компьютеру. Выбрать модуль можно в меню Инструменты -> Плата.
В списке находятся все официальные версии модулей Arduino. Если нужного модуля нет в списке, то его можно добавить. Это рассмотрено в следующем уроке.
Далее необходимо выбрать тип контроллера, который установлен на модуле Arduino (на каждом контроллере есть маркировка). Это можно сделать в меню Инструменты -> Процессор.
Компиляция программы:
Теперь, когда выбран конкретный модуль Arduino, можно переходить к компиляции написанной программы. Давайте разберёмся, что же такое компиляция. Если говорить простым языком и касательно среды Arduino IDE, то компиляция — это перевод написанной в IDE программы в эквивалентную, но в машинных кодах. Программа записывается в микроконтроллер именно в машинных кодах, а не в том виде, в котором она написана в IDE. Компиляция также помогает найти ошибки в программе, т.к. компиляция не будет выполнена, если в программе есть ошибки.
С понятием компиляции мы разобрались. А как теперь открыть скомпилировать написанную программу? Для этого в Arduino IDE предусмотрено несколько способов:
- из пункта меню Скетч -> Проверить/Компилировать;
Выбор программатора:
Пункт меню Инструменты -> Программатор используется для выбора аппаратного программатора, если программирование модуля или микроконтроллера осуществляется не при помощи встроенного USB-последовательного соединения. Как правило, эта команда используется довольно редко, однако может пригодиться, например, при записи загрузчика в новый микроконтроллер.
Т.к. в модулях Arduino уже есть свой встроенный программатор, то в качестве программатора в меню Инструменты -> Программатор нужно оставить стандартный AVRISP mkII.
Запись загрузчика:
При помощи команды Инструменты -> Записать загрузчик в микроконтроллер можно записать загрузчик. При использовании Arduino этого не требуется, однако эта команда может пригодиться если Вы хотите прошивать обычный микроконтроллер фирмы Atmel (именно микроконтроллеры фирмы Atmel стоят в модулях Arduino и как правило, они продаются без встроенного загрузчика) аналогично Arduino. Если Вы хотите разобраться с этим, рекомендуем прочесть этот урок .
Загрузка программы:
Теперь, когда почти со всеми элементами среды Arduino IDE мы разобрались, можно приступать к финальному этапу — загрузке программы в модуль Arduino.
Прежде чем загружать программу, нужно выбрать порт, к которому подключён Ваш модуль Arduino. Выбрать его можно в меню Инструменты -> Порт.
Это не обязательно должен быть COM5, как на рисунке. Имя порта у Вас, скорее всего, будет другим (COM3, COM 10 и т.д.).
Когда выбран соответствующий модуль Arduino, нужный порт, процессор и программатор, можно приступать к загрузке программы.
Для этого в Arduino IDE предусмотрено несколько способов:
Рекомендуем включить подробный вывод информации при компиляции и загрузке программы, это зачастую помогает выявить тип ошибки при компиляции или загрузке программы. Для этого в меню Файл -> Настройки установить соответствующие галочки.
Монитор последовательного порта:
Между Arduino и компьютером можно обмениваться данными через последовательный порт (он же интерфейс UART). Монитор последовательного порта может использоваться как для вывода отладочной информации от модуля Arduino, так и для других целей. Через него можно как отправлять данные в модуль Arduino, так и получать данные от него. Не забудьте выбрать порт, к которому подключён модуль Arduino, иначе монитор последовательного порта не откроется! При его открытии модуль Arduino перезагрузится!
Открыть окно монитора последовательного порта можно несколькими способами:
- из пункта меню Инструменты -> Монитор порта;
После открытия монитора последовательного порта появится следующее окошко:
В самом низу этого окошка можно изменить скорость работы порта ( она должна совпадать с той, которая указана в программе! ) очистить окно и т.д.
Пример полного цикла разработки программы в Arduino IDE:
А теперь, дорогой читатель, давайте полностью пройдём все этапы разработки программы в Arduino IDE.
Запускаем Arduino IDE
Откроется следующее окошко:
Ждём открытия среды. Когда она открылась, создаём новую программу путём нажатия на комбинацию клавиш Ctrl + N.
Теперь давайте сохраним эту программу под именем Hello_World, для этого нажимаем на комбинацию клавиш Ctrl + S, вводим путь, куда сохраним программу и её имя.
В указанной директории появится папка с программой Hello_World.
Читайте также: