Satura rādītājs:

ESP32 rokas spēļu konsole: 21 solis (ar attēliem)
ESP32 rokas spēļu konsole: 21 solis (ar attēliem)

Video: ESP32 rokas spēļu konsole: 21 solis (ar attēliem)

Video: ESP32 rokas spēļu konsole: 21 solis (ar attēliem)
Video: ESP32 Tall self balancing robot - bad small wheels 2024, Novembris
Anonim
Image
Image
Aparatūras sagatavošana
Aparatūras sagatavošana

Šīs instrukcijas parāda, kā izmantot ESP32 un ATtiny861, lai izveidotu NES emulatora spēļu konsoli.

1. darbība. Aparatūras sagatavošana

Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana

ESP32 izstrādātāju padome

Šoreiz es izmantoju TTGO T8 ESP32 dev dēli. Šai plāksnei ir iebūvēta Lipo uzlādes un regulēšanas shēma, tā var palīdzēt samazināt papildu komponentus.

Displejs

Šoreiz es izmantoju 2,4 collu IPS LCD. Vadītāja kontrolieris ir ST7789V, un izšķirtspēja ir 320 x 240. Šī izšķirtspēja vislabāk atbilst NES emulatora 252 x 224 izšķirtspējai.

Akumulators

Šoreiz es izmantoju 454261 Lipo akumulatoru. 4,5 mm ir ESP32 dev plāksnes biezums, un 61 mm ir plāksnes platums.

Piespraudes galvene

4 kontaktu apaļās adatas galvene un 4 tapas apaļās tapas galvene I2C spēļu pults savienošanai.

PETG plāksne

Neliela PET/PETG plāksne izstrādes paneļa un Lipo akumulatora atbalstam, to var viegli atrast produkta iepakojumā.

Daudzfunkcionāls PCB

Nepieciešams 2 PCB, 1 0,4 mm biezs displeja atbalstam, 1 1,2 mm biezs I2C spēļu pultim.

Pogas

5 virzienu poga, 2 mazas pogas atlasīšanai un sākšanai un 2 pogai A un B.

I2C Gamepad kontrolieris

Šoreiz es izmantoju ATtiny861 mikrokontrolleru kā spēļu konsoles I2C kontrolieri.

Citi

1 SMD 12 omu rezistors, ISP programmētājs (piemēram, TinyISP)

2. solis: programmatūras sagatavošana

Programmatūras sagatavošana
Programmatūras sagatavošana
Programmatūras sagatavošana
Programmatūras sagatavošana
Programmatūras sagatavošana
Programmatūras sagatavošana

Arduino IDE

Lejupielādējiet un instalējiet Arduino IDE, ja vēl neesat:

ATTinyCore atbalsts

Izpildiet instalēšanas darbības, lai pievienotu ATTinyCore atbalstu, ja vēl neesat:

ESP-IDF

Izpildiet ESP-IDF darba sākšanas rokasgrāmatu, lai iestatītu izstrādes vidi, ja tā vēl nav:

3. darbība: 3D drukāšana

3D druka
3D druka

Lejupielādējiet un izdrukājiet lietu:

4. solis: LCD atbalsts

LCD atbalsts
LCD atbalsts
LCD atbalsts
LCD atbalsts

Izgrieziet 24 x 27 caurumus 0,4 mm PCB LCD atbalstam. Atcerieties, ka rezervējiet nedaudz vietas LCD FPC salocīšanai. Pēc tam izmantojiet kādu divpusēju līmlenti, lai LCD piestiprinātu pie PCB.

5. solis: Sagatavojiet PETG plāksni

Sagatavojiet PETG plāksni
Sagatavojiet PETG plāksni
Sagatavojiet PETG plāksni
Sagatavojiet PETG plāksni

Izgrieziet 62 mm x 69 mm PETG plāksni izstrādes plāksnei un Lipo akumulatora atbalstam.

6. darbība: labojiet ESP32 Dev Board

Labojiet ESP32 Dev Board
Labojiet ESP32 Dev Board

Izmantojiet divpusēju līmlenti, lai piestiprinātu plātni pie PETG plāksnes.

7. solis: salabojiet Lipo akumulatoru

Labojiet Lipo akumulatoru
Labojiet Lipo akumulatoru

Izmantojiet abpusēju līmlenti, lai piestiprinātu Lipo akumulatoru papildus izstrādātāja plāksnei.

8. solis: pievienojiet akumulatoru un izstrādātāju paneli

Pievienojiet akumulatoru un izstrādātāju paneli
Pievienojiet akumulatoru un izstrādātāju paneli

9. darbība. Sagatavojiet displeja tapas

Sagatavojiet displeja tapas
Sagatavojiet displeja tapas

LCD displejam ir daudz variāciju no dažādiem pārdevējiem. Lūdzu, iegūstiet pareizo datu lapu un izlasiet to pirms jebkura plākstera un savienojuma.

Dažas tapas ir rezervētas skārienpanelim. Tā kā šim LCD nav skārienpaneļa, vienkārši izgriežot šīs tapas, var samazināt traucējumus.

10. darbība: pievienojiet GND tapas

Pievienojiet GND tapas
Pievienojiet GND tapas
Pievienojiet GND tapas
Pievienojiet GND tapas

Vairumā gadījumu ir dažas tapas, kurām nepieciešams savienojums ar GND. Lai samazinātu lodēšanas piepūli, es izgriezu vara lentes formu, lai sasniegtu visas GND tapas un pēc tam lodētu pavisam.

11. darbība: pievienojiet Vcc tapas

Savienojiet Vcc tapas
Savienojiet Vcc tapas

Lai izveidotu savienojumu ar Vcc, ir nepieciešamas 2 tapas, LCD barošana un LED barošana. Saskaņā ar datu lapu, LCD jauda var tieši pieslēgties pie 3,3 V sprieguma paneļa, bet LED jauda darbojas nedaudz zemāk par 3,3 V. Tāpēc labāk ir pievienot SMD rezistoru vidū, piem. 12 omu rezistors.

12. darbība: pievienojiet LCD un izstrādātāju paneļa atbalstu

Savienojiet LCD un izstrādātāju paneļa atbalstu
Savienojiet LCD un izstrādātāju paneļa atbalstu

Izmantojiet lentu, lai savienotu LCD atbalstu un izstrādātāju plates atbalstu. Abiem balstiem vajadzētu atstāt apmēram 5 mm atstarpi salocīšanai.

13. darbība: pievienojiet SPI tapas

Pievienojiet SPI tapas
Pievienojiet SPI tapas

Šeit ir savienojuma kopsavilkums:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> nav pievienots Vcc -> 3,3 V LED+ -> 12 omu rezistors -> 3,3 V LED - -> GND

14. darbība: zibatmiņas programma

Flash programma
Flash programma
Flash programma
Flash programma
Flash programma
Flash programma
Flash programma
Flash programma
  1. Lejupielādējiet avota kodu vietnē GitHub:
  2. Zem avota koda mapes palaidiet "make menuconfig"
  3. Atlasiet "Nofrendo ESP32 specifiska konfigurācija"
  4. Atlasiet “Aparatūra darbināšanai” -> “Pielāgota aparatūra”
  5. Izvēlieties "LCD tips" -> "ST7789V LCD"
  6. Uzpildes tapas iestatījumi: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, fona apgaismojums -> -1, IPS -> Y
  7. Iziet un saglabāt
  8. Palaidiet “make -j5 flash”
  9. Palaidiet "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

15. darbība: I2C savienotājs

I2C savienotājs
I2C savienotājs
I2C savienotājs
I2C savienotājs
I2C savienotājs
I2C savienotājs

Izlaužot I2C tapas, ESP32 noklusējuma I2C tapas ir:

1. tapa (SCL) -> GPIO 22

2. tapa (SDA) -> GPIO 21 3. tapa (Vcc) -> 3.3 V (bez 5 V strāvas, ja to darbina Lipo akumulators) 4. tapa (GND) -> GND

16. darbība: montāža 1. daļa

Image
Image

Izpildiet video darbības, lai salocītu un saspiestu visas detaļas korpusā.

17. solis: prototipa I2C spēļu paliktnis

Prototipa I2C Gamepad
Prototipa I2C Gamepad
Prototipa I2C Gamepad
Prototipa I2C Gamepad

I2C Gamepad programma ir ļoti vienkārša, tikai 15 koda rindas. Bet pēc lodēšanas ir nedaudz grūti pārprogrammēt ATtiny861, tāpēc labāk to vispirms pārbaudīt uz maizes dēļa.

Lejupielādējiet, apkopojiet un palaidiet programmu no GitHub:

18. darbība. Izveidojiet I2C Gamepad

Izveidojiet I2C spēļu paliktni
Izveidojiet I2C spēļu paliktni
Izveidojiet I2C spēļu paliktni
Izveidojiet I2C spēļu paliktni
Izveidojiet I2C spēļu paliktni
Izveidojiet I2C spēļu paliktni

Šeit ir savienojuma kopsavilkums:

ATtiny861 Poga

GND -> Visas pogas viena tapa Pin 20 (PA0) -> Uz augšu poga Pin 19 (PA1) -> Down pogu Down Pin 18 (PA2) -> Kreisā poga Pin 17 (PA3) -> Labā poga Pin 14 (PA4) -> Atlasiet pogu Piespraude 13 (PA5) -> Sākuma poga Piespraude 12 (PA6) -> A poga Tapa 11 (PA7) -> B poga 6. tapa (GND) -> I2C vīriešu tapas galvenes tapa 4 tapa 5 (Vcc) -> I2C tērauda tapas galvenes tapa 3 Pin 3 (SCL) -> I2C male pin header pin 1 Pin 1 (SDA) -> I2C male pin header pin 2

19. darbība: montāža 2. daļa

Image
Image
Pēc izvēles: audio sadalīšanas tapas
Pēc izvēles: audio sadalīšanas tapas

Izpildiet video darbības, lai galvenajam korpusam uzstādītu vāku un I2C spēļu paneli.

20. darbība: pēc izvēles: audio sadalīšanas tapas

Image
Image
Pēc izvēles: audio sadalīšanas tapas
Pēc izvēles: audio sadalīšanas tapas

ESP32 izstrādātāju plāksne 25. un 26. tapa izvada analogo audio signālu, un ir ļoti viegli izlauzt šīs divas tapas, kā arī barošanas tapas (3,3 V un GND) augšpusē. Pēc tam varat ielīmēt austiņas, lai tās pievienotu. Vai pat varat pievienot audio pastiprinātāja moduli ar skaļruni, lai to atskaņotu skaļi.

21. solis: kas tālāk?

Ko tālāk?
Ko tālāk?

NES emulators nav vienīgā interesantā lieta, ko varat izveidot, izmantojot ESP32. Piem. ar to jūs varat izveidot mikro python konsoli. Vienīgais komponents, kas jums jāmaina, ir no I2C gamepad uz I2C tastatūru. Es domāju, ka to nav tik grūti izdarīt ar ATtiny88 kontrolieri. Jūs varat sekot manam twitterim, lai redzētu statusu.

Ieteicams: