Mündəricat:

Whack-a-moLED !!: 7 addım
Whack-a-moLED !!: 7 addım

Video: Whack-a-moLED !!: 7 addım

Video: Whack-a-moLED !!: 7 addım
Video: Whack-A-Mole | Cartoon-Box 22 2024, Noyabr
Anonim
Vur-a-moLED !!
Vur-a-moLED !!
Vur-a-moLED !!
Vur-a-moLED !!

Tinkercad Layihələri »

Bu klassik Whack-a-Mole Oyununun LED versiyasıdır.

Əsasən 4 LED -dən təsadüfi bir LED bir çuxurdan baxan bir köstək yerinə yanır və oyunçu köstəbəyi vurmaq əvəzinə bir joystick istifadə edərək LED -i söndürür!

Təchizat

Arduino Uno/Nano və ya hər hansı bir variant lövhəsi

4 LED və müvafiq cərəyan məhdudlaşdıran rezistorlar.

X, Y çıxışları olan Joystick modulu

Aktiv Buzzer (isteğe bağlı)

Jumper teller.. ayıklamak üçün kifayətdir!

Addım 1: Dövrəni bağlayın

Dövrəni bağlayın
Dövrəni bağlayın

Arduino Uno lövhəsini joystick moduluna bağlayın, 2 analog Giriş pinini joystickin X Y çıxışlarına bağlayın.

Rezistorlar istifadə edərək 4 ədəd LED, 4 ədəd rəqəmsal və ya analoq çıxış pininə bağlanacaq.

Rəqəmsal çıxış pininə qoşulmaq üçün Aktiv Buzzer

Addım 2: Sancaqlar qurmaq üçün kod

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 selectedLED = 0; // A2, A3, A4 və ya A5 -dən biri ola bilər

boş quraşdırma () {

pinMode (xPin, GİRİŞ);

pinMode (yPin, GİRİŞ);

pinMode (sol LED, ÇIXIŞ);

pinMode (sağ LED, Çıxış);

pinMode (topLED, ÇIXIŞ); pinMode (alt LED, ÇIXIŞ);

pinMode (joyPin, ÇIXIŞ);

pinMode (buzzerPin, Çıxış);

}

Addım 3: Joystick Algılama kodu

void joystickSenseRoutine ()

{

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

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (seçilmiş LED, 1024);

əgər (seçilmişLED! = sol LED) {analogWrite (leftLED, 0); } if (selectedLED! = rightLED) {analogWrite (rightLED, 0); }

if (seçilmişLED! = topLED) {analogWrite (topLED, 0); }

əgər (seçilmişLED! = alt LED) {analogWrite (bottomLED, 0); }

if (joyPin == seçilmiş LED) // Mole Hacked

{

analogWrite (seçilmiş LED, 0);

//

// moLED vurmaq üçün musiqi/ton çalmaq üçün kod əlavə edin!

//

}

}

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

else if ((xVal> 900) və (yVal 400)) {return topLED; }

else if ((xVal 400) və (yVal <100)) {sola qayıt LED; }

else ((xVal 400) və (yVal> 900)) {sağa qayıt; }

başqa {qaytar -1; }

}

Addım 4: Əsas Loop Rutin Kodu

boşluq döngəsi () {

üçün (int i = 0; i <uzunluq; i ++)

{

əgər (təsadüfi (0, 100)> 90) {selectedLED = anaPinMap (təsadüfi (2, 6));}

// Buraya oyun musiqisi üçün kod əlavə edin

// *** *** ***

//

}

int anaPinMap (int randNum) {

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

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

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

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

}

Addım 5: sınamağa hazırsınız

Addım 6: Prototip üçün Arduino Nano Tətbiqi

Image
Image

Çörək taxtasında Arduino nano ilə eyni tətbiq, LED, rezistorlar və səs siqnalları olan xüsusi hazırlanmış lövhə və X-Y joystick açarı.

Addım 7: Sevdiyinizi Təqdim etmək üçün Son Paketli Whack-a-MoLED Prototipi

Sevdiyinizi Təqdim etmək üçün Son Paketli Whack-a-MoLED Prototipi!
Sevdiyinizi Təqdim etmək üçün Son Paketli Whack-a-MoLED Prototipi!
Sevdiyinizi Təqdim etmək üçün Son Paketli Whack-a-MoLED Prototipi!
Sevdiyinizi Təqdim etmək üçün Son Paketli Whack-a-MoLED Prototipi!

Prototip üçün materiallar:

Sadə karton qutu (Minimum 4cmX6cmX3cm), dəstək üçün əlavə karton parçalar.

Şassi örtmək üçün dekorativ kağız (isteğe bağlı)

Çox məqsədli yapışqan/yapışqan

Mini çörək taxtası (isteğe bağlı)

Arduino nano

Kiçik Universal PCB

Arduino nanonun işləməsi üçün 9V batareya (Vin pininə qoşulun).

SPDT açarı

Qalan təchizatlar (LEDlər, rezistorlar, joystick, səs siqnalı, tellər) yuxarıdakı 1 -ci addımda göstərildiyi kimi.

Tövsiyə: