Kazalo:
- 1. korak: Priprava strojne opreme
- 2. korak: Priprava programske opreme
- 3. korak: 3D tiskanje
- 4. korak: Podpora za LCD
- 5. korak: Pripravite PETG ploščo
- 6. korak: Popravite ploščo za razvijalce ESP32
- Korak 7: Popravite Lipo baterijo
- 8. korak: Priključite baterijo in razvojno ploščo
- 9. korak: Pripravite prikazovalne zatiče
- 10. korak: Priključite zatiče GND
- 11. korak: Povežite Vcc zatiče
- 12. korak: Povežite podporo za LCD in razvojno ploščo
- Korak: Priključite zatiče SPI
- 14. korak: Flash program
- Korak 15: Priključek I2C
- Korak 16: Montaža 1. del
- Korak 17: Prototip I2C igralne plošče
- 18. korak: Zgradite igralno ploščo I2C
- 19. korak: Montaža 2. del
- 20. korak: Izbirno: zatiči za zvok
- 21. korak: Kaj sledi?
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Ta navodila kažejo, kako uporabiti ESP32 in ATtiny861 za izdelavo igralne konzole za emulator NES.
1. korak: Priprava strojne opreme
Razvojna plošča ESP32
Tokrat uporabljam razvojno ploščo TTGO T8 ESP32. Ta plošča ima vgrajeno polnilno in regulacijsko vezje Lipo, kar lahko pomaga zmanjšati dodatne komponente.
Zaslon
Tokrat uporabljam 2,4 -palčni IPS LCD. Gonilniški krmilnik je ST7789V, ločljivost pa 320 x 240. Ta ločljivost najbolje ustreza ločljivosti 252 x 224 emulatorja NES.
Baterija
Tokrat uporabljam Lipo baterijo 454261. Debelina plošče ESP32 dev je 4,5 mm, širina plošče pa 61 mm.
Pin Header
4 -pinski moški okrogli zatič za glavo in 4 zatiči ženski okrogli zatič za priključitev igralne plošče I2C.
PETG plošča
Majhna PET/PETG plošča za podporo deske za razvoj in Lipo baterije, jo lahko preprosto najdete v embalaži izdelka.
Večnamensko tiskano vezje
Potrebna sta 2 tiskana vezja, 1 0,4 mm debela za podporo zaslona, 1 1,2 mm debela za igralno ploščo I2C.
Gumbi
Gumb za 5 smeri, 2 majhna gumba za izbiro in zagon ter 2 za gumba A in B.
Krmilnik igralne plošče I2C
Tokrat kot krmilnik igralne plošče I2C uporabljam mikrokrmilnik ATtiny861.
Drugi
1 upor SMD 12 Ohm, programer ISP (npr. TinyISP)
2. korak: Priprava programske opreme
Arduino IDE
Prenesite in namestite Arduino IDE, če še ne:
Podpora za ATTinyCore
Če še niste dodali podpore za ATTinyCore, sledite korakom za namestitev:
ESP-IDF
Sledite priročniku za začetek ESP-IDF za nastavitev razvojnega okolja, če še ne:
3. korak: 3D tiskanje
Prenesite in natisnite etui:
4. korak: Podpora za LCD
Izrežite 24 x 27 lukenj 0,4 mm PCB za podporo LCD. Ne pozabite rezervirati nekaj prostora za zlaganje LCD FPC. Nato z dvojnim stranskim lepilnim trakom pritrdite LCD na tiskano vezje.
5. korak: Pripravite PETG ploščo
Izrežite PETG ploščo 62 mm x 69 mm za ploščo za razvijalce in nosilec Lipo baterije.
6. korak: Popravite ploščo za razvijalce ESP32
Z dvostranskim lepilnim trakom pritrdite dev ploščo na ploščo PETG.
Korak 7: Popravite Lipo baterijo
Za pritrditev Lipo baterije poleg dev plošče uporabite dvostranski lepilni trak.
8. korak: Priključite baterijo in razvojno ploščo
9. korak: Pripravite prikazovalne zatiče
LCD zasloni imajo veliko različic od različnih prodajalcev. Pridobite pravilen podatkovni list in ga preberite pred kakršnim koli popravkom in povezavo.
Nekateri zatiči so rezervirani za ploščo na dotik. Ker ta LCD nima plošče na dotik, lahko preprosto izrežete te zatiče, da zmanjšate motnje.
10. korak: Priključite zatiče GND
V večini primerov je za priključitev na GND potrebno le nekaj zatičev. Za zmanjšanje napora pri spajkanju sem izrezal bakreni trak, da sem dosegel vse zatiče GND, in nato popolnoma spajkal.
11. korak: Povežite Vcc zatiče
Za priključitev na Vcc sta potrebna 2 zatiča, napajanje LCD in napajanje LED. Po podatkovnem listu se lahko napajanje LCD -ja neposredno poveže z razvijalno ploščo 3,3 V pin, vendar moč LED deluje nekoliko nižje od 3,3 V. Zato je bolje, da na sredini dodate upor SMD, npr. 12 ohmski upor.
12. korak: Povežite podporo za LCD in razvojno ploščo
skupaj uporabite podporo za LCD -trak in podporo za razvojno ploščo. Obe podpori morata rezervirati približno 5 mm vrzeli za zlaganje.
Korak: Priključite zatiče SPI
Tu je povzetek povezave:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> ni povezan Vcc -> 3,3 V LED+ -> 12 Ohm upor -> 3,3 V LED - -> GND
14. korak: Flash program
- Prenesite izvorno kodo na GitHub:
- V mapi z izvorno kodo zaženite "make menuconfig"
- Izberite "Konfiguracija, specifična za Nofrendo ESP32"
- Izberite "Strojna oprema za izvajanje" -> "Strojna oprema po meri"
- Izberite "LCD tip" -> "ST7789V LCD"
- Nastavitve zatiča za polnjenje: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Osvetlitev ozadja -> -1, IPS -> Y
- Zaprite in shranite
- Zaženite "make -j5 flash"
- Zaženi "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Korak 15: Priključek I2C
Če razbijete zatiče I2C, so privzeti zatiči I2C ESP32:
Pin 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (brez napajanja 5 V, medtem ko ga napaja Lipo baterija) Pin 4 (GND) -> GND
Korak 16: Montaža 1. del
Sledite video korakom, da zložite in stisnete vse dele v ohišje.
Korak 17: Prototip I2C igralne plošče
Program za igralno ploščo I2C je zelo preprost, le 15 vrstic kode. Toda ATtiny861 je po spajkanju nekoliko težko reprogramirati, zato ga je bolje najprej preizkusiti na plošči.
Prenesite, prevedite in prenesite program z GitHub -a:
18. korak: Zgradite igralno ploščo I2C
Tu je povzetek povezave:
Gumb ATtiny861
GND -> Vsi gumbi en pin Pin 20 (PA0) -> Gumb gor Pin 19 (PA1) -> Gumb navzdol Pin 18 (PA2) -> Levi gumb Pin 17 (PA3) -> Desni gumb Pin 14 (PA4) -> Izberite gumb Pin 13 (PA5) -> Gumb Start Pin 12 (PA6) -> A gumb Pin 11 (PA7) -> gumb B Pin 6 (GND) -> I2C moški zatič zatiča 4 Pin 5 (Vcc) -> I2C moški pin pin pin 3 Pin 3 (SCL) -> I2C moški pin pin pin 1 Pin 1 (SDA) -> I2C moški pin pin header 2
19. korak: Montaža 2. del
Sledite video korakom, da namestite pokrov in igralno ploščo I2C na glavno ohišje.
20. korak: Izbirno: zatiči za zvok
ESP32 dev plošča Pin 25 in 26 oddaja analogni zvočni signal, zelo enostavno je prekiniti ti 2 nožici in tudi napajalne nožice (3,3 V in GND) na vrhu. Nato lahko priključite slušalko, da jo priključite. Ali pa lahko dodate zvočni ojačevalni modul z zvočnikom, da ga predvajate glasno.
21. korak: Kaj sledi?
NES emulator ni edina zanimiva stvar, ki jo lahko naredite z ESP32. Npr. z njim lahko sestavite konzolo micro python. Edino komponento, ki jo morate spremeniti, je iz igralne plošče I2C na tipkovnico I2C. Mislim, da z krmilnikom ATtiny88 ni tako težko. Stanje lahko spremljate na mojem twitterju.