Kazalo:

Whack-a-moLED !!: 7 korakov
Whack-a-moLED !!: 7 korakov

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

Video: Whack-a-moLED !!: 7 korakov
Video: DIY Cat Toy Whack-A-Mole from Cardboard 2024, Julij
Anonim
Prekleto!
Prekleto!
Prekleto!
Prekleto!

Tinkercad projekti »

To je LED različica klasične igre Whack-a-Mole.

V bistvu zasveti naključna LED iz štirih LED, namesto da krt gleda skozi luknjo, predvajalnik pa izklopi LED z igralno palico, namesto da bi udaril madeža!

Zaloge

Arduino Uno/Nano ali katera koli različica plošče

4 LED diode in ustrezni upori za omejevanje toka.

Modul krmilne ročice z izhodi X, Y

Aktivni zvočni signal (neobvezno)

Mostične žice.. dovolj za odpravljanje napak!

1. korak: Priključite vezje

Priključite vezje
Priključite vezje

Ploščo Arduino Uno priključite na modul krmilne palice in povežite 2 analogna vhodna zatiča na izhode X Y krmilne palice.

4 LED diode za priključitev z upori na 4 digitalne ali analogne izhodne nožice.

Aktivni zvočni signal za povezavo z digitalnim izhodnim zatičem

2. korak: Koda za nastavitev zatičev

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 izbrano LED = 0; // Lahko je eden izmed A2, A3, A4 ali A5

void setup () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (levoLED, OUTPUT);

pinMode (desnoLED, OUTPUT);

pinMode (topLED, OUTPUT); pinMode (spodajLED, OUTPUT);

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

3. korak: Koda za zaznavanje igralne palice

void joystickSenseRoutine ()

{

xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalno branje (butPin);

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (izbranoLED, 1024);

if (izbranoLED! = 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 (izbranoLED, 0);

//

// Dodajte kodo za predvajanje glasbe/ton za udarjanje moLED !!

//

}

}

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

sicer if ((xVal> 900) in (yVal 400)) {return topLED; }

sicer if ((xVal 400) in (yVal <100)) {vrni se leftLED; }

else if ((xVal 400) in (yVal> 900)) {return rightLED; }

else {vrnitev -1; }

}

4. korak: Koda rutine glavne zanke

void loop () {

for (int i = 0; i <dolžina; i ++)

{

če (naključno (0, 100)> 90) {izbranoLED = anaPinMap (naključno (2, 6));}

// Tukaj dodajte kodo za glasbo iger

// *** *** ***

//

}

int anaPinMap (int randNum) {

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

else if (randNum == 3) {vrne A3; }

else if (randNum == 4) {vrne A4; }

else if (randNum == 5) {vrne A5; }

}

5. korak: Pripravljeni na preizkus

6. korak: Arduino Nano implementacija za prototip

Image
Image

Ista izvedba z Arduino nano v plošči, po meri izdelana plošča z LED diodami, upori in zvočnikom ter stikalom krmilne palice X-Y.

Korak 7: Končni zapakirani prototip Whack-a-MoLED za predstavitev vašega ljubljenega

Končni zapakirani prototip Whack-a-MoLED za predstavitev vašega ljubljenega!
Končni zapakirani prototip Whack-a-MoLED za predstavitev vašega ljubljenega!
Končni zapakirani prototip Whack-a-MoLED za predstavitev vašega ljubljenega!
Končni zapakirani prototip Whack-a-MoLED za predstavitev vašega ljubljenega!

Zaloge za prototip:

Enostavna kartonska škatla (najmanj 4 cm x 6 cm x 3 cm), dodatni kartonski kosi za podporo.

Dekorativni papir za pokrivanje ohišja (neobvezno)

Večnamensko lepilo/lepilo

Mini plošča (neobvezno)

Arduino nano

Majhno univerzalno tiskano vezje

9V baterija za napajanje Arduino nano (priključite na pin Pin).

Stikalo SPDT

Ostanek zalog (LED, upori, krmilna palica, brenčalo, žice), kot je opisano v prvem koraku 1.

Priporočena: