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

משחק ארקייד Stackers: 6 שלבים (עם תמונות)
משחק ארקייד Stackers: 6 שלבים (עם תמונות)

וִידֵאוֹ: משחק ארקייד Stackers: 6 שלבים (עם תמונות)

וִידֵאוֹ: משחק ארקייד Stackers: 6 שלבים (עם תמונות)
וִידֵאוֹ: Curious Beginnings | Critical Role: THE MIGHTY NEIN | Episode 1 2024, דֵצֶמבֶּר
Anonim
סטארקרס משחק ארקייד
סטארקרס משחק ארקייד

היי חברים, היום אני רוצה לשתף אתכם במשחק הארקייד המדהים הזה שתוכלו להכין עם חבורות נוריות Ws2812b ומיקרו -בקר/FPGA. Behold Stack Overflow - יישום החומרה שלנו של משחק ארקייד קלאסי. מה שהתחיל כפרויקט בית ספרי הפך במהירות לעמל של אהבה כשהתחלנו להשקיע יותר ויותר זמן בפיתוח המשחק שלנו ולמידה ממנו יותר (והזנחת הלימודים בתהליך xD). בסופו של דבר, המשחק שלנו היה כל כך בנוי והתקבל היטב על ידי בית הספר שלנו עד שהוא הוחרם (כחומר הדגמה לקבוצת התלמידים הבאה). ובכן, תמיד נוכל לבנות אחד נוסף. בואו נתחיל!

גרסה מקוונת של המשחק:

שלב 1: מה אתה צריך?

מה אתה צריך?
מה אתה צריך?
מה אתה צריך?
מה אתה צריך?
מה אתה צריך?
מה אתה צריך?
מה אתה צריך?
מה אתה צריך?

חומרים:

1. מיקרו -בקר/מיקרו -מחשב/FPGA - ה- FPGA משמש ליישום ההיגיון של המשחק שלנו. בחר את הלוח שלך, עבור הפרויקט שלנו אנו נדרשים להשתמש בלוח Mojo FPGA. עבור לא יזומים, זהו סוג של לוח המשתמש בחומרה ליישום הפונקציות שלו ולא בקודים. לפיכך, הייתי אומר שהרמה הנמוכה למדי שלה ושונה לחלוטין מאשר אם אתה משתמש בארדואינו או בפי. אם אתה משתמש בלוחות אחרים, עליך לכתוב קוד משלך, אבל המשחק הזה די קל לקידוד והיי! עכשיו אתה יכול ללמוד גם קידוד!

2. נוריות Ws2812b - כאן אנו משתמשים בנורות LED לבניית התצוגה למשחק שלנו. לא יכול להיות יצרן אם לא נגעת ב- Ws2812b לפני xD. זוהי כתובת אחת שניתן להתייחס אליה, כי אתה יכול לנתק נוריות בודדות ולהדביק אותן בכל מבנה שאתה אוהב. וזה RGB כלומר שאתה יכול להוציא כל צבע שאתה אוהב. יתר על כן, FastLED - ספריית Arduino לשליטה ב- Ws2812b מפותחת היטב. אני ממליץ לאנשים להשתמש ב- Arduino במקום ה- FPGA אם אין לך כזה. אתה יכול לרכוש את הנורות מ- Taobao/Amazon אבל קנינו את שלנו מהמגדל Sim Lim בסינגפור.

3. עץ-למעטפת החיצונית השתמשנו בדיקט בעובי 1 ס"מ ובמטריצת ה- LED השתמשנו בדיקט בעובי 0.3 ס"מ. מצאנו את אספקת העץ שלנו מהמעבדה המדהימה של בית הספר שלנו.

4. אקריליק מפזר אור - למסך שלנו, ניסינו סוגים שונים של אקריליק ומצאנו את האקריליק הקפוא הזה שנקרא PL -422 וזה ממש טוב להפצת אור. אם אינך מוצא את הדגם המדויק נסה לחפש אקריליק חלב. קנינו את שלנו ב- Dama Plastics בסינגפור.

5. לוח קצף - על מנת להפריד כל פיקסל אור בודד, היינו צריכים מבנה רשת וקצף זה הוא החומר האידיאלי לכך. קנינו לוח קצף בעובי 0.5 ס מ בחנות הספרים בבית הספר שלנו.

6. כפתור אדום גדול - אוקיי, אין צורך שיהיה לנו כפתור אדום כל כך גדול אבל תמיד טוב שיש כפתור לאנשים לטרוק! xD קנינו אותו במגדל סים לים בסינגפור.

כלים:

1. דבק עץ

2. מלחם

3. הלחמה

4. חוטים. הטוב ביותר אם יש לך חוטים רכים בהשוואה לחוטים הנוקשים יותר. וליבה אחת בהשוואה לרב ליבות.

5. חשפן חוט

6. חותך תיל

7. מקדחה עם מקדחי 1 מ מ

8. מסור גלילה

9. מסור להקה

איתור באגים:

1. יחידת אספקת חשמל משתנה

2. אוסצילוסקופ

שלב 2: אבות טיפוס מהירים

אב טיפוס מהיר
אב טיפוס מהיר
אב טיפוס מהיר
אב טיפוס מהיר
אב טיפוס מהיר
אב טיפוס מהיר
אב טיפוס מהיר
אב טיפוס מהיר

עבור הפרויקט שלנו, השתמשנו באב טיפוס מהיר לפני שבנינו את מטריצת ה- LED שלנו ותכנתנו את המשחק שלנו. הסיבה לכך היא שאנחנו לא רוצים לבנות את מטריצת ה- LED רק כדי להבין שהקודים שלנו לא עובדים או שההיגיון במשחק שלנו פגום היא בדרך כלשהי.

בצד החומרה, בשלב הראשון רק בדקנו את ההיגיון שלנו בהעברת דפוסי האור על מטריצת ה- LED הפשוטה שלנו. ברגע שבדקנו שההיגיון מסתדר, יצאנו לחתוך רצועות של 5 נוריות Ws2812b רק כדי לבדוק את ההיגיון במשחק שלנו עם שורות שונות. ברגע שזה מסתדר, אנו ממשיכים לייצר את מטריצת ה- LED בקנה מידה מלא.

בדקנו גם דוגמאות אקריליות שונות עם ה- LED לפני שהסתפקנו ב- PL-422 כמפזר האור הטוב ביותר. ולגבי מבנה המפריד בדקנו גם גבהים שונים כדי שה- LED יתפזר במלואו. בסופו של דבר הבנו ריבוע בגודל 3 ס"מ*3 ס"מ בגובה 4 ס"מ כדי להיות הטוב ביותר להפצה. בהתבסס על גודל אופטימלי זה, החלטנו גם מהו גודל הדיקט הדרוש למטריצת LED 5 על 11 על ידי השארת פער של 0.5 ס"מ לקצף בין הריבועים.

בצד התוכנה, אנו מנסים להיות מודולריים ככל האפשר - אנו בוחנים תחילה האם ניתן להדליק את נוריות הלדים לפני שתוסיף את פונקציית המשמרת ולאחר מכן אחרות. התוצאות עלולות להיות קטסטרופליות אם לא תעשה זאת. למדנו את זה בדרך הקשה כשניסינו לקודד את כל המשחק בנתח גדול לפני שהבנו שאנחנו לא יכולים לאתר אותו. אאוץ!

שלב 3: הכנת המארז

ביצוע המארז
ביצוע המארז
ביצוע המארז
ביצוע המארז
ביצוע המארז
ביצוע המארז
ביצוע המארז
ביצוע המארז

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

בחלק האחורי של הדיקט, רצינו לגשת בקלות אל האלקטרוניקה בפנים ומכאן שהפכנו אותו לחתיכת נעילה במקום שתוכל להסיר בקלות מתי שתרצה.

כדי לצרף את הכפתור, ציירנו תחילה עיגול בגודל של קוטר המיקרו -כפתור של הכפתור (החלק הארוך התחתון של הכפתור). לאחר מכן קידחנו חור ליד הקצה והשתמשנו במסור המגילה כדי לנסר עיגול דרכו. לאחר מכן הנחנו את הכפתור והברגנו אותו.

כמו כן, חתכנו חתיכת דיקט דקה כבסיס מטריצת ה- LED שלנו בהתאם לגדלים שחישבנו קודם.

הערה: אני מתנצל על היעדר תהליך צעד אחר צעד. לא תיעדנו את השלבים לאורך כל הדרך ועד שהבנו שעלינו לתעד את השלבים, המעטפת כבר נעשתה. התרשים הוא גם לא המידות הסופיות.

שלב 4: הכנת מטריצת ה- LED

הכנת מטריצת LED
הכנת מטריצת LED
הכנת מטריצת LED
הכנת מטריצת LED

בעזרת החלק הדק שחתכנו קודם לכן, אנו מסמנים תחילה את המיקום של כל LED על ידי ציור ריבוע המבוסס על מבנה הקצף שלנו וציור צלב באמצע הריבוע כמקום בו עלינו להדביק את ה- LED. לאחר מכן אנו גם מקדחים 3 חורים קטנים מכל צד של הלד כדי שהחוטים יעברו וילחמו אותם לכל לד.

אנחנו מחרזות כל שורת LED לפי פיני ה- Data In ו- Data Out שלהן ומלחמות כל GND ו- VCC לחוט משותף. ה- Data In המוביל יפיק את דפוסי האור לכל שורה וחיברנו אותו ל- pinout של המיקרו -בקר/FPGA. תוכל גם לרתך את הנתונים האחרונים מתוך שורה אחת לנתוני הנתונים המובילים של שורה אחרת. הדרך שבה נורית Ws2812b עובדת היא שכל נורית מכילה IC שייקח את הנתונים הדרושים מהחוט ויעביר את השאר בשרשרת. ביססנו את ה- LED שלנו על הוראות פנטסטיות אחרות (למעשה, העתקנו אותו בדיוק! XD)

כאן נרצה להדגיש גם את חשיבות השימוש בחוטים רכים. אם אתה משתמש בחוטים קשיחים וקשיחים עבור סיכת ה- Data In המובילה, מה שקורה הוא שבכל פעם שתמשוך את החוט הוא עלול לשלוף את ריפוד הנחושת ב- Ws2812b שלך שיהרוס אותו. בפרויקט זה, לפני שהחלפנו לחוטים רכים, הרסנו בסך הכל 40 נוריות שהם 1/3 מנורות הלד הדרושות לפרויקט שלנו.

ניתן להנחיה:

שלב 5: כתיבת קודי המשחק וחומרת איתור באגים

כתיבת קודי המשחק וחומרת באגים
כתיבת קודי המשחק וחומרת באגים
כתיבת קודי המשחק וחומרת באגים
כתיבת קודי המשחק וחומרת באגים
כתיבת קודי המשחק וחומרת באגים
כתיבת קודי המשחק וחומרת באגים

Mojo פועל על Lucid HDL, שהיא לא השפה הפופולרית ביותר שיש. איננו יכולים למצוא ספריות LED מסוג Ws2812b ב- Lucid, ולכן נקטנו בכתיבת ספרייה משלנו, וזו חוויה מעניינת מאוד. לשם כך ניתחנו תחילה את האות שמתעלף באמצעות ספריית ה- FastLED של Arduino וכתבנו קודים לשכפול זה. להלן טריק של איתור באגים בחומרה, האוסילוסקופ מאוד מאוד שימושי לנתח אותות, בין אם מדובר באיתור איתות משלך שאינך בטוח בו או בדיקה והעתקה של אותות אחרים.

לאחר כתיבת הספרייה עבור Ws2812b, לאחר מכן אנו ממשיכים לקוד למשחק, השתמשנו בפונקציות shift Bit כדי להזיז כל בלוק שמאלה וימינה והשתמשנו ב- Bitwise AND ל- AND בריבועי כל שורה לשורה הקודמת. אתה יכול גם לחשוב על יישום זה בארדואינו, וזה לא אמור להיות כל כך קשה. אפילו קידדנו מסכי משחק בשביל הכיף!

למשחק שלנו היו 2 רמות, שהוא משחק הערימה הגלוי (ירוק) והרמה השנייה משחק הערימה הבלתי נראה (כחול).

גם לאחר שהיו לנו קודים ומטריצת LED עובדת, לפעמים אנו עדיין נתקלים בבעיות כגון אורות מהבהבים או אורות דולקים כאשר הם לא צריכים. הבעיה היא בדרך כלל בגלל הארקה לא תקינה, רמת אספקת החשמל או הפרעות. כאן תזדקק לכלי איתור באגים של חומרה כגון יחידת אספקת חשמל משתנה כדי לבדוק אם אספקת החשמל של המוג'ו/ארדואינו מספיקה או גבוהה מדי. מניסיוני, ל- Ws2812b יש טווח די רחב של מתח עבודה בין 2.8v - 5v. כאן יש לי סרטון שמראה את האורות משתגעים אחרי שאני מגביר את הכוח.

עם זאת, בדיקה נוספת העלתה שיש לנו הלחמה לא תקינה, לאחר הלחמה חוזרת, הבעיה שלנו נפתרה. יכולה להיות גם בעיה בהתערבות או בדיבורים צולבים, אך למרבה המזל, מעולם לא התמודדנו עם אף אחד מהם.

קודי Github:

Shift Arduino Bitwise:

Arduino Bitwise AND:

שלב 6: חיבור הכל ביחד

לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד

יש לך את המעטפת ואת מטריצת ה- LED. הגיע הזמן לחבר הכל ביחד. ראשית אנו ממקמים את הקצף בחזית ומטריצת ה- LED מאחוריה והתאים את המיקום. מכיוון שלקצף יש חיכוך גבוה מאוד הוא פשוט הותקן בחיכוך בזמן שמטריצת ה- LED מודבקת חמה במקומה. לאחר מכן הנחנו את המסך מול הרשת. לאחר מכן חיברנו את הסיכה של כל שורה למיקרו -בקר והתחלנו לשחק!: ד

דבר אחד שאני אוהב בפרויקט הזה הוא הגמישות שלו, אתה תמיד יכול לתכנת מחדש את המיקרו -בקר כדי להיות חלק ממשחק אחר ולנסות משהו כמו יצירת אנימציה או משחק תגובה. מקווה שנהניתם להכין את זה ולמדו משהו להכנת זה. GgEz!

מוּמלָץ: