Игра – это важная составляющая жизни человека. Игры помогают развивать креативность, социальные навыки, моторику, логическое мышление, помогают расслабиться и уменьшить уровень стресса, играют важную роль в образовании, бизнесе и научных исследованиях. Студент Казанского техникума информационных технологий и связи Адель Зифаров в статье рассказывает о кейсе создания игры, в которую будет интересно сыграть – какие нужны комплектующие, как и что вырезать, и как запрограммировать игру.
Основные плюсы данной игры:
- игра лабиринт с шариком требует от игрока точности и умения контролировать движение шарика, что помогает развить моторику и координацию;
- это игра-головоломка, которая требует от игрока логического мышления и умения решать задачи;
- игра требует от игрока постоянного контроля и внимания, что помогает улучшить концентрацию и внимательность;
- игра может помочь снизить уровень стресса, так как требует от игрока концентрации и внимания, что может увести его мысли от проблем и неприятностей;
- достижение успеха в игре может улучшить настроение и повысить самооценку.
Игровое устройство «Лабиринт» актуально в современном мире, поскольку может оказывать положительное влияние на развитие личностных качеств человека. Кроме того, оно имеет потенциал для применения в таких областях, как образование, развлекательная индустрия и медицина.
Игровое устройство представляет собой игру «Лабиринт», где нужно управлять шариком, чтобы пройти лабиринт от старта до финиша, изменяя положение игровой площадки с помощью джойстика и сервоприводов. Механизм автоподачи шаров на стартовую позицию обеспечивает удобство игрока.
Игра имеет несколько уровней сложности, которые игрок выбирает в начале. Дисплей показывает оставшееся время для прохождения уровня, и при установлении рекорда время добавляется в таблицу рекордов. Игрок может подписать свой рекорд с помощью клавиатуры. На дисплее отображается таблица рекордов, а звуковое сопровождение включает победные и проигрышные звуки.
Первичной задачей для реализации устройства является подбор и закупка необходимых комплектующих. Выбор комплектующих имеет огромное значение при разработке электронных устройств.
Список необходимых комплектующих:
— arduino Mega;
— 2 аккумулятора 18650;
— контроллер зарядки BMS;
— блок питания 12В 2А;
— 2 понижающих модуля LM2596;
— 2 сервопривода MG996R;
— сервопривод SG90;
— 2 датчика линии TCRT5000;
— джойстик KY-023;
— матричная клавиатура;
— энкодер EC11;
— дисплей OLED 0,96 дюйма;
— DFPlayer;
— SD карта;
— 2 динамика 3Вт;
— адресная светодиодная лента WS2813DC5V;
— переключатель.
— резисторы 1кОм.
Сборка схемы устройства
После подбора необходимых компонентов необходимо спроектировать электрическую схему. Первым этапом необходимо реализовать систему питания всех компонентов и микроконтроллера. Для этого сначала необходимо подключить аккумуляторы к контролеру заряда BMS по схеме.
Контакты будут являться входом и выходом, следовательно, необходимо подключить гнездо для блока питания к этим контактам. Также к контактам будут подключены понижающие модули через переключатель.
Так как на выходе BMS высокое напряжение, необходимо понизить его до 7,2Вв и 5В. Для этого необходимо настроить понижающие модули с помощью переменного резистора и мультиметра.
Понижающий модуль, настроенный на 7,2В подключается только к сервоприводам Mg996R. Микроконтроллер, инфракрасные датчики, адресная светодиодная лента, энкодер, джойстик, OLED экран, DFPlayer, усилитель PAM8403 будут работать от напряжения 5В, следовательно, их необходимо подключить к другому понижающему модулю LM2596.
Для создания общего минусового соединения в схеме, необходимо соединить все минусовые контакты компонентов между собой. После реализации системы питания необходимо приступить к подключению всех элементов к Arduino. Схема подключения представлена ниже.
Сервоприводы и адресную светодиодную ленту, матричную клавиатуру можно подключить к любым цифровым входам Arduino. Главное во время программирования микроконтроллера, в программе указать верные входы. Контакты SW, DT, CLK энкодера также подключаем к цифровым пинам микроконтроллера. Для подключения OLED дисплея используются контакты SCL и SDA. SCL – это пин для передачи сигнала тактовой частоты. Для подключения джойстика KY-023 требуется использовать аналоговые пины. Пины VRx VRy джойстика подключаются к аналоговым пинам Arduino. Пин SW джойстика подключается к цифровому пину микроконтроллера.
Для подключения инфракрасных датчиков необходимо подключить D0 к цифровым входам микроконтроллера.
Далее необходимо подключить DFPlayer, динамики и усилитель PAM8403. Для подключения DFplayer к Arduino используются входы RX и TX.
Полная схема устройства представлена на рисунке:
Сборка устройства «Лабиринт»
После сборки схемы необходимо изготовить корпус для устройства. Выбраны материалы для корпуса: фанера и ДСП.
Из ДСП вырезается доска размером 20×20 см, а затем делаются бортики высотой 2 см. Для платформы делаются отверстия под модульные бортики, используя ручной лобзик. Бортики крепятся специальным столярным клеем и маленькими гвоздями для надежности. Модульные бортики для игровой площадки изготавливаются из ДСП толщиной 2 мм с помощью электролобзика для точности. Модульные бортики позволят изменять лабиринт и придумывать новые игровые сценарии. Готовая игровая площадка с модульными бортиками изображена на рисунке.
Для сборки основной части корпуса необходимо изготовить все части из 10-миллиметровой фанеры. Каждая часть точно вырезается с помощью электролобзика. Одной из частей является фанерный контейнер, который будет прикреплен к краю основной части устройства.
В этом контейнере будет размещаться вся электроника. Конструкцию можно скрепить со стенкой основной части корпуса с помощью винтов. Основная часть корпуса представлена ниже.
В основной части корпуса делаются отверстия для проводов, динамиков и крепления крышки. Затем изготавливается механизм игровой площадки, состоящий из оси, способной наклоняться в двух плоскостях.
Для изготовления механизма потребуется просверлить два отверстия в бруске высотой 5 см и вставить шпильки. На концах шпилек крепятся уголки для надежной фиксации. Затем устанавливаются два сервопривода для движения игровой площадки. В площадке делаются отверстия для шарика, ИК датчиков и динамиков, а также подключаются провода к сервоприводам и ИК датчикам. Далее происходит сборка и установка крыши с использованием деталей из фанеры 10 мм и алюминиевых уголков. Механизм автоподачи шариков включает сборку барабана, оси и подшипников, а также крепление сервопривода и трубки для шариков. Готовый механизм представлен на рисунке.
Барабан снабжается желобом для направления шарика в трубку и его падения на игровую площадку. Адресная светодиодная лента приклеивается к внутренней части крыши. Провода от сервопривода и ленты проложены вниз к месту установки электроники. Для экрана и органов управления вырезаются посадочные места на передней панели, и элементы крепятся с помощью маленьких винтов или горячего клея.
Затем в корпус устанавливается вся оставшиеся электроника, начиная с системы питания. Собранное устройство представлено ниже.
Программирование устройства «Лабиринт»
Программирование устройства «Лабиринт» включает в себя различные задачи, такие как управление сервоприводами, обработка данных с сенсоров, управление светодиодной лентой или OLED дисплеем, и другие функции. Программирование будет производиться в среде разработки ArduinoIDE. Следующим этапом является инициализация таких библиотек как: Keypad, GyverEncoder, GyverOLED, FastLED, Servo, eeprom, DFRobot DFPlayer Mini.
Эти библиотеки необходимо дополнительно загрузить в папку libraries, находящиеся в папке Arduino.
Программа начинается с настройки параметров игры, таких как названия мелодий для победы и проигрыша, уровни сложности и пины подключения компонентов. SD карту необходимо отформатировать под формат FAT32. Мелодии нужно будет загрузить на SD карту с названиями 0001,0002 и т. д. В зависимости от ситуации можно прописывать проигрыш нужной мелодии.
Затем идет инициализация компонентов, например, настройка дисплея, сервоприводов, клавиатуры и других.
После этого программа переходит в основной цикл, где происходит обработка ввода с клавиатуры, отслеживание перемещения энкодера и других действий игрока. В зависимости от действий игрока происходит изменение состояния игры, перемещение сервоприводов и обновление дисплея.
Также программа отслеживает время игры и проверяет, была ли введена правильная комбинация клавиш в заданное время. При окончании игры проигрывается соответствующая мелодия и отображается результат игры на дисплее.
Программа также сохраняет лучший результат игры в памяти eeprom для последующего отображения на дисплее при запуске игры.
Данный код реализует игру с использованием различных компонентов и функций для управления игрой, отображения информации и взаимодействия с игроком.
Приятного путешествия в мир лабиринтов!