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

מסוף VGA של Arduino עם חמישה משחקים: 4 שלבים
מסוף VGA של Arduino עם חמישה משחקים: 4 שלבים

וִידֵאוֹ: מסוף VGA של Arduino עם חמישה משחקים: 4 שלבים

וִידֵאוֹ: מסוף VGA של Arduino עם חמישה משחקים: 4 שלבים
וִידֵאוֹ: Telnet объяснил 2024, נוֹבֶמבֶּר
Anonim
Image
Image
קונסולת VGA של Arduino עם חמישה משחקים
קונסולת VGA של Arduino עם חמישה משחקים
קונסולת VGA של Arduino עם חמישה משחקים
קונסולת VGA של Arduino עם חמישה משחקים

ב- Instructables הקודם שלי, שיחזרתי גרסאות מפושטות של כמה ממשחקי הארקייד הקלאסיים הפופולריים ביותר, באמצעות ארדואינו חשוף ומעט רכיבים אחרים. בהמשך הצטרפתי לחמישה מהם יחד במערכון אחד. כאן אראה כיצד תוכלו לבנות קונסולה פשוטה שיכולה לשחק פונג, פריצה, בומבר, טטריס וצעצוע ציור בהשראת עט-א-סקיצה. ניתן להשתמש בקונסולה זו גם למשחק Snake, ושני משחקים נוספים שנכתבו על ידי מחברים אחרים: Bit Ninja מאת סנדרו מאפיודו המכונה "Smaffer" ו- Stacker מאת Nikita Kurylev.

התכונה העיקרית היא יצירת אות VGA, הודות לספריית VGAx, ולכן הקונסולה זקוקה לצג VGA. המטרה שלי, כרגיל, היא להימנע מכל "רכיב מיוחד" לבנייתו, אז אתה לא צריך שום תמיכה או מגינים תומכים! הרכיבים היחידים הם שני פוטנציומטרים, חמישה כפתורים, מעט נגדים ומחבר DSUB15 (VGA). רמקול פיזו הוא אופציונלי. אתה יכול לראות איך המשחקים האלה נראים בתמונות בדף זה.

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

שלב 1: כיצד לבנות מסוף Arduino VGA משלך

כיצד לבנות מסוף Arduino VGA משלך
כיצד לבנות מסוף Arduino VGA משלך
כיצד לבנות מסוף Arduino VGA משלך
כיצד לבנות מסוף Arduino VGA משלך

הורד תחילה את קודי ArduinoVGAgame.ino ו/או Snake.ino בתחתית דף זה והעתק אותם למחשב שלך בספרייה עם אותו שם. הורד את ספריית VGAx מהקישור הזה ב- GitHub. הדרך הקלה ביותר היא להעתיק אותו בתיקיית המשנה של תוכנת Arduino בשם "ספריות", כך שזוהה מיד.

חשוב: ספרייה זו פועלת עבור Arduno IDE 1.6.4 אך היא אינה תואמת באופן מלא לגרסאות ישנות או חדשות יותר.

העלה את הקוד בלוח ה- Arduino שלך (בדקתי גם את אונו וגם את ננו). אזהרה לגבי זיכרון זמין היא תקינה. אם אין לך שגיאות אחרות הכל בסדר ותוכל מיד להתחיל לבנות קונסולה משלך.

בשביל זה אתה צריך:

  • Arduino Uno Rev. 3 או Arduino Nano 3.x (ATmega328)
  • מחבר DSUB15, כלומר מחבר נקבה VGA או כבל VGA שיש לחתוך.
  • נגדים: 2 x 68 אוהם ו -2 x 470 אוהם ו -5 x 1 עד 2 קאוהם
  • שני פוטנציומטרים ליניאריים של 10 kOhm (גם ערכים דומים בסדר)
  • חמישה כפתורים
  • חתיכת כבל כלשהי
  • קופסה אחת או שתיים נחמדות לשים את כל הרכיבים.

פקולטטיבית:

  • קרש לחם או לוח רצועות
  • רמקול פיזו

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

הסכימה מראה כיצד לחבר כפתור ופוטנציומטר. ליתר דיוק, עליך לחבר חמישה כפתורים לפינים 5, 10, 11, 12 ו -13 בהתאמה. הפעולה המבוצעת על ידי כל כפתור מתוארת בטבלה הימנית העליונה בתרשים. בצד שמאל מוצג כיצד לחבר פוטנציומטר (אתה צריך שני פוטנציומטרים לסיכות A1 ו- A2). הרמקול חייב להיות מחובר לפין אנלוגי A0.

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

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

שלב 2: משחקים מחברים אחרים

סנדרו מאפיודו פרסמה לאחרונה את המשחק BitNinja. Youn יכול למצוא מידע נוסף כאן ולהוריד את הקוד כאן.

כדי להשתמש בקונסולה שלי, עליך רק לשנות את הלחצן בקוד שלו כדלקמן:

#define BTN_UP 11 (במקום 13)

#define BTN_LEFT 10 (במקום 12)

#define BTN_RIGHT 12 (במקום 11)

סטאקר, מניקיטה קורליב, זמין כאן. מידע נוסף כאן.

שוב, עליך לשנות מחדש כפתור אחד, בחלק אחר של הקוד: פשוט החלף את DigitalRead (2) ב- digitalRead (13)

שלב 3: נספח 1: פרטים נוספים אודות אופן בניית הבקרים

נספח 1: פרטים נוספים אודות אופן בניית הבקרים
נספח 1: פרטים נוספים אודות אופן בניית הבקרים
נספח 1: פרטים נוספים אודות אופן בניית הבקרים
נספח 1: פרטים נוספים אודות אופן בניית הבקרים
נספח 1: פרטים נוספים אודות אופן בניית הבקרים
נספח 1: פרטים נוספים אודות אופן בניית הבקרים
נספח 1: פרטים נוספים אודות אופן בניית הבקרים
נספח 1: פרטים נוספים אודות אופן בניית הבקרים

אתה יכול לממש את הבקר בדרכים רבות ושונות, בהתאם לחומר הזמין וטעמך.

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

ראשית אני ממליץ לחבר מחדש את יציאת ה- VGA. בתמונה הראשונה והשנייה ניתן לראות כמה פרטים: שימו לב לשני נגדי 470 אוהם לאדום וירוק המחוברים לפינים 6 ו -7 בהתאמה, ושני 68 אוהם לסיכות 3 ו -9 לאות סינכרון אופקי ואנכי.

אתה יכול לבחור שילובי צבעים שונים בהתאם לסיכות שאתה מחבר במחבר VGA DSUB15, הפינים 1, 2 ו -3 מייצגים אדום, ירוק, כחול (RGB) בהתאמה. חיברתי את הפינים 1 ו -2, ולכן יש לי את שילוב הצבעים הבא: (0, 0) = שחור; (1, 0) = אדום; (0, 1) = ירוק; (1, 1) = צהוב.

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

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

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

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

שלב 4: נספח 2: כמה שיקולים לגבי גבולות הזיכרון

זה מדהים שארדואינו פשוט מסוגל לייצר אות VGA וכל המשחקים האלה יחד. צוואר הבקבוק האמיתי הוא היעדר SRAM. למיקרו AVR יש רק 2048 בתים הזמינים לאחסון ולתפעול של המשתנים, וספריית VGAx מאחסן את משתני המסך במאגר מסגרות של 120x60 פיקסלים שבו כל פיקסל צריך 2 סיביות (4 צבעים), בסך הכל של 1800 בתים. המשמעות היא שנשארו רק 248 בתים למשתני הסקיצות. יתר על כן, מניסיוני, יש להשאיר לפחות 100 בתים פנויים כדי להימנע מיציבות. באמצעות יותר מ -1950 בתים של זיכרון דינאמי, המיקרו -בקר מתחיל להציג התנהגות מוזרה ובלתי צפויה.

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

יתר על כן, הייתי צריך להשתמש בפורמט המשתנה המינימלי האפשרי: למשל, עבור כל הקואורדינטות הייתי צריך להשתמש ב"בייט "במקום" int "או, במקרים אחרים, הייתי צריך להעדיף" int "במקום" float ".

לבסוף, ההכרה שלי הולכת לסנדרו מאפיודו (aka Smaffer), יוצר ספריית VGAx והמשחק המדהים BitNinja. ללא הספרייה הזו לא ניתן היה לממש את הפרויקט הזה.

תודה גם לניקיטה קורליב על המשחק פשוט אך מצחיק Stacker.

מוּמלָץ: