Innehållsförteckning:

Whack-a-moLED !!: 7 steg
Whack-a-moLED !!: 7 steg

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

Video: Whack-a-moLED !!: 7 steg
Video: Stories of Hope & Recovery 2020 2024, Juli
Anonim
Skit-a-moLED !!
Skit-a-moLED !!
Skit-a-moLED !!
Skit-a-moLED !!

Tinkercad -projekt »

Detta är en LED-version av det klassiska Whack-a-Mole Game.

I grund och botten tänds en slumpmässig lysdiod av fyra lysdioder istället för att en mullvad tittar ut ur ett hål och spelaren stänger av lysdioden med en joystick istället för att knacka på mullvad!

Tillbehör

Arduino Uno/Nano eller någon variantbräda

4 lysdioder och motsvarande strömbegränsande motstånd.

Joystick -modul med X, Y -utgångar

Aktiv summer (tillval)

Bygelkablar.. nog att felsöka!

Steg 1: Anslut kretsen

Anslut kretsen
Anslut kretsen

Anslut Arduino Uno -kortet till joystickmodulen och anslut 2 analoga ingångsstiften till joystickens X Y -utgångar.

4 lysdioder som ska anslutas med motstånd till 4 digitala eller analoga utgångsstift.

Aktiv summer för anslutning till en digital utgångsstift

Steg 2: Kod för inställning av stift

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 valdLED = 0; // Kan vara en av A2, A3, A4 eller 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);

}

Steg 3: Kod för joystickavkänning

ogiltig joystickSenseRoutine ()

{

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

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (selectLED, 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 (selectLED, 0);

//

// Lägg till kod för att spela musik/ton för whacking moLED !!

//

}

}

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

annars om ((xVal> 900) och (yVal 400)) {return topLED; }

annars om ((xVal 400) och (yVal <100)) {return leftLED; }

annars om ((xVal 400) och (yVal> 900)) {return rightLED; }

annat {return -1; }

}

Steg 4: Huvudslingans rutinkod

void loop () {

för (int i = 0; i <length; i ++)

{

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

// Lägg till kod för spelmusik här

// *** *** ***

//

}

int anaPinMap (int randNum) {

if (randNum == 2) {return A2; }

annars om (randNum == 3) {return A3; }

annars om (randNum == 4) {return A4; }

annars om (randNum == 5) {return A5; }

}

Steg 5: Redo att prova

Steg 6: Arduino Nano -implementering för prototyp

Image
Image

Samma implementering gjord med Arduino nano i brödbräda, skräddarsydda brädor med lysdioder, motstånd och summer och XY-joystickomkopplare.

Steg 7: Slutförpackad Whack-a-MoLED-prototyp för att presentera din älskade

Slutförpackad Whack-a-MoLED-prototyp för att presentera din älskade!
Slutförpackad Whack-a-MoLED-prototyp för att presentera din älskade!
Slutförpackad Whack-a-MoLED-prototyp för att presentera din älskade!
Slutförpackad Whack-a-MoLED-prototyp för att presentera din älskade!

Tillbehör för prototyp:

Enkel kartong (minst 4cmX6cmX3cm), extra kartongbitar för stöd.

Dekorativt papper för att täcka chassi (tillval)

Multifunktionslim/lim

Mini brödbräda (tillval)

Arduino nano

Liten universell kretskort

9V batteri för att driva Arduino nano (anslut till Vin pin).

SPDT -omkopplare

Resten av förbrukningsmaterialet (lysdioder, motstånd, joystick, summer, ledningar) enligt beskrivningen i steg 1 ovan.

Rekommenderad: