Innholdsfortegnelse:

ESP32 håndholdt spillkonsoll: 21 trinn (med bilder)
ESP32 håndholdt spillkonsoll: 21 trinn (med bilder)

Video: ESP32 håndholdt spillkonsoll: 21 trinn (med bilder)

Video: ESP32 håndholdt spillkonsoll: 21 trinn (med bilder)
Video: Why did I use THIS microcontroller?? 2024, Juli
Anonim
Image
Image
Forberedelse av maskinvare
Forberedelse av maskinvare

Denne instruksjonene viser hvordan du bruker en ESP32 og ATtiny861 til å bygge en NES -emulator spillkonsoll.

Trinn 1: Forberedelse av maskinvare

Forberedelse av maskinvare
Forberedelse av maskinvare
Forberedelse av maskinvare
Forberedelse av maskinvare

ESP32 Dev Board

Denne gangen bruker jeg et TTGO T8 ESP32 dev -kort. Dette brettet har innebygd Lipo lade- og reguleringskrets, det kan bidra til å redusere de ekstra komponentene.

Vise

Denne gangen bruker jeg en 2,4 IPS LCD. Driverkontrolleren er ST7789V og oppløsningen er 320 x 240. Denne oppløsningen passer best for NES emulator 252 x 224 oppløsning.

Batteri

Denne gangen bruker jeg et 454261 Lipo -batteri. 4,5 mm er tykkelsen på ESP32 dev -brettet, og 61 mm er bredden på brettet.

Pin Header

En 4 -pins mannlig rundpinneoverskrift og en 4 -pins kvinnelig rundpinneoverskrift for tilkobling av I2C -gamepad.

PETG -plate

En liten PET/PETG -plate for å støtte dev -brettet og Lipo -batteriet, du finner det enkelt i produktemballasje.

PCB med flere formål

2 PCB kreves, 1 0,4 mm tykk for å støtte skjermen, 1 1,2 mm tykk for en I2C gamepad.

Knapper

En knapp for 5 retninger, 2 små knapper for Select og Start og 2 for A og B -knapp.

I2C gamepad -kontroller

Denne gangen bruker jeg en ATtiny861 mikrokontroller som en I2C gamepad -kontroller.

Andre

1 SMD 12 Ohm motstand, en ISP programmerer (f.eks. TinyISP)

Trinn 2: Forberedelse av programvare

Forberedelse av programvare
Forberedelse av programvare
Forberedelse av programvare
Forberedelse av programvare
Forberedelse av programvare
Forberedelse av programvare

Arduino IDE

Last ned og installer Arduino IDE hvis ikke ennå:

ATTinyCore -støtte

Følg installasjonstrinnene for å legge til ATTinyCore -støtte hvis ikke ennå:

ESP-IDF

Følg ESP-IDF startguide for å sette opp utviklingsmiljøet hvis ikke ennå:

Trinn 3: 3D -utskrift

3D -utskrift
3D -utskrift

Last ned og skriv ut saken:

Trinn 4: LCD -støtte

LCD -støtte
LCD -støtte
LCD -støtte
LCD -støtte

Klipp en 24 x 27 hulls 0,4 mm PCB for LCD -støtte. Husk å reservere plass for sammenleggbar LCD FPC. Fest deretter LCD -skjermen på kretskortet med tape med dobbeltsidig tape.

Trinn 5: Forbered PETG -tallerken

Forbered PETG -tallerken
Forbered PETG -tallerken
Forbered PETG -tallerken
Forbered PETG -tallerken

Klipp ut en 62 mm x 69 mm PETG -plate for dev board og Lipo batteristøtte.

Trinn 6: Fix ESP32 Dev Board

Fix ESP32 Dev Board
Fix ESP32 Dev Board

Bruk dobbeltsidig tape for å fikse dev -brettet på PETG -platen.

Trinn 7: Fix Lipo -batteri

Fix Lipo -batteri
Fix Lipo -batteri

Bruk dobbeltsidig tape for å fikse Lipo -batteriet i tillegg til dev -kortet.

Trinn 8: Koble til batteri- og dev -kortet

Koble til batteri og dev -kort
Koble til batteri og dev -kort

Trinn 9: Forbered displaynålene

Forbered displaynålene
Forbered displaynålene

LCD -skjerm har mange varianter fra forskjellige leverandører. Vennligst skaff det riktige databladet og les det før du oppdaterer og kobler til.

Noen pins er forbeholdt berøringspanel. Siden denne LCD -skjermen ikke har berøringspanel, kan du bare kutte ut disse pinnene for å redusere forstyrrelsen.

Trinn 10: Koble til GND Pins

Koble til GND Pins
Koble til GND Pins
Koble til GND Pins
Koble til GND Pins

I de fleste tilfeller er det få pinner som krever tilkobling til GND. For å redusere loddeinnsatsen, kuttet jeg en kobberbåndform for å nå alle GND -pinnene og deretter lodde helt.

Trinn 11: Koble til Vcc Pins

Koble til Vcc Pins
Koble til Vcc Pins

Det er 2 pinner som kreves for å koble til Vcc, LCD -strøm og LED -strøm. I henhold til databladet kan LCD -strøm direkte koble til 3,3 V -pin på dev board, men LED -strøm fungerer litt lavere enn 3,3 V. Så det er bedre å legge til en SMD -motstand i midten, f.eks. 12 Ohm motstand.

Trinn 12: Koble til LCD- og Dev Board -støtte

Koble til LCD- og Dev Board -støtte
Koble til LCD- og Dev Board -støtte

bruk tape connect LCD -støtte og dev -kortstøtte sammen. Begge støttene bør reservere rundt 5 mm mellomrom for bretting.

Trinn 13: Koble til SPI -pinner

Koble til SPI -pinner
Koble til SPI -pinner

Her er tilkoblingssammendraget:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> ikke tilkoblet Vcc -> 3,3 V LED+ -> 12 Ohm motstand -> 3,3 V LED - -> GND

Trinn 14: Flash -program

Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
  1. Last ned kildekoden på GitHub:
  2. Kjør "make menuconfig" under kildekodemappen
  3. Velg "Nofrendo ESP32-spesifikk konfigurasjon"
  4. Velg "Maskinvare å kjøre på" -> "Egendefinert maskinvare"
  5. Velg "LCD Type" -> "ST7789V LCD"
  6. Innstillinger for fyllpinne: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, bakgrunnsbelysning -> -1, IPS -> Y
  7. Avslutt og lagre
  8. Kjør "make -j5 flash"
  9. Kjør "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Trinn 15: I2C -kontakt

I2C -kontakt
I2C -kontakt
I2C -kontakt
I2C -kontakt
I2C -kontakt
I2C -kontakt

Bryter I2C -pinnene, er ESP32 standard I2C -pinner:

Pin 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (ingen 5 V strøm mens den drives av Lipo -batteri) Pin 4 (GND) -> GND

Trinn 16: Montering Del 1

Image
Image

Følg videotrinnene for å brette og klemme alle delene inn i etuiet.

Trinn 17: Prototype I2C gamepad

Prototype I2C gamepad
Prototype I2C gamepad
Prototype I2C gamepad
Prototype I2C gamepad

Programmet for I2C Gamepad er veldig enkelt, bare 15 linjer med kode. Men det er litt vanskelig å omprogrammere ATtiny861 etter lodding, så det er bedre å teste det på brødbrettet først.

Last ned, kompiler og flash programmet fra GitHub:

Trinn 18: Bygg I2C Gamepad

Bygg I2C gamepad
Bygg I2C gamepad
Bygg I2C gamepad
Bygg I2C gamepad
Bygg I2C gamepad
Bygg I2C gamepad

Her er tilkoblingssammendraget:

ATtiny861 -knapp

GND -> Alle knapper en pinne Pin 20 (PA0) -> Opp knapp Pin 19 (PA1) -> Ned knapp Pin 18 (PA2) -> Venstre knapp Pin 17 (PA3) -> Høyre knapp Pin 14 (PA4) -> Velg knapp Pin 13 (PA5) -> Start -knapp Pin 12 (PA6) -> A -knapp Pin 11 (PA7) -> B -knapp Pin 6 (GND) -> I2C male pin header pin 4 Pin 5 (Vcc) -> I2C pin pin header pin 3 Pin 3 (SCL) -> I2C male pin header pin 1 Pin 1 (SDA) -> I2C male pin header pin 2

Trinn 19: Montering Del 2

Image
Image
Valgfritt: Audio Breakout Pins
Valgfritt: Audio Breakout Pins

Følg videotrinnene for å installere dekselet og I2C gamepad på hoveddelen.

Trinn 20: Valgfritt: Audio Breakout Pins

Image
Image
Valgfritt: Audio Breakout Pins
Valgfritt: Audio Breakout Pins

ESP32 dev board Pin 25 og 26 sender ut det analoge lydsignalet, det er veldig enkelt å bryte disse 2 pinnene og også strømpinnene (3,3 V og GND) på toppen. Deretter kan du lappe en øretelefon for å koble den til. Eller til og med du kan legge til en lydforsterkermodul med høyttaler for å spille den høyt.

Trinn 21: Hva er neste?

Hva blir det neste?
Hva blir det neste?

NES -emulator er ikke det eneste interessante du kan lage med ESP32. F.eks. du kan bygge en mikro pythonkonsoll med den. Den eneste komponenten du trenger å endre er fra I2C gamepad til I2C tastatur. Jeg tror det ikke er så vanskelig å gjøre det med en ATtiny88 -kontroller. Du kan følge twitteren min for å se statusen.

Anbefalt: