• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом Настройка Visual Studio Code и PlatformIO под Windows

Andrey L

Member
Установка VSC и PlatformIO для ESP32
Поиск среды для работы с ESP32 привёл меня к комбинации Visual Studio Code и PlatformIO. Так же я решил использовать ESP-IDF, поскольку она была разработана в той же фирме.

Преимущества этой комбинации:
— подсветка кода,
— автодополнение,
— всплывающие подсказки,
— обещания возможности дебага.

Установка
Процес установки этой связки довольно лёгок и показан хорошо в этом видео. Возможно, до этого на компьютере надо установить Python.


Если в видео приводится пример как использовать Arduino IDE с этой связкой, то я опишу работу с ESP-IDF.

Пустой пример
Espressif выложил коды с примерами. Воспользуемся одним из них.

Скачаем и расспакуем эти примеры. Папка с «пустым проектом» находится по пути «\esp-iot-solution-master\examples\empty_project». А по умолчанию, папка с проектами от VSC находится по адресу C:\Users\{имя пользователя}\Documents\PlatformIO\Projects.

Копируем файлы примера любую папку по вашему выбору. Я для неё создал папку «Empty2» в стандартной папке с проектами PlatformIO, но вы можете выбрать и другое место.

1. Запускаем VSC. В левом столбике кликаем по иконке «PlatformIO». В нижней строчке кликаем по значку «дом». Жмём на кнопку «+ New Project».
Должна всплыть менюшка. В поле «Name» вводим название нашего проекта «Empty2», оно должно совпадать с названием папки, которое мы сделали ранее. В поле «Board» выбираем плату, что у вас. У меня «DOIT ESP32 DEVKIT V1». В качестве Framework выбираем «ESP-IDF». «Location» убираем галочку и выбираем папку, в которой находится папка, куда расспаковали пример. (Т.е. мы вибираем не папку, куда скопировали документы, а уровнем выше.) Жмём кнопку «Finish».

Ждём пока VSC создаст новые файлы, а потом подкорректируем файловую систему, которую мы получили от Espressif, для работы с VSC.

2. Файлы с кодом должны храниться в папке «src», а в примере эта папка называется «main». Переносим все файлы из второй в первую. После чего удаляем пустую папку «main». (Альтернатива: изменить файл platformio.ini, добавив в него «src_dir=main».)

3. Библиотеки должны находиться в папке «lib», а в примерах находятся в папке «components», перенесём все файлы в нужную папку, после чего пустую «components» можно будет удалить. (Альтернатива: изменить файл platformio.ini, добавив в него «lib_dir=components».)

4. Сами файлы прикреплённых библиотек должны находиться в дополнительном пути:
library/library.c и library/library.h или library/src/library.c и library/src/library.h. Так что стягиваем файлы библиотек в нужные подкатегории.
Заходим в папку example1/include и перенесём файл example1.h в папку выше, чтобы example1.h и example1.c были в одной папке lib/example1. Пустую папку «include» можно удалить.
С библиотекой example2 мы поступим по другому. Заходим в папку lib/example2, переименовываем папку «include» в «src». И в эту папку мы переносим файл «example2.c». Таким образом оба файла должны быть в папке «/lib/example2/src».

5. На последок остаётся прописать скорость работы с модулем в терминале. А может быть понадобится вручную прописать через какой COM-порт подключён модуль.

Для этого открываем файл «platformio.ini» и в его конец добавляем следующую строчку:

monitor_speed = 115200

Обычно СОМ-порт расспознаётся автоматически, но если будут проблемы, то в тот же файл «platformio.ini» добавляйте следующую строчку:

upload_port = COM11

У меня ESP32 подключается через COM11, у вас это может быть другой.

Компиляция и прошивка
Возвращаемся в VSC. В окне «Explorer», открываем папку «src», а потом файл «main.c».

Если надо скомпилировать проект, то жмите на иконку «галочка» в самом низу окна VSC.

А если надо ещё и прошить модуль, то кликайте по иконке «стрелка вправо» в самом низу окна VSC. Не забудьте во время нажать на кнопку «Boot» на модуле.

Ссылки
espressif/esp-iot-solution — репозиторий от Espressif.

https://platformio.org — сайт PlatformIO

https://code.visualstudio.com — сайт VSC
 

Alcest

Member
Я ни шиша во всем этом не понимаю, но платформио вроде как фреймворк с набором библиотек, дабы норот мог невозбранно создавать приложения одним-двумя нажатиями кнопки. А ESP-IDF, там как будто компилятор, без которого все это взлететь не должно. А VS чисто в качестве редактора используется.

Как там на самом деле с отладкой? ИМХО, любая IDE без дебагера есть бесполезная игрушка. Во всяком случае у меня с МК ни разу такого не было, чтобы что-то без отладки, просто так, взяло и правильно заработало...
 

nikolz

Well-known member
Увы, не все в этом мире довели до уровня одного - двух нажатий.
кое -где пока еще требуется чуть больше знаний.
покурите пока доведут до двух нажатий
--------------------
частое употребление халявы полностью отрубает мозги.
 

Andrey L

Member
@Alcest

Да, Вы практически правильно поняли про эту "матрёшку".

Visual Studio Code - это редактор для написания кода.
PlatformIO - это плагин, который позволяет в VSC писать коды для различных плат. И он умеет работать и с платами ESP, Atel, STM, PIC32 и другие (всего 31 платформа). При этом он сам доустанавливает нужные фреймворки, что не надо об этом заботиться и можно работать с различными системами.
ESP-IDF (Espressif IoT Development Framework) - это "фреймворк", который был разработан некой фирмой под названием Espressif Systems.

Отладка должна быть, у меня просто нет модуля для отладки, поэтому я и не пишу.

@All
Я не профессиональный переводчик или составитель книг-справочников или учебников. Я новичок, который пытается в этом разобраться, вот и делаю для себя заметки, чтобы быстро вспомнить некоторые вещи, когда я к ним вернусь через месяц-другой (чтобы мне не пришлось вновь начинать всё сначала).
А то постоянно сталкиваюсь с тем, что делаю всё по инструкции, но из-за какой-то мелочи ничего не работает. (В последний раз это было открытое окно PUTTY и тут я потерял день на поиски проблем.)
А если это кому-то поможет, то хорошо.
 

enjoynering

Well-known member
Ок. Спасибо за ответ. Но теперь возник другой. Если PlatformIO умеет 31 платформу, зачем ставить ESP-IDF? Что PlatformIO не умеет esp8266 и коробки?


Ну и офтоп. Теперь когда вы попробовали eclipse и VS Code под винду, что вам больше нравится и почему?

Дебагер под Arduino существовать не может из-за особенности платформы. У arduino esp8266 есть что похожее виде вывода serial сообщений.
 
Дебагер под Arduino существовать не может из-за особенности платформы. У arduino esp8266 есть что похожее виде вывода serial сообщений.
Visual Micro позволяет делать что-то похожее на отладку c точками останова и даже выводом значений переменных. Вроде бы и ESP32 поддерживает (сам пока с ESP32 не пробовал).
 

enjoynering

Well-known member
Visual Micro позволяет делать что-то похожее на отладку c точками останова и даже выводом значений переменных.
на сколько я знаю для этого нужна обратная связь от gebgger который обычно подключается по jtag к камню или еще как-то.
 
на сколько я знаю для этого нужна обратная связь от gebgger который обычно подключается по jtag к камню или еще как-то.
Нее, платка подключается как обычно, по USB (если говорим про отладочные платы с USB-COM преобразователем. Visual Micro подставляет в программу свои кусочки кода при компиляции.
 

enjoynering

Well-known member
У ESP32 с этим какие-то проблемы?
проблема в том что нужна еще одно устрой - jtag

Нее, платка подключается как обычно, по USB (если говорим про отладочные платы с USB-COM преобразователем. Visual Micro подставляет в программу свои кусочки кода при компиляции.
теперь понятно.
 

Alcest

Member
проблема в том что нужна еще одно устрой - jtag
Этого добра у всех здесь присутствующих валом, наверное.
Нее, платка подключается как обычно, по USB (если говорим про отладочные платы с USB-COM преобразователем. Visual Micro подставляет в программу свои кусочки кода при компиляции.
Получается, что возможна отладка через COM-порт? Через интегрированный в мать RS-232 или через PCI адаптер с COM-портами? Разумеется, через преобразователи RS232-TTL.
 

Alcest

Member
ЗЫ. Надо признаться, я вообще ни с какими МК кроме микроконтроллеров компании Microchip серий 16 и 18 доселе дела не имел. Задачи усложнились и я решил освоить STM32 и ESP32. Но, смотрю на всю эту суету с IDE, компиляторами, документацией, аппноутами, экскамплами, даташитами, и прочим, и чет меня червячок грызет - а не вернуться ли к Микрочипу? dspPIC уже не такими дорогими кажутся, как раньше, когда я еще не знал про этот цЫрк с конями у espressif и stm electronix... Я то думал будет все как у Атмела или Микрочипа: ИДЕ скачал, установил, взял даташит, микроконтроллер и отладчик, и через пару часов уже понимаешь чего делаешь и зачем... А тут производители чипов зачастую сами не знают что творят...
 

Andrey L

Member
@K_Shamil Точный ответ сказать не могу.
По распиновке очень похоже на "ESP32 DevKitC", но компоненты на плате находятся иначе.
Продавец в качестве производителя указал "TENSTAR ROBOT", а вот последней нету в выборе.

Но все эти платы должны быть очень схожими, поскольку первые проекты ("Привет мир" и "Блинк") я делал для "Espressif ESP32 Dev Module", и они работали.

Но пока мне не удалось запустить более продвинутый пример с WIFI-связью. Не могу указать VSC, что такая вещь как "WIFI_EVENT" является частью "ESP-IDF".
 

Andrey L

Member
Сегодня установил эту связку под Ubuntu.


0. Устанавливаем Python: sudo apt install python
1. С сайта Visual Studio Code - Code Editing. Redefined качаем установщик и ставим себе VSC. После чего запускаем его.
2. Кликаем на Extensions (Ctrl+Shift+X). Там ищем PlatformIO и устанавливаем его. В процессе установки мне сообщили, что не хватает Python 2.7. Но ждём окончания установки самой PlatformIO.
3. Если не нравится цветная расскраска VSC, то нажмите на значёк шестерёнки в левом нижнем углу и выберите там «Color Theme».
 

enjoynering

Well-known member
вы так и неответили
...Но теперь возник другой. Если PlatformIO умеет 31 платформу, зачем ставить ESP-IDF? Что PlatformIO не умеет esp8266 и коробки?


Ну и офтоп. Теперь когда вы попробовали eclipse и VS Code под винду, что вам больше нравится и почему?
 
Сверху Снизу