Как перейти от Arduino/Micropython к программированию микроконтроллеров на С++?

Всем добрый день.

UPD: Всё что написано ниже есть пространные размышления на тему "правильно заданный вопрос содержит в себе половину ответа". Дабы не обесценивать комментарии под вопросом, оставлю как есть. Никакой критически важной информации там нет.

Я начинал мигать светодиодом на связке ESP8266+Micropython. Четыре кнопки + дисплей + 3 датчика + реле + Googleтаблицы через раз укладывали esp32+micropython на лопатки.А это я ещё mqtt не прикрутил и управление с телефона.

Ну и исходники Micropython это - С Пока с китая ехали ещё пара ESP32 было время подумать и почитать интырнеты. Уроки в итернетах выглядят вот так. Или так: если бы у рыбы была шерсть, то в ней водились бы блохи, они бы писали на с++, а с++ это ардуино...

Как я делал с esp32+micropython Берешь в руки микроконтроллер. И (если ты не гуру ассемблера) идешь к производителю. Он тебе такой: вот прошивка: компилятор под микропитон и библиотеки(файлы) с классами и методами. А вот описание стандартных библиотек. Ну и инструкций как начать - вагон.

А для С++ я толком ничего и не нашел. "лучшая" инструкция что я нашел заканчивается ничем, мягко говоря.

И ты такой: "А как по-взрослому?" - "Учите С". "А С или С++" "В2021 С++, бро" "Подождите но Ардуино же это же - С++. И работает и все счастливы. Стаковерфлоу, а есть причины не кодить микроконтроллер на с++?" "Если твой микроконтроллер тянет то что ты пишешь, то кодь и получай удовольствие" "Окей гугл, arduino+esp vs micripython+esp" "Земля и небо, чувак" Здесь для меня камнем преткновения стали работа с sdкартами и с экранами. Если с картой я грешил на железо, то вот пришли новые TFT SPI дисплеи... а скорость та же. Да ещё и с косяками. А если линия коснулась края, то побежали артефакты...

В общем и целом мне не хватает базы для тоо чтобы понять что делать дальше и я не понимаю где эту базу искать.

Задача такая(абстрактная. из серии что нужно знать где почитать). Клюковина опрашивает датчики, собирает данные по mqtt протоколу (для начала), управляет кнопками, рисует живое меню и смайлики на экране, соединяется с вайфаем, отправляет статистику в гугл-таблицы, общается с сервером в интернетах, каким-то чудом принимает команды с andorid'a (а в перспективе и с Iphone) обратно показывает картинки и всё такое, получает и отправляет данные через gsm модуль. И важный момент(!) - как защитить код на микроконтроллере от копирования.

Мне очень понравился пайтон с его классами. По-этому я выбрал с++, а не с. Но как начать?

Чем С++ для микроконтроллеров отличается от С++ для ПК? Могу ли я, грубо говоря, брать скетчи ардуино, копировать код в файл arduino_copy.cpp и запускать? Где-нибудь ведь должна быть описана разница. (помимо того что надпись void main() убрали под капот) Где-то централизовано есть наборы стандартных библиотек с описанием или нужно лезть на github и читать каждый файл?

Собссно поделитесь статьёй видосом ну или хотя-бы что гуглить. Как поженить esp32 и с++ и не получить при этом ардуино. но потом без великих проблем переносить библиотеки для ардуино в свои проекты.


Ответы (1 шт):

Автор решения: Dmitrii_Argon

Всегда верил что в России самое лаконичное и нетоксичное коммюнити.

Kolban's book on ESP32 by Neil Kolban https://leanpub.com/kolban-ESP32

https://www.youtube.com/watch?v=WGozJXuQ8dY&list=PLB-czhEQLJbWMOl7Ew4QW1LpoUUE7QMOo&index=5&ab_channel=KolbanTechnicalTutorials

Правильный запрос в гугл а лучше в ютуб: start ESP-IDF C++ Чудесная сила перевода автоматических субтитров https://www.youtube.com/watch?v=5IuZ-E8Tmhg&ab_channel=YuriR

→ Ссылка