Мазмұны:

Whack-a-moLED !!: 7 қадам
Whack-a-moLED !!: 7 қадам

Бейне: Whack-a-moLED !!: 7 қадам

Бейне: Whack-a-moLED !!: 7 қадам
Бейне: 10 признаков того, что ваше тело взывает о помощи 2024, Шілде
Anonim
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!

Tinkercad жобалары »

Бұл классикалық Whack-a-Mole ойынының жарықдиодты нұсқасы.

Негізінен 4 светодиодтан кездейсоқ жарықдиодты тесіктен қарап тұрған меңнің орнына жанады және ойыншы меңді ұрудың орнына джойстик көмегімен жарық диодты өшіреді!

Жабдықтар

Arduino Uno/Nano немесе кез келген нұсқалық тақта

4 светодиоды және сәйкес келетін шектеу резисторлары.

X, Y шығысы бар джойстик модулі

Белсенді дыбыстық сигнал (міндетті емес)

Өткізгіш сымдар.. жөндеу үшін жеткілікті!

1 -қадам: Схеманы қосыңыз

Схеманы қосу
Схеманы қосу

Arduino Uno тақтасын джойстик модуліне жалғаңыз, джойстиктің X Y шығысына 2 аналогты кіріс штырын жалғаңыз.

4 жарық диодты резисторлар көмегімен 4 цифрлық немесе аналогтық шығыс түйреуіштеріне қосылады.

Сандық шығыс түйреуішіне қосылатын белсенді дыбыстық сигнал

2 -қадам: түйреуіштерді орнату коды

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

int leftLED = A2, rightLED = A3, topLED = A4, төменгіLED = A5;

int selectedLED = 0; // A2, A3, A4 немесе A5 бірі болуы мүмкін

жарамсыз орнату () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (сол жақта, шығыс);

pinMode (оң жақта, шығыс);

pinMode (topLED, OUTPUT); pinMode (төменгіLED, OUTPUT);

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

3 -қадам: Джойстикті сезу коды

void joystickSenseRoutine ()

{

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 == таңдалған LED) // Mole Whacked

{

analogWrite (таңдалған LED, 0);

//

// moLED -ді соғу үшін музыка/тонды ойнату үшін код қосыңыз!

//

}

}

int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) және (yVal 400)) {return bottomLED; }

else if ((xVal> 900) және (yVal 400)) {topLED қайтарады; }

else if ((xVal 400) және (yVal <100)) {return leftLED; }

else if ((xVal 400) және (yVal> 900)) {return rightLED; }

else {қайтару -1; }

}

4 -қадам: Негізгі циклдің әдеттегі коды

void loop () {

үшін (int i = 0; i <ұзындығы; i ++)

{

if (random (0, 100)> 90) {selectedLED = anaPinMap (random (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 наносымен, жарықдиодты, резисторлармен және дыбыстық сигналдары бар арнайы тақтаймен және X-Y джойстикінің қосқышымен жасалған.

7-қадам: сүйіктіңізді таныстыру үшін соңғы пакеттелген Whack-a-MoLED прототипі

Сіздің сүйіктіңізді таныстыруға арналған соңғы пакеттелген Whack-a-MoLED прототипі!
Сіздің сүйіктіңізді таныстыруға арналған соңғы пакеттелген Whack-a-MoLED прототипі!
Сіздің сүйіктіңізді таныстыруға арналған соңғы пакеттелген Whack-a-MoLED прототипі!
Сіздің сүйіктіңізді таныстыруға арналған соңғы пакеттелген Whack-a-MoLED прототипі!

Прототипке арналған жабдықтар:

Қарапайым картон қорап (ең азы 4 см x 6 см x 3 см), қосымша картоннан жасалған бөліктер.

Шассиді қаптауға арналған сәндік қағаз (міндетті емес)

Көп мақсатты желім/желім

Шағын нан тақтасы (міндетті емес)

Ардуино нано

Шағын әмбебап ПХД

Arduino nano -ны қосуға арналған 9В аккумулятор (Vin pin -ге қосылыңыз).

SPDT қосқышы

Қалған жабдықтар (светодиодтар, резисторлар, джойстик, дыбыстық сигнал, сымдар) жоғарыдағы 1 -қадамда сипатталғандай.

Ұсынылған: