Comments 11
Это какая-то дичь... Ну вот без обид, ардуино - это "папа может в си", интернет вещей, простые алгоритмы бытовой автоматики типа лифта, но никак не ООП.
Можно ли внедрить всякие фичи ООП в ардуно-код? Можно, а зачем? (с) Теряется основное отличие low-lewel от vibe-кодинга...
Как-то был случай один программист застрял в лифте из-за ошибки в коде Си и придумал Rust, предлагаю ребенку сразу с embassy-rs начинать, раз решили по взрослому...
И да и нет. Если бы аруина была бы стартовой площадкой только для эмбеддед-разработчиков, то то, что Вы пишете было бы на 100% правдой. Но по факту ардуино сейчас как черепашка из Logo-Writer когда-то - просто первая платформа. P.S. Папа может всё, папа не может все сразу (с).
Ну если бы базовая ардуина была столь универсальна и многофункциональна, то тода она не обзпвелась бы версиями с жирными микроконтроллерами на борту, да и распберри-пико не нужна была бы.
Ограничения ардуины прям как специально созданы для всяких игр с байтиками, и "это мы не успеем сосчитать, но можно применить наихитрейший алгоритм, который на 5% менее точный, но на 200% более быстрый",.
А вот, кстати, мелкую малинку я бы как раз за зал, чтобы всякое ООП и прочие такие фишки изучать!
Как раз таки когда начинаешь выходить за рамки "давай поморгаем светодиодом" а это происходит очень быстро, начинается тот самый ООП, потому что становятся нужны все эти неблокирующие функции, работа с прерываниями и вот это вот все. То что вы назвали дичью на самом деле обычная практика большинства более менее серьезных Ардуино проектов.
Скорее асинхронность, примитивные rtos и вот это вот всё.
В классы можно и не паковать. У меня одно время функциональность была упакована вообще в h файлы, в которых да, были функции типа setup-xxx и loop_xxx.
С одной стороны это менее красиво и в неэмбеддед так не делают, с другой это экономия памяти и ресурсов во время исполнения. Насколько она оправдана каждый решает сам.
У меня до сих пор работает код, который писали в 90е(не в мк). Вероятно тогда компиляторы не умели в инлайн, и чтобы он работал быстрее половина функций была реализована через define.
Когда у тебя первый пентиум еще не так раскорячишься...
Пост из серии "Не читал, но осуждаю".
Если вернуться к первоистокам, то Arduino именно и создавалось, как недорогая платформа для ОБУЧЕНИЯ СТУДЕНТОВ программированию микроконтроллеров.
Не DIY, не интернет вещей или бытовая автоматика.
Поэтому, почему бы и не добавить элементы ООП для обучения?!
Как раз в тему.
Я как раз таки прочитал, и не понял зачем пихать в маленькую микросхемку невпихуемое? Играться с ООП я начинал в браузере, там можно наглядно на вс5 это посмотреть, пошагово разложить, визуализировать и т.д., а на ардуинке можно (и нужно) учиться выжимать из ограниченного ресурса максимум производительности, ассемблер посмотреть, низкоуровнево регистр всякие пощупать, протоколы интерфейсов поэмулировать. Оно же ДРУГОЕ... Чтоб линукс накатить и уже оттуда светодиодлм моргать есть же малина и её клоны.
А у нас наоборот, orange-pi лежит без дела, веб как хобби вообще не манит. Оседлать энтузиазм и доехать до ооп , точно не про эту платформу, пока. видимо ждет веселых ии задач. А вот мешок с ардуинами пустеет на глазах.
Примерка взрослого пальто. Событийно-ориентированный подход на Arduino