Daftar Isi:
- Langkah 1: Persiapan Perangkat Keras
- Langkah 2: Persiapan Perangkat Lunak
- Langkah 3: Pencetakan 3D
- Langkah 4: Dukungan LCD
- Langkah 5: Siapkan Piring PETG
- Langkah 6: Perbaiki Papan Pengembang ESP32
- Langkah 7: Perbaiki Baterai Lipo
- Langkah 8: Hubungkan Baterai & Papan Pengembang
- Langkah 9: Siapkan Pin Tampilan
- Langkah 10: Hubungkan Pin GND
- Langkah 11: Hubungkan Pin Vcc
- Langkah 12: Hubungkan Dukungan LCD & Papan Dev
- Langkah 13: Hubungkan Pin SPI
- Langkah 14: Program Flash
- Langkah 15: Konektor I2C
- Langkah 16: Perakitan Bagian 1
- Langkah 17: Gamepad Prototipe I2C
- Langkah 18: Bangun Gamepad I2C
- Langkah 19: Perakitan Bagian 2
- Langkah 20: Opsional: Pin Audio Breakout
- Langkah 21: Apa Selanjutnya?
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Instruksi ini menunjukkan cara menggunakan ESP32 dan ATtiny861 untuk membuat konsol game emulator NES.
Langkah 1: 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
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
Unduh dan cetak kasing:
Langkah 4: 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
Potong pelat PETG 62 mm x 69 mm untuk papan dev dan dukungan baterai Lipo.
Langkah 6: Perbaiki Papan Pengembang ESP32
Gunakan pita perekat sisi ganda untuk memperbaiki papan dev pada pelat PETG.
Langkah 7: Perbaiki Baterai Lipo
Gunakan pita perekat sisi ganda untuk memperbaiki baterai Lipo di samping papan dev.
Langkah 8: Hubungkan Baterai & Papan Pengembang
Langkah 9: 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
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
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
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
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
- Unduh kode sumber di GitHub:
- Di bawah folder kode sumber, jalankan "make menuconfig"
- Pilih "Konfigurasi khusus Nofrendo ESP32"
- Pilih "Perangkat Keras untuk dijalankan" -> "Perangkat Keras Kustom"
- Pilih "Tipe LCD" -> "ST7789V LCD"
- Isi pengaturan pin: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
- Keluar dan Simpan
- Jalankan "make -j5 flash"
- Jalankan "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Langkah 15: 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
Ikuti langkah-langkah video untuk melipat dan meremas semua bagian ke dalam casing.
Langkah 17: 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
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
Ikuti langkah-langkah video untuk memasang penutup dan gamepad I2C ke bodi utama.
Langkah 20: Opsional: Pin Audio Breakout
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?
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.