![[syndicated profile]](https://www.dreamwidth.org/img/silk/identity/feed.png)
2025/10/12 - с Arduino на PlatformIO
Единственное, что я до сих пор не мог втащить в vscode, это свою платформу под чип ESP, которую десять лет пилил в фреймворке Arduino. Который тормозной, мучительно долго собирает код всегда с нуля, глючит, сбрасывает настройки (которые еще и прописываются неудобно в окошках), и конечно не имеет никаких современных сервисов. Ну и ещё одно прекрасное качество: стоит отвлечься на месяц, возвращаешься к проекту, а там всё «умное», всё само собой обновилось, все библиотеки новые, в них всё изменилось и проект снова не работает, сиди, разбирайся, в какой там функции сраного файвая надо добавить четвертым аргументом true чтобы всё снова собралось... Я не раз пытался переползти на vscode, но каждый раз сталкивался с тем, что там всё вроде бы такое же, да не совсем, и надо поработать и код крепко переписать. А всякий раз нужно было спроектировать какое-то новое домашнее устройство прямо срочно, и на переписывание кода времени не было.
Но в эти выходные я наконец сел и занялся делом — перевел код на PlatformIO Arduino. Да, муторно. Да, бесконечная ебля с h-файлами, которые теперь надо создавать, прописывать, подключать, следить за объявлением переменных в разных местах. Но один раз это сделать можно даже для большущего развесистого кода, и я сделал. Всем советую забыть фреймворк Arduino с благодарностью — как светлый, но устаревший сон. И переползти на vscode.
Обновленный фреймворк я выложил на Гитхаб и буду там поддерживать: https://github.com/lleokaganov/cfaq
Я пока втянул не все свои библиотеки устройств — с какого-то момента я прекратил компилировать все мыслимые устройства в чип сразу, а задаю нужные флажками, потому что перестало хватать места — особенно на ESP12. Поэтому часть драйверов ещё валяется в папке src/off и ждет, пока дойдут руки прописать h-файлы, рассовать публичные переменные как надо, вкомпилить, отладить, потом подключить проводками каждое устройство и убедиться, что работает. Но большая часть функций (веб, телеметрия, udp/tcp, управления пинами, прерываниями, сам язык) всё равно в ядре из коробки. А из драйверов устройств я пока втянул в библиотеки только трехцветный светодиод и драйвер tft-дисплеев и на этом успокоился, поняв, что не так это и сложно, и как только понадобится, сделаю остальное.
В качестве скриншота (и демки, базовой коробки скриптов на чипе) я оставил панель управления автомобилем, который начал когда-то собирать из игрового руля и колес гироскутера. Проект не закончил, и детали утрачены вместе с сараем, в котором я это собирал, но моделька осталась красивая и хорошо иллюстрирует возможности фреймворка.
