8.83M
Category: softwaresoftware

«Саймон говорит» - игра на 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.

Мы сделали
это)
English     Русский Rules