תוכן עניינים:

Whack-a-moLED !!: 7 שלבים
Whack-a-moLED !!: 7 שלבים

וִידֵאוֹ: Whack-a-moLED !!: 7 שלבים

וִידֵאוֹ: Whack-a-moLED !!: 7 שלבים
וִידֵאוֹ: It Takes Two Gameplay Walkthrough FULL GAME (no commentary) 2024, יולי
Anonim
מקולקל !!
מקולקל !!
מקולקל !!
מקולקל !!

פרויקטים של טינקרד »

זוהי גרסת LED למשחק הקלאסי Whack-a-Mole.

בעיקרון נורית אקראית מתוך 4 נוריות נורות נדלקת במקום שומה שמסתכלת מתוך חור והשחקן מכבה את הנורית באמצעות ג'ויסטיק במקום לדפוק את השומה!

אספקה

Arduino Uno/Nano או כל לוח גרסא

4 נוריות LED ונגדי הגבלת זרם תואמים.

מודול ג'ויסטיק עם יציאות X, Y

זמזם פעיל (אופציונלי)

חוטי מגשר.. מספיק כדי לאתר באגים!

שלב 1: חבר את המעגל

חבר את המעגל
חבר את המעגל

חבר את לוח ה- Arduino Uno למודול הג'ויסטיק, וחיבר 2 סיכות כניסה אנלוגיות ליציאות X Y של הג'ויסטיק.

4 נוריות LED לחיבור באמצעות נגדים ל -4 סיכות סיכות פלט דיגיטליות או אנלוגיות.

זמזם פעיל לחיבור לפין פלט דיגיטלי

שלב 2: קוד להגדרת סיכות

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 או A5

הגדרת בטל () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (leftLED, OUTPUT);

pinMode (rightLED, OUTPUT);

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

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

שלב 3: קוד לחישת ג'ויסטיק

ג'ויסטיק חלל SenseRoutine ()

{

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

joyPin = mapXYtoPin (xVal, yVal, butVal);

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

אם (joyPin == selectedLED) // Mole Whacked

{

analogWrite (selectedLED, 0);

//

// הוסף קוד לנגינת מוסיקה/טון לחבילות moLED !!

//

}

}

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

אחרת אם ((xVal> 900) ו- (yVal 400)) {return topLED; }

אחרת אם ((xVal 400) ו- (yVal <100)) {return leftLED; }

אחרת אם ((xVal 400) ו- (yVal> 900)) {return rightLED; }

אחרת {החזרה -1; }

}

שלב 4: קוד שגרה בלולאה ראשית

לולאת חלל () {

עבור (int i = 0; i <length; i ++)

{

if (אקראי (0, 100)> 90) {selectedLED = anaPinMap (אקראי (2, 6));}

// הוסף כאן קוד למוזיקת משחקים

// *** *** ***

//

}

int anaPinMap (int randNum) {

אם (randNum == 2) {החזרה A2; }

אחרת אם (randNum == 3) {החזר A3; }

אחרת אם (randNum == 4) {החזר A4; }

אחרת אם (randNum == 5) {החזרה A5; }

}

שלב 5: מוכן להתנסות

שלב 6: יישום Arduino Nano לאב -טיפוס

Image
Image

אותו יישום שנעשה עם Arduino nano בלוח לחם, לוח בהזמנה אישית עם נוריות LED, נגדים וזמזם ומתג ג'ויסטיק X-Y.

שלב 7: אב טיפוס אחרון של Whack-a-MoLED ארוז כדי להציג את אהובך

אב טיפוס סופי של a-MoLED ארוז כדי להציג את אהובך!
אב טיפוס סופי של a-MoLED ארוז כדי להציג את אהובך!
אב טיפוס סופי של a-MoLED ארוז כדי להציג את אהובך!
אב טיפוס סופי של a-MoLED ארוז כדי להציג את אהובך!

ציוד לאב טיפוס:

קופסת קרטון פשוטה (מינימום 4 ס"מ X 6 ס"מ X 3 ס"מ), חתיכות קרטון נוספות לתמיכה.

נייר דקורטיבי לכיסוי שלדה (אופציונלי)

דבק/דבק רב תכליתי

קרש לחם מיני (אופציונלי)

ארדואינו ננו

PCB אוניברסלי קטן

סוללת 9V להפעלת Arduino nano (להתחבר לפין Vin).

מתג SPDT

שאר הציוד (נוריות LED, נגדים, ג'ויסטיק, זמזם, חוטים) כמתואר בשלב 1 לעיל.

מוּמלָץ: