Оглавление:

Бей-а-мОЛД !!: 7 шагов
Бей-а-мОЛД !!: 7 шагов

Видео: Бей-а-мОЛД !!: 7 шагов

Видео: Бей-а-мОЛД !!: 7 шагов
Видео: Дора выбила леона на концерте #дора #shorts 2024, Июль
Anonim
Бейся!
Бейся!
Бейся!
Бейся!

Проекты Tinkercad »

Это светодиодная версия классической игры «Ударь крота».

В основном случайный светодиод из 4-х светодиодов загорается вместо родинки, выглядывающей из ямы, и игрок выключает светодиод с помощью джойстика вместо того, чтобы бить крота!

Запасы

Arduino Uno / Nano или любой вариант платы

4 светодиода и соответствующие токоограничивающие резисторы.

Модуль джойстика с выходами X, Y

Активный зуммер (опционально)

Перемычки.. хватит для отладки!

Шаг 1: Подключите схему

Подключите цепь
Подключите цепь

Подключите плату Arduino Uno к модулю джойстика, подключив 2 аналоговых входа к выходам X Y джойстика.

4 светодиода должны быть подключены с помощью резисторов к 4 контактам цифрового или аналогового выхода.

Активный зуммер для подключения к контакту цифрового выхода

Шаг 2: Код для настройки контактов

int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, динамикPin = 9;

int leftLED = A2, rightLED = A3, topLED = A4, bottomLED = A5;

int selectedLED = 0; // Может быть одним из A2, A3, A4 или A5

void setup () {

pinMode (xPin, ВХОД);

pinMode (yPin, ВХОД);

pinMode (leftLED, ВЫХОД);

pinMode (rightLED, ВЫХОД);

pinMode (topLED, ВЫХОД); pinMode (bottomLED, ВЫХОД);

pinMode (joyPin, ВЫХОД);

pinMode (buzzerPin, ВЫХОД);

}

Шаг 3: Код для распознавания джойстика

void joystickSenseRoutine ()

{

xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (selectedLED, 1024);

если (selectedLED! = leftLED) {analogWrite (leftLED, 0); } если (selectedLED! = rightLED) {analogWrite (rightLED, 0); }

если (selectedLED! = topLED) {analogWrite (topLED, 0); }

если (selectedLED! = bottomLED) {analogWrite (bottomLED, 0); }

if (joyPin == selectedLED) // Крот ударил

{

analogWrite (selectedLED, 0);

//

// Добавляем код для воспроизведения музыки / тона для взбивания moLED !!

//

}

}

int mapXYtoPin (int xVal, int yVal, int butVal) {если ((xVal <100) и (yVal 400)) {return bottomLED; }

иначе, если ((xVal> 900) и (yVal 400)) {return topLED; }

иначе, если ((xVal 400) и (yVal <100)) {return leftLED; }

иначе, если ((xVal 400) и (yVal> 900)) {return rightLED; }

иначе {возврат -1; }

}

Шаг 4. Программный код основного цикла

void loop () {

для (int i = 0; i <length; i ++)

{

if (random (0, 100)> 90) {selectedLED = anaPinMap (random (2, 6));}

// Добавьте сюда код для игровой музыки

// *** *** ***

//

}

int anaPinMap (int randNum) {

если (randNum == 2) {вернуть A2; }

иначе, если (randNum == 3) {возврат A3; }

иначе, если (randNum == 4) {возврат A4; }

иначе, если (randNum == 5) {вернуть A5; }

}

Шаг 5: Готовы попробовать

Шаг 6: Реализация Arduino Nano для прототипа

Image
Image

Такая же реализация сделана с Arduino nano в макетной плате, изготовленной на заказ плате со светодиодами, резисторами и зуммером, а также переключателем X-Y джойстика.

Шаг 7: Окончательный упакованный прототип Whack-a-MoLED, чтобы представить своего любимого

Финальный упакованный прототип Whack-a-MoLED для представления вашего любимого!
Финальный упакованный прототип Whack-a-MoLED для представления вашего любимого!
Финальный упакованный прототип Whack-a-MoLED для представления вашего любимого!
Финальный упакованный прототип Whack-a-MoLED для представления вашего любимого!

Принадлежности для прототипа:

Простая картонная коробка (минимум 4 см X 6 см X 3 см), дополнительные картонные детали для поддержки.

Декоративная бумага для покрытия шасси (по желанию)

Универсальный клей / клей

Мини-макет (опция)

Ардуино нано

Малая универсальная печатная плата

Аккумулятор 9 В для питания Arduino nano (подключается к контакту Vin).

Переключатель SPDT

Остальные источники питания (светодиоды, резисторы, джойстик, зуммер, провода), как описано в шаге 1 выше.

Рекомендуемые: