היום יש לנו פרויקט עם קונסולת משחקי מיקרו, שכל אחד יכול לחזור עליה.
חומרים ורכיבים הכרחיים:
מדריך זה נלקח מערוץ היוטיוב של AlexGyver. בקר המיקרו לפרויקט זה זקוק לכך:
זהו Attiny85 בחבילת DIP, זה יספיק לנו. כדי לא להלחם אותו, אנו לוקחים את השקע שנקרא.
אנו זקוקים גם לתצוגה עם Aliexpress, OLED ברזולוציה של 128 על 32 פיקסלים.
סיכות גם שימושיות.
הכפתורים שנשתמש בהם כאן הם:
כמובן שאתה יכול לקחת מקלדות, אבל הם חייבים להיות סופיים, אבל אני לא ממש רוצה לגזור ולהלחם. תא הסוללה הוא מסוג זה:
ואנחנו נרכיב את קונסולת המשחק שלנו עם קרש לחם (אם תרצו תוכלו להכין לוח בעצמכם). אנו נבהב את מתכנת ה- USBasp, אך כל AVR יעשה זאת.
תרשים חיווט הרכיבים יהיו כדלקמן:
התצוגה מתחברת לסיכות האוטובוס I2C של המיקרו-בקר. אנו מחברים כפתורים לפינים חופשיים אחרים. הוסף גם מתג להפעלה / כיבוי של המערכת. ובעצם זה הכל, נותר לחבר את הכוח.
הקושחה נטענת בבקר המיקרו על ידי המתכנת על פי הסכימה הבאה:
עכשיו בואו נתחיל בהרכבה ונארגן את כל האלמנטים שעל גבי הלוח. בואו ננסה להרכיב ולראות איך הכל נראה.
התברר שהוא סגפני למדי. לא רע. ניתן לנסר את החלק העודף של קרש הלחם.
כעת אנו מתקנים את כל הרכיבים רק על ידי הלחמת רגליהם.
עכשיו אתה צריך לחבר את המסקנות בהתאם לתכנית. לצורך כך ממליץ המחבר להשתמש בחוט הרכבה סיני דק.
ובנוחותכם תוכלו להשתמש בתרשים החיבור המראות הזה.
לחוטים אלה בידוד כה דק שאתה יכול להלחם אותם ישירות. הבידוד עצמו יתמוסס והחוט יוברח.
לאחר מכן המשך לאיטום תא הסוללה והמתג. יש לתקן את התא גם עם אקדח דבק חם.
ובכן, זה הכל, המערכת מורכבת, נשאר להוריד את הקושחה. אנו נבהב את "האבן" בנפרד על ידי חיבורו למתכנת שעל גבי הלוח.
הקושחה, כמו כל הפרויקטים של המחבר, נמצאת ברשות הרבים וניתנת להורדה מ. גם בעמוד הפרויקט תמצאו תרשים וכל המידע הדרוש האחרים על פרויקט זה.
לא נתעכב על ההורדה בפירוט, אם משהו לא ברור, אתה תמיד יכול להסתכל במחבר לקבלת הוראות מפורטות.
עבור קושחה, פשוט התקן ארדואינו אידיא, התקן את הגרעין לעבודה עם בקרי מיקרו מסדרת Attiny, בחר לוח, בחר מתכנת.
ואז בחר את התדר של 8 או 16 מגהרץ, פתח את הלשונית "כלים", מצא ובחר "הקלט את טעינת האתחול".
אין שם מטעין, אך בקר המיקרו יהיה מכוון לתדר הנדרש. ואז בחר בכרטיסייה "סקיצה" - "הורד דרך המתכנת". ואנחנו מחכים עד שהסקיצה תוטען במיקרו-בקר.
כעת אנו מוציאים את "האבן" ומכניסים אותה ללב קונסולת המשחקים המיני שלנו.
כפי שאתה יכול לראות, זה עובד! ועכשיו בואו נסתכל מקרוב על מה שיש לנו בקושחה. ATtiny85 הוא בקר מיקרו עם 512 בתים של זיכרון RAM, שהוא קטן מאוד. 99% מהספריות לעבודה עם תצוגה כזו משתמשים במאגר בצד המיקרו כדי לצייר מחדש את התמונה בצורה נכונה, מכיוון שתצוגה זו אינה יכולה לקרוא נתונים מהמאגר שלה והיא נמצאת שם דרך אגב.
המאגר לתצוגה זו של 128 * 32 פיקסלים ייקח 512 בתים, אם נרצה לזכור את המצב של כל ביט, כלומר פיקסל.
בנוסף למאגר, עלינו גם לאחסן נתונים אחרים, כך שאופציה זו בהחלט לא מתאימה לזיכרון בגודל כזה.
לכן, הוחלט להוריד את רזולוציית התצוגה ל 64 * 16 פיקסלים על ידי חוצץ ריבועים של 4 פיקסלים.
המחבר עבד עם תצוגה זו ישירות והצליח ליישם בהצלחה את הרעיון שלו. רישום עשוי להועיל למי שרוצה לעבוד עם התצוגה הזו באמצעות Attiny.
עכשיו לגבי המשחק עצמו. זה עובד די פשוט. הכדור נע על טיימר נפרד, התנועה כוללת מחיקת נקודה עם אותם קואורדינטות והוספת נקודה חדשה בקואורדינטות החדשות.
חישוב הקואורדינטות הוא פשוט תוספת של ערכי מהירות לקואורדינטות במערכת התצוגה.
כאשר הכדור חורג מהקירות האופקיים, הוא פשוט מקפיץ אותם, משנה את המרכיב האנכי של המהירות להיפך, כלומר עם סימן מינוס (-).
בנוסף, התוכנית בודקת את הגבולות האנכיים של מגרש המשחק, אם הכדור פגע במחבט (טוב, או איך שלא תקראו לזה נכון), אז הוא מקפיץ, וזווית הניתור אקראית.
אם הכדור שובר את הקיר מאחורי המחבט, לפיכך, השחקן איבד את הסיבוב הנוכחי, והיריב מקבל נקודה.
תנועת המחבט של השחקן מיושמת באותו אופן כמו תנועת הכדור, כלומר המחבט הישן נמחק ונמשכת חדשה, כבר עם קואורדינטות חדשות. הקואורדינטות משתנות כאשר אתה לוחץ על הכפתור.
לפיכך, מסתבר שהרבה יותר מהיר מניקוי התצוגה כולה ועיבוד מחדש של כל האלמנטים.
עכשיו למחבט של היריב. זה נשלט על ידי AI (בינה מלאכותית).
ובכן, כמובן, נאמר בקול רם בקול רם, אך עם זאת אינטליגנציה זו עושה דבר פשוט מאוד, כלומר היא גורמת למחבט לנוע בכיוון בו נמצא הכדור כעת, תוך ניסיון ליישר את מרכזו לאורך הציר האנכי עם הקואורדינטה האנכית של הכדור. על מנת לנצח באמת יריב כזה, המחבר גרם לו לאט, כלומר הוא מחשב את המהלך הבא שלו שוב לפי הטיימר, וכך יתכן שלא יהיה לו זמן לתפוס את הכדור ובכך להדוף אותו.
גם במשחק מיושמים מכניקה של מורכבות גוברת. כל 10 נקודות לטובת השחקן, מהירות הכדור עולה. יחד עם זאת, גם מהירות התגובה של ה- AI (היריב) גדלה.
כתוצאה, הנה פונג קטן כל כך פשוט. לא בכדי, משחק הווידיאו הזה פותח לראשונה, מכיוון שאפילו מתכנת מתחיל יכול לכתוב אותו. אך למרות הפשטות לכאורה של הפרויקט, המהומה עם התצוגה הסינית לקחה בערך 20 שעות של זמן טהור מהכותב. יחד עם זאת, הוא לא לקח בחשבון את הזמן הקדיש לכתיבת קוד המשחק עצמו וזרימת עבודה אחרת ביחס לאיתור ניפוי והקמת המעגל.
בדבר זה, הבאז עצמו הוא תהליך ההרכבה, ולא היישום.פיתוח משחקים, אפילו כאלה פשוטים, יכול להיות באמת די מעניין. במיוחד כשמנסים לדחוף אותם למיקרו-בקר זעיר מאוד. וכשהתצוגה הסינית מחכה לכם מעבר לפינה ...
זה הכל. תודה על תשומת הלב. נתראה בקרוב!
הסרטון של המחבר: