Как перейти от 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 шт):
Всегда верил что в России самое лаконичное и нетоксичное коммюнити.
Kolban's book on ESP32 by Neil Kolban https://leanpub.com/kolban-ESP32
Правильный запрос в гугл а лучше в ютуб: start ESP-IDF C++ Чудесная сила перевода автоматических субтитров https://www.youtube.com/watch?v=5IuZ-E8Tmhg&ab_channel=YuriR