Turinys:
- 1 žingsnis: aparatinės įrangos paruošimas
- 2 žingsnis: Programinės įrangos paruošimas
- 3 žingsnis: 3D spausdinimas
- 4 žingsnis: LCD palaikymas
- 5 žingsnis: Paruoškite PETG plokštelę
- 6 veiksmas: sutvarkykite ESP32 Dev Board
- 7 žingsnis: sutvarkykite „Lipo“akumuliatorių
- 8 veiksmas: prijunkite akumuliatoriaus ir kūrimo plokštę
- 9 žingsnis: Paruoškite ekrano kaiščius
- 10 veiksmas: prijunkite GND kaiščius
- 11 veiksmas: prijunkite „Vcc“kaiščius
- 12 veiksmas: prijunkite LCD ir kūrėjų plokštės palaikymą
- 13 veiksmas: prijunkite SPI kaiščius
- 14 žingsnis: „Flash“programa
- 15 žingsnis: I2C jungtis
- 16 žingsnis: Surinkimas 1 dalis
- 17 žingsnis: „I2C Gamepad“prototipas
- 18 veiksmas: sukurkite „I2C Gamepad“
- 19 žingsnis: Surinkimas 2 dalis
- 20 veiksmas: pasirinktinai: garso pertraukimo kaiščiai
- 21 žingsnis: kas toliau?
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šiose instrukcijose parodyta, kaip naudoti ESP32 ir ATtiny861, norint sukurti NES emuliatoriaus žaidimų konsolę.
1 žingsnis: aparatinės įrangos paruošimas
ESP32 kūrėjų lenta
Šį kartą naudoju TTGO T8 ESP32 dev plokštę. Šioje plokštėje yra įmontuota „Lipo“įkrovimo ir reguliavimo grandinė, ji gali padėti sumažinti papildomų komponentų skaičių.
Ekranas
Šį kartą naudoju 2,4 colio IPS LCD ekraną. Vairuotojo valdiklis yra ST7789V, o skiriamoji geba yra 320 x 240. Ši raiška geriausiai tinka 252 x 224 raiškos NES emuliatoriui.
Baterija
Šį kartą naudoju „454261 Lipo“bateriją. 4,5 mm yra ESP32 dev plokštės storis, o 61 mm - plokštės plotis.
Smeigtuko antraštė
4 kontaktų apvalios kaiščio galvutės antraštė ir 4 kaiščių apvalios kaiščio antraštė, skirta prijungti „I2C“žaidimų pultą.
PETG plokštė
Maža PET/PETG plokštė, skirta palaikyti kūrimo plokštę ir „Lipo“akumuliatorių, ją lengvai rasite gaminio pakuotėje.
Daugiafunkcinis PCB
Reikalingi 2 PCB, 1 0,4 mm storio ekranui palaikyti, 1 1,2 mm storio I2C žaidimų pultas.
Mygtukai
5 krypčių mygtukas, 2 maži mygtukai pasirinkimui ir paleidimui ir 2 mygtukai A ir B.
„I2C Gamepad“valdiklis
Šį kartą kaip „I2C“žaidimų plokštės valdiklį naudoju „ATtiny861“mikrovaldiklį.
Kiti
1 SMD 12 omų rezistorius, ISP programuotojas (pvz., „TinyISP“)
2 žingsnis: Programinės įrangos paruošimas
„Arduino IDE“
Atsisiųskite ir įdiekite „Arduino IDE“, jei dar ne:
„ATTinyCore“palaikymas
Jei norite dar pridėti ATTinyCore palaikymą, atlikite diegimo veiksmus:
ESP-IDF
Vadovaukitės ESP-IDF pradžios vadovu, kaip nustatyti kūrimo aplinką, jei dar ne:
3 žingsnis: 3D spausdinimas
Atsisiųskite ir atsispausdinkite dėklą:
4 žingsnis: LCD palaikymas
Iškirpkite 24 x 27 skyles 0,4 mm PCB, kad palaikytumėte LCD. Nepamirškite rezervuoti šiek tiek vietos sulankstomiems LCD FPC. Tada naudokite tam tikrą dvipusę lipnią juostelę, pritvirtindami LCD ant PCB.
5 žingsnis: Paruoškite PETG plokštelę
Iškirpkite 62 mm x 69 mm PETG plokštę, skirtą plokštėms ir „Lipo“baterijų atramoms.
6 veiksmas: sutvarkykite ESP32 Dev Board
Naudokite dvipusę lipnią juostą, kad pritvirtintumėte PETG plokštės plokštę.
7 žingsnis: sutvarkykite „Lipo“akumuliatorių
Naudokite dvipusę lipnią juostelę, kad pritvirtintumėte „Lipo“akumuliatorių šalia kūrimo plokštės.
8 veiksmas: prijunkite akumuliatoriaus ir kūrimo plokštę
9 žingsnis: Paruoškite ekrano kaiščius
LCD ekranas turi daugybę variantų iš skirtingų tiekėjų. Prašome gauti teisingą duomenų lapą ir perskaityti jį prieš bet kokį pleistrą ir prijungimą.
Kai kurie kaiščiai yra skirti jutikliniam skydeliui. Kadangi šis skystųjų kristalų ekranas neturi jutiklinio skydelio, tiesiog iškirskite tuos kaiščius, kad sumažintumėte trikdžius.
10 veiksmas: prijunkite GND kaiščius
Daugeliu atvejų yra keletas kaiščių, kuriuos reikia prijungti prie GND. Norėdami sumažinti litavimo pastangas, aš iškirpiau vario juostos formą, kad pasiekčiau visus GND kaiščius, o tada apskritai lituoti.
11 veiksmas: prijunkite „Vcc“kaiščius
Norint prijungti prie „Vcc“, reikalingi 2 kaiščiai, LCD maitinimas ir LED maitinimas. Pagal duomenų lapą, LCD maitinimas gali būti tiesiogiai prijungtas prie 3,3 V kištuko plokštės, tačiau šviesos diodų galia yra šiek tiek mažesnė nei 3,3 V. Taigi geriau pridėti SMD rezistorių viduryje, pvz. 12 omų rezistorius.
12 veiksmas: prijunkite LCD ir kūrėjų plokštės palaikymą
naudokite juostos prijungimo LCD palaikymą ir kūrėjo plokštės palaikymą. Abi atramos turėtų sulankstyti apie 5 mm tarpą.
13 veiksmas: prijunkite SPI kaiščius
Čia pateikiama ryšio santrauka:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> neprijungtas Vcc -> 3,3 V LED+ -> 12 omų rezistorius -> 3,3 V LED - -> GND
14 žingsnis: „Flash“programa
- Atsisiųskite šaltinio kodą iš „GitHub“:
- Šaltinio kodo aplanke paleiskite „make menuconfig“
- Pasirinkite „Nofrendo ESP32-specific configuration“
- Pasirinkite „Aparatūra, kurią norite paleisti“-> „Tinkinta aparatūra“
- Pasirinkite „LCD tipas“-> „ST7789V LCD“
- Užpildymo kaiščio nustatymai: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, foninis apšvietimas -> -1, IPS -> Y
- Išeiti ir išsaugoti
- Paleiskite „make -j5 flash“
- Vykdykite „sh flashrom.sh PATH_TO_YOUR_ROM_FILE“
15 žingsnis: I2C jungtis
Išardykite I2C kaiščius, numatytieji ESP32 I2C kaiščiai yra:
1 kaištis (SCL) -> GPIO 22
2 kaištis (SDA) -> GPIO 21 kaištis 3 (Vcc) -> 3,3 V (be 5 V galios, kai maitinama iš „Lipo“baterijos) 4 kaištis (GND) -> GND
16 žingsnis: Surinkimas 1 dalis
Vykdykite vaizdo įrašo veiksmus, kad sulankstytumėte ir suspaustumėte visas dalis į dėklą.
17 žingsnis: „I2C Gamepad“prototipas
„I2C Gamepad“programa yra labai paprasta, tik 15 kodo eilučių. Tačiau po litavimo šiek tiek sunku perprogramuoti ATtiny861, todėl geriau pirmiausia išbandyti jį ant duonos lentos.
Atsisiųskite, sukompiliuokite ir paleiskite programą iš „GitHub“:
18 veiksmas: sukurkite „I2C Gamepad“
Čia pateikiama ryšio santrauka:
ATtiny861 mygtukas
GND -> Visi mygtukai vienas smeigtukas Kaištis 20 (PA0) -> Mygtukas aukštyn 19 kaištis (PA1) -> Mygtukas žemyn Kaištis 18 (PA2) -> Kairysis mygtukas 17 kaištis (PA3) -> Dešinysis mygtukas 14 kaištis (PA4) -> Pasirinkite mygtuką „Pin 13“(PA5) -> „Start“mygtukas „Pin 12“(PA6) -> „A“mygtukas „Pin 11“(PA7) -> „B“mygtukas 6 kaištis (GND) -> „I2C“kaiščio antgalio kaištis 4 kaištis 5 (Vcc) -> I2C išorinis kaiščio antgalis 3 kaištis 3 (SCL) -> I2C išorinis kaiščio galvutės kaištis 1 kaištis 1 (SDA) -> I2C kištukinis kaištis
19 žingsnis: Surinkimas 2 dalis
Vykdykite vaizdo įrašo veiksmus, norėdami įdiegti dangtelį ir „I2C“žaidimų plokštę prie pagrindinio korpuso.
20 veiksmas: pasirinktinai: garso pertraukimo kaiščiai
ESP32 dev plokštė 25 ir 26 kaiščiai perduoda analoginį garso signalą, todėl labai lengva atskirti šiuos 2 kaiščius ir maitinimo kaiščius (3,3 V ir GND) viršuje. Tada galite pritvirtinti ausines, kad jas prijungtumėte. Arba netgi galite pridėti garso stiprintuvo modulį su garsiakalbiu, kad galėtumėte jį garsiai paleisti.
21 žingsnis: kas toliau?
NES emuliatorius nėra vienintelis įdomus dalykas, kurį galite padaryti naudodami ESP32. Pvz. su juo galite sukurti mikro python konsolę. Vienintelis komponentas, kurį reikia pakeisti, yra iš „I2C gamepad“į „I2C“klaviatūrą. Manau, kad tai nėra taip sunku padaryti naudojant ATtiny88 valdiklį. Galite sekti mano „Twitter“, kad pamatytumėte būseną.