Как программировать Arduino через Visual Studio Code с использованием PlatformIO

Иногда программирование в Arduino IDE просто недостаточно. Подумайте обо всех инструментах, которых не хватает: нет проверки правописания, нет папок, нет автозаполнения. Конечно, вы можете просто программировать Arduino в редакторе, а затем вставлять его в IDE перед загрузкой. Но PlatformIO позволяет вам делать это, не переключая окна вообще.
Содержание
- Что такое PlatformIO?
- Установка PlatformIO
- Программирование с PlatformIO
- Загрузка на Arduino
- Часто задаваемые вопросы
Также читайте: 10 полезных однострочных программ на Python, которые вы должны знать
Что такое PlatformIO?
PlatformIO — это расширение для Visual Studio Code, которое позволяет вам запускать и отлаживать код для встроенных систем. В настоящее время оно поддерживает 1,395 плат разработки от различных производителей, позволяя использовать его не только для Arduino.
Сравнение PlatformIO с Arduino IDE можно охарактеризовать как “используйте его, и вы поймете”. На мой взгляд, это определенно лучше, потому что вы можете добавить больше функций, таких как лучшие линтеры C/C++, автозаполнение и даже поддержку MicroPython. Он также поддерживает Git, что хорошо, если вы работаете в команде.
Установка PlatformIO
В Visual Studio Code нажмите кнопку Расширения на левой панели или нажмите Ctrl + Shift + X на клавиатуре.
В строке поиска расширений введите
platformio, затем нажмите на результат, который говорит “PlatformIO IDE”.Нажмите кнопку “Установить” и дождитесь завершения установки.
Когда установка будет успешной, логотип PlatformIO должен появиться на левой панели Visual Studio Code. Нажимайте на этот логотип, когда хотите использовать PlatformIO.
Программирование с PlatformIO
По сравнению с Arduino IDE, программирование с PlatformIO требует нескольких дополнительных шагов. В этом примере мы будем использовать Arduino Uno и заставим его мигать своим внутренним светодиодом.
Нажмите на значок PlatformIO на левой панели.
Нажмите Открыть.
Должна появиться главная страница PIO. Вы найдете панель быстрого доступа справа. Выберите “Новый проект”.

- Должен появиться Мастер проектов. Вы можете ввести “PlatformIO Blink” в текстовом поле Название. Затем введите или найдите “Arduino Uno” в выпадающем списке Плата и выберите Arduino в выпадающем списке Фреймворк.

- Необязательно: PlatformIO автоматически сохраняет ваши проекты в своей папке по умолчанию (Documents\PlatformIO\Projects). Вы можете снять галочку с поля “Использовать расположение по умолчанию” и затем выбрать или создать свою собственную папку через проводник, который появится ниже.

- Нажмите “Готово”, когда закончите. Процесс инициализации может занять некоторое время в первый раз. Он также может спросить вас, доверяете ли вы авторам файлов в папке. Если это только вы работаете над своим проектом, нажмите “Да, я доверяю авторам”. В противном случае нажмите “Нет, я не доверяю авторам”. Вы всегда можете изменить этот параметр позже.

Также читайте: Как использовать Python для базового администрирования систем Linux и сетевых задач
Найдите, где программировать
Вы должны быть готовы программировать ваш Arduino после нажатия этой кнопки. Чтобы начать программирование, вам нужно перейти в “src -> main.cpp”. Это откроет файл со следующим кодом:
#include
void setup(){
// поместите ваш код настройки здесь, чтобы он выполнялся один раз:
}
void loop(){
// поместите ваш основной код здесь, чтобы он выполнялся повторно:
}Звучит знакомо? Это то, что появляется в Arduino IDE, как только вы его открываете. Есть только одно отличие: в строке 1 написано #include.
Причина проста. Вы программируете на чистом C++ сейчас. PlatformIO показывает все скрытые вещи, которые вы никогда не видите, используя язык программирования Arduino. Вот почему вы видите все эти новые папки слева. Они там, чтобы вы могли с ними работать.
С другой стороны, Arduino IDE позволяет вам программировать платы Arduino только с использованием языка программирования Arduino, который основан на C++.
С этим покончено, давайте заставим Arduino мигать своим внутренним светодиодом!
Код для мигания
#include
void setup(){
// поместите ваш код настройки здесь, чтобы он выполнялся один раз:
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop(){
// поместите ваш основной код здесь, чтобы он выполнялся повторно:
digitalWrite(LED_BUILTIN, HIGH);// включает светодиод.
delay(500);
digitalWrite(LED_BUILTIN, LOW);// выключает светодиод.
delay(500);
Serial.println("Один цикл включения и выключения светодиода");// выводит сообщение после цикла включения и выключения светодиода.
}Загрузка на Arduino
Как и в Arduino IDE, PlatformIO позволяет вам либо Собирать, либо Собирать и Загружать вашу программу Arduino на вашу плату. В синей панели под Visual Studio Code вы должны увидеть значок галочки и стрелки рядом с иконкой дома.
Значок галочки позволяет вам собирать ваш код и видеть, есть ли какие-либо проблемы при его преобразовании в машинный код. Между тем, значок стрелки позволяет вам собрать ваш текущий код и затем загрузить его прямо на вашу плату (при условии, что она подключена к вашему компьютеру).
Следующие две кнопки позволяют вам удалить текущую сохраненную сборку (значок мусорной корзины) с вашего компьютера и провести модульное тестирование (значок колбы) на вашей плате.
Попробуйте внешний светодиод
С этим покончено, встроенный светодиод вашего Arduino должен начать мигать раз в секунду. Если вы действительно хотите увидеть, как это работает на внешнем светодиоде, попробуйте подключить светодиод и резистор 250 Ω между пином 13 и GND последовательно.

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

Часто задаваемые вопросы
Как удалить PlatformIO из Visual Studio Code?
Как и любое другое расширение, вам просто нужно перейти на вкладку Расширения на левой панели, нажать на PlatformIO IDE, а затем нажать кнопку удаления.
Есть ли смысл в наличии отдельных кнопок Сборки и Загрузки?
Хотя это может показаться избыточным на первый взгляд, наличие кнопки Сборки, которая не загружает код никуда, очень помогает, когда вы экспериментируете с определенными функциями C++, в которых вы не уверены, будут ли они работать на встроенной системе вообще. В конечном итоге это зависит от вашего случая использования. Это, а также ранняя отладка, помогает устранить множество нежелательных ошибок в долгосрочной перспективе.
Могу ли я использовать PlatformIO в коммерческих целях?
Краткий ответ: да!
Немного более длинный ответ: вы можете программировать Arduino и многие другие платы с помощью PlatformIO для вашего бизнеса. Но они также предлагают внутреннее решение IDE для бизнеса в PIO Labs.