Daftar Isi:

Konsol Game Genggam ESP32: 21 Langkah (dengan Gambar)
Konsol Game Genggam ESP32: 21 Langkah (dengan Gambar)

Video: Konsol Game Genggam ESP32: 21 Langkah (dengan Gambar)

Video: Konsol Game Genggam ESP32: 21 Langkah (dengan Gambar)
Video: ESP32 with little tft screen & cubic optical prism.....miku dance.... 2024, Juli
Anonim
Image
Image
Persiapan Perangkat Keras
Persiapan Perangkat Keras

Instruksi ini menunjukkan cara menggunakan ESP32 dan ATtiny861 untuk membuat konsol game emulator NES.

Langkah 1: Persiapan Perangkat Keras

Persiapan Perangkat Keras
Persiapan Perangkat Keras
Persiapan Perangkat Keras
Persiapan Perangkat Keras

Papan Pengembang ESP32

Kali ini saya menggunakan papan dev TTGO T8 ESP32. Papan ini memiliki sirkuit pengisian dan pengatur Lipo bawaan, ini dapat membantu mengurangi komponen tambahan.

Menampilkan

Kali ini saya menggunakan LCD IPS 2,4 . Driver controller ST7789V dan resolusi 320 x 240. Resolusi ini paling cocok untuk NES emulator resolusi 252 x 224.

Baterai

Kali ini saya menggunakan baterai Lipo 454261. 4,5 mm adalah ketebalan papan pengembang ESP32, dan 61 mm adalah lebar papan.

Pin Header

Header pin bulat jantan 4 pin dan header pin bulat betina 4 pin untuk menghubungkan gamepad I2C.

Piring PETG

Pelat PET / PETG kecil untuk mendukung papan dev dan baterai Lipo, Anda dapat dengan mudah menemukannya di kemasan produk.

PCB Tujuan Ganda

Diperlukan 2 PCB, tebal 1 0,4 mm untuk mendukung Tampilan, tebal 1 1,2 mm untuk gamepad I2C.

Tombol

Tombol 5 arah, 2 tombol kecil untuk Pilih dan Mulai dan 2 untuk tombol A dan B.

Pengontrol Gamepad I2C

Kali ini saya menggunakan mikrokontroler ATtiny861 sebagai pengontrol gamepad I2C.

Yang lain

1 SMD 12 Ohm resistor, programmer ISP (misalnya TinyISP)

Langkah 2: Persiapan Perangkat Lunak

Persiapan Perangkat Lunak
Persiapan Perangkat Lunak
Persiapan Perangkat Lunak
Persiapan Perangkat Lunak
Persiapan Perangkat Lunak
Persiapan Perangkat Lunak

Arduino IDE

Unduh dan instal Arduino IDE jika belum:

Dukungan ATTinyCore

Ikuti langkah-langkah instalasi untuk menambahkan dukungan ATTinyCore jika belum:

ESP-IDF

Ikuti panduan memulai ESP-IDF untuk menyiapkan lingkungan pengembangan jika belum:

Langkah 3: Pencetakan 3D

Pencetakan 3D
Pencetakan 3D

Unduh dan cetak kasing:

Langkah 4: Dukungan LCD

Dukungan LCD
Dukungan LCD
Dukungan LCD
Dukungan LCD

Potong PCB 24 x 27 lubang 0,4 mm untuk dukungan LCD. Ingat cadangan ruang untuk FPC LCD lipat. Kemudian gunakan beberapa pita perekat sisi ganda untuk memperbaiki LCD pada PCB.

Langkah 5: Siapkan Piring PETG

Siapkan Piring PETG
Siapkan Piring PETG
Siapkan Piring PETG
Siapkan Piring PETG

Potong pelat PETG 62 mm x 69 mm untuk papan dev dan dukungan baterai Lipo.

Langkah 6: Perbaiki Papan Pengembang ESP32

Perbaiki Papan Pengembang ESP32
Perbaiki Papan Pengembang ESP32

Gunakan pita perekat sisi ganda untuk memperbaiki papan dev pada pelat PETG.

Langkah 7: Perbaiki Baterai Lipo

Perbaiki Baterai Lipo
Perbaiki Baterai Lipo

Gunakan pita perekat sisi ganda untuk memperbaiki baterai Lipo di samping papan dev.

Langkah 8: Hubungkan Baterai & Papan Pengembang

Hubungkan Baterai & Papan Pengembang
Hubungkan Baterai & Papan Pengembang

Langkah 9: Siapkan Pin Tampilan

Siapkan Pin Tampilan
Siapkan Pin Tampilan

Layar LCD memiliki banyak variasi bentuk vendor yang berbeda. Harap dapatkan lembar data yang benar dan bacalah sebelum patch dan koneksi apa pun.

Beberapa pin disediakan untuk panel sentuh. Karena LCD ini tidak memiliki panel sentuh, cukup dengan memotong pin tersebut dapat mengurangi gangguan.

Langkah 10: Hubungkan Pin GND

Hubungkan Pin GND
Hubungkan Pin GND
Hubungkan Pin GND
Hubungkan Pin GND

Dalam kebanyakan kasus, ada beberapa pin yang memerlukan koneksi ke GND. Untuk mengurangi upaya menyolder, saya memotong bentuk pita tembaga untuk mencapai semua pin GND dan kemudian menyolder semuanya.

Langkah 11: Hubungkan Pin Vcc

Hubungkan Pin Vcc
Hubungkan Pin Vcc

Ada 2 pin yang diperlukan terhubung ke Vcc, daya LCD dan daya LED. Menurut lembar data, daya LCD dapat langsung terhubung ke papan dev pin 3,3 V tetapi daya LED beroperasi sedikit lebih rendah dari 3,3 V. Jadi lebih baik menambahkan resistor SMD di tengah, mis. resistor 12 ohm.

Langkah 12: Hubungkan Dukungan LCD & Papan Dev

Hubungkan Dukungan LCD & Papan Dev
Hubungkan Dukungan LCD & Papan Dev

menggunakan pita menghubungkan dukungan LCD dan dukungan papan dev bersama-sama. Kedua penyangga harus menyediakan celah sekitar 5 mm untuk pelipatan.

Langkah 13: Hubungkan Pin SPI

Hubungkan Pin SPI
Hubungkan Pin SPI

Berikut ringkasan koneksinya:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> tidak terhubung Vcc -> LED 3,3 V+ -> resistor 12 Ohm -> LED 3,3 V - -> GND

Langkah 14: Program Flash

Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
  1. Unduh kode sumber di GitHub:
  2. Di bawah folder kode sumber, jalankan "make menuconfig"
  3. Pilih "Konfigurasi khusus Nofrendo ESP32"
  4. Pilih "Perangkat Keras untuk dijalankan" -> "Perangkat Keras Kustom"
  5. Pilih "Tipe LCD" -> "ST7789V LCD"
  6. Isi pengaturan pin: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
  7. Keluar dan Simpan
  8. Jalankan "make -j5 flash"
  9. Jalankan "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Langkah 15: Konektor I2C

Konektor I2C
Konektor I2C
Konektor I2C
Konektor I2C
Konektor I2C
Konektor I2C

Breakout pin I2C, pin I2C default ESP32 adalah:

Pin 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (tidak ada daya 5 V saat ditenagai oleh baterai Lipo) Pin 4 (GND) -> GND

Langkah 16: Perakitan Bagian 1

Image
Image

Ikuti langkah-langkah video untuk melipat dan meremas semua bagian ke dalam casing.

Langkah 17: Gamepad Prototipe I2C

Gamepad Prototipe I2C
Gamepad Prototipe I2C
Gamepad Prototipe I2C
Gamepad Prototipe I2C

Program untuk Gamepad I2C sangat sederhana, hanya 15 baris kode. Tetapi agak sulit untuk memprogram ulang ATtiny861 setelah menyolder, jadi lebih baik mengujinya di papan tempat memotong roti terlebih dahulu.

Unduh, kompilasi, dan flash program dari GitHub:

Langkah 18: Bangun Gamepad I2C

Bangun Gamepad I2C
Bangun Gamepad I2C
Bangun Gamepad I2C
Bangun Gamepad I2C
Bangun Gamepad I2C
Bangun Gamepad I2C

Berikut adalah ringkasan koneksi:

Tombol ATtiny861

GND -> Semua tombol satu pin Pin 20 (PA0) -> Tombol Atas Pin 19 (PA1) -> Tombol Bawah Pin 18 (PA2) -> Tombol Kiri Pin 17 (PA3) -> Tombol Kanan Pin 14 (PA4) -> Pilih tombol Pin 13 (PA5) -> Tombol Start Pin 12 (PA6) -> Tombol A Pin 11 (PA7) -> Tombol B Pin 6 (GND) -> I2C male pin header pin 4 Pin 5 (Vcc) -> I2C male pin header pin 3 Pin 3 (SCL) -> I2C male pin header pin 1 Pin 1 (SDA) -> I2C male pin header pin 2

Langkah 19: Perakitan Bagian 2

Image
Image
Opsional: Pin Breakout Audio
Opsional: Pin Breakout Audio

Ikuti langkah-langkah video untuk memasang penutup dan gamepad I2C ke bodi utama.

Langkah 20: Opsional: Pin Audio Breakout

Image
Image
Opsional: Pin Breakout Audio
Opsional: Pin Breakout Audio

Papan dev ESP32 Pin 25 dan 26 mengeluarkan sinyal audio analog, sangat mudah untuk mematahkan 2 pin ini dan juga pin daya (3,3 V dan GND) di atas. Kemudian Anda dapat menambal earphone untuk dicolokkan. Atau bahkan Anda dapat menambahkan modul penguat audio dengan speaker untuk memutarnya dengan keras.

Langkah 21: Apa Selanjutnya?

Apa berikutnya?
Apa berikutnya?

Emulator NES bukan satu-satunya hal menarik yang dapat Anda buat dengan ESP32. Misalnya. anda dapat membangun konsol python mikro dengannya. Satu-satunya komponen yang perlu Anda ubah adalah dari gamepad I2C ke keyboard I2C. Saya rasa tidak begitu sulit untuk membuatnya dengan pengontrol ATtiny88. Anda dapat mengikuti twitter saya untuk melihat statusnya.

Direkomendasikan: