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

קונסולת משחקים כף יד ESP32: 21 שלבים (עם תמונות)
קונסולת משחקים כף יד ESP32: 21 שלבים (עם תמונות)

וִידֵאוֹ: קונסולת משחקים כף יד ESP32: 21 שלבים (עם תמונות)

וִידֵאוֹ: קונסולת משחקים כף יד ESP32: 21 שלבים (עם תמונות)
וִידֵאוֹ: Building a PS3-Controlled Battlecar with 3D Printing! 2024, יולי
Anonim
Image
Image
הכנת חומרה
הכנת חומרה

מדריכים אלה מראים כיצד להשתמש ב- ESP32 ו- ATtiny861 לבניית קונסולת משחק אמולטור NES.

שלב 1: הכנת חומרה

הכנת חומרה
הכנת חומרה
הכנת חומרה
הכנת חומרה

לוח Dev ESP32

הפעם אני משתמש בלוח dev dev TTGO T8 ESP32. ללוח זה יש מעגל טעינה ווויסות Lipo מובנה, הוא יכול לסייע בהפחתת הרכיבים הנוספים.

לְהַצִיג

הפעם אני משתמש ב- IPS LCD בגודל 2.4 אינץ '. בקר הנהג הוא ST7789V והרזולוציה היא 320 x 240. רזולוציה זו מתאימה ביותר לרזולוציית NES 252 x 224.

סוֹלְלָה

הפעם אני משתמש בסוללת ליפו 454261. 4.5 מ"מ הוא עובי לוח ESP32 dev, ו 61 מ"מ הוא רוחב הלוח.

כותרת סיכה

כותרת סיכה עגולה עם 4 סיכות וגביע סיכה עגולה נקבה עם 4 סיכות לחיבור I2C gamepad.

צלחת PETG

צלחת קטנה של PET/PETG לתמיכה בלוח ה- dev וסוללת Lipo, תוכלו למצוא אותה בקלות באריזת המוצר.

PCB רב תכליתי

2 PCB נדרש, עובי 1 מ"מ לתמיכה במסך, עובי 1.2 מ"מ עבור לוח משחקים I2C.

כפתורים

כפתור 5 כיוונים, 2 כפתורים קטנים לבחירה והתחלה ולחצן A ו- B.

בקר I2C Gamepad

הפעם אני משתמש במיקרו -בקר ATtiny861 כבקר I2C gamepad.

אחרים

נגד SMD 12 אוהם אחד, מתכנת ISP (למשל TinyISP)

שלב 2: הכנת תוכנה

הכנת תוכנה
הכנת תוכנה
הכנת תוכנה
הכנת תוכנה
הכנת תוכנה
הכנת תוכנה

Arduino IDE

הורד והתקן את Arduino IDE אם עדיין לא:

תמיכה ב- ATTinyCore

בצע את שלבי ההתקנה כדי להוסיף תמיכה ב- ATTinyCore אם עדיין לא:

ESP-צה"ל

עקוב אחר מדריך ההתחלה של ESP-IDF להתקנת סביבת הפיתוח אם עדיין לא:

שלב 3: הדפסה תלת מימדית

הדפסה תלת מימדית
הדפסה תלת מימדית

הורד והדפס את המארז:

שלב 4: תמיכה ב- LCD

תמיכת LCD
תמיכת LCD
תמיכת LCD
תמיכת LCD

חותכים לוח PCB של 0.4 על 24 מ מ לתמיכת LCD. זכור שמור מקום לקיפול FPC LCD. לאחר מכן השתמש בנייר דבק צד כפול ותקן את ה- LCD על הלוח.

שלב 5: הכינו צלחת PETG

הכינו צלחת PETG
הכינו צלחת PETG
הכינו צלחת PETG
הכינו צלחת PETG

גזור צלחת PETG בגודל 62 מ"מ x 69 מ"מ ללוח dev ותמיכה בסוללת ליפו.

שלב 6: תקן את לוח ה- Dev ESP32

תקן לוח ESP32 Dev
תקן לוח ESP32 Dev

השתמש בנייר דבק בצד כפול כדי לתקן לוח dev על צלחת PETG.

שלב 7: תקן את סוללת ליפו

תקן סוללת ליפו
תקן סוללת ליפו

השתמש בנייר דבק בצד כפול כדי לתקן את סוללת Lipo מלבד לוח ה- dev.

שלב 8: חבר את הסוללה ולוח ההתקנים

חבר לוח וסוללות
חבר לוח וסוללות

שלב 9: הכינו סיכות תצוגה

הכן סיכות תצוגה
הכן סיכות תצוגה

למסך LCD יש הרבה וריאציות של ספקים שונים. אנא השג את גליון הנתונים הנכון וקרא אותו לפני כל תיקון וחיבור.

חלק מהסיכות שמורות ללוח מגע. מכיוון של- LCD אין לוח מגע, פשוט לחתוך את הסיכות האלה יכול להפחית את ההפרעה.

שלב 10: חבר סיכות GND

חבר סיכות GND
חבר סיכות GND
חבר סיכות GND
חבר סיכות GND

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

שלב 11: חבר סיכות Vcc

חבר סיכות Vcc
חבר סיכות Vcc

יש להתחבר ל- Vcc, 2 פינים נדרשים, עוצמת LCD והספק LED. על פי גיליון הנתונים, כוח LCD יכול להתחבר ישירות ללוח 3.3V פין אך כוח LED פועל מעט נמוך מ -3.3 V. אז עדיף להוסיף נגד SMD באמצע, למשל נגד 12 אוהם.

שלב 12: חבר תמיכה בלוח LCD & Dev

חבר תמיכה בלוח LCD & Dev
חבר תמיכה בלוח LCD & Dev

השתמש בקלטת חיבור תמיכת LCD ותמיכת לוח dev יחד. שתי התמיכה צריכות לשמור על פער של 5 מ מ לקיפול.

שלב 13: חבר סיכות SPI

חבר סיכות SPI
חבר סיכות SPI

להלן סיכום החיבור:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> לא מחובר Vcc -> 3.3 V LED+ -> נגד 12 אוהם -> 3.3 V LED - -> GND

שלב 14: תוכנית פלאש

תוכנית פלאש
תוכנית פלאש
תוכנית פלאש
תוכנית פלאש
תוכנית פלאש
תוכנית פלאש
תוכנית פלאש
תוכנית פלאש
  1. הורד את קוד המקור ב- GitHub:
  2. תחת תיקיית קוד המקור, הפעל "צור menuconfig"
  3. בחר "תצורה ספציפית ל- Nofrendo ESP32"
  4. בחר "חומרה להריץ עליה" -> "חומרה מותאמת אישית"
  5. בחר "סוג LCD" -> "ST7789V LCD"
  6. הגדרות סיכת מילוי: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, תאורה אחורית -> -1, IPS -> Y
  7. צא ושמור
  8. הפעל "הפוך פלאש -j5"
  9. הפעל "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

שלב 15: מחבר I2C

מחבר I2C
מחבר I2C
מחבר I2C
מחבר I2C
מחבר I2C
מחבר I2C

פריצת סיכות I2C, סיכות ברירת המחדל של ESP32 I2C הן:

פין 1 (SCL) -> GPIO 22

פין 2 (SDA) -> GPIO 21 פין 3 (Vcc) -> 3.3 וולט (אין כוח של 5 וולט כשהוא מופעל באמצעות סוללת ליפו) פין 4 (GND) -> GND

שלב 16: הרכבה חלק 1

Image
Image

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

שלב 17: אב טיפוס I2C Gamepad

אב טיפוס I2C Gamepad
אב טיפוס I2C Gamepad
אב טיפוס I2C Gamepad
אב טיפוס I2C Gamepad

התוכנית עבור I2C Gamepad פשוטה מאוד, רק 15 שורות קוד. אבל קצת קשה לתכנת מחדש את ה- ATtiny861 לאחר הלחמה, אז מוטב לבדוק אותו קודם על לוח הלחם.

הורד, ריכז והבהב את התוכנית מ- GitHub:

שלב 18: בנה את לוח המשחקים I2C

בניית I2C Gamepad
בניית I2C Gamepad
בניית I2C Gamepad
בניית I2C Gamepad
בניית I2C Gamepad
בניית I2C Gamepad

להלן תקציר החיבור:

לחצן ATtiny861

GND -> כל הלחצנים סיכה אחת פין 20 (PA0) -> לחצן למעלה סיכה 19 (PA1) -> לחצן למטה פין 18 (PA2) -> סיכה כפתור שמאל 17 (PA3) -> לחצן ימין סיכה 14 (PA4) -> בחר כפתור בחר פין 13 (PA5) -> לחצן התחלה פין 12 (PA6) -> כפתור סיכה 11 (PA7) -> כפתור B סיכה 6 (GND) -> סיכת כותרת סיכה לזכר I2C 4 פין 5 (Vcc) -> I2C סיכה כותרת סיכה גברית 3 פין 3 (SCL) -> סיכת כותרת סיכה גברית I2C סיכה 1 סיכה 1 (SDA) -> סיכת כותרת סיכה גברית 2 I2C

שלב 19: הרכבה חלק 2

Image
Image
אופציונלי: סיכות פריצה של אודיו
אופציונלי: סיכות פריצה של אודיו

בצע את שלבי הווידאו כדי להתקין את המכסה ואת לוח המשחקים I2C לגוף המרכזי.

שלב 20: אופציונלי: סיכות פריצה של אודיו

Image
Image
אופציונלי: סיכות פריצה של אודיו
אופציונלי: סיכות פריצה של אודיו

ESP32 dev board Pin 25 ו- 26 מוציא את אות השמע האנלוגי, קל מאוד לפרוץ את 2 הפינים האלה וגם את סיכות החשמל (3.3 V ו- GND) בחלק העליון. לאחר מכן תוכל לתקן אוזניות כדי לחבר אותה. או אפילו אתה יכול להוסיף מודול מגבר אודיו עם רמקול כדי להשמיע אותו חזק.

שלב 21: מה הלאה?

מה הלאה?
מה הלאה?

אמולטור NES הוא לא הדבר המעניין היחיד שאתה יכול לעשות עם ESP32. לְמָשָׁל. אתה יכול לבנות איתו קונסולת מיקרו פייתון. הרכיב היחיד שאתה צריך לשנות הוא מ- I2C gamepad למקלדת I2C. אני חושב שזה לא כל כך קשה לעשות את זה עם בקר ATtiny88. תוכל לעקוב אחר הטוויטר שלי כדי לראות את הסטטוס.

מוּמלָץ: