Sadržaj:
- Korak 1: Priprema hardvera
- Korak 2: Priprema softvera
- Korak 3: 3D štampanje
- Korak 4: LCD podrška
- Korak 5: Pripremite PETG ploču
- Korak 6: Popravite ESP32 Dev Board
- Korak 7: Popravite Lipo bateriju
- Korak 8: Povežite bateriju i razvojnu ploču
- Korak 9: Pripremite igle za prikaz
- Korak 10: Povežite GND pinove
- Korak 11: Povežite Vcc pinove
- Korak 12: Povežite podršku za LCD i razvojnu ploču
- Korak 13: Povežite SPI pinove
- Korak 14: Flash program
- Korak 15: I2C konektor
- Korak 16: Montaža 1. dio
- Korak 17: Prototip I2C gamepada
- Korak 18: Izgradite I2C Gamepad
- Korak 19: Montaža, drugi dio
- Korak 20: Opcionalno: Igle za prekid zvuka
- Korak 21: Šta je sljedeće?
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Ove upute pokazuju kako koristiti ESP32 i ATtiny861 za izgradnju NES emulacijske igraće konzole.
Korak 1: Priprema hardvera
ESP32 Dev Board
Ovaj put koristim razvojnu ploču TTGO T8 ESP32. Ova ploča ima ugrađeno Lipo kolo za punjenje i regulaciju, što može pomoći u smanjenju dodatnih komponenti.
Prikaz
Ovaj put koristim IPS LCD od 2,4 . Upravljački program je ST7789V i rezolucija je 320 x 240. Ova rezolucija najbolje odgovara NES emulatoru rezolucije 252 x 224.
Baterija
Ovaj put koristim Lipo bateriju 454261. 4,5 mm je debljina ploče ESP32 dev, a 61 mm širina ploče.
Pin Header
4 -pinski muški okrugli pin zaglavlje i 4 -pinski ženski okrugli pin -header za povezivanje I2C gamepada.
PETG ploča
Mala PET/PETG ploča za podršku razvojnoj ploči i Lipo bateriji lako ćete je pronaći u pakiranju proizvoda.
Višenamjenska PCB
Potrebna su 2 PCB -a, 1 0,4 mm debljine za podršku ekrana, 1 1,2 mm debljine za I2C gamepad.
Buttons
Dugme sa 5 pravaca, 2 mala dugmeta za izbor i početak i 2 za tastere A i B.
I2C Gamepad kontroler
Ovaj put koristim ATtiny861 mikrokontroler kao I2C kontroler gamepada.
Drugi
1 SMD otpornik od 12 ohma, ISP programer (npr. TinyISP)
Korak 2: Priprema softvera
Arduino IDE
Preuzmite i instalirajte Arduino IDE ako još niste:
ATTinyCore podrška
Slijedite korake za instalaciju da biste dodali podršku za ATTinyCore ako još nije dostupna:
ESP-IDF
Slijedite vodič za početak ESP-IDF-a za postavljanje razvojnog okruženja ako još nije:
Korak 3: 3D štampanje
Preuzmite i odštampajte kućište:
Korak 4: LCD podrška
Izrežite 24 x 27 rupa 0,4 mm PCB za LCD podršku. Upamtite, rezervirajte malo prostora za preklapanje LCD FPC -a. Zatim upotrijebite dvostranu ljepljivu traku koja fiksira LCD na PCB -u.
Korak 5: Pripremite PETG ploču
Izrežite PETG ploču 62 mm x 69 mm za razvojnu ploču i nosač Lipo baterije.
Korak 6: Popravite ESP32 Dev Board
Dvostranom ljepljivom trakom pričvrstite ploču za razvoj na PETG ploču.
Korak 7: Popravite Lipo bateriju
Upotrijebite dvostranu ljepljivu traku za pričvršćivanje Lipo baterije pored ploče za razvoj.
Korak 8: Povežite bateriju i razvojnu ploču
Korak 9: Pripremite igle za prikaz
LCD ekrani imaju mnogo varijacija od različitih proizvođača. Nabavite ispravan list s podacima i pročitajte ga prije bilo kakvog zakrpa i povezivanja.
Neki pinovi su rezervirani za dodirnu ploču. Budući da ovaj LCD nema dodirnu ploču, jednostavno izrežite te igle kako biste smanjili smetnje.
Korak 10: Povežite GND pinove
U većini slučajeva postoji nekoliko pinova koji zahtijevaju spajanje na GND. Da bih smanjio napor lemljenja, izrezao sam oblik bakrene trake kako bih dosegao sve GND igle, a zatim potpuno lemio.
Korak 11: Povežite Vcc pinove
Potrebna su 2 pina za spajanje na Vcc, napajanje LCD -a i LED napajanje. Prema podacima, napajanje LCD -a može se izravno povezati s utičnicom od 3,3 V, ali LED napajanje radi malo niže od 3,3 V. Zato je bolje dodati SMD otpornik u sredinu, npr. 12 Ohm otpornik.
Korak 12: Povežite podršku za LCD i razvojnu ploču
zajedno koristite LCD podršku za traku i podršku za razvojnu ploču. Oba nosača trebaju ostaviti razmak od oko 5 mm za preklapanje.
Korak 13: Povežite SPI pinove
Evo sažetka veze:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> nije povezan Vcc -> 3,3 V LED+ -> 12 Ohm otpornik -> 3,3 V LED - -> GND
Korak 14: Flash program
- Preuzmite izvorni kod na GitHub-u:
- U fascikli izvornog koda pokrenite "make menuconfig"
- Odaberite "Konfiguracija specifična za Nofrendo ESP32"
- Odaberite "Hardver za rad" -> "Prilagođeni hardver"
- Odaberite "LCD tip" -> "ST7789V LCD"
- Postavke pina za popunjavanje: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Pozadinsko osvjetljenje -> -1, IPS -> Y
- Izađite i spremite
- Pokrenite "make -j5 flash"
- Pokreni "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Korak 15: I2C konektor
Razbijanje I2C pinova, ESP32 zadani I2C pinovi su:
Pin 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (nema napajanja od 5 V dok se napaja Lipo baterijom) Pin 4 (GND) -> GND
Korak 16: Montaža 1. dio
Slijedite video korake za presavijanje i istiskivanje svih dijelova u kućište.
Korak 17: Prototip I2C gamepada
Program za I2C Gamepad je vrlo jednostavan, samo 15 linija koda. No, malo je teško reprogramirati ATtiny861 nakon lemljenja, pa je bolje prvo ga testirati na matičnoj ploči.
Preuzmite, kompajlirajte i fleširajte program sa GitHub -a:
Korak 18: Izgradite I2C Gamepad
Evo sažetka veze:
Dugme ATtiny861
GND -> Svi gumbi jedan pin Pin 20 (PA0) -> Gore tipka Pin 19 (PA1) -> Dolje tipka Pin 18 (PA2) -> Lijevo dugme Pin 17 (PA3) -> Desno dugme Pin 14 (PA4) -> Odabir tipke Pin 13 (PA5) -> Tipka Start Pin 12 (PA6) -> A tipka Pin 11 (PA7) -> tipka B Pin 6 (GND) -> I2C muški pin pin 4 Pin 5 (Vcc) -> I2C muški pin pin zaglavlja 3 Pin 3 (SCL) -> I2C muški pin pin zaglavlja 1 Pin 1 (SDA) -> I2C muški pin pin zaglavlja 2
Korak 19: Montaža, drugi dio
Slijedite video korake za instaliranje poklopca i I2C gamepada na glavno tijelo.
Korak 20: Opcionalno: Igle za prekid zvuka
ESP32 dev ploča Pin 25 i 26 emituje analogni audio signal, vrlo je lako probiti ove 2 pinove, kao i pinove za napajanje (3,3 V i GND) na vrhu. Zatim možete zalijepiti slušalice da biste ih priključili. Ili čak možete dodati modul audio pojačala sa zvučnikom za glasno sviranje.
Korak 21: Šta je sljedeće?
NES emulator nije jedina zanimljiva stvar koju možete napraviti s ESP32. Npr. pomoću njega možete izgraditi mikro python konzolu. Jedina komponenta koju trebate promijeniti je sa I2C gamepada na I2C tastaturu. Mislim da to nije tako teško sa ATtiny88 kontrolerom. Možete pratiti moj twitter da vidite status.