У меня на сайте уже давно есть статья о платформио, а также о менеджере библиотек. Если кто не заметил — автором этих статей являюсь не я, автор там указан отдельно. Лично мне платформио категорически не нравится, и здесь я хочу объяснить, почему. Это моё личное мнение, основанное на моём опыте работы и моих привычках. Моё мнение основано на том, что я работаю в основном с Arduino Nano, на её примере снимаю уроки и делаю проекты. Работа с другими платформами на данный момент для меня просто не имеет смысла.
Я хотел снять видео на эту тему, но понимаю, что все возможности платформио я изучать не хочу и видео как минимум получится необъективным. А статью можно будет подправить, если в комментариях найдутся ответы на мои вопросы.
Установить платформио под VS Code очень просто: качаем и устанавливаем саму VS Code с официального сайта. Запускаем, нажимаем слева ~посередине вкладку Extensions (иконка в виде квадратиков), в строке поиска вбиваем и жмём Install по следующим запросам:
PlatformIO является «взрослой» средой разработки под разные платформы и имеет следующие преимущества перед «детской» Arduino IDE:
Я всеми руками за автодополнение и подстановку методов, это БОЖЕСТВЕННО, как и навигация по коду и прочие плюшки, которые касаются непосредственно программирования, то есть набора кода. Но по работе с платой лично для меня платформио является невыносимо неудобной программой: все эти конфиги, из за которых постоянный перенос проекта на разные платы становится работой индуса, отсутствие нормального монитора/плоттера (лично для меня — основной инструмент). Ни в коем случае не унижаю данную среду разработки, у неё огромное количество пользователей и им явно виднее. Но и не берусь рекомендовать данный софт тем, кто привык к Arduino IDE. Вы будете сначала очень приятно удивлены, а потом очень неприятно огорчены возможностями «взрослого» софта по сравнению с «детским», где на каждый пук есть своя менюшка и всё готовенькое. Также в VS Code придётся соблюдать некоторые правила языка, которые в Arduino IDE за вас соблюдает компилятор. Кода для выполнения тех же задач придётся писать больше, и для работы с VS Code всё таки рекомендуется изучить любой учебник по C++. Я в первую очередь не программист, и делюсь своим опытом для не программистов, не забывайте об этом. Ну, как-то так.
- platformio (ставим PlatformIO IDE)
- russian (ставим Russian Language Pack for Visual Studio Code) — если нужен русский язык
- C++ Intellisense — инструмент для более удобной работы с кодом
upload_speed = 57600 upload_port = COM23Где upload_speed это скорость загрузки прошивки (изучайте документацию на ваш МК и загрузчик), а upload_port это номер порта, к которому подключена плата (сами ищите где об этом узнать). Для поддержки ардуиновских библиотек пишем туда же
lib_extra_dirs = C:\Program Files (x86)\Arduino\librariesВсё! Можно работать. Подробнее читайте в статьях, ссылки выше.
Плюсы
PlatformIO является «взрослой» средой разработки под разные платформы и имеет следующие преимущества перед «детской» Arduino IDE:
- Дичайше удобная работа с кодом: автодополнение слов и подстановка методов класса (напомню, что автоматическая табуляция и подсветка синтаксиса имеется в Arduino IDE)
- «Живая» обработка ошибок при написании: пропущенные скобки-запятые, неправильные имена и т.д.
- Удобный навигатор по коду, с которым не заблудишься даже в километре строк. Отдельный блок структуры кода со «ссылками» на функции, объекты и дефайны
- Файловый менеджер проекта, в котором есть навигация по файлам и библиотекам проекта
- Очень быстрая компиляция кода (за исключением первой, когда происходит полная сборка проекта)
- Куча плагинов с сомнительным функционалом
- Поддержка работы напрямую с git (даже библиотеки можно тянуть напрямую)
- Полноценный дебаг (для микроконтроллеров, которые его поддерживают. Я с такими не работаю)
- Юнит-тестирование (читать на хабре и официальную доку)
Минусы
- Все настройки платы осуществляются текстовыми конфигами, что приводит к трате времени на изучение документации и лишние проверки «а туда ли сегодня подключена моя плата?». Да, это расширяет возможности по настройке. Но это неудобно и тратит кучу времени.
- В детской Ардуино ИДЕ всё это делается двумя кликами мышкой через меню.
- Отсутствие штатного монитора порта. Условно он есть, на работает через пень-колоду, его номер и скорость нужно прописывать вручную (можно указать в платформио.ини). Порт работает
только на чтение(в порт можно что-то отправить через отдельную консоль, +100500 лишних действий для однократной отправки) не всегда корректно закрывается и приходится вручную перезагружать МК. Разработчики обещают добавить нормальный порт с 2018 года, с тех же пор рекомендуют использовать внешний монитор.- Встроенный в Ардуино ИДЕ порт критически удобен, ничем не перегружен, сам закрывается при перепрошивке.
- Отсутствие плоттера графиков, даже в виде плагинов. Если вы не знаете, зачем нужен плоттер графиков — видимо с реальными железками и обработкой сигнала никогда не работали.
- Ардуиновский божественен, лучше любых «внешних».
- Отдельная персональная возня с конфигурацией для загрузки через программатор. Просто ад.
- В ИДЕ всё делается двумя кликами
- Мелкие кнопки для загрузки/билда и
отсутствие хоткеев на это дело - Некоторые настройки и действия выполняются через «консоль», бородатые линуксоиды оценят, а привыкшие к мышке и менюшкам не будут в восторге.
- Высокие требования к коду: Arduino IDE позволяет писать упрощённо, вообще не соблюдая «сишную» структуру проекта: компилятор настроен на всеядность и прощает кучу ошибок. Буквально открываешь и просто начинаешь писать код, в этом состоит основная фишка Arduino как платформы. Во взрослой среде разработки (VS Code) нужно соблюдать некоторые правила, о которых не рассказывают в уроках Ардуино. Для не программиста переезд на взрослую среду приведёт к куче проблем в стиле «почему не работает?! В Ардуино ИДЕ ведь работало!». Подробнее можно почитать у нас на форуме.
- Сюда также можно добавить сложность переноса крупных Ардуино-проектов на VS Code: придётся переписать всю структуру проекта (отдельный кайф, если в проекте была куча вкладок) и дописать ещё кучу кода, чтобы он хотя бы компилировался.
- С учётом взрослости кода, его приходится писать больше, чтобы он работал: делать заголовочники с описанием функций, или просто предописания функций, иначе проект может и не собраться! Да, это минус, потому что Ардуино изначально задумана как инструмент для быстрого проектирования. В VS Code придётся сидеть и кодить как индус. Кодить там очень приятно, но это не повод =)
- Плохая поддержка Arduino-библиотек: во многих старых библиотеках встречается проверка версии Arduino IDE через константу
ARDUINO
. В платформио она не обозначена, что приводит к подключению файла WProgram.h и ошибке компиляции. Библиотеки приходится править вручную.
Резюмируя
Я всеми руками за автодополнение и подстановку методов, это БОЖЕСТВЕННО, как и навигация по коду и прочие плюшки, которые касаются непосредственно программирования, то есть набора кода. Но по работе с платой лично для меня платформио является невыносимо неудобной программой: все эти конфиги, из за которых постоянный перенос проекта на разные платы становится работой индуса, отсутствие нормального монитора/плоттера (лично для меня — основной инструмент). Ни в коем случае не унижаю данную среду разработки, у неё огромное количество пользователей и им явно виднее. Но и не берусь рекомендовать данный софт тем, кто привык к Arduino IDE. Вы будете сначала очень приятно удивлены, а потом очень неприятно огорчены возможностями «взрослого» софта по сравнению с «детским», где на каждый пук есть своя менюшка и всё готовенькое. Также в VS Code придётся соблюдать некоторые правила языка, которые в Arduino IDE за вас соблюдает компилятор. Кода для выполнения тех же задач придётся писать больше, и для работы с VS Code всё таки рекомендуется изучить любой учебник по C++. Я в первую очередь не программист, и делюсь своим опытом для не программистов, не забывайте об этом. Ну, как-то так.
5
1
голос
Рейтинг статьи