Isi kandungan:

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

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

Video: Konsol Permainan Genggam ESP32: 21 Langkah (dengan Gambar)
Video: Real PSP vs Fake PSP #shorts 2024, Julai
Anonim
Image
Image
Penyediaan Perkakasan
Penyediaan Perkakasan

Instruksional ini menunjukkan cara menggunakan ESP32 dan ATtiny861 untuk membina konsol permainan emulator NES.

Langkah 1: Penyediaan Perkakasan

Penyediaan Perkakasan
Penyediaan Perkakasan
Penyediaan Perkakasan
Penyediaan Perkakasan

Papan Dev ESP ESP32

Kali ini saya menggunakan papan dev TTGO T8 ESP32. Papan ini mempunyai litar pengisian dan pengawalan Lipo terbina dalam, ia dapat membantu mengurangkan komponen tambahan.

Paparan

Kali ini saya menggunakan LCD IPS 2.4 . Pengawal pemandu adalah ST7789V dan resolusi 320 x 240. Resolusi ini paling sesuai untuk resolusi NES emulator 252 x 224.

Bateri

Kali ini saya menggunakan bateri 454261 Lipo. 4.5 mm adalah ketebalan papan dev ESP32, dan 61 mm adalah lebar papan.

Pengepala Pin

Header pin bulat lelaki 4 pin dan header pin bulat wanita 4 pin untuk menghubungkan gamepad I2C.

Plat PETG

Plat PET / PETG kecil untuk menyokong papan dev dan bateri Lipo, anda boleh mencarinya dengan mudah dalam pembungkusan produk.

PCB Pelbagai Tujuan

Diperlukan 2 PCB, tebal 0,4 mm untuk menyokong Paparan, tebal 1,2 mm untuk gamepad I2C.

Butang

Butang 5 arah, 2 butang kecil untuk butang Pilih dan Mula dan 2 untuk butang A dan B.

Pengawal Gamepad I2C

Kali ini saya menggunakan mikrokontroler ATtiny861 sebagai pengawal gamepad I2C.

Yang lain

1 perintang Ohm SMD 12, pengaturcara ISP (mis. TinyISP)

Langkah 2: Penyediaan Perisian

Penyediaan Perisian
Penyediaan Perisian
Penyediaan Perisian
Penyediaan Perisian
Penyediaan Perisian
Penyediaan Perisian

Arduino IDE

Muat turun dan pasang Arduino IDE jika belum:

Sokongan ATTinyCore

Ikuti langkah pemasangan untuk menambahkan sokongan ATTinyCore jika belum:

ESP-IDF

Ikuti panduan memulakan ESP-IDF untuk mengatur persekitaran pembangunan jika belum:

Langkah 3: Percetakan 3D

Percetakan 3D
Percetakan 3D

Muat turun dan cetak casingnya:

Langkah 4: Sokongan LCD

Sokongan LCD
Sokongan LCD
Sokongan LCD
Sokongan LCD

Potong PCB 24 x 27 lubang 0.4 mm untuk sokongan LCD. Ingatlah, simpan sedikit ruang untuk melipat LCD FPC. Kemudian gunakan beberapa pita pelekat dua sisi yang betulkan LCD pada PCB.

Langkah 5: Sediakan Plat PETG

Sediakan PETG Plat
Sediakan PETG Plat
Sediakan PETG Plat
Sediakan PETG Plat

Potong plat PETG 62 mm x 69 mm untuk papan dev dan sokongan bateri Lipo.

Langkah 6: Betulkan Papan Dev ESP32

Betulkan Papan Dev ESP32
Betulkan Papan Dev ESP32

Gunakan pita pelekat sisi dua untuk memasang papan pemuka pada plat PETG.

Langkah 7: Betulkan Bateri Lipo

Betulkan Bateri Lipo
Betulkan Bateri Lipo

Gunakan pita pelekat sisi dua untuk memperbaiki bateri Lipo selain papan pemuka.

Langkah 8: Sambungkan Battery & Dev Board

Sambungkan Battery & Dev Board
Sambungkan Battery & Dev Board

Langkah 9: Sediakan Pin Paparan

Sediakan Pin Paparan
Sediakan Pin Paparan

Paparan LCD mempunyai banyak variasi dari vendor yang berbeza. Sila dapatkan lembaran data yang betul dan baca sebelum patch dan sambungan.

Beberapa pin disediakan untuk panel sentuh. Oleh kerana LCD ini tidak mempunyai panel sentuh, hanya memotong pin tersebut dapat mengurangkan gangguan.

Langkah 10: Sambungkan Pin GND

Sambungkan Pin GND
Sambungkan Pin GND
Sambungkan Pin GND
Sambungkan Pin GND

Dalam kebanyakan kes, terdapat beberapa pin yang memerlukan penyambungan ke GND. Untuk mengurangkan usaha pematerian, saya memotong bentuk pita tembaga untuk mencapai semua pin GND dan kemudian menyolder sama sekali.

Langkah 11: Sambungkan Pin Vcc

Sambungkan Pin Vcc
Sambungkan Pin Vcc

Terdapat 2 pin yang diperlukan untuk menyambung ke Vcc, kuasa LCD dan kuasa LED. Menurut lembaran data, kuasa LCD boleh terus menyambung ke papan dev 3.3 pin pin tetapi kuasa LED beroperasi sedikit lebih rendah daripada 3.3 V. Oleh itu, lebih baik tambahkan perintang SMD di tengah, mis. Perintang 12 Ohm.

Langkah 12: Sambungkan Sokongan LCD & Papan Dev

Sambungkan Sokongan Papan LCD & Papan
Sambungkan Sokongan Papan LCD & Papan

gunakan pita sambung sokongan LCD dan sokongan papan dev bersama-sama. Kedua-dua sokongan harus mempunyai jurang sekitar 5 mm untuk lipatan.

Langkah 13: Sambungkan Pin SPI

Sambungkan Pin SPI
Sambungkan Pin SPI

Berikut adalah ringkasan sambungan:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> tidak disambungkan Vcc -> 3.3 V LED + -> 12 Ohm perintang -> 3.3 V LED - -> GND

Langkah 14: Program Flash

Program Kilat
Program Kilat
Program Kilat
Program Kilat
Program Kilat
Program Kilat
Program Kilat
Program Kilat
  1. Muat turun kod sumber di GitHub:
  2. Di bawah folder kod sumber, jalankan "make menuconfig"
  3. Pilih "Konfigurasi khusus Nofrendo ESP32"
  4. Pilih "Perkakasan untuk dijalankan" -> "Perkakasan Tersuai"
  5. Pilih "Jenis LCD" -> "LCD ST7789V"
  6. Tetapan pin pengisian: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Lampu latar -> -1, IPS -> Y
  7. Keluar dan Simpan
  8. Jalankan "make -j5 flash"
  9. Jalankan "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Langkah 15: Penyambung I2C

Penyambung I2C
Penyambung I2C
Penyambung I2C
Penyambung I2C
Penyambung I2C
Penyambung I2C

Pecahkan pin I2C, pin I2C lalai ESP32 adalah:

Pin 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3.3 V (tidak ada kuasa 5 V semasa dikuasakan oleh bateri Lipo) Pin 4 (GND) -> GND

Langkah 16: Perhimpunan Bahagian 1

Image
Image

Ikuti langkah video untuk melipat dan memasukkan semua bahagian ke dalam casing.

Langkah 17: Gamepad Prototaip I2C

Gamepad Prototaip I2C
Gamepad Prototaip I2C
Gamepad Prototaip I2C
Gamepad Prototaip I2C

Program untuk Gamepad I2C sangat mudah, hanya 15 baris kod. Tetapi agak sukar untuk memprogramkan semula ATtiny861 setelah pematerian, jadi lebih baik mengujinya di papan roti terlebih dahulu.

Muat turun, kompilasi dan flash program dari GitHub:

Langkah 18: Bina Gamepad I2C

Bina Gamepad I2C
Bina Gamepad I2C
Bina Gamepad I2C
Bina Gamepad I2C
Bina Gamepad I2C
Bina Gamepad I2C

Berikut adalah Ringkasan sambungan:

Butang ATtiny861

GND -> Semua butang satu pin Pin 20 (PA0) -> Butang atas Pin 19 (PA1) -> Butang bawah Pin 18 (PA2) -> Butang kiri Pin 17 (PA3) -> Butang kanan Pin 14 (PA4) -> Pilih butang Pin 13 (PA5) -> Butang Mula Pin 12 (PA6) -> Pin butang A 11 (PA7) -> Pin butang B 6 (GND) -> Pin kepala pin lelaki I2C 4 Pin 5 (Vcc) -> I2C pin header pin lelaki 3 Pin 3 (SCL) -> pin header pin lelaki I2C 1 Pin 1 (SDA) -> Pin header pin lelaki I2C 2

Langkah 19: Perhimpunan Bahagian 2

Image
Image
Pilihan: Pin Pemecah Audio
Pilihan: Pin Pemecah Audio

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

Langkah 20: Pilihan: Pin Breakout Audio

Image
Image
Pilihan: Pin Pemecah Audio
Pilihan: Pin Pemecah Audio

Papan dev ESP32 Pin 25 dan 26 mengeluarkan isyarat audio analog, sangat mudah untuk melepaskan 2 pin ini dan juga pin kuasa (3.3 V dan GND) di bahagian atas. Kemudian anda boleh memasang fon telinga untuk memasangnya. Atau anda juga boleh menambahkan modul penguat audio dengan pembesar suara untuk memainkannya dengan kuat.

Langkah 21: Apa Seterusnya?

Apa yang akan datang?
Apa yang akan datang?

Emulator NES bukan satu-satunya perkara menarik yang boleh anda buat dengan ESP32. Cth. anda boleh membina konsol python mikro dengannya. Satu-satunya komponen yang perlu anda ubah adalah dari gamepad I2C ke papan kekunci I2C. Saya rasa tidak begitu sukar untuk membuatnya dengan pengawal ATtiny88. Anda boleh mengikuti twitter saya untuk melihat statusnya.

Disyorkan: