Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023)

Материал из 0x1.tv

Докладчик
Михаил Чекан

Доклад посвящён разработке среды программирования, создаваемой в рамках национальной киберфизической платформы. Целью среды является снижение входного порога разработки киберфизических систем за счёт применения парадигмы иерхархических машин состояний.

На текущий момент позволяет разрабатывать схемы для платы Arduino Uno, ведётся работа по созданию API для других платформ.

Видео

Презентация

Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023).pdf

Thesis

Киберфизическая система — это комплексная система физических элементов и их цифровых двойников в вычислительном слое управления, которая постоянно получает данные из окружающей их среды и использует их для оптимизации процессов достижения установленных целей[1]. Так, киберфизика охватывает собой широкий спектр задач от программирования отдельных электронных устройств до проектирования «умных» инфраструктур. Формирование в России национальной киберфизической платформы (НКФП) вызвано прежде всего потребностью в инженерных кадрах, способных проектировать и создавать микроэлектронные и киберфизические системы. [2]

Участники НКФП решают эту задачу через популяризацию технического творчества и технологического образования в сфере микроэлектроники и киберфизики, создавая траекторию от школьной программы и технологических кружков до профильных курсов и решения промышленных задач. Первым массовым решением в рамках НКФП стала платформа «Берлога», представляющая собой набор образовательных игр, затрагивающих программирование, существующих в едином сеттинге и интегрированных в реальную жизнь и образование через платформу «Талант» «Кружкового движения». В технологической плоскости НКФП разрабатываются новые стандарты и инструменты, призванные поднять качество создаваемых систем и доступность их создания более широкому кругу пользователей. Одним из таких инструментов положена графическая среда программирования киберфизических систем, основанная на диаграммах иерархических машин состояний. Эта среда под названием Lapki IDE активно разрабатывается студенческой командой с мая 2023 года под руководством автора. В конце августа 2023 года опубликована альфа-версия среды под лицензией GNU GPL версии~3.

На текущий момент Lapki IDE рассчитана на разработку схем поведения юнитов для игры «Защита пасеки» в жанре Tower Defence на платформе «Берлога», а также прошивок для платы Arduino Uno. В дальнейшем планируется расширение списка платформ, в частности, основанными на STM32 и nRF52833. Также запланирована поддержка симулятора космических аппаратов «Орбита», используемого в профиле «Спутниковые системы» Национальной технологической олимпиады. В этих целях ведётся работа по формированию API плагинов для модуля компилятора.

Основополагающей чертой Lapki IDE является визуальная парадигма программирования на основе расширенных иерархических машин состояний (РИМС). Это промышленный стандарт программирования встраиваемых систем, основанный на UML и широко применяемый в устройствах от бытовой до космической сферы. За рубежом парадигма РИМС распространена благодаря М. Самеку[3] и его компании Quantum Leaps.

В отечественной среде существует родственная парадигма автоматного программирования[4].

Применение РИМС обеспечивает низкий порог входа в создание систем для начинающих разработчиков, предоставляя естественную для аппаратных систем событийно-реактивную логику управления. Продвинутым же пользователям такая парадигма даёт возможность создавать сложнейшие алгоритмы, сохраняя простую и прозрачную визуальную структуру.

В проекте Lapki IDE закладывается ряд принципов, способствующих более быстрому входу в разработку, и при этом повышению осознанности и понимания процесса разработки. Так, принцип «открытого капота» декларирует прозрачность разработки на всех этапах. Это достигается вынесением операций над платформой (будь то этапы компиляции или прошивка устройства) в поле прямого доступа пользователя, а также снабжением интерфейсов настройки, выходных журналов и артефактов «переводом» на более доступный неспециалистам язык. Принцип «разработка в состоянии потока» обеспечивает комфортное пребывание в desktop-среде за счёт тщательной проработки пользовательского опыта с целью сократить число лишних и контринтуитивных действий. Принцип «модульность и транс-облачность» определяет архитектуру IDE как клиентское приложение и набор сопровождающих его модулей, размещаемых вместе с клиентом или на удалённом сервере. Размещение в облаке модуля компиляции позволит распределённой команде производить сборку выходного файла прошивки в одинаковых воспроизводимых условиях, а также снизить требования к рабочей станции. Вынесение модуля загрузчика также позволяет облегчить процесс разработки, убирая необходимость каждому разработчику владеть прошиваемым устройством.

В настоящий момент опубликованы альфа-версии четырёх компонентов: клиент с редактором РИМС; модуль компилятора, выполняющий сборку прошивок под Arduino Uno и трансляцию схем в формат игры «Защита пасеки»; загрузчик прошивок для Arduino Uno и оснастка для сервера документации. Ведётся документирование и доработка модулей, формируется программный интерфейс для подключения новых целевых платформ.

Среда визуального программирования машин состояний (Михаил Чекан, OSSDEVCONF-2023)!.jpg

Примечания и ссылки

  1. Громаков\,Е.\,И., Сидорова\,А.\,А., Современные технологии. Киберфизические системы, Изд-во Томского политехнического университета, 2021
  2. Кружковое движение, Владимир Путин поддержал запуск Национальной киберфизической платформы «Восток», [Электронный ресурс]: [1]
  3. Samek M., Practical UML statecharts in C/C++: event-driven programming for embedded systems, Elsevier Inc., 2009
  4. Поликарпова\,Н.\,И., Шалыто\,А.\,А., Автоматное программирование, Изд-во «Питер», 2009