Да, это нестандартно, но на сегодняшний момент уже устарело. Сейчас действительно интересно не столько графическое программирование, сколько моделирование этого всего на десктопе — еще до этапа компиляции кода. То есть вы должны иметь возможность промоделировать ваш замок со всех сторон на десктопе со всех сторон, и отладить его, прежде чем загружать код в контроллер. Так можно гораздо быстрее найти и исправить ошибки. Типичным представителем этого подхода есть Matlab/Simulink.
Была идея использовать для эмуляции утилиту avrsim но к сожалению список поддерживаемых для эмуляции устройств достаточно мал. Сейчас есть идея создать блок «debug», кидаешь ее на форму и программа подключится к устройству и будет возможность внутрисхемной отладки.
Внутрисхемная отладка — это хорошо, но не всегда возможно.
Во первых нужен отдельный порт и соединение с хостом, во вторых, когда оно работает в реал-тайме не всегда возможно отследить или задать нужные сигналы в нужное время. Моделирование гораздо проще в этом плане.
Ну зачем же так сложно. Да и к чему эта привязка к конкретной архитектуре микроконтроллера и подключение к устройству вообще. Пользователи же захотят не имея контроллера отладить несложную схему.
У вас же некий FBD-интерпретатор в микроконтроллере? Вы когда-нибудь захотите его перенести на другое железо.
На мой взгляд, достаточно научить вашу среду исполнять в режиме эмуляции тот же FBD-микрокод, который разбирает сейчас микроконтроллер. Ну и дать возможность при симуляции менять входные воздействия.
Я бы ещё попытался поднять работу с периферией микроконтроллера на уровень выше, чтобы максимально отвязать их от конкретного микроконтроллера, а в среде накидывать только логику поведения.
И это уже давно изобретено, разработано и продается. Называется Soft-PLC. Адруина, конечно, слишком слабовата для этого, но даже Распберри уже вполне справляется.
SoftPLC — это некий рантайм — операционка реального времени + интерпретатор, который выполняется на заданной платформе и обеспечивает не только выполнение нужного кода в реальном времени, а и его загрузку, выполнение по шагам, отладку, просмотр всех переменных во время работы, работу с периферией через стандартные интерфейсы, коммуникации типа Modbus RTU и т.д.
Типичный пример — Codesys. Рантаймы есть для множества платформ. Моделирование в свою очередь обеспечивается в самой среде программирования. Есть еще TwinCAT. Из опенсоурсного есть Beremiz -его, помоему даже на ту же ардуину и портировали.
Конечно нестандартно — использовать многоногую Мегу где сгодилась бы и 8-ногая Тинька… Ах да, это же из-за того, что этот визуальный чудо-редактор нам полтора килобайта кода нагенерил… Ну тогда можно развивать нестандартность дальше, и переписать проект на распберри пи, ардуине или вообще на десктопе — на скретче…
на самую распространенную 13 тиньку нет, там только килобайт
а вообще полтора килобайта на такую задачу это расточительство.
Делая сейчас проектик: измеритель частоты импульсов с медианным фильтром и управление двумя независимыми каналами ШИМ с примитивным ПИД-регулятором на одном — занимает у меня на данный момент ~800 байт. И это на C и я не супер спец по программированию МК, а на ассемблере можно было бы еще ужать.
тинька стоит 22 руб, мега8 35руб в розницу, sop и tqfp исполнение соответственно
здесь больше вопрос целесообразности и задействования ресурсов
размеры меньше, разводка платы под восьминогий корпус тоже проще и быстрее чем под 32-ногий (и дешевле как и пайка если говорить о промышленности)
в конце концов(в порядке бреда уже) тини13 элементарно легче
Нестандартный подход к программированию микроконтроллера