สารบัญ:

คอนโซลเกมมือถือ ESP32: 21 ขั้นตอน (พร้อมรูปภาพ)
คอนโซลเกมมือถือ ESP32: 21 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: คอนโซลเกมมือถือ ESP32: 21 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: คอนโซลเกมมือถือ ESP32: 21 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: แอพมือถือคุยกับบอร์ด ESP32 ด้วย Blynk (legacy) 2024, กรกฎาคม
Anonim
Image
Image
การเตรียมฮาร์ดแวร์
การเตรียมฮาร์ดแวร์

คำแนะนำนี้แสดงวิธีใช้ ESP32 และ ATtiny861 เพื่อสร้างคอนโซลเกมจำลอง NES

ขั้นตอนที่ 1: การเตรียมฮาร์ดแวร์

การเตรียมฮาร์ดแวร์
การเตรียมฮาร์ดแวร์
การเตรียมฮาร์ดแวร์
การเตรียมฮาร์ดแวร์

บอร์ดพัฒนา ESP32

คราวนี้ฉันใช้บอร์ด 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

แผ่น PETG

แผ่น PET/PETG ขนาดเล็กสำหรับรองรับบอร์ด dev และแบตเตอรี่ Lipo สามารถพบได้ง่ายในบรรจุภัณฑ์ของผลิตภัณฑ์

PCB อเนกประสงค์

ต้องใช้ 2 PCB, หนา 1 0.4 มม. เพื่อรองรับจอแสดงผล, หนา 1 1.2 มม. สำหรับเกมแพด I2C

ปุ่ม

ปุ่ม A 5 ทิศทาง ปุ่มเล็ก 2 ปุ่มสำหรับเลือกและเริ่มต้น และ 2 ปุ่มสำหรับปุ่ม A และ B

I2C Gamepad Controller

ครั้งนี้ฉันใช้ไมโครคอนโทรลเลอร์ ATtiny861 เป็นตัวควบคุมเกมแพด I2C

คนอื่น

ตัวต้านทาน SMD 12 โอห์ม 1 ตัว โปรแกรมเมอร์ ISP (เช่น TinyISP)

ขั้นตอนที่ 2: การเตรียมซอฟต์แวร์

การเตรียมซอฟต์แวร์
การเตรียมซอฟต์แวร์
การเตรียมซอฟต์แวร์
การเตรียมซอฟต์แวร์
การเตรียมซอฟต์แวร์
การเตรียมซอฟต์แวร์

Arduino IDE

ดาวน์โหลดและติดตั้ง Arduino IDE หากยังไม่มี:

การสนับสนุน ATTinyCore

ทำตามขั้นตอนการติดตั้งเพื่อเพิ่มการสนับสนุน ATTinyCore หากยังไม่ได้:

ESP-IDF

ทำตามคู่มือเริ่มต้นใช้งาน ESP-IDF เพื่อตั้งค่าสภาพแวดล้อมการพัฒนาหากยังไม่ได้ทำ:

ขั้นตอนที่ 3: การพิมพ์ 3 มิติ

การพิมพ์ 3 มิติ
การพิมพ์ 3 มิติ

ดาวน์โหลดและพิมพ์เคส:

ขั้นตอนที่ 4: รองรับ LCD

รองรับ LCD
รองรับ LCD
รองรับ LCD
รองรับ LCD

ตัด PCB ขนาด 24 x 27 รู 0.4 มม. เพื่อรองรับ LCD อย่าลืมสำรองพื้นที่สำหรับพับ LCD FPC จากนั้นใช้เทปกาวสองหน้าติด LCD บน PCB

ขั้นตอนที่ 5: เตรียมแผ่น PETG

เตรียมแผ่น PETG
เตรียมแผ่น PETG
เตรียมแผ่น PETG
เตรียมแผ่น PETG

ตัดแผ่น PETG ขนาด 62 มม. x 69 มม. สำหรับบอร์ด dev และรองรับแบตเตอรี่ Lipo

ขั้นตอนที่ 6: แก้ไข ESP32 Dev Board

แก้ไข ESP32 Dev Board
แก้ไข ESP32 Dev Board

ใช้เทปกาวสองหน้าเพื่อยึดบอร์ด dev บนเพลต PETG

ขั้นตอนที่ 7: แก้ไข Lipo Battery

แก้ไข Lipo Battery
แก้ไข Lipo Battery

ใช้เทปกาวสองหน้าเพื่อยึดแบตเตอรี่ Lipo นอกเหนือจากบอร์ด dev

ขั้นตอนที่ 8: เชื่อมต่อแบตเตอรี่และบอร์ด Dev

เชื่อมต่อแบตเตอรี่และบอร์ด Dev
เชื่อมต่อแบตเตอรี่และบอร์ด Dev

ขั้นตอนที่ 9: เตรียม Display Pins

เตรียม Display Pins
เตรียม Display Pins

จอ LCD มีหลายรูปแบบจากผู้ขายที่แตกต่างกัน โปรดรับเอกสารข้อมูลที่ถูกต้องและอ่านก่อนแพทช์และการเชื่อมต่อใดๆ

หมุดบางตัวสงวนไว้สำหรับแผงสัมผัส เนื่องจาก LCD นี้ไม่มีแผงสัมผัส เพียงแค่ตัดหมุดเหล่านั้นออกก็สามารถลดการรบกวนได้

ขั้นตอนที่ 10: เชื่อมต่อ GND Pins

เชื่อมต่อพิน GND
เชื่อมต่อพิน GND
เชื่อมต่อพิน GND
เชื่อมต่อพิน GND

ในกรณีส่วนใหญ่ มีพินไม่กี่ตัวที่ต้องเชื่อมต่อกับ GND เพื่อลดความพยายามในการบัดกรี ฉันตัดรูปร่างเทปทองแดงเพื่อให้ไปถึงหมุด GND ทั้งหมดแล้วจึงบัดกรีทั้งหมด

ขั้นตอนที่ 11: เชื่อมต่อ Vcc Pins

เชื่อมต่อพิน Vcc
เชื่อมต่อพิน Vcc

ต้องใช้ 2 พินเพื่อเชื่อมต่อกับ Vcc, LCD และ LED ตามเอกสารข้อมูล พลังงาน LCD สามารถเชื่อมต่อกับบอร์ด dev พิน 3.3 V ได้โดยตรง แต่พลังงาน LED ทำงานต่ำกว่า 3.3 V เล็กน้อย ดังนั้นจึงควรเพิ่มตัวต้านทาน SMD ตรงกลาง เช่น ตัวต้านทาน 12 โอห์ม

ขั้นตอนที่ 12: เชื่อมต่อ LCD & Dev Board Support

เชื่อมต่อ LCD และการสนับสนุนบอร์ด Dev
เชื่อมต่อ LCD และการสนับสนุนบอร์ด Dev

ใช้เทปเชื่อมต่อรองรับ LCD และรองรับบอร์ด dev ร่วมกัน ส่วนรองรับทั้งสองควรสำรองช่องว่างประมาณ 5 มม. สำหรับการพับ

ขั้นตอนที่ 13: เชื่อมต่อ SPI Pins

เชื่อมต่อ SPI Pins
เชื่อมต่อ SPI Pins

นี่คือบทสรุปการเชื่อมต่อ:

จอแอลซีดี 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. ภายใต้โฟลเดอร์ซอร์สโค้ดให้เรียกใช้ "make 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. เรียกใช้ "make -j5 แฟลช"
  9. เรียกใช้ "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

ขั้นตอนที่ 15: ตัวเชื่อมต่อ I2C

ขั้วต่อ I2C
ขั้วต่อ I2C
ขั้วต่อ I2C
ขั้วต่อ I2C
ขั้วต่อ I2C
ขั้วต่อ I2C

ฝ่าวงล้อมพิน I2C พิน I2C เริ่มต้นของ ESP32 คือ:

พิน 1 (SCL) -> GPIO 22

ขา 2 (SDA) -> GPIO 21 ขา 3 (Vcc) -> 3.3 V (ไม่มีไฟ 5 V ขณะขับเคลื่อนด้วยแบตเตอรี่ Lipo) ขา 4 (GND) -> GND

ขั้นตอนที่ 16: การประกอบ ตอนที่ 1

Image
Image

ทำตามขั้นตอนวิดีโอเพื่อพับและบีบทุกส่วนลงในเคส

ขั้นตอนที่ 17: ต้นแบบเกมแพด I2C

เกมแพดต้นแบบ I2C
เกมแพดต้นแบบ I2C
เกมแพดต้นแบบ I2C
เกมแพดต้นแบบ I2C

โปรแกรมสำหรับ I2C Gamepad นั้นง่ายมาก เพียง 15 บรรทัดของรหัส แต่มันค่อนข้างยากเล็กน้อยที่จะตั้งโปรแกรม ATtiny861 ใหม่หลังจากการบัดกรี ดังนั้นจึงควรทดสอบบนเขียงหั่นขนมก่อน

ดาวน์โหลด คอมไพล์ และแฟลชโปรแกรมจาก GitHub:

ขั้นตอนที่ 18: สร้าง I2C Gamepad

สร้างเกมแพด I2C
สร้างเกมแพด I2C
สร้างเกมแพด I2C
สร้างเกมแพด I2C
สร้างเกมแพด I2C
สร้างเกมแพด I2C

นี่คือบทสรุปการเชื่อมต่อ:

ปุ่ม ATtiny861

GND -> ปุ่มทั้งหมดหนึ่งพิน Pin 20 (PA0) -> ปุ่มขึ้น Pin 19 (PA1) -> ปุ่มลง Pin 18 (PA2) -> ปุ่มซ้าย Pin 17 (PA3) -> ปุ่มขวา Pin 14 (PA4) -> เลือกปุ่ม Pin 13 (PA5) -> ปุ่ม Start Pin 12 (PA6) -> ปุ่ม A Pin 11 (PA7) -> ปุ่ม B Pin 6 (GND) -> I2C พินส่วนหัวของพิน 4 ขา 5 (Vcc) -> I2C ส่วนหัวของหมุดตัวผู้ ขา 3 ขา 3 (SCL) -> I2C ส่วนหัวของหมุดตัวผู้ ขา 1 ขา 1 (SDA) -> I2C ส่วนหัวของหมุดตัวผู้ ขาที่ 2

ขั้นตอนที่ 19: การประกอบ ตอนที่ 2

Image
Image
ทางเลือก: หมุดฝ่าวงล้อมเสียง
ทางเลือก: หมุดฝ่าวงล้อมเสียง

ทำตามขั้นตอนวิดีโอเพื่อติดตั้งฝาครอบและเกมแพด I2C เข้ากับตัวเครื่อง

ขั้นตอนที่ 20: ตัวเลือก: Audio Breakout Pins

Image
Image
ทางเลือก: หมุดฝ่าวงล้อมเสียง
ทางเลือก: หมุดฝ่าวงล้อมเสียง

บอร์ด dev ของ ESP32 ขา 25 และ 26 กำลังส่งสัญญาณเสียงอะนาล็อก มันง่ายมากที่จะแยกพิน 2 พินนี้และพินจ่ายไฟ (3.3 V และ GND) ที่ด้านบน จากนั้นคุณสามารถต่อหูฟังเพื่อเสียบได้ หรือแม้แต่คุณสามารถเพิ่มโมดูลเครื่องขยายเสียงพร้อมลำโพงเพื่อเล่นเสียงดังได้

ขั้นตอนที่ 21: อะไรต่อไป

อะไรต่อไป?
อะไรต่อไป?

โปรแกรมจำลอง NES ไม่ใช่สิ่งที่น่าสนใจเพียงอย่างเดียวที่คุณสามารถสร้างด้วย ESP32 เช่น. คุณสามารถสร้างคอนโซล micro python ได้ องค์ประกอบเดียวที่คุณต้องเปลี่ยนคือจากแป้นเกม I2C เป็นแป้นพิมพ์ I2C ฉันคิดว่ามันไม่ยากเลยที่จะสร้างมันด้วยคอนโทรลเลอร์ ATtiny88 คุณสามารถติดตาม Twitter ของฉันเพื่อดูสถานะ

แนะนำ: