INHOUDSOPGAWE:

Whack-a-moLED !!: 7 stappe
Whack-a-moLED !!: 7 stappe

Video: Whack-a-moLED !!: 7 stappe

Video: Whack-a-moLED !!: 7 stappe
Video: A Show of Scrutiny | Critical Role: THE MIGHTY NEIN | Episode 2 2024, November
Anonim
Wack-a-moLED !!
Wack-a-moLED !!
Wack-a-moLED !!
Wack-a-moLED !!

Tinkercad -projekte »

Dit is 'n LED-weergawe van die klassieke Whack-a-Mole Game.

Eintlik brand 'n ewekansige LED uit 4 LED's in plaas van 'n mol wat uit 'n gat kyk, en die speler skakel die LED uit met 'n joystick in plaas van die mol te slaan!

Voorrade

Arduino Uno/Nano of enige ander bord

4 LED's en ooreenstemmende stroombeperkende weerstande.

Joystick -module met X-, Y -uitsette

Aktiewe gonser (opsioneel)

Springdrade.. genoeg om te ontfout!

Stap 1: Sluit die kring aan

Sluit die kring aan
Sluit die kring aan

Sluit die Arduino Uno -bord aan op die joystick -module en koppel 2 analoog -invoerpenne aan die X Y -uitsette van die joystick.

4 LED's moet met weerstande verbind word aan 4 digitale of analoge uitgangspennetjies.

Aktiewe zoemer moet gekoppel word aan 'n digitale uitsetpen

Stap 2: Kode vir die opstel van penne

int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, speakerPin = 9;

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

int geselekteerdeLED = 0; // Kan een van A2, A3, A4 of A5 wees

ongeldige opstelling () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (linksLED, UITGANG);

pinMode (regsLED, UITGANG);

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

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

Stap 3: Kode vir joystick -opsporing

leegte joystickSenseRoutine ()

{

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

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (geselekteerde 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); }

as (joyPin == geselekteerde LED) // Mole Whacked

{

analogWrite (geselekteerde LED, 0);

//

// Voeg kode by om musiek/toon te speel om moLED te slaan !!

//

}

}

int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) en (yVal 400)) {return bottomLED; }

anders as ((xVal> 900) en (yVal 400)) {return topLED; }

anders as ((xVal 400) en (yVal <100)) {return leftLED; }

anders as ((xVal 400) en (yVal> 900)) {return rightLED; }

anders {terugkeer -1; }

}

Stap 4: Hooflus -roetine -kode

leemte -lus () {

vir (int i = 0; i <lengte; i ++)

{

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

// Voeg hier kode vir spelmusiek by

// *** *** ***

//

}

int anaPinMap (int randNum) {

as (randNum == 2) {opgawe A2; }

anders as (randNum == 3) {opgawe A3; }

anders as (randNum == 4) {opgawe A4; }

anders as (randNum == 5) {opgawe A5; }

}

Stap 5: gereed om uit te probeer

Stap 6: Arduino Nano -implementering vir prototipe

Image
Image

Dieselfde implementering is gemaak met Arduino nano in broodbord, op maat gemaakte bord met LED's, weerstande en zoemer en XY-joystick-skakelaar.

Stap 7: Laaste verpakte Whack-a-MoLED-prototipe om u geliefde aan te bied

Laaste verpakte Whack-a-MoLED prototipe om u geliefde voor te stel!
Laaste verpakte Whack-a-MoLED prototipe om u geliefde voor te stel!
Laaste verpakte Whack-a-MoLED prototipe om u geliefde voor te stel!
Laaste verpakte Whack-a-MoLED prototipe om u geliefde voor te stel!

Benodighede vir prototipe:

Eenvoudige kartondoos (minimum 4cmX6cmX3cm), ekstra kartonstukke vir ondersteuning.

Dekoratiewe papier vir die bedekking van onderstel (opsioneel)

Veeldoelige gom/gom

Mini broodbord (opsioneel)

Arduino nano

Klein universele PCB

9V -battery vir die voeding van Arduino nano (koppel aan Vin -pen).

SPDT skakelaar

Die res van die voorraad (LED's, weerstande, joystick, zoemer, drade) soos beskryf in stap 1 hierbo.

Aanbeveel: