Similar presentations:
«Саймон говорит» - игра на Arduino
1.
«Саймонговорит» — игра
на Arduino
Урок 7. Создание
гаджетов на ARDUINO
2.
Саймон говоритпростая, но увлекательная
игра для трех и более
игроков
cуть - повторить все, что
говорит Саймон
3.
На несколько миллисекундзагорается, а затем гаснет
светодиод
Воспроизводится
определенный звук
Игрок должен повторить
и нажать на кнопку,
расположенную рядом
с этим светодиодом
Игрок угадал - загораются
светодиоды
Каждый раз комбинаций
больше, а времени на
светодиоды меньше
Больше комбинаций - лучше
результат
Саймон
говорит.
Схема игры
4.
Добавим две монтажные платы, чтобы разместить всекомпоненты для игры
5.
+ 4 кнопки+ 4 резистора
+ 4 диода
6.
+ 2 светодиода: зеленый- игрок угадал,
красный - игрок не
угадал к омбинацию
(4 и 2 пины)
7.
+ пьезоэлемент (пин 3)М аленький символ ~ возле
пина 3 - выходы
с использованием ШИМ задать тон для зуммера
8.
Откроем код сзаготовкой
проекта
9.
Инициализацияпеременных
С п о м о щ ь ю и н с т рук ц ии d e f i n e
в н ач а л е к од а о п р ед еля ем
н аз ва ния п е р е м енны х. Бл а год аря
та к о м у п од ход у н а м н е п р и д ется
к а ж д ый р аз п р о ве рят ь н а с хе м е
н о м е р п и н а . Вм е с то это го , м ы
буд е м и с п оль зовать и м я ,
н а п р им е р, L ED_ YEL L OW
и л и BU TTO N _ YEL L OW
10.
Пьезо + тонзвука
1. Определяем пин, к оторый
соединяется
с пьезоэлементом #define
BUZZER 3
2. Для к аждого цвета
светодиода ук азываем тон
звук а, к оторый будет
воспроизводиться
11.
Игровыепеременные
1. Ск орость игры ( мс) - будет
уменьшаться
2. Мод игры - будет 4: новая
игра, к онец игры, загадк а,
ответ игрок а
12.
Setup()Для светодиодов
и пьезоэлемента
устанавливаем режимы
выводов на OUTPUT, а для
кнопок ук азываем
INPUT_PULLUP.
13.
Цикл loop()В ц и к л е буд е м п р о ве рят ь р еж им
и г р ы , к ото р ый п р и м е няется,
н а п р им е р, н ач а л о и г р ы и л и к о н е ц
игры
0 - и г р а н ач и н а ется з а н о во
1 - и г р о к ви д и т к о мб и н аци ю в ви д е
п о с л ед ователь н ого вк л юч е н и я
с ветодиодо в
2 - ож и д аем н а ж ат ие и г р о к а
3 - и г р а з а ве р ш и тся
14.
ФункцияresetGame()
Сбрасываем игру.
В этой функции будем
заполнять массив
GAME_SEQUENCE
к омбинациями
15.
ФункцияplaySequence()
Воспроизведение
последовательности
16.
ФункцияreadSequence()
П о с л е во с п р о и з ве д е н и я
п о с л ед о ва т ел ь н о с т и о ж и д а е м , п о к а
и г р о к п о вто р и т к о мб и н а ц и ю с п о м о щ ь ю
к н о п о к в вод а :
- Е с л и вс е ве р н о - н а н е с к ол ь к о
м и л л и с е к у н д з а го р а ет с я з ел е н ы й
с ветод и о д , в к л юч а ю т с я вс е с ветод и о д ы
и з к о мб и н а ц и и и во с п р о и з во д и т с я
з ву к о в о й с и г н а л , а в S e r i a l M o n i t o r
п о я в и тс я с о о б щ е н и е « C o r r e c t »
- Е с л и и г р о к с о ве р ш и л о ш и б к у з а го р а ет с я к р а с н ы й с ветод и о д
и во с п р о и з в о д и т с я з ву к о в о й с и г н а л
17.
ФункцияgameOver()
Когда игрок делает ошибк у,
завершаем игру
18.
Домашняяработа №7
19.
Мы сделалиэто)