Turinys:

ESP32 rankinė žaidimų konsolė: 21 žingsnis (su nuotraukomis)
ESP32 rankinė žaidimų konsolė: 21 žingsnis (su nuotraukomis)

Video: ESP32 rankinė žaidimų konsolė: 21 žingsnis (su nuotraukomis)

Video: ESP32 rankinė žaidimų konsolė: 21 žingsnis (su nuotraukomis)
Video: Nintendo switch самая опасная консоль! Подпишись, что бы узнать о Nintendo больше! 2024, Liepa
Anonim
Image
Image
Techninės įrangos paruošimas
Techninės įrangos paruošimas

Šiose instrukcijose parodyta, kaip naudoti ESP32 ir ATtiny861, norint sukurti NES emuliatoriaus žaidimų konsolę.

1 žingsnis: aparatinės įrangos paruošimas

Techninės įrangos paruošimas
Techninės įrangos paruošimas
Techninės įrangos paruošimas
Techninė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

Programinės įrangos paruošimas
Programinės įrangos paruošimas
Programinės įrangos paruošimas
Programinės įrangos paruošimas
Programinės įrangos paruošimas
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

3D spausdinimas
3D spausdinimas

Atsisiųskite ir atsispausdinkite dėklą:

4 žingsnis: LCD palaikymas

LCD palaikymas
LCD palaikymas
LCD palaikymas
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ę

Paruoškite PETG plokštelę
Paruoškite PETG plokštelę
Paruoškite PETG plokštelę
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

Pataisykite „ESP32 Dev Board“
Pataisykite „ESP32 Dev Board“

Naudokite dvipusę lipnią juostą, kad pritvirtintumėte PETG plokštės plokštę.

7 žingsnis: sutvarkykite „Lipo“akumuliatorių

Pataisykite „Lipo“akumuliatorių
Pataisykite „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ę

Prijunkite akumuliatoriaus ir kūrimo plokštę
Prijunkite akumuliatoriaus ir kūrimo plokštę

9 žingsnis: Paruoškite ekrano kaiščius

Paruoškite ekrano kaiščius
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

Prijunkite GND kaiščius
Prijunkite GND kaiščius
Prijunkite GND kaiščius
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

Prijunkite „Vcc“kaiščius
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ą

Prijunkite LCD ir kūrimo plokštės palaikymą
Prijunkite LCD ir kūrimo 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

Prijunkite SPI kaiščius
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

„Flash“programa
„Flash“programa
„Flash“programa
„Flash“programa
„Flash“programa
„Flash“programa
„Flash“programa
„Flash“programa
  1. Atsisiųskite šaltinio kodą iš „GitHub“:
  2. Šaltinio kodo aplanke paleiskite „make menuconfig“
  3. Pasirinkite „Nofrendo ESP32-specific configuration“
  4. Pasirinkite „Aparatūra, kurią norite paleisti“-> „Tinkinta aparatūra“
  5. Pasirinkite „LCD tipas“-> „ST7789V LCD“
  6. Užpildymo kaiščio nustatymai: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, foninis apšvietimas -> -1, IPS -> Y
  7. Išeiti ir išsaugoti
  8. Paleiskite „make -j5 flash“
  9. Vykdykite „sh flashrom.sh PATH_TO_YOUR_ROM_FILE“

15 žingsnis: I2C jungtis

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

Image
Image

Vykdykite vaizdo įrašo veiksmus, kad sulankstytumėte ir suspaustumėte visas dalis į dėklą.

17 žingsnis: „I2C Gamepad“prototipas

„I2C“žaidimų planšetės prototipas
„I2C“žaidimų planšetės prototipas
„I2C“žaidimų planšetės prototipas
„I2C“žaidimų planšetės 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“

Sukurkite „I2C Gamepad“
Sukurkite „I2C Gamepad“
Sukurkite „I2C Gamepad“
Sukurkite „I2C Gamepad“
Sukurkite „I2C Gamepad“
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

Image
Image
Neprivaloma: garso pertraukimo kaiščiai
Neprivaloma: garso pertraukimo kaiščiai

Vykdykite vaizdo įrašo veiksmus, norėdami įdiegti dangtelį ir „I2C“žaidimų plokštę prie pagrindinio korpuso.

20 veiksmas: pasirinktinai: garso pertraukimo kaiščiai

Image
Image
Neprivaloma: garso pertraukimo kaiščiai
Neprivaloma: 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?

Kas toliau?
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ą.

Rekomenduojamas: