תוכן עניינים:
וִידֵאוֹ: משחק ארקייד לד ציקלון: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
מטרת הפרויקט הייתה ליצור משחק פשוט באמצעות Arduino שיהיה אינטראקטיבי ומשעשע לילדים. אני זוכר שמשחק הארקייד של ציקלון היה אחד ממשחקי הארקייד האהובים עלי כשהייתי צעיר יותר, אז החלטתי לשחזר אותו. זהו פרויקט פשוט מאוד המורכב מארדואינו, מחרוזת נוריות ניתנות להתייחסות בנפרד ולחצן לחיצה.
מטרת המשחק היא לעצור את אור הרכיבה כשהוא מגיע לנורית (האדומה) המצוינת. אם יצליח, רמת הקושי תעלה. אם לא הצליח, מחזור האור יופעל מחדש ברמת הקושי הנוכחית.
מדריך זה היה משאב עצום לליבת הקידוד שלי.
שלב 1: אסוף חומרים מתכלים
-
רכיבים עיקריים:
- ארדואינו (השתמשתי ב- UNO)
- מחרוזת נוריות ניתנות להתייחסות בנפרד (השתמשתי בקישור)
- כפתור לחיצה (השתמשתי בקישור)
- מעגל מודפס (PCB) או קרש לחם
-
ספק כוח (השתמשתי בשני ספקי כוח נפרדים, אתה יכול לברוח עם אחד אם אתה יצירתי)
- 5V 3A עבור נוריות LED
- 9V 1A עבור Arduino
-
מִסגֶרֶת:
- דיור אלקטרוניקה (שיניתי גוף מנורות עץ מרצון טוב)
- דיור LED (שיניתי את שעון הקיר הסטנדרטי שלך ונקדחנו חורים באמצעות מזהי הדקות כסימון חורים. השתמש בשעון עץ אם אפשר כדי להקל על הקידוח.)
- בית כפתורים (השתמשתי בצינור PVC במרפק)
-
כלים / חומרים אחרים:
- חיווט חילוף למעגל שלך
- נגדים 10K (הנגישה הנפתחת למתג) ו -470 אוהם (לחוט נתונים על נוריות)
- מקדחה ליצירת חורים המאכלסים את נוריות הלד שלך ואת כל החורים הדרושים במתקן שלך כדי להעביר חוטים
- מלחם להלחמת המעגל שלך ל- PCB
- אקדח דבק חם לאבטחת הלדים למתקן שלך
- סקוטש או אמצעי כלשהו לאבטחת המסגרת יחד
- אטמים אופציונליים עבור חורים שנקדחו בכדי לחוטים לעבור
שלב 2: העלאת קוד
הקפד להוריד ולהוסיף את ספריית "FastLED"
ליבת הקוד (לולאת חלל) מורכבת משתי מצבים: כפתור לחיצה גבוה (סוף המשחק) וכפתור לחיצה נמוך (משחק). ברגע שהמשתמש לוחץ על הכפתור, כתובת ה- LED שהנורה הופסקה בה מושווה לכתובת הנורית המרכזית. אם הם אינם זהים, כל הנורות מהבהבות פעמיים באדום והרמה הנוכחית מופעלת מחדש. אם הם זהים, הציליון (סקריפט ספריית FastLED) פועל פעמיים, רמת הקושי עולה והמשחק מתחדש. ברגע שהשחקן מנצח את הרמה האחרונה, סילון רץ בפעם השמינית והמשחק מתחיל מחדש ברמה 1.
// משחק ציקלון
#כלול "FastLED.h" // עד 50 #הגדר NUM_LEDS 40 #הגדר CENTER_LED 21 #הגדר DATA_PIN 7 #הגדר LED_TYPE WS2811 #הגדר COLOR_ORDER RGB // טווח 0-64 #הגדר BRIGHTNESS 50 // הגדרת רמות קושי #הגדרה EASY 1 #define MEDIUM 2 #define HARD 3 #define ON_SPEED 4 #define SONIC_SPEED 5 #define ROCKET_SPEED 6 #define LIGHT_SPEED 7 #define MISSION_IMPOSSIBLE 8 // קושי התחלתי בקושי = 1; // הגדירו את מערך ה- leds CRED leds [NUM_LEDS]; // האם השחקן ניצח את הסיבוב הזה? תג זה משמש לפרמטרים של קושי. bool wonThisRound = false; // מיקום התחלה של אור האופניים int LEDaddress = 0; // האם המשחק פועל? בול משחק = נכון; // האם זה הניצחון הראשון? bool CycleEnded = true; // פרטי לחצן const int buttonPin = 9; int buttonState = 0; // אתחל את ספריית ה- LED ואת פונקציות ה- arduino בהגדרת החלל () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (בהירות); pinMode (buttonPin, INPUT); Serial.begin (9600); } // הבשר ותפוחי האדמה // שני מצבים - לולאת חלל משחק וסיום משחק () {// END GAME buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Playing = false; // המשתמש לחץ על הכפתור, והנורית עצרה על הכתובת המנצחת. for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: שחור; } leds [CENTER_LED] = CRGB:: אדום; leds [LEDaddress] = CRGB:: ירוק; FastLED.show (); אם (CycleEnded = true) {int diff = abs (CENTER_LED - LEDaddress); // מוצא את המרחק בין הלייט המואר לבין הלייד המרכזי אם (diff == 0) {wonThisRound = true; // השחקן ניצח את הרמה בהצלחה אם (קושי! = MISSION_IMPOSSIBLE) {for (int i = 0; i <2; i ++) {cylon (); }} if (קושי == MISSION_IMPOSSIBLE) {עבור (int i = 0; i <8; i ++) {cylon (); } קושי = 0; } להגדיל קושי (); wonThisRound = false; } אחר {עיכוב (1000); עבור (int i = 0; i <2; i ++) {flash (); }} CycleEnded = false; } כתובת LED = 0; עיכוב (250); buttonState = digitalRead (buttonPin); if (buttonState == LOW) {Playing = true; }}} // משחק אם (משחק) {עבור (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: שחור; // מכבה את כל הנורות} leds [CENTER_LED] = CRGB:: אדום; // קובע את הצבע המוביל במרכז ללדים ירוקים [LEDaddress] = CRGB:: ירוק; // קובע את צבע הוביל גליל לאדום FastLED.show (); // מאתחל מחזור אור LEDaddress ++; // מגדיר את מחזור האור לדלק אחד בכל פעם אם (LEDaddress == NUM_LEDS) {LEDaddress = 0; } עיכוב (getTime (קושי)); buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Playing = false; CycleEnded = true; }}}} // פרמטרי רמה int getTime (int diff) // מחזירה עיכוב זמן עבור בסיס תנועה לד על קושי {int timeValue = 0; switch (diff) {case EASY: timeValue = 100; לשבור; מקרה MEDIUM: timeValue = 80; לשבור; מקרה HARD: timeValue = 60; לשבור; מקרה ON_SPEED: timeValue = 40; לשבור; מקרה SONIC_SPEED: timeValue = 30; לשבור; מקרה ROCKET_SPEED: timeValue = 20; לשבור; מקרה LIGHT_SPEED: timeValue = 13; לשבור; מקרה MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue; // החזירו את סכום העיכוב} // קושי זכייה הגדילו פרמטרים void להגדיל קושי () {if (קושי! = MISSION_IMPOSSIBLE && wonThisRound) {קושי ++; }}} // אבוד LED הצג הבזק חלל () {fill_solid (leds, NUM_LEDS, CRGB:: אדום); FastLED.show (); עיכוב (500); fill_solid (leds, NUM_LEDS, CRGB:: שחור); FastLED.show (); עיכוב (500); } // זכה LED הצג void fadeall () {for (int i = 0; i <NUM_LEDS; i ++) {leds .nscale8 (250); }} voyd cylon () {static uint8_t hue = 0; Serial.print ("x"); // תחילה החלק את הנורית בכיוון אחד עבור (int i = 0; i = 0; i--) {// הגדר את ה- led הבין לנורות אדומות = CHSV (hue ++, 255, 255); // הצג את נוריות ה- FastLED.show (); // עכשיו לאחר שהצגנו את הנורות, אפס את ה- I הוביל לשחור // leds = CRGB:: Black; fadeall (); // המתן מעט לפני שנסתובב ונעשה זאת שוב עיכוב (10); }}
שלב 3: התקן במתקן
אינני מתכוון להיכנס לפרטים בסעיף זה. ישנן אלף דרכים שונות ללכת על החלק הזה ואני חושב שאתה צריך להיות יצירתי כדי לגרום לזה להיראות איך שאתה אוהב את זה. עם זאת, השעון היה די נוח לשימוש לדיור הנוריות מכיוון שהיו בו אינדיקטורים דקים שהצלחתי להשתמש בהם כסימון מקדחה. כמו כן, מכסה הזכוכית מאפשר לי להשתמש בזה כשולחן.
הוולקרו היה שימושי מאוד גם לאבטחת גוף המתקן למתקן הדיור האלקטרוניקה. השתמשתי גם בוולקרו בארדואינו. זה עשה את זה מאוד נוח למשוך את Arduino החוצה אם אי פעם רוצה לשנות את הקוד.
מוּמלָץ:
משחק ציקלון ארדואינו: 5 שלבים (עם תמונות)
משחק ציקלון ארדואינו: מעולם לא שיחקתי במשחק ארקייד האיקייד האמיתי אבל אני אוהב את הרעיון לשחק עם זמן התגובה שלנו.עיצבתי משחק ממוזער. הוא מורכב מ 32 נוריות היוצרות מעגל, נוריות הלדים נדלקות אחת אחת כרודף הוביל. המטרה היא ללחוץ על הכפתור
פוינג! - משחק ארקייד ארדואינו !: 3 שלבים
פוינג! - משחק ארקייד ארקייד !: נבנה משחק ארקייד בסגנון PONG שמשתמש בחלקים מתוך " ערכת המתנע השלמה ביותר UNO R3 Project " ערכה מ- Elegoo Inc. חשיפה מלאה - רוב החלקים שסופקו למדריך זה נמסרו למחבר על ידי Elegoo
ציקלון (משחק LED של ארדואינו): 6 שלבים (עם תמונות)
ציקלון (משחק LED של Arduino): במדריך זה אלמד אתכם כיצד ליצור משחק LED עם מעט מאוד קוד או ניסיון! היה לי רעיון זה זמן מה ולבסוף התחלתי ליצור אותו. זהו משחק מהנה שמזכיר לכולנו את משחקי הארקייד. ישנן הדרכות אחרות ש
משחק ארקייד ציקלון ארדואינו: 6 שלבים
משחק ארקייד ציקלון ארדואינו: אורות נוצצים מהבהבים! ארדואינו! מִשְׂחָק! מה עוד צריך להגיד? משחק זה מבוסס על משחק ארקייד Cyclone, בו השחקן מנסה לעצור גלילת לד סביב מעגל בנקודה מסוימת
משחק ארקייד Stackers: 6 שלבים (עם תמונות)
משחק ארקייד Stackers: היי חבר'ה, היום אני רוצה לשתף אתכם במשחק הארקייד המדהים הזה שתוכלו להכין עם חבורת נוריות Ws2812b ומיקרו -בקר/FPGA. Behold Stack Overflow - יישום החומרה שלנו של משחק ארקייד קלאסי. מה שהתחיל כפרויקט בית ספר