Проекты*

Электронный арбитр для интеллектуальных игр

Работа призёров конкурса проектов и исследований «Инженеры будущего» открытой городской научно-практической конференции «Инженеры будущего» в секции «Инновации умного города. Умная школа» среди работ учащихся 10–11 классов

Направление работы: Информационные технологии
Авторы работы: ГБОУ Школа № 2065
Предметы: Информатика, Программирование
Классы: 10 и 11 классы
Мероприятия: Конкурс проектов и исследований «Инженеры будущего» открытой городской научно-практической конференции «Инженеры будущего» 2021 года

Актуальность

Интеллектуальные игры очень популярны. Правила игры достаточно сложны, они включают в себя условия по основному и дополнительному времени, систему фальстарта. Самое сложное для ведущего – это определить, кто первый поднял руку и был готов к ответу. Для такой игры желательна электронная система, которая позволила бы определить, кто первый готов отвечать и фиксировать фальстарт. Эта система поможет ведущему избежать ненужных споров и сосредоточиться на ведении мероприятия.

Цель

Разработка электронного арбитра, позволяющего безошибочно соблюдать правила игры.

Задачи

1. Изучить характеристики аналогичных устройств.

2. Собрать аппаратную платформу.

3. Написать скетч, описывающий логику правил игры.

4. Протестировать получившееся решение.

5. Собрать готовое устройство.

Оснащение и оборудование, использованное при создании работы

  • Arduino UNO
  • Жидкокристаллический графический дисплей Nokia 5110

Описание

В качестве платформы для макета была выбрана плата Arduino UNO, на которой была реализована вся логика проекта. Изначально логика устройства должна была быть построена на сдвиговых резисторах, но при рассмотрении вопроса более детально, мы выбрали платформу Arduino как более функциональное решение.

Для удобства ведущего был использован жидкокристаллический графический ЖК-дисплей Nokia 5110, на который выводится разнообразная информация по игре.

Согласно правилам игры был создан алгоритм работы программы, который затем реализовался в коде, которым и был прошит микроконтроллер. Процесс программирования был увлекательным, не обошлось без трудностей и оригинальных решений. Так, кнопки пришлось повесить на порты с прерываниями, чтобы гарантированно определить, кто первый нажал кнопку.

В ходе тестирования выявлены недочёты программы, которые были устранены. Изначально опрос кнопок был внутри цикла, получалось, что человек мог нажать на кнопку, но программа уже прошла опрос этой кнопки. Таким образом, судейство было бы нечестным. Нужен был способ для отслеживания событий в режиме реального времени. Такой механизм называется прерыванием.

Работа прерывания заключается в том, чтобы убедиться, что процессор быстро отреагирует на важные события. При обнаружении определённого сигнала механизм (как и следует из названия) прерывает всё, что делал процессор, и выполняет некоторый код, предназначенный для реагирования на вызвавшую его внешнюю причину, воздействующую на Arduino. После того как этот код будет выполнен, процессор возвращается к тому, что он изначально делал, как будто ничего не случилось!

Удивительно то, что прерывания позволяют организовать программу так, чтобы быстро и эффективно реагировать на важные события, которые не так легко предусмотреть в цикле программы. И лучше всего то, что прерывания позволяют процессору заниматься другими делами, не тратить время на ожидание события.

Результаты работы/выводы

  1. Разработан модуль подбора оптимальной схемы.
  2. Написан код на языке Arduino
  3. Написан код, который представляет схему, соответствующую параметрам.
  4. Получена модель арбитра по заданным параметрам.

Перспективы использования результатов работы

Результаты работы имеют практическое применение при проведении интеллектуальных игр.