Innehållsförteckning:
- Steg 1: Förberedelse av maskinvara
- Steg 2: Förberedelse av programvara
- Steg 3: 3D -utskrift
- Steg 4: LCD -stöd
- Steg 5: Förbered PETG -tallrik
- Steg 6: Fixa ESP32 Dev Board
- Steg 7: Fixera Lipo -batteri
- Steg 8: Anslut batteri- och dev -kortet
- Steg 9: Förbered displaynålar
- Steg 10: Anslut GND -stift
- Steg 11: Anslut Vcc -stift
- Steg 12: Anslut LCD- och Dev -kortstöd
- Steg 13: Anslut SPI -stift
- Steg 14: Flash -program
- Steg 15: I2C -kontakt
- Steg 16: Montering Del 1
- Steg 17: Prototyp I2C gamepad
- Steg 18: Bygg I2C Gamepad
- Steg 19: Montering Del 2
- Steg 20: Valfritt: Audio Breakout Pins
- Steg 21: Vad är nästa?
Video: ESP32 handhållen spelkonsol: 21 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Denna instruktion visar hur man använder en ESP32 och ATtiny861 för att bygga en NES -emulator -spelkonsol.
Steg 1: Förberedelse av maskinvara
ESP32 Dev Board
Den här gången använder jag ett TTGO T8 ESP32 dev -kort. Detta kort har inbyggd Lipo laddnings- och regleringskrets, det kan hjälpa till att minska de extra komponenterna.
Visa
Den här gången använder jag en 2,4 IPS LCD. Drivrutinen är ST7789V och upplösningen är 320 x 240. Denna upplösning passar bäst för NES emulator 252 x 224 upplösning.
Batteri
Den här gången använder jag ett 454261 Lipo -batteri. 4,5 mm är tjockleken på ESP32 dev -kortet och 61 mm är brettets bredd.
Pin Header
En 4 -stifts hanstycke med rund stift och en 4 -stifts hona med rund stift för anslutning av I2C -spelkontroll.
PETG -tallrik
En liten PET/PETG -platta för att stödja dev -kortet och Lipo -batteriet, du hittar det enkelt i produktförpackningen.
Multifunktions -kretskort
2 kretskort krävs, 1 0,4 mm tjock för att stödja skärmen, 1 1,2 mm tjock för en I2C -spelkontroll.
Knappar
En knapp på 5 riktningar, 2 små knappar för Select och Start och 2 för A och B -knapp.
I2C spelkontroll
Den här gången använder jag en ATtiny861 mikrokontroller som en I2C gamepad controller.
Andra
1 SMD 12 Ohm -motstånd, en ISP -programmerare (t.ex. TinyISP)
Steg 2: Förberedelse av programvara
Arduino IDE
Ladda ner och installera Arduino IDE om inte ännu:
ATTinyCore -support
Följ installationsstegen för att lägga till ATTinyCore -support om inte ännu:
ESP-IDF
Följ ESP-IDF-guiden för att komma igång för att konfigurera utvecklingsmiljön om inte ännu:
Steg 3: 3D -utskrift
Ladda ner och skriv ut fallet:
Steg 4: LCD -stöd
Skär ett 24 x 27 hål 0,4 mm PCB för LCD -stöd. Kom ihåg att reservera lite utrymme för att fälla LCD FPC. Använd sedan självhäftande tejp för att fixera LCD -skärmen på kretskortet.
Steg 5: Förbered PETG -tallrik
Klipp ut en 62 mm x 69 mm PETG -platta för dev board och Lipo batteristöd.
Steg 6: Fixa ESP32 Dev Board
Använd dubbelhäftande tejp för att fixera dev -kortet på PETG -plattan.
Steg 7: Fixera Lipo -batteri
Använd dubbelhäftande tejp för att fixa Lipo -batteriet förutom dev -kortet.
Steg 8: Anslut batteri- och dev -kortet
Steg 9: Förbered displaynålar
LCD -display har många variationer från olika leverantörer. Vänligen skaffa rätt datablad och läs det innan någon patch och anslutning.
Vissa stift är reserverade för pekskärm. Eftersom denna LCD -skärm inte har pekskärm kan du helt enkelt klippa ut dessa stift för att minska störningen.
Steg 10: Anslut GND -stift
I de flesta fall är det få stift som kräver anslutning till GND. För att minska lödningsansträngningen skär jag en koppartejpform för att nå alla GND -stiften och sedan lödning helt och hållet.
Steg 11: Anslut Vcc -stift
Det krävs två stift för anslutning till Vcc, LCD -ström och LED -ström. Enligt datablad kan LCD -ström direkt anslutas till dev -kortet 3,3 V -stift men LED -ström fungerar lite lägre än 3,3 V. Så det är bättre att lägga till ett SMD -motstånd i mitten, t.ex. 12 Ohm motstånd.
Steg 12: Anslut LCD- och Dev -kortstöd
använd tape connect LCD -stöd och dev -kortstöd tillsammans. Båda stödet bör reservera cirka 5 mm mellanrum för vikning.
Steg 13: Anslut SPI -stift
Här är sammanfattningen av anslutningen:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> ej ansluten Vcc -> 3,3 V LED+ -> 12 Ohm motstånd -> 3,3 V LED - -> GND
Steg 14: Flash -program
- Ladda ner källkoden på GitHub:
- Kör "make menuconfig" under källkodmappen
- Välj "Nofrendo ESP32-specifik konfiguration"
- Välj "Hårdvara att köra på" -> "Anpassad maskinvara"
- Välj "LCD -typ" -> "ST7789V LCD"
- Fyllningsstiftinställningar: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, bakgrundsbelysning -> -1, IPS -> Y
- Avsluta och spara
- Kör "make -j5 flash"
- Kör "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Steg 15: I2C -kontakt
Bryter I2C -stiften, ESP32 standard I2C -stift är:
Pin 1 (SCL) -> GPIO 22
Stift 2 (SDA) -> GPIO 21 Stift 3 (Vcc) -> 3,3 V (ingen 5 V ström när det drivs av Lipo -batteri) Stift 4 (GND) -> GND
Steg 16: Montering Del 1
Följ videostegen för att vika och klämma in alla delar i fodralet.
Steg 17: Prototyp I2C gamepad
Programmet för I2C Gamepad är väldigt enkelt, bara 15 rader kod. Men det är lite svårt att omprogrammera ATtiny861 efter lödning, så det är bättre att testa det på brödbrädan först.
Ladda ner, kompilera och flasha programmet från GitHub:
Steg 18: Bygg I2C Gamepad
Här är anslutningssammanfattningen:
ATtiny861 -knapp
GND -> Alla knappar en stift Pin 20 (PA0) -> Upp -knapp Pin 19 (PA1) -> Ned -knapp Pin 18 (PA2) -> Vänster knapp Pin 17 (PA3) -> Höger knapp Pin 14 (PA4) -> Välj knapp Pin 13 (PA5) -> Startknapp Pin 12 (PA6) -> A knapp Pin 11 (PA7) -> B knapp Pin 6 (GND) -> I2C male pin header pin 4 Pin 5 (Vcc) -> I2C hanstiftstift 3 Pin 3 (SCL) -> I2C male pin header pin 1 Pin 1 (SDA) -> I2C male pin header pin 2
Steg 19: Montering Del 2
Följ videostegen för att installera omslaget och I2C -spelkontrollen på huvuddelen.
Steg 20: Valfritt: Audio Breakout Pins
ESP32 dev board Pin 25 och 26 matar ut den analoga ljudsignalen, det är mycket lätt att bryta ut dessa 2 stift och även power pins (3.3 V och GND) på toppen. Sedan kan du fixa en hörlur för att ansluta den. Eller till och med du kan lägga till en ljudförstärkarmodul med högtalare för att spela högt.
Steg 21: Vad är nästa?
NES -emulator är inte det enda intressanta du kan göra med ESP32. T.ex. du kan bygga en mikro pythonkonsol med den. Den enda komponenten du behöver ändra är från I2C gamepad till I2C keyboard. Jag tror att det inte är så svårt att göra det med en ATtiny88 -kontroller. Du kan följa min twitter för att se status.
Rekommenderad:
DIY handhållen spelkonsol med RetroPie: 7 steg
DIY handhållen spelkonsol med RetroPie: Titta på videon ovan för att förstå detta projekt bättre. Bra. Det är dags att komma igång! Först och främst kommer vi att använda RetroPie. Detta lämnar oss med två alternativ. Om vi redan har installerat Raspbian på vårt SD -kort kan vi installera RetroP
DIY Raspberry Pi Zero handhållen spelkonsol: 6 steg (med bilder)
DIY Raspberry Pi Zero handhållen spelkonsol: I det här projektet kommer jag att visa dig hur jag använde en Raspberry Pi Zero, NiMH-batterier, en hemlagad överladdningsskyddskrets, en bakre lcd och en ljudförstärkare för att skapa en handhållen spelkonsol som kan spela retro spel. Låt oss börja
Handhållen spelkonsol - Arduboy -klon: 6 steg (med bilder)
Handhållen spelkonsol | Arduboy Clone: För några månader sedan stötte jag på Arduboy som enligt sin officiella webbplats är en miniatyr 8-bitars spelplattform som gör det enkelt att lära sig, dela och spela spel online. Det är en öppen källkod plattform. Spelen för Arduboy är gjorda av användaren
Handhållen Recalbox -spelkonsol med 2,2 TFT: 6 steg
Handhållen Recalbox -spelkonsol med 2,2 TFT: Instruktioner för hur man gör en handhållen spelkonsol med 2,2 "TFT LCD och en Raspberry Pi 0 W och GPIO -knappar. Du kan se den här YouTube -videon för en fullständig demonstration av de inblandade stegen: A. Få alla delar. B. Lödda ihop delarna
Retro spelkonsol (N64 Mod) med KODI: 7 steg (med bilder)
Retro spelkonsol (N64 Mod) Med KODI: Att spela retrospel på gamla skolkonsoler är mycket roligt, men att köpa de enskilda konsolerna och alla spel som följer med är för krångligt och dyrt! För att inte tala om om du är en högskola/universitetsstudent och flyttar lägenheter före