В Engee существует несколько базовых сценария переноса моделей на целевое устройство (таргетирование).
Сценарий 1. Экспорт кода моделиЭто подход с минимальной интеграцией проекта в Engee:
— модель генерирует структурированный Си-код;
— разработчик интегрирует его в свой проект (PlatformIO, Keil, CubeIDE, IAR и т. д.);
— периферия и RTOS настраиваются снаружи.
Этот вариант удобен, когда модель — является частью готового проекта и реализует определённые вычисления, а логика работы периферии целевого устройства при этом уже реализована.
Сценарий 2. Встраивание кода периферии внутрь моделиИменно этот механизм мы применили в УОМЗ.
В Engee существуют блоки
C Function, в которые можно вставить фрагменты кода периферии контроллера. Например, драйвер MPU6050 или функции работы с I²C/USART. После генерации кода Engee автоматически размещает эти вставки в итоговых C-файлах.
Таким образом, получается цельный проект, где:
— алгоритмическая логика генерируется автоматически;
— код периферии встроен внутрь модели «как есть», достаточно его обернуть в условные директивы препроцессора для того, чтобы модель выполнялась и на устройстве, и в Engee;
— файлы проекта можно собирать без ручной правки.
Это резко снижает количество интеграционных ошибок и ускоряет развёртывание модели на MCU. После добавления кода всей периферии в модель и соединения этих блоков кода с блоками алгоритма модели, можно перейти исключительно к масштабированию и усложнению алгоритма в модели Engee.
Проект УОМЗ стал отличным примером того, как механизм встраивания позволяет переносить модели в прошивку STM32 практически без дополнительной ручной разработки.
А что насчёт автоматического переноса модели прямо на устройство?
Возможно, у читателя возникнет закономерный вопрос:
«Можно ли перенести модель на целевое устройство автоматически, без открытия внешней среды разработки, без ручной интеграции кода, без настройки проекта на стороне IDE?»Да — можно.
Такие механизмы недавно были реализованы в Engee и уже продемонстрированы на живом мастер-классе по разработке моделей для встраиваемых систем на
День Engee 2025.Engee поддерживает ещё
два метода таргетирования, которые значительно расширяют возможности разработчика и позволяют запускать модель напрямую на микроконтроллере.
Сценарий 3. Независимое выполнениеЭтот механизм позволяет запускать модель прямо на микроконтроллере
без участия сторонней IDE и без ручного создания проекта прошивки.
Достаточно нажать на одну кнопку, а далее Engee:
- генерирует код модели,
- собирает, компилирует и загружает его в контроллер при помощи утилит на вашем компьютере,
- Выводит уведомление о выполнении задач и становится доступным для продолжения работы.
Такой подход особенно удобен, когда нужно:
- прошить микроконтроллер кодом готовой модели или модели с минимальными изменениями;
- дать инженеру (или студенту) минимальный порог входа — модель → кнопка «Загрузить» → контроллер выполняет алгоритм;
- проводить быстрые исследовательские итерации с проверкой модели на "железе", не переходя в VS Code или CubeIDE.
Этот сценарий активно используется при отладке математических частей алгоритма, при проверке корректности обработки сигналов и при создании демонстрационных прототипов.
Сценарий 4. Интерактивное выполнениеИнтерактивное выполнение — один из самых новых и интересных механизмов таргетирования Engee.
Он позволяет:
- запускать модель синхронно в сеансе Engee и на целевом устройстве;
- изменять параметры модели и наблюдать реакцию устройства в реальном времени.
С инженерной точки зрения это огромный шаг вперёд: алгоритм в форме модели визуального программирования и железо
живут в едином контуре разработки, и вы видите реальную работу модели, а не её имитацию.
Внимательный читатель может спросить "А каким образом клиент-серверная Engee получает доступ к работе с файлами и устройствами на моём компьютере?". Для этого у нас есть встроенная платформа Engee. Интеграции с пакетами поддержки внешнего оборудования, интерфейсов, встраиваемых систем и ещё много чего другого. Подробнее можно ознакомиться в
документации.