Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "ESP32 SDK", создана пользователем Andrey L, 16 июн 2019.

  1. Andrey L

    Andrey L Новичок

    Сообщения:
    62
    Симпатии:
    4
    Установка 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
     
  2. Alcest

    Alcest Новичок

    Сообщения:
    33
    Симпатии:
    1
    Нужно будет попробовать.
     
  3. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    549
    Симпатии:
    52
    Два вопроса что такое ESP-IDF?
    Зачем в этой связке нужен PlatformIO?
     
  4. Alcest

    Alcest Новичок

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

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

    nikolz Гуру

    Сообщения:
    4.706
    Симпатии:
    452
    Увы, не все в этом мире довели до уровня одного - двух нажатий.
    кое -где пока еще требуется чуть больше знаний.
    покурите пока доведут до двух нажатий
    --------------------
    частое употребление халявы полностью отрубает мозги.
     
  6. Andrey L

    Andrey L Новичок

    Сообщения:
    62
    Симпатии:
    4
    @Alcest

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

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

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

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

    enjoynering Авторитетный участник сообщества

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


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

    Дебагер под Arduino существовать не может из-за особенности платформы. У arduino esp8266 есть что похожее виде вывода serial сообщений.
     
  8. lookingooder

    lookingooder Новичок

    Сообщения:
    19
    Симпатии:
    3
    Visual Micro позволяет делать что-то похожее на отладку c точками останова и даже выводом значений переменных. Вроде бы и ESP32 поддерживает (сам пока с ESP32 не пробовал).
     
  9. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    549
    Симпатии:
    52
    на сколько я знаю для этого нужна обратная связь от gebgger который обычно подключается по jtag к камню или еще как-то.
     
  10. Alcest

    Alcest Новичок

    Сообщения:
    33
    Симпатии:
    1
    У ESP32 с этим какие-то проблемы?
     
  11. lookingooder

    lookingooder Новичок

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

    enjoynering Авторитетный участник сообщества

    Сообщения:
    549
    Симпатии:
    52
    проблема в том что нужна еще одно устрой - jtag

    теперь понятно.
     
  13. Alcest

    Alcest Новичок

    Сообщения:
    33
    Симпатии:
    1
    Этого добра у всех здесь присутствующих валом, наверное.
    Получается, что возможна отладка через COM-порт? Через интегрированный в мать RS-232 или через PCI адаптер с COM-портами? Разумеется, через преобразователи RS232-TTL.
     
  14. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    549
    Симпатии:
    52
    а вы за всех не говорите. у меня например нет.
     
  15. Alcest

    Alcest Новичок

    Сообщения:
    33
    Симпатии:
    1
    Но, будет же? На всякий непредвиденный случай.
     
  16. Alcest

    Alcest Новичок

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

    K_Shamil Новичок

    Сообщения:
    1
    Симпатии:
    0
  18. Andrey L

    Andrey L Новичок

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

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

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

    Andrey L Новичок

    Сообщения:
    62
    Симпатии:
    4
    Сегодня установил эту связку под 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».
     
  20. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    549
    Симпатии:
    52
    вы так и неответили
     

Поделиться этой страницей