Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Электронная игра "Светодиодные наперстки"

Это электронное устройство моделирует игру “Наперстки”. В качестве наперстков используются светодиоды. Ведущим игроком выступает микроконтроллер. Игровое поле состоит из 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).

На рисунке 2 представлена фотография устройства собранного на макетной плате.

Устройство на макетной плате

Антон Гаркуша (gam-raingers@mail.ru) (на форуме AntonIOCifra)

Прикрепленные файлы:

Теги:

Гаркуша А. Опубликована: 2010 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
Игорь #
Сейчас собираю эту схему. У меня возникли 2 вопроса:
1) Я пользуюсь программатором UspAsp и шью контроллеры через программу avrdude. Там FUSE-биты выставляются через
hfuse (старший конфигурационный байт);
lfuse(младший конфигурационный байт);
efuse(дополнительный конфигурационный байт)
т.е мне требуются значения требуемых фьюзов(CKSEL3-0 равны 0100; присвоить значение 100 фьюзам BODLEVEL 2-0; CKDIV8 равен 1) в 16-ичном формате (т.е. например ext=0xFF, High=0xDB, Low=0xFF). Напишите пожалуйста, какие значения каких фьюзов нужно прописать?

2) Я что-то не очень понимаю, а не нужно ли подводить питание и землю на 20-10 ноги контроллера соответственно?
Ответить
0
Игорь #
Разобрался с данными вопросами. Кому интересно или кто будет собирать устройство, привожу информацию:

1) Для avrdude фьюзы следующие: lfuse=0xe4; hfuse=0xd9; efuse=0xff

2) По поводу схемы - там не указано, что нужно подключать питание(20 ножка - Vcc; 10 ножка - GND).

Схему собрал. Все отлично работает. Спасибо автору за интересное устройство.

Ответить
0
Александр #
Собрал схему, все работает, но настолько медленно, что не передать словами... Программировал через AVRProg фьюзы ставил как написано... Скажите, пожалуйста, в чем может быть проблема?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Автомобильный GPS-трекер с GSM/GPRS и дистанционным управлением Конструктор - Гитарная педаль Remote Delay 2.5
вверх