جدول المحتويات:
- الخطوة 1: تجهيز الأجهزة
- الخطوة الثانية: إعداد البرنامج
- الخطوة الثالثة: الطباعة ثلاثية الأبعاد
- الخطوة 4: دعم شاشات الكريستال السائل
- الخطوة 5: تحضير لوحة PETG
- الخطوة 6: إصلاح لوحة ESP32 Dev
- الخطوة 7: إصلاح بطارية ليبو
- الخطوة 8: توصيل البطارية ولوحة التطوير
- الخطوة 9: تحضير دبابيس العرض
- الخطوة 10: قم بتوصيل دبابيس GND
- الخطوة 11: قم بتوصيل دبابيس Vcc
- الخطوة 12: قم بتوصيل دعم LCD و Dev Board
- الخطوة 13: قم بتوصيل دبابيس SPI
- الخطوة 14: برنامج الفلاش
- الخطوة 15: موصل I2C
- الخطوة 16: التجميع الجزء 1
- الخطوة 17: النموذج الأولي I2C Gamepad
- الخطوة 18: قم ببناء لوحة ألعاب I2C
- الخطوة 19: التجميع الجزء 2
- الخطوة 20: اختياري: دبابيس اندلاع الصوت
- الخطوة 21: ماذا بعد؟
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
توضح هذه التعليمات كيفية استخدام ESP32 و ATtiny861 لبناء وحدة تحكم لعبة محاكي NES.
الخطوة 1: تجهيز الأجهزة
مجلس تطوير ESP32
هذه المرة أستخدم لوحة تطوير TTGO T8 ESP32. تحتوي هذه اللوحة على دائرة شحن وتنظيم ليبو مدمجة ، ويمكن أن تساعد في تقليل المكونات الإضافية.
عرض
هذه المرة أستخدم شاشة IPS LCD مقاس 2.4 بوصة ، وحدة تحكم السائق ST7789V والدقة 320 × 240. هذه الدقة هي الأنسب لمحاكي NES بدقة 252 × 224.
بطارية
هذه المرة أستخدم بطارية ليبو 454261. 4.5 ملم هو سمك لوحة ESP32 ديف ، و 61 ملم هو عرض اللوحة.
رأس دبوس
رأس دبوس مستدير 4 دبابيس ورأس دبوس مستدير 4 دبابيس لتوصيل لوحة ألعاب I2C.
لوحة PETG
لوحة PET / PETG صغيرة لدعم لوحة التطوير وبطارية Lipo ، يمكنك العثور عليها بسهولة في تغليف المنتج.
متعدد الأغراض ثنائي الفينيل متعدد الكلور
يلزم وجود 2 PCB ، وسمك 1 0.4 مم لدعم الشاشة ، وسمك 1 1.2 مم للوحة ألعاب I2C.
أزرار
زر 5 اتجاهات وزرين صغيرين للاختيار والبدء و 2 للزر A و B.
وحدة تحكم غمبد I2C
هذه المرة أستخدم متحكم ATtiny861 كوحدة تحكم لوحة ألعاب I2C.
آحرون
1 SMD 12 أوم المقاوم ، مبرمج ISP (مثل TinyISP)
الخطوة الثانية: إعداد البرنامج
اردوينو IDE
قم بتنزيل Arduino IDE وتثبيته إن لم يكن بعد:
دعم ATTinyCore
اتبع خطوات التثبيت لإضافة دعم ATTinyCore إذا لم يكن كذلك:
ESP-IDF
اتبع دليل البدء ESP-IDF لإعداد بيئة التطوير إن لم يكن بعد: https://docs.espressif.com/projects/esp-idf/en/sta …
الخطوة الثالثة: الطباعة ثلاثية الأبعاد
قم بتنزيل وطباعة العلبة:
الخطوة 4: دعم شاشات الكريستال السائل
قطع 24 × 27 ثقوب 0.4 مم ثنائي الفينيل متعدد الكلور لدعم شاشات الكريستال السائل. تذكر الاحتفاظ ببعض المساحة للطي LCD FPC. ثم استخدم شريطًا لاصقًا مزدوج الجانب لإصلاح شاشة LCD على لوحة الدوائر المطبوعة.
الخطوة 5: تحضير لوحة PETG
قم بقطع لوحة PETG مقاس 62 مم × 69 مم للوحة التطوير ودعم بطارية ليبو.
الخطوة 6: إصلاح لوحة ESP32 Dev
استخدم شريطًا لاصقًا مزدوج الجانب لإصلاح لوحة التطوير على لوحة PETG.
الخطوة 7: إصلاح بطارية ليبو
استخدم شريطًا لاصقًا مزدوج الجانب لإصلاح بطارية ليبو بجانب لوحة التطوير.
الخطوة 8: توصيل البطارية ولوحة التطوير
الخطوة 9: تحضير دبابيس العرض
تحتوي شاشة LCD على العديد من الأشكال المختلفة من البائعين المختلفين. يرجى الحصول على ورقة البيانات الصحيحة وقراءتها قبل أي تصحيح واتصال.
بعض المسامير محجوزة للوحة اللمس. نظرًا لأن شاشة LCD هذه لا تحتوي على لوحة تعمل باللمس ، فإن قطع تلك المسامير ببساطة يمكن أن يقلل من الإزعاج.
الخطوة 10: قم بتوصيل دبابيس GND
في معظم الحالات ، هناك عدد قليل من المسامير التي تتطلب الاتصال بـ GND. لتقليل جهد اللحام ، قمت بقص شكل شريط نحاسي للوصول إلى جميع دبابيس GND ثم لحامها تمامًا.
الخطوة 11: قم بتوصيل دبابيس Vcc
هناك 2 دبابيس مطلوب توصيلها بـ Vcc ، و LCD power ، و LED power. وفقًا لورقة البيانات ، يمكن توصيل طاقة LCD مباشرة بلوحة dev 3.3 V pin لكن طاقة LED تعمل أقل قليلاً من 3.3 V. لذلك من الأفضل إضافة مقاوم SMD في المنتصف ، على سبيل المثال 12 أوم المقاوم.
الخطوة 12: قم بتوصيل دعم LCD و Dev Board
استخدم شريط توصيل دعم LCD ودعم لوحة التطوير معًا. يجب أن يحتفظ كلا الداعمين بفجوة تبلغ حوالي 5 مم للطي.
الخطوة 13: قم بتوصيل دبابيس 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 فولت LED - -> GND
الخطوة 14: برنامج الفلاش
- قم بتنزيل الكود المصدري على GitHub:
- ضمن مجلد التعليمات البرمجية المصدر ، قم بتشغيل "make menuconfig"
- حدد "التكوين الخاص بـ Nofrendo ESP32"
- حدد "أجهزة للتشغيل عليها" -> "أجهزة مخصصة"
- حدد "نوع LCD" -> "ST7789V LCD"
- إعدادات دبوس التعبئة: MISO -> -1 ، MOSI -> 23 ، CLK -> 18 ، CS -> 5 ، DC -> 27 ، RST -> 33 ، الإضاءة الخلفية -> -1 ، IPS -> Y
- اخرج واحفظ
- تشغيل "make -j5 flash"
- قم بتشغيل "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
الخطوة 15: موصل I2C
اندلاع دبابيس I2C ، دبابيس ESP32 الافتراضية I2C هي:
السن 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3.3 V (بدون طاقة 5 V أثناء تشغيله بواسطة بطارية Lipo) Pin 4 (GND) -> GND
الخطوة 16: التجميع الجزء 1
اتبع خطوات الفيديو لطي جميع الأجزاء وضغطها في العلبة.
الخطوة 17: النموذج الأولي I2C Gamepad
برنامج I2C Gamepad بسيط للغاية ، فقط 15 سطرًا من التعليمات البرمجية. ولكن من الصعب بعض الشيء إعادة برمجة ATtiny861 بعد اللحام ، لذلك من الأفضل اختباره على اللوح أولاً.
قم بتنزيل وتجميع وفلاش البرنامج من GitHub:
الخطوة 18: قم ببناء لوحة ألعاب I2C
فيما يلي ملخص الاتصال:
زر ATtiny861
GND -> جميع الأزرار دبوس واحد دبوس 20 (PA0) -> الزر العلوي دبوس 19 (PA1) -> الزر السفلي دبوس 18 (PA2) -> الزر الأيسر دبوس 17 (PA3) -> الزر الأيمن دبوس 14 (PA4) -> حدد الزر Pin 13 (PA5) -> زر البدء Pin 12 (PA6) -> زر A Pin 11 (PA7) -> B button Pin 6 (GND) -> I2C male pin header pin 4 Pin 5 (Vcc) -> I2C ذكر رأس دبوس 3 دبوس 3 (SCL) -> I2C ذكر دبوس رأس دبوس 1 دبوس 1 (SDA) -> I2C ذكر دبوس رأس دبوس 2
الخطوة 19: التجميع الجزء 2
اتبع خطوات الفيديو لتثبيت الغطاء ولوحة الألعاب I2C على الهيكل الرئيسي.
الخطوة 20: اختياري: دبابيس اندلاع الصوت
تقوم لوحة ESP32 dev Pin 25 و 26 بإخراج إشارة الصوت التناظرية ، ومن السهل جدًا كسر هذين المسامير وأيضًا دبابيس الطاقة (3.3 فولت و GND) في الأعلى. ثم يمكنك تصحيح سماعة أذن لتوصيلها. أو حتى يمكنك إضافة وحدة مكبر صوت مع مكبر صوت لتشغيلها بصوت عالٍ.
الخطوة 21: ماذا بعد؟
محاكي NES ليس الشيء الوحيد المثير للاهتمام الذي يمكنك صنعه باستخدام ESP32. على سبيل المثال يمكنك بناء وحدة تحكم micro python بها. المكون الوحيد الذي تحتاج إلى تغييره هو من لوحة ألعاب I2C إلى لوحة مفاتيح I2C. أعتقد أنه ليس من الصعب القيام بذلك باستخدام وحدة تحكم ATtiny88. يمكنك متابعة تويتر الخاص بي لمعرفة الحالة.