Техническое задание: Разработка ПО для квест-комнаты

Существует полностью функционирующая квест-комната. Аппаратная часть (управление светом, электромагнитами, датчиками, звуком) реализована на платформе Arduino и находится в рабочем состоянии.

Основная задача

Требуется разработать, доработать и интегрировать программную часть на стороне компьютера, используя язык Python. Программа будет выступать в роли центрального контроллера, связывающего аппаратную часть (Arduino) с оператором/администратором.

Ключевые требования к ПО

  • Связь с Arduino: Обеспечение стабильной двусторонней коммуникации (последовательный порт или иной интерфейс) для отправки команд и чтения состояния датчиков.
  • Визуальный интерфейс (GUI): Создание интуитивно понятного графического интерфейса для оператора. Интерфейс должен отображать:
    • Статус комнаты и всех активных элементов.
    • Логи прохождения квеста.
    • Панель ручного управления устройствами (для тестирования и сброса).
  • Функция автозапуска: Реализация механизма автоматического запуска всей системы (ПО + связь с Arduino) при включении компьютера, без необходимости ручных действий оператора.
  • Логика квеста: Интеграция или доработка скрипта, обрабатывающего последовательность событий (нажатия кнопок, срабатывания датчиков) и управляющего исполнительными устройствами согласно сценарию.
  • Надежность: Программа должна устойчиво работать в продолжительном режиме, иметь обработку ошибок связи и возможности аварийной остановки.

Что имеется

  • Готовая и рабочая аппаратная часть на Arduino.
  • Существующий, вероятно, частичный код или четкое понимание протокола обмена данными с контроллером.

Ожидаемый результат

Готовое кроссплатформенное (или под указанную ОС) приложение на Python с графическим интерфейсом, которое после установки и минимальной настройки позволяет управлять квест-комнатой в автоматическом и ручном режимах, обеспечивая бесперебойный цикл работы.