Arduino и Visual Studio Code



Книга Arduino и Visual Studio Code

После парочки проектов Arduino в стандартной Arduino IDE начинаешь подумывать о том, как расстаться с IDE для новичков и найти другой способ настройки файлов с помощью функций setup() и loop() в файле .ino.


Скорее всего, большинство ваших первых проектов придерживались следующий структуры в файле .ino:


setup() {

}

loop() {

}

Чтобы распрощаться с этой тенденцией, я начал использовать редактор, пригодный практически для любых целей,  —  Visual Studio Code.


VS Code предлагает разные расширения для разработки Arduino. Я предпочел PlatformIO, поскольку оно превращает VS Code в полноценную IDE для различных встраиваемых систем, включая и Arduino!


Установив VS Code, открываем контекстное меню комбинацией клавиш control + shift + p. После этого вводим install и находим опцию Extensions: Install Extensions (Расширения: Установить расширения).


Опции для установки расширений

Выбираем Extensions: Install Extension и находим PlatformIO, набирая в поисковой строке слово “platform.” На левой боковой панели появляется опция PlatformIO IDE. Остается только нажать Install.


Установка расширения PlatformIO

После установки на левой боковой панели VS Code вы увидите иконку с инопланетянином, указывающую на расширение PlatformIO IDE. Выбираем ее и открываем PlatformIO IDE GUI.


PlatformIO GUI

После открытия GUI для PlatformIO выбираем New Project и начинаем работу над первым проектом Arduino за рамками Arduino IDE для начинающих!


Открытое диалоговое окно проекта PlatformIO

Например, я воспользовался версией “Hello, World” для встраиваемых систем, которая мигает светодиодом (англ. LED). В связи с этим проект получил название blinky (от англ. blink  —  мигать). В поле выбора Boards обязательно выбираем нашу рабочую плату, чтобы гарантировать успешное завершение процесса сборки и прошивки.


После именования проекта и выбора нужной платы Arduino открывается диалоговое окно с каталогом проекта и основным файлом исходного кода. Файл main.ino больше не существует! Структура каталога становится более упорядоченной, и основной файл исходного кода находится в main.cpp.


Основной файл исходного кода в VS Code

Теперь единственным файлом, о котором нужно беспокоиться, становится main.cpp. Начав заниматься разработкой встроенного ПО на других системах, я заметил, что Arduino абстрагирует большую часть инициализации в функции main, используя setup() и loop(). Поскольку мне это не особо нравится, я удалил содержимое main.cpp и заменил его на main():


#включение <Arduino.h>

int main(int argc, char **argv) {
init();
for(;;) {
}
}

Заменив функции setup() и loop() на main(), вы заметите наличие функции init(). С ее помощью происходит инициализация платы Arduino для работы с последующим кодом. В отсутствии функции init() код не будет выполняться должным образом. 


Как видно, благодаря инструкции #include в начале файла у нас будут все функции Arduino для входа, выхода, пинов и т.д. 


С помощью функции pinMode() устанавливаем режим работы пина на выход: 


const int ledPin = 12;
pinMode(ledPin, OUTPUT);

Здесь применяется пин 12 на Arduino для управления светодиодом на макетной плате. 


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


digitalWrite(ledPin, HIGH);
delay(1000);

digitalWrite(ledPin, LOW);
delay(1000);

Чтобы добиться непрерывного мигания, помещаем код в цикл for(;;).


Итоговый файл main.cpp выглядит так: 


Итоговый файл main.cpp

По мере готовности кода переходим к сборке и прошивке проекта. Для сборки комбинацией клавиш control + shift + p открываем контекстное меню, вводим build и видим запись PlatformIO: Build. Эта опция позволяет PlatformIO cкомпилировать и собрать проект Arduino для конкретной платы, указанной ранее при создании проекта. 



При выборе данной опции в нижней половине окна VS Code появляется небольшой терминал. После успешной компиляции и сборки код готов к прошивке! По итогам удачной сборки в терминале выводится следующее сообщение: 


Успешная сборка Arduino PlatformIO

На следующем этапе приступаем к загрузке (прошивке) сборки на плату Arduino. Снова задействуем control + shift + p и вводим upload. В списке опций выбираем PlatformIO: Upload и загружаем собранный проект на плату Arduino. 


Диалоговое окно PlatformIO: Upload

После загрузки проекта на плату Arduino заставит светодиод мигать с односекундной паузой между операциями! 


В терминале VS Code результативная загрузка выглядит так: 


Загрузка на Arduino

Поздравляю с написанием первого проекта Arduino за рамками Arduino IDE для начинающих! Теперь вы работаете со встроенными системами, которые отделены от Arduino IDE. PlatformIO также используется с платами STM32 и более дешевыми платами-клонами, доступными в интернете.



606   0  

Comments

    Ничего не найдено.