תוכן עניינים:
- שלב 1: סקירה כללית
- שלב 2: תהליך תמונה
- שלב 3: מטפל בציונים
- שלב 4: יצירת תמונות
- שלב 5: משחק פונג
- שלב 6: מנהל התקן VGA
וִידֵאוֹ: משחק פונג: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
חומרים:
לוח FPGA Basys3
כבל VGA
ויוואדו
מטרת ההנחיה היא לפתח משחק פונג שיוצג על צג. הפרויקט ישתמש ב- VHDL לתכנות ושימוש ב- Basys3 FPGA לביצוע הקוד והעברת התמונה באמצעות ממשק VGA. הדרכה זו מיועדת לאנשים שיש להם מעט ידע קודם ב- VHDL. ההדרכה תחולק ל -6 חלקים שונים: סקירה כללית, תהליך, מטפל בציונים, יצירת תמונות, משחק פונג ו- VGA.
שלב 1: סקירה כללית
התמונה למעלה היא העיצוב הסכמטי הכולל של הפרויקט
מטרת המשחק:
המשחק מורכב מתצוגה עם משוט הזזה שניתן לשלוט בו על ידי המשתמש, וקיר קבוע הפועל כגבול העליון. כאשר המשתמש לוחץ על כפתור ההתחלה, שהוא כפתור העלייה, הכדור יתחיל לקפוץ למעלה, ויקפיץ מהקיר וינסה לפגוע בחבטה. אם הכדור פוגע בהנעה, הוא קופץ שוב וממשיך להקפיץ עד שהוא מחמיץ את ההנעה. המשחק נגמר כשהכדור לא מצליח לפגוע בחבטה. המשתמש יוכל להשתמש בכפתורי שמאל וימין כדי לקבוע את תנועת ההנעה. על מנת לאפס את המשחק, על המשתמש ללחוץ על הכפתור המרכזי. זמן הריצה יירשם בתצוגה של 7 קטעים. ישנן חמש רמות, וכל עשר שניות הרמה עולה, עד שתגיע לרמה 5 שבה היא נשארת עד שהמשתמש יפסיד. הרמות נקבעות לפי מהירות הכדור; המשמעות היא שכל עשר שניות מהירות הכדור עולה ובכך מגדילה את קושי המשחק.
ארכיטקטורת מערכת:
התרשים שלהלן הוא תרשים הבלוק הבסיסי הכולל ברמה העליונה של המערכת. למערכת ארבע כניסות: לחצן R, לחצן L, התחלה ואיפוס ושעון. יש לו יציאות סינכרון אופקיות ואנכיות, RBG (המתייחס לצבע הפיקסל במיקום מסוים) ו- Score (המשמש כאוטובוס לתצוגת 7 המקטעים). לחצן העלה ישמש כנקודת ההתחלה כפתור, ולחצני הלחיצה השמאלית והימנית ישמשו להנעת ההנעה לכיוונם. תצוגת 7 הקטעים תשמש לרישום הניקוד, שהוא מספר השניות שהמשתמש שיחק מבלי להפסיד במשחק. המספר יוצג כמספר עשרוני.
ארכיטקטורת מעגלים: נבנה את הגיזמו שלנו באמצעות FSM אחד המכיל FSM קטן יותר, תת-FSM ישלוט בקושי המשחק ואילו ה- FSM הראשי ישלוט על הזרימה הכוללת של המשחק. הגיזמו שלנו ישתמש לפחות בשלושה מחיצות שעון, אחת לציון (זמן), אחת לקצב הרענון של התצוגה ואחת המחוברת לפלט של DeMux, כך שנוכל לשלוט על מהירות המשחק ימשיך עם כמויות קושי הולכות וגדלות. המשחק יזוז הרבה יותר מהר ככל שתשחק יותר. תהיה לנו קלט הבקרה של ה- DeMux במצב הנוכחי של תת-FSM כך שנוכל לשלוט כמה מהר המשחק יעבור תוך כמה זמן תשחק אותו. נשתמש בכמה מונים, אחד לרענון התצוגה ואחד לספור את הניקוד במהלך המשך המשחק. לפרויקט זה שני מודולים עיקריים ומערך של תת מודולים שיפעלו את נתוני הקלט. שני מודולי המשנה העיקריים הם מנהל התקן VGA, כמו גם מודול ההיגיון בכפתורים. מנהל התקן VGA יכלול זיכרון הניתן לתכנות, מחלק שעונים והיגיון שיפעל את הפלט לצבע. מודול ההיגיון בכפתורים יכלול גם מחלק שעונים וזיכרון הניתן לתכנות, וכן ממיר בינארי לעשרוני לתצוגת 7-פלחים עם מחלק השעונים המתאים לו.
שלב 2: תהליך תמונה
עבור החלק של תהליך התמונה בפרויקט, נקבע את תנועת הכדור והכדור. לתוכנית יש יציאות הכוללות את לחצני הלחיצה השמאלית, הימנית, העליונה והמרכזית, המצב הנוכחי, שעון, מיקומי ה- X וה- Y של הכדור, הקצה השמאלי והימני של ההנעה וכישלון. המצב הנוכחי משמש לקביעת אות ההפעלה. הקוד עובר על המקרים המרובים שהכדור יכול להזיז, וקבע תנאים לקביעת נתיב הכדור. בלוק התהליכים הבא קובע את הכיוון שהנעה נעה על סמך איזה כפתור נלחץ על ידי המשתמש. הקוד לחלק זה של הפרויקט מצורף עם הערות מפורטות המתארות מה כל חלק עושה.
שלב 3: מטפל בציונים
חלק זה מורכב מקבצים המתייחסים להצגת הציון תוך שניות בתצוגת 7 הפלחים בלוח Basys3. הוא כולל מחלק שעונים המשמש לספירת השניות, מונה ניקוד סופר את השניות שהמשתמש משחק, נהג הקטע לוקח את הציון וממיר אותו לאנודות ולקתודות שיוצגו על המסך וגם קובע את המיקום המספר יוצג ולבסוף, מטפל הקטע ממיר את הספרות הבינאריות לספרות עשרוניות שיוצגו על המסך. מטפל הציונים מרכיב את כל החלקים וממפה את האותות. הקוד לכל חמשת הקבצים מצורף למטה.
מחלק שעון:
מחלק השעון כולל כניסות Clk (שעון), CEN (אפשר פנימה) ו- Div (מחלק) ופלט Clk_out. אם אות ההפעלה מופעל, השעון יחשב על הקצה העולה.
מונה ציונים
לדלפק הציון יש כניסות Clk (שעון) ו- RST (איפוס) ויציאות Clk_Out ו- Q אשר למעשה פועל כפלט הציון.
נהג פלח
לנהג הקטע יש כניסות D1, D10, D100, D1000 ושעון. המספרים אחרי "D" מתייחסים למקום העשרוני בתצוגת 7 הקטעים. היציאות הן האנודות והספרה. השעון סופר ומקצה את המספרים ואת מיקומו. לדוגמה, "9" יוצג במקומות אלה עם "0" באלפים, מאות ועשרות. כאשר הוא עובר ל- "10", המספר יכלול כעת "1" במקום עשרות ו- "0" באלפים, מאות ואחד.
מטפל פלחים
למטפל הקטע יש ספרה כקלט שלו וקתודות כפלט. זה בעצם המספרים הבינאריים לתצוגת הקתודה כדי להפיק מספרים עשרוניים על המסך.
מטפל ציונים
מטפל הציונים מורכב מארבע הישויות הקודמות ומחבר את הכל וממפה את האותות. הוא גם מאפשר ומשבית את המונה על סמך המצב הנוכחי.
שלב 4: יצירת תמונות
דור התמונות מורכב מארבעה מרכיבים: אנימציה, מונה נכשל, רענן תמונה ומונה התחל. קבצים אלה מתייחסים לאופן יצירת התמונות בצג התצוגה.
אנימציה
לקובץ האנימציה יש קלטים Clk (אות השעון), CEN (הפעלת ספירה), RST (איפוס אות), B_X (מיקום הכדור X), B_Y (מיקום Y של הכדור), P_L (מיקום ההנעה השמאלית) ו- P_R (מיקום ההנעה הימני). הפלט הוא WA (הכתובת שאליה אנו כותבים את הצבע) ו- WD (הצבע שנכתב בכתובת שנקבעה). לקובץ יש Play_Counter שהוא מונה שישמש כקלט שליטה ל- MUX, מקודד שיכול להוציא את הצבעים הנכונים במקומות הנכונים, ולבסוף מרבב שמציג את הצבע הנכון על סמך מיקום החבטה ו כַּדוּר.
רענן את התמונה
קובץ Refresh Image משמש לרענון התמונה כמיקום הכדור והכרית משתנים. הקובץ כולל את הרכיבים מהקבצים אנימציה, התחל מונה וכשל מונה. הוא ממפה את האותות מכל רכיב ומשתמש בהיגיון מצב כדי לקבוע את האותות וכתובות הפלט.
התחל מונה
מונה ההתחלה משתמש בכניסות Clk, RS ו- CEN ויציאות WA ו- WD. הוא משתמש במונה והמרה כדי לקבוע את קלט הבקרה של ה- MUX. מרב הכפול משתמש אז בקלט כדי לקבוע כתובות צבע נכונות ושולח נתונים אלה למנהל ההתקן VGA. זה משמש להצגת "פונג" כאשר המשתמש מתחיל את המשחק.
מונה נכשל
מונה הכישלון משמש להצגת "Game Over" כאשר המשתמש מפסיד את המשחק. יש לו אות Clk, RST ו- CEN. הוא משתמש במונה ונוסחת המרה כדי לקבוע את קלט הבקרה של ה- MUX. מרב הכפול משתמש אז בקלט כדי לקבוע כתובות צבע נכונות ושולח נתונים אלה למנהל ההתקן VGA.
שלב 5: משחק פונג
חלק זה של הפרויקט כולל את קובצי ה- Pong Master, Finite State Machine (FSM), טיימר וקבצי Start Debounce.
שָׁעוֹן עֶצֶר
הטיימר כולל כניסות Clk (שעון) ו- PS (מצב הווה) וטיימר ו- Clk_out כפלט. הטיימר משמש לשינוי מהירות המשחק בערך כל חמש שניות.
זרימת FSM
ל- FSM Flow יש כניסות Clk, Fail, Timer, Bttn_S (לחצן התחלה) ו- Buttn_RST (כפתור איפוס) ופלט Pres_S (פלט מצב הווה). ה- FSM משתמש בטיימר כדי לעדכן את המצב הנוכחי למצב הבא וממשיך לעדכן את המצב הבא עד שהמשחק יגיע לרמה 5 שם הוא נשאר עד לסיום המשחק.
התחל Debounce
Start Debounce הוא ההקפצה ההתחלתית של הכדור. יש לו כניסות S_in ו- Clk ופלט S_out.
פונג מאסטר קובץ זה משתמש בכל הרכיבים הקודמים והופך אותו כך שכל הרכיבים יהיו מיידיים. קובץ האב הוא זה שמרכיב את כל הרכיבים הקודמים שבנינו יחד.
שלב 6: מנהל התקן VGA
מנהל ההתקן VGA (Visual Graphics Array) הוא תוכנה המשמשת לקבלת פקודות או נתונים הנשלחים למסך התצוגה. הנהג ניתן לנו על ידי הפרופסור שלנו. השתמש במנהל ההתקן ובכבל VGA לחיבור לוח Basys3 לצג.
כעת אתה צריך להיות מוכן להכין משחק פונג משלך באמצעות VHDL!
מוּמלָץ:
הכינו משחק פונג 1D משלכם: 5 שלבים (עם תמונות)
צור משלך פונג 1D משלך: לפרויקט זה אראה לך כיצד שילבתי לוח MDF עם כפתורי זמזם, נוריות LED וארדואינו ננו על מנת ליצור משחק פונג 1D שהוא ממש כיף לשחק בו. בדרך אראה לך כיצד ליצור את מעגל האלקטרוניקה וכיצד הוא משתנה
8x8 משחק פונג קולורדואינו: 3 שלבים
8x8 משחק פונג קולורדואינו: בהוראה זו אראה לך כיצד בניתי משחק פונג באמצעות מודול לוח מטריקס LED 8X8 RGB. מודול זה נקרא Colorduino. יש לו מיקרו -בקר מובנה וממשק לחיבור ללוחות Colorduino אחרים. יש לו את היכולת
Autodesk Tinkercad סימולציה של משחק פינג פונג ארדואינו UNO V2.0 :: 5 שלבים
Autodesk Tinkercad Simulation of Arduino UNO Ping Pong Game V2.0 :: שלום חבר'ה, במדריך זה תלמדו כיצד לדמות פינג פונג באתר Autodesk Tikercad באמצעות לוח הפיתוח של Arduino UNO. לחץ על קישור YouTube זה לצפייה בסרטון ההדמיה
8x16 LED מטריקס פונג משחק (2 משוטים לגרסת שחקן): 3 שלבים
8x16 LED מטריקס פונג משחק (2 משוטים לגרסת שחקן): קיבלתי השראה מהרבה וריאציות של משחק הפונג הקלאסי המיושם על Arduino תוך שימוש במטריצת LED 8x8. במדריך זה אראה לך כיצד לבנות את גרסת הפונג האהובה עלי הכוללת שתי משוטים - חלוץ ושוער - לשחקן
משחק פינג פונג אוטומטי: 6 שלבים
משחק פינג פונג אוטומטי: זהו משחק פינג פונג שמשתמש במנועים כדי להפעיל לעברכם כדורי פינג פונג ואתם חייבים להכות אותו בחורים. אדם אחד צריך לשגר כדורים והאדם השני צריך להכות בכדורים. **** שימו לב שזה נעשה על ידי שני תלמידי כיתה ו