Съдържание:

Whack-a-moLED !!: 7 стъпки
Whack-a-moLED !!: 7 стъпки

Видео: Whack-a-moLED !!: 7 стъпки

Видео: Whack-a-moLED !!: 7 стъпки
Видео: How Not To Die: The Role of Diet in Preventing, Arresting, and Reversing Our Top 15 Killers 2024, Юли
Anonim
Удар-а-молед !!
Удар-а-молед !!
Удар-а-молед !!
Удар-а-молед !!

Проекти на Tinkercad »

Това е LED версия на класическата игра Whack-a-Mole.

По принцип произволен светодиод от 4 светодиода светва вместо бенка, гледаща от дупка, и плейърът изключва светодиода с помощта на джойстик, вместо да разбие бенката!

Консумативи

Arduino Uno/Nano или друг вариант на платка

4 светодиода и съответни резистори за ограничаване на тока.

Джойстик модул с X, Y изходи

Активен зумер (по избор)

Кабелни проводници.. достатъчно за отстраняване на грешки!

Стъпка 1: Свържете веригата

Свържете веригата
Свържете веригата

Свържете платката Arduino Uno към модула на джойстика, като свържете 2 аналогови входни щифта към X Y изходите на джойстика.

4 светодиода, които да бъдат свързани чрез резистори към 4 цифрови или аналогови изходни пина.

Активен зумер за свързване към изход за цифров изход

Стъпка 2: Код за настройка на пинове

int xVal = 0, yVal = 0, ноVal = 0, xPin = A0, yPin = A1, joyPin = 13, ноPin = 7, speakerPin = 9;

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

int избрано LED = 0; // Може да бъде един от A2, A3, A4 или A5

void setup () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (leftLED, OUTPUT);

pinMode (rightLED, OUTPUT);

pinMode (topLED, OUTPUT); pinMode (bottomLED, OUTPUT);

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

Стъпка 3: Код за определяне на джойстика

невалиден джойстикSenseRoutine ()

{

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

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (избрано LED, 1024);

if (selectedLED! = leftLED) {analogWrite (leftLED, 0); } if (selectedLED! = rightLED) {analogWrite (rightLED, 0); }

if (selectedLED! = topLED) {analogWrite (topLED, 0); }

if (selectedLED! = bottomLED) {analogWrite (bottomLED, 0); }

if (joyPin == selectedLED) // Mole Whacked

{

analogWrite (избрано LED, 0);

//

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

//

}

}

int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) и (yVal 400)) {връщане bottomLED; }

иначе if ((xVal> 900) и (yVal 400)) {връщане topLED; }

иначе if ((xVal 400) и (yVal <100)) {връщане налявоLED; }

иначе if ((xVal 400) и (yVal> 900)) {връщане rightLED; }

else {връщане -1; }

}

Стъпка 4: Рутинен код на основната верига

void loop () {

for (int i = 0; i <дължина; i ++)

{

if (случайно (0, 100)> 90) {selectedLED = anaPinMap (произволно (2, 6));}

// Добавете код за музика на играта тук

// *** *** ***

//

}

int anaPinMap (int randNum) {

if (randNum == 2) {връщане A2; }

else if (randNum == 3) {връщане A3; }

else if (randNum == 4) {връщане A4; }

else if (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 за представяне на любимия човек!

Консумативи за прототип:

Проста картонена кутия (минимум 4cmX6cmX3cm), допълнителни картонени парчета от опората.

Декоративна хартия за покриване на шаси (по избор)

Многофункционално лепило/лепило

Мини макет (по избор)

Arduino nano

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

9V батерия за захранване на Arduino nano (свържете се с Pin pin).

SPDT превключвател

Останалите консумативи (светодиоди, резистори, джойстик, зумер, проводници), както е описано в стъпка 1 по -горе.

Препоръчано: