Platformio ide terminal что это

Обновлено: 05.07.2024

На днях много времени потратил на доводку и калибровку 3d принтера. В связи с этим пришлось довольно часто обновлять прошивку принтера. Ну и т. к. в принтере используется плата, совместимая с Arduino, то пользовался я для этого Arduino IDE, что очень неудобно, т. к. постоянно приходилось менять порт подключения. В итоге начал искать как зафиксировать порт в Arduino. Но в итоге я нашёл нечто более удобное, а именно PlatformIO и как раз впечатлением об этой штуке я и хочу поделиться.

В общем как я понял это некий репозитарий библиотек, фреймворков и конфигураций для различных типовых отладочных плат. Судя по описанию поддерживается более 200 отладочных плат и около 10 библиотек (включая кстати поддержку BLE чипов от Nordic, что лично меня очень радует)

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

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

Нет интеграции с системами контроля версий. На дворе если что 2018 год.

Убогий GUI под Linux. Это конечно проблема Java на Linux-е, но тем не менее. Лучше уж никак чем смотреть на эти корявые менюхи и шрифты без нормального сглаживания.

Сначала установил из пакетов, но при попытке обновиться командой platformio upgrade получил кучу ошибок на тему, что надо удалить пакет, чего-то там конфликтует и прочие ошибки, поэтому решил ставить родными средствами питона.

Питон тоже слегка заартачился — в общем 3-я версия питона не катит — ставить нужно на вторую. Но у меня оно есть, поэтому особых проблем не испытал.

После этого апгрейд радостно сообщил мне, что у меня последняя версия.

О чудо! В корне папки с Marlin-ом обнаружил заветный файлик platformio.ini . А это означает ничто иное как то, что Marlin уже имеет поддержку PlatformIO и конфигурировать ничего не надо. Да и в конфиге по умолчанию уже стоит именно ардуина от моего принтера.

Пробую обновить ардуинские библиотеки.

Ну и запускаю сборку

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

Для заливки прошивки в платформу по умолчанию используем команду

При этом оно само выкачало avrdude , определило нужный порт и залило прошивку. Сказать, что я удивлён это ничего не сказать. Больше не нужен этот геморрой с переключением портов.

В общем-то уже после того как это написал нашёл статью на Geektimes о PlatformIO. А так в общем и целом в рунете какой-то информации о PlatformIO не сказать, что много.

У меня конечно ещё вау-эффект не закончился, но тем не менее хочу сказать, что это просто находка. Рекомендую всем хотя бы попробовать. Лично для меня это удобно тем, что я могу избавиться от использования Arduino IDE (собственно и раньше ничего не мешало, но городить кучу скриптов не было желания) и переключиться на обычный редактор, а код безболезненно собирать PlatformIO.

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

Ну и уже руки чешутся попробовать использовать PlatformIO для разработки кода под nRF чипы, что вроде как PlatformIO позволяет.

Как правило, больше начинающих работать с платформой Arduino работают с ней с помощью среды Arduino IDE, которая имеет простой интерфейс пользователя, бесплатна в использовании и имеет огромное устоявшееся сообщество. С помощью Arduino IDE можно писать код программы, компилировать его, а также загружать его во все известные платы Arduino. Arduino IDE основана на Java и может работать на популярных сегодня операционных системах: Windows, OS X и Linux. Но, будучи удобной для начинающих разработчиков, она не содержит некоторых функций, которые достаточно сильно востребованы среди опытных разработчиков. Вследствие этого для работы с платформой Arduino кроме Arduino IDE разработано достаточно много интегрированных сред разработки, одной из самой популярных среди них является PlatformIO. В этой статье мы рассмотрим установку этой платформы и программирование с ее помощью плат Arduino, а также плат STM32.

Внешний вид проекта для программирования Arduino Uno и STM32 с помощью PlatformIO

Также, если вас по каким то причинам не устраивает Arduino IDE, можете попробовать Arduino Web Editor – официальный онлайн-инструмент для работы с платами Arduino, обладающий рядом преимуществ по сравнению с Arduino IDE.

Что такое PlatformIO?

Почему стоит перейти с Arduino IDE на PlatformIO

В сети выделяют следующие недостатки Arduino IDE:

  • отсутствие кастомизации (темы, подсветка синтаксиса);
  • нет автодополнения кода (как в современных IDE);
  • не очень удобная организация проектов;
  • нет поддержки каких-либо плагинов;
  • неудобный менеджер библиотек;
  • не очень вразумительный builder, с которым достаточно трудно искать ошибки в программе;
  • другие мелкие баги, которые чаще всего встречаются при работе с Arduino IDE с операционной системе Windows.

Именно эти недостатки и вынуждают ряд пользователей переходить с Arduino IDE на PlatformIO или другие аналогичные платформы.

Преимущества PlatformIO

PlatformIO позволяет производить быструю разработку приложений и, подобно C/C++, поддерживает быстрое завершение кода и интеллектуальный код линтера, недоступные в Arduino IDE. В дополнение к этому PlatformIO предлагает полную поддержку тем с темными и светлыми цветами, умную навигацию по коду и форматирование кода. Ядро платформы включает мультиплатформенный builder, менеджер библиотек, монитор последовательного порта и многое другое.

Единый (унифицированный) отладчик поддерживает множество архитектур и платформ разработки. В отладчике есть такие функции как условные точки останова, выражения и точки наблюдения (Watchpoints), диспетчер памяти, “горячий” рестарт текущей сессии отладки. Ядро PlatformIO написано на Python 2.7 и работает на Windows, macOS, Linux, FreeBSD и даже на некоторых платформах с ARM-архитектурой: Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK и т.п. Также в составе PlatformIO есть проводник файлов (File Explorer), который помогает в удобной организации хранения ваших проектов.

Установка PlatformIO для работы с Arduino Uno

Как уже указывалось, ядро PlatformIO написано на Python 2.7, поэтому PlatformIO не поддерживает Python 3. В связи с этим рекомендуется установить Python версии 2 и затем переходить к установке PlatformIO IDE. PlatformIO представляет собой интегрированную среду разработки (IDE) и содержит в себе еще дополнительные инструменты (плагины, расширения) для работы с другими популярными IDE.

Можно произвести установку PlatformIO с такими текстовыми редакторами как Atom и Visual Studio Code. Нужно выбрать один из них. Если вы хотите больше кастомизации, всяких крутых плагинов и экспериментов – выбирайте Atom, если же вам нужно просто красивую, удобную IDE с отличным автодополнением кода из коробки, выбирайте Visual Studio Code. В этой статье мы выбрали Visual Studio Code.

Перейдем к установке PlatformIO для последующей разработки в ней кода для Arduino Uno.

Вначале установите Visual Studio Code с ее официального сайта. Ее установка ничем не отличается от установки обычных программ для Windows, поэтому здесь процесс ее установки мы рассматривать не будем.

Когда Visual Studio Code будет установлена она будет выглядеть примерно следующим образом:

Внешний вид установленной Visual Studio Code

Запустите в этом окне поиск “PlatformIO”, в результате этого вы увидите иконку PlatformIO с именем и описанием. Просто кликните на ней и установите PlatformIO. При этом может потребоваться некоторое время для установки наборов инструментов и других дополнений.

Поиск PlatformIO для ее последующей установки

Когда процесс установки будет завершен, вы увидите интерфейс, показанный на следующем рисунке. Интерфейс включает все необходимые компоненты: New Project (новый проект), Import Arduino Project (импортировать Arduino проект), Open Project (открыть проект), Project Examples (примеры проектов) и т.д. После установки PlatformIO рекомендуется перезапустить Visual Studio Code Editor.

Вид установленной PlatformIO

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

Главное окно PlatformIO

Программирование Arduino Uno с помощью PlatformIO

Мы рассмотрим программирование платы Arduino Uno с помощью PlatformIO на примере простой программы мигания светодиодом. Для этого выполните следующую последовательность шагов.

Выберите в PlatformIO вкладку “New Project” (новый проект) из меню быстрого доступа.

Выбор нового проекта PlatformIO

Дайте имя проекту (в нашем случае мы назвали его ‘Blink’). Выберите тип платы, с которой будете работать – в нашем случае это Arduino Uno. Поскольку мы собираемся работать во фреймворке Arduino, то в поле фреймворк (framework) необходимо выбрать Arduino. После заполнения всех полей нажмите Finish.

Выбор настроек проекта в PlatformIO

Подождите некоторое время пока ваш новый проект создастся и “подтянет” к себе необходимые ресурсы и расширения.

Создание нового проекта требует некоторого времени

Проект успешно создан

Чтобы открыть созданный проект пролистайте вниз Home Menu (главное меню) PlatformIO и вы увидите список всех созданных проектов. В правой стороне напротив интересующего вас проекта нажмите ссылку ‘Open’ чтобы перейти к редактированию проекта.

Переход к редактированию проекта в PlatformIO

Когда проект будет открыт первоначально он будет отображаться как скрытый, но не беспокойтесь, PlatformIO имеет весьма продвинутые опции для работы с файлами, поэтому вы без труда найдете все файлы проекта. Просто идите в левый верхний угол и нажмите там ‘Untitled (Workplace)’. Когда вы нажмете эту ссылку, все файлы проекта появятся в выпадающем меню. Чтобы открыть окно редактирования кода, выберите в выпавшем списке ‘src’ и затем ‘main.cpp’. Окно редактора кода появится в главном экране (Home Screen) с открытием новой вкладки (Tab). После этого вы сможете писать/редактировать код вашей программы.

Открытие редактора кода в PlatformIO

Написание кода программы для мигания светодиодом

Следующим шагом будет компиляция и загрузка кода программы в плату Arduino Uno. PlatformIO изначально выбирает тот COM порт, который стоит в системе по умолчанию. Но если это не тот COM порт, который вам нужен, то его можно изменить – это будет объяснено далее в статье. PlatformIO имеет такие функции для работы с кодом программы как Build, Upload, Upload to Remote Device (загрузка в удаленное устройство), Clean, Test, Run Task, Serial Monitor, New Terminal. Все эти функции доступны в левом нижнем углу редактора как показано на следующем рисунке. Когда вы будете наводить мышкой на иконки этих функций, то будет показываться их описание.

Функции для работы с кодом программы в PlatformIO

Успешное завершение загрузки кода программы

Тестирование работы проекта

Чтобы выбрать или изменить COM порт, перейдите на главный экран (Home Screen) PlatformIO, выберите там пункт меню Devices (устройства) как показано на следующем рисунке. После этого вы увидите все доступные (подключенные) устройства. Выберите нужный вам COM порт.

Изменение COM порта в PlatformIO

Программирование STM32 с помощью PlatformIO

Для поклонников микроконтроллеров, построенных на основе платформы STM32, мы в данной статье рассмотрим их программирование с помощью PlatformIO. Процесс программирования STM32 будет практически таким же, как и рассмотренная процедура программирования Arduino UNO с помощью PlatformIO. Различие будет состоять в том, что необходимо будет выбрать соответствующую плату STM32 когда будете создавать новый проект для STM32. Достоинством PlatformIO в данном случае является то, что при работе в ней нет необходимости отдельно скачивать какие либо внешние пакеты для работы с любой платой, PlatformIO скачивает все необходимые пакеты автоматически, поэтому нам необходимо просто выбрать плату и затем можно переходить к редактору. Мы будем использовать внешний JLink/ JTAG/ STLink/ Serial Programmer чтобы загружать скетч в STM32. Также следует отметить, что STM32 можно программировать и с помощью Arduino IDE.

Чтобы произвести программирование STM32 с помощью PlatformIO выполните следующую последовательность шагов.

Выбор настроек проекта в PlatformIO для программирования STM32

Повторное создание проекта для работы с STM32 произойдет гораздо быстрее потому что все необходимые пакеты будут уже загружены при создании первого проекта. Теперь перейдите в пункт меню Untitled(Workspace) -> src -> main.cpp как мы это уже рассматривали ранее в статье при работе с платой Arduino.

Следующим шагом идет выбор программатора – он весьма важный. Для программирования плат STM32 могут быть использованы такие программаторы как JTAG, STLink, JLink, Serial и т.п. Все они рабочие, но вам необходимо соответствующим образом сконфигурировать страницу конфигурации ‘platformio.ini’

В этом проекте мы используем программатор Serial Programmer CP210x USB to UART Bridge. Подсоедините этот последовательный программатор к плате STM32 (как показано в следующей таблице) и к вашему компьютеру.

USB to Serial Programmer STM32 Board
5V 5V
Gnd Gnd
Rx A9
Tx A10

После этого перейдите в менеджер проектов (project explorer), откройте в нем страницу ‘platformio.ini’ и внесите в нее изменения как показано на следующем рисунке. Протокол загрузки кода (upload_protocol) определяет какой программатор следует использовать ((STLink, JLink, Serial и т.д.). В качестве параметра upload_port следует указать используемый вами COM порт. Вы можете изменить/выбрать используемый COM порт в пункте меню ‘Devices’ на главной странице PlatformIO.

Внесение изменений в настройки проекта

После этого перейдите в ‘main.cpp’ и напишите/измените программу мигания светодиодом. Далее загрузите код программы в плату. В случае успешной загрузки кода будут показаны параметры его загрузки. После загрузки кода вы сможете наблюдать мигание светодиода, подключенного к контакту PC13 платы STM32.

Написание кода программы мигания светодиодом для STM32

Исходный код программы (скетча)

Простая программа для мигания светодиодом. Надеюсь, она не вызовет у вас затруднений.

В предыдущих проектах и руководствах с микроконтроллером ESP32 рекомендовалось использовать среду разработки Arduino IDE для программирования плат разработчика на ESP32.

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

Есть ещё один популярный способ программирования плат разработчика с микроконтроллером ESP32 — с помощью текстового редактора Atom совместно со средой PlatformIO IDE. С этими инструментами вы можете использовать тот же язык программирования, что и со средой Arduino IDE.


Это руководство проверено на ПК с ОС Windows 10 и с ОС Mac OS X.

1. Установка текстового редактора Atom

Первый шаг — загрузка бесплатного тестового редактора с сайта Atom.io.


После этого запустите файл установки. Процесс установки довольно прост. Выполните инструкции на экране для установки редактора Atom.

2а. Установка Python 2.7.X на ПК с ОС Windows

Чтобы использовать среду PlatformIO IDE и программировать платы на микроконтроллере ESP32, необходимо установить на компьютер интерпретатор языка программирования Python 2.7.X.

Скачайте последнюю версию Python 2.7.X для своей операционной системы с официального сайта.


Примечание: в нашем случае мы использовали Python 2.7.15. Другие версии Python 2.7.X также должны работать.

Откройте скачанный файл, чтобы запустить мастер установки интерпретатора Python. В ходе шага 2 выполните следующее:

  • В окне «Customize Python 2.7.15» (Настройка установки Python 2.7.15) прокрутите список вниз.
  • Откройте строку «Add python.exe to Path» (Добавка python.exe к пути Path).
  • Выберите вариант «Will be installed on local hard drive» (Будет установлено на локальном жёстком диске).


Далее нажмите кнопку «Next», чтобы завершить установку. После установки Python 2.7.X необходимо открыть Command Prompt (Командная строка).

Выполните следующую последовательность команд, чтобы проверить версии установленных интерпретатора Python и системы управления пакетами pip.

platformio

Все на самом деле не просто, а очень просто!

Visual Studio Code, еще раз повторяю это не Visual Studio! первое весит меньше 100 мегабайт, второе больше 15 гигабайт. При этом и первое и второе распространяется бесплатно и свободно скачивается с официального сайта!

Скачивается оно с этой же странички

Скачивание Visual Studio Code

Скачивание Visual Studio Code

А дальше просто нужно выбрать дистрибутив для своей операционной системы. в 99,9% случаев ваш выбор будет вот таким

Выбор операционной системы Wisuat studio code

Выбор операционной системы Wisual studio code

Ну и запустится скачивание.

Процесс скачивания Visual Studio Code

Процесс скачивания Visual Studio Code

Установку я описывать не буду, там все очень стандартно и прозаично. Единственное нужно будет поставить (если не стоит) галочку в Добавить в Path

Скачиваете, устанавливаете. Все. Теперь необхдимо установить Platformio. Делается это прямо из VS Code.

Установка Platformio

Установка Platformio

Platformio ide install

Platformio ide install

Все! platformio установлен! Перезагружаем редактор и радуемся.

открыть папку проекта в platformio

открыть папку проекта в platformio

И выбираем папку, в которой лежит проект под platformio.

Выбор папки

Выбор папки

Все, проект откроется и внизу появится знакомая по Arduino IDE панель.

панель компиляции проекта в platformio ide

панель компиляции проекта в platformio ide

Дальше вы и без меня знаете, что и как делать. (нажать галочку для компиляции).

Внизу окна такой же терминал как и в пердуино

терминал в latformio ide

терминал в latformio ide

Читайте также: