Куда двигаться тем, кто уже уверенно программирует машины состояний в «Защите пасеки»? Для них создан курс «Киберфизика — первое программируемое устройство».
Машина состояний (или конечный автомат, Finite State Machine, FSM) — это математическая модель, которая описывает поведение системы. Система может находиться строго в одном из заданных состояний в конкретный момент времени и переходить из одного состояния в другое при возникновении определенных событий.
Именно программирование машин состояний — полезная компонента игры «Защита пасеки»; для наставников, использующих игру на уроках, разработан углубленный онлайн-курс.
Язык ПРИМС (программирования машин состояний) состоит из четырех ключевых элементов:
Состояния. Все возможные режимы или этапы, в которых может пребывать система (например: Включено, Выключено, Ожидание).
События. Триггеры или действия, которые заставляют систему реагировать (например: нажатие кнопки, тайм-аут).
Переходы. Правила, определяющие, как именно система реагирует на событие и в какое новое состояние она переходит.
Действия. Операции, которые система выполняет при переходе или входе в новое состояние
Анита Ходова, методист:
Для киберфизика критически важно видеть вокруг системы и описывать их как машины состояний. Например, на мастер-классах мы предлагаем представить в виде машин состояний дверь с домофоном. Мы двигаемся итерационно и всё больше детализируем систему. Состояние «Дверь закрыта» мне нужно разделить на «Ожидание» и «Введение цифр». «Введение цифр» мне нужно разделить на «Звонок в квартиру» и «Введение кода». И вот так постепенно вы можете спускаться на тот уровень, который вам достаточен для решения задачи, при этом удерживая всю логику работы системы, всего устройства целиком.
«Кибериада IDE» — это редактор машин состояний, который позволяет программировать разные устройства: Arduino Uno, Arduino Micro, а также плату «Кибермишка».
Если игра «Защита пасеки» ограничивает набор сценариев: можно запрограммировать дрон только ограниченным количеством модулей, то «Кибериада IDE» дает программисту больше возможностей. Помимо готовых библиотек, можно создавать свои события и модули.
Дребезг контактов — это паразитное, многократное неконтролируемое замыкание и размыкание контактов механических переключателей (кнопок, реле, тумблеров) при их срабатывании. Возникает из-за физического отскока упругих металлических пластин. Длится обычно от 1 до 20 миллисекунд, но вызывает ложные срабатывания цифровых устройств.