Sadržaj:

ESP32 ručna igraća konzola: 21 korak (sa slikama)
ESP32 ručna igraća konzola: 21 korak (sa slikama)

Video: ESP32 ručna igraća konzola: 21 korak (sa slikama)

Video: ESP32 ručna igraća konzola: 21 korak (sa slikama)
Video: The World’s Smallest Game Boy 2024, Juli
Anonim
Image
Image
Priprema hardvera
Priprema hardvera

Ove upute pokazuju kako koristiti ESP32 i ATtiny861 za izgradnju NES emulacijske igraće konzole.

Korak 1: Priprema hardvera

Priprema hardvera
Priprema hardvera
Priprema hardvera
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

Priprema softvera
Priprema softvera
Priprema softvera
Priprema softvera
Priprema softvera
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

3D štampanje
3D štampanje

Preuzmite i odštampajte kućište:

Korak 4: LCD podrška

LCD podrška
LCD podrška
LCD podrška
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

Pripremite PETG ploču
Pripremite PETG ploču
Pripremite PETG ploču
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

Popravite ESP32 Dev Board
Popravite ESP32 Dev Board

Dvostranom ljepljivom trakom pričvrstite ploču za razvoj na PETG ploču.

Korak 7: Popravite Lipo bateriju

Popravite Lipo bateriju
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

Povežite bateriju i razvojnu ploču
Povežite bateriju i razvojnu ploču

Korak 9: Pripremite igle za prikaz

Pripremite igle za prikaz
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

Povežite pinove GND
Povežite pinove GND
Priključite pinove GND
Priključite pinove GND

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

Povežite Vcc pinove
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

Povežite podršku za LCD i razvojnu ploču
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

Povežite SPI pinove
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

Flash Program
Flash Program
Flash Program
Flash Program
Flash Program
Flash Program
Flash Program
Flash Program
  1. Preuzmite izvorni kod na GitHub-u:
  2. U fascikli izvornog koda pokrenite "make menuconfig"
  3. Odaberite "Konfiguracija specifična za Nofrendo ESP32"
  4. Odaberite "Hardver za rad" -> "Prilagođeni hardver"
  5. Odaberite "LCD tip" -> "ST7789V LCD"
  6. Postavke pina za popunjavanje: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Pozadinsko osvjetljenje -> -1, IPS -> Y
  7. Izađite i spremite
  8. Pokrenite "make -j5 flash"
  9. Pokreni "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Korak 15: I2C konektor

I2C konektor
I2C konektor
I2C konektor
I2C konektor
I2C konektor
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

Image
Image

Slijedite video korake za presavijanje i istiskivanje svih dijelova u kućište.

Korak 17: Prototip I2C gamepada

Prototip I2C gamepada
Prototip I2C gamepada
Prototip I2C gamepada
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

Napravite I2C gamepad
Napravite I2C gamepad
Napravite I2C gamepad
Napravite I2C gamepad
Napravite I2C gamepad
Napravite 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

Image
Image
Opcionalno: Igle za probijanje zvuka
Opcionalno: Igle za probijanje zvuka

Slijedite video korake za instaliranje poklopca i I2C gamepada na glavno tijelo.

Korak 20: Opcionalno: Igle za prekid zvuka

Image
Image
Opcionalno: Igle za probijanje zvuka
Opcionalno: Igle za probijanje 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?

Šta je sledeće?
Šta je sledeć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.

Preporučuje se: