Innehållsförteckning:

ESP32 handhållen spelkonsol: 21 steg (med bilder)
ESP32 handhållen spelkonsol: 21 steg (med bilder)

Video: ESP32 handhållen spelkonsol: 21 steg (med bilder)

Video: ESP32 handhållen spelkonsol: 21 steg (med bilder)
Video: Nintendo switch самая опасная консоль! Подпишись, что бы узнать о Nintendo больше! 2024, November
Anonim
Image
Image
Förberedelse av hårdvara
Förberedelse av hårdvara

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

Förberedelse av hårdvara
Förberedelse av hårdvara
Förberedelse av hårdvara
Förberedelse av hårdvara

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

Förberedelse av programvara
Förberedelse av programvara
Förberedelse av programvara
Förberedelse av programvara
Förberedelse av programvara
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

3d-utskrivning
3d-utskrivning

Ladda ner och skriv ut fallet:

Steg 4: LCD -stöd

LCD -stöd
LCD -stöd
LCD -stöd
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

Förbered PETG -plattan
Förbered PETG -plattan
Förbered PETG -plattan
Förbered PETG -plattan

Klipp ut en 62 mm x 69 mm PETG -platta för dev board och Lipo batteristöd.

Steg 6: Fixa ESP32 Dev Board

Fixa ESP32 Dev Board
Fixa ESP32 Dev Board

Använd dubbelhäftande tejp för att fixera dev -kortet på PETG -plattan.

Steg 7: Fixera Lipo -batteri

Fix Lipo -batteri
Fix Lipo -batteri

Använd dubbelhäftande tejp för att fixa Lipo -batteriet förutom dev -kortet.

Steg 8: Anslut batteri- och dev -kortet

Anslut batteri- och dev -kort
Anslut batteri- och dev -kort

Steg 9: Förbered displaynålar

Förbered displaynålar
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

Anslut GND Pins
Anslut GND Pins
Anslut GND Pins
Anslut GND Pins

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

Anslut Vcc -stift
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

Anslut LCD- och Dev -kortstöd
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

Anslut SPI -stift
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

Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
  1. Ladda ner källkoden på GitHub:
  2. Kör "make menuconfig" under källkodmappen
  3. Välj "Nofrendo ESP32-specifik konfiguration"
  4. Välj "Hårdvara att köra på" -> "Anpassad maskinvara"
  5. Välj "LCD -typ" -> "ST7789V LCD"
  6. Fyllningsstiftinställningar: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, bakgrundsbelysning -> -1, IPS -> Y
  7. Avsluta och spara
  8. Kör "make -j5 flash"
  9. Kör "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Steg 15: I2C -kontakt

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

Image
Image

Följ videostegen för att vika och klämma in alla delar i fodralet.

Steg 17: Prototyp I2C gamepad

Prototyp I2C gamepad
Prototyp I2C gamepad
Prototyp I2C gamepad
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

Bygg I2C Gamepad
Bygg I2C Gamepad
Bygg I2C Gamepad
Bygg I2C Gamepad
Bygg I2C Gamepad
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

Image
Image
Valfritt: Audio Breakout Pins
Valfritt: Audio Breakout Pins

Följ videostegen för att installera omslaget och I2C -spelkontrollen på huvuddelen.

Steg 20: Valfritt: Audio Breakout Pins

Image
Image
Valfritt: Audio Breakout Pins
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?

Vad kommer härnäst?
Vad kommer härnäst?

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: