Светодиодные "наперстки" на микроконтроллере |
Это электронное устройство моделирует игру "Наперстки". В качестве наперстков используются светодиоды. Ведущим игроком выступает микроконтроллер. Игровое поле состоит из 7-ми светодиодов и расположено в три ряда (рис. 2). Центральный ряд олицетворяет наперстки, которые в процессе игры переставляются. Остальные светодиоды используются для обозначения направлений перестановки. Смысл игры заключается в том, чтобы отследить движение исходного светодиода (шарика) и определить его положение в конце перестановок.
Игра имеет 7 уровней сложности, которые различаются между собой числом и скоростью перестановок. При старте устройства с помощью светодиодов индицируется текущий уровень сложности. Информация о нем сохраняется в энергонезависимой памяти микроконтроллера.
На рисунке выше представлена принципиальная схема устройства. Кнопки "+" SB0 и "-" SB1 используются для изменения уровня сложности. Кнопка "Start" SB2 служит для начала процесса игры. Кнопки "Pos.1" SB3, "Pos.2" SB4, "Pos.3" SB5 предназначены для выбора положения искомого светодиода в конце цикла перестановок. Кнопка "Reset" SB6 осуществляет сброс микроконтроллера. Светодиоды "Pole 1-Pole 7" HL1-HL7 составляют игровое поле, где HL1-HL3 - средний ряд, HL4-HL5 - верхний ряд, HL6-HL7 - нижний ряд. Светодиоды "Yes" HL8 и "No" HL9 служат для индикации правильности ответа игрока.
Игровой процесс выглядит следующим образом:
Светодиоды этого ряда, и начинается их перестановка. Позиция искомого светодиода (шарика) меняется. Направление перестановок происходит случайным образом. Для этого в алгоритме программы микроконтроллера используется линейный конгруэнтный метод получения псевдослучайного числа [1]. В конце таких манипуляций игроку необходимо путем нажатия кнопок Pos1-Pos3 выбрать позицию, в которой находится помеченный светодиод. Если ответ правильный, то загорается зеленый светодиод "Yes". В случае неверного ответа загорается красный светодиод "No", а также мигает поле истинной позиции шарика.
В устройстве используется микроконтроллер ATTINY 2313 [2]. Фьюзы настраиваются на работу от внутреннего RC генератора с частотой 8 МГц (CKSEL3-0 равны 0100). Для повышения надежности работы с данными EEPROM задействован BOD детектор на уровень напряжения 4.3 вольта. Для его включения необходимо присвоить значение 100 фьюзам BODLEVEL 2-0. Также необходимо отключить деление тактовой частоты на 8 (CKDIV8 равен 1).
На рисунке ниже представлена фотография устройства собранного на макетной плате., а по этой ссылке вы можете скачать файл проекта с прошивкой микроконтроллера.
Автор: Антон Гаркуша
C этой схемой также часто просматривают: |
Электронные аксессуары на микроконтроллере для игры S.T.A.L.K.E.R. Электронный замок с ключами iButton Эмулятор ПЗУ Эффект Fade Out для LED на микроконтроллере
| |
Подключение энкодера к микроконтроллеру PIC Счётчик людей в помещении, управляющий освещением Велокомпьютер на микроконтроллере PIC16F628A Устройство ввода-вывода на микроконтроллера Два термометра на PIC16F628A и DS18B20 Светодиодные часы с циферблатом Двоичные часы Два вывода микроконтроллера PIC управляют шестью светодиодами Цифровой программируемый таймер на микроконтроллере PIC16F628A Устройство рисования в воздухе на ATtiny2313 |