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

Главная страница 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

  1. В Visual Studio Code нажмите кнопку Расширения на левой панели или нажмите Ctrl + Shift + X на клавиатуре.

  2. В строке поиска расширений введите platformio, затем нажмите на результат, который говорит “PlatformIO IDE”.

  3. Нажмите кнопку “Установить” и дождитесь завершения установки.

  4. Когда установка будет успешной, логотип PlatformIO должен появиться на левой панели Visual Studio Code. Нажимайте на этот логотип, когда хотите использовать PlatformIO.

Программирование с PlatformIO

По сравнению с Arduino IDE, программирование с PlatformIO требует нескольких дополнительных шагов. В этом примере мы будем использовать Arduino Uno и заставим его мигать своим внутренним светодиодом.

  1. Нажмите на значок PlatformIO на левой панели.

  2. Нажмите Открыть.

  3. Должна появиться главная страница PIO. Вы найдете панель быстрого доступа справа. Выберите “Новый проект”.

Быстрый доступ Platformio

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

Мастер проектов Platformio

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

Снята галочка с расположения по умолчанию Platformio

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

Доверяете ли вы этому пользователю Platformio

Также читайте: Как использовать 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 последовательно.

Схема Ltspice Arduino с внешним светодиодом

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

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

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

Последовательный монитор Visual Studio Code Platformio

Часто задаваемые вопросы

Как удалить PlatformIO из Visual Studio Code?

Как и любое другое расширение, вам просто нужно перейти на вкладку Расширения на левой панели, нажать на PlatformIO IDE, а затем нажать кнопку удаления.

Есть ли смысл в наличии отдельных кнопок Сборки и Загрузки?

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

Могу ли я использовать PlatformIO в коммерческих целях?

Краткий ответ: да!

Немного более длинный ответ: вы можете программировать Arduino и многие другие платы с помощью PlatformIO для вашего бизнеса. Но они также предлагают внутреннее решение IDE для бизнеса в PIO Labs.