Inhaltsverzeichnis:

ESP32 Handheld-Spielekonsole - Gunook
ESP32 Handheld-Spielekonsole - Gunook

Video: ESP32 Handheld-Spielekonsole - Gunook

Video: ESP32 Handheld-Spielekonsole - Gunook
Video: Nintendo Switch ESP32 controller 2024, November
Anonim
Image
Image
Hardwarevorbereitung
Hardwarevorbereitung

Diese instructables zeigen, wie man einen ESP32 und ATtiny861 verwendet, um eine NES-Emulator-Spielekonsole zu bauen.

Schritt 1: Hardwarevorbereitung

Hardwarevorbereitung
Hardwarevorbereitung
Hardwarevorbereitung
Hardwarevorbereitung

ESP32-Entwicklungsboard

Dieses Mal verwende ich ein TTGO T8 ESP32-Entwicklungsboard. Diese Platine verfügt über einen integrierten Lipo-Lade- und Regelkreis, der dazu beitragen kann, die zusätzlichen Komponenten zu reduzieren.

Anzeige

Dieses Mal verwende ich ein 2,4-Zoll-IPS-LCD. Der Treibercontroller ist ST7789V und die Auflösung beträgt 320 x 240. Diese Auflösung ist am besten für den NES-Emulator mit einer Auflösung von 252 x 224 geeignet.

Batterie

Diesmal verwende ich einen 454261 Lipo Akku. 4,5 mm ist die Dicke des ESP32-Entwicklungsboards und 61 mm ist die Breite des Boards.

Stiftleiste

Eine 4-polige runde Stiftleiste und eine 4-polige runde Stiftleiste zum Anschluss von I2C-Gamepads.

PETG-Platte

Eine kleine PET / PETG-Platte zur Unterstützung des Entwicklungsboards und der Lipo-Batterie, die Sie leicht in der Produktverpackung finden können.

Mehrzweck-PCB

2 PCB erforderlich, 1 0,4 mm dick für die Unterstützung des Displays, 1 1,2 mm dick für ein I2C-Gamepad.

Tasten

A 5 Richtungstasten, 2 kleine Tasten für Select und Start und 2 für A- und B-Taste.

I2C-Gamepad-Controller

Diesmal verwende ich einen ATtiny861-Mikrocontroller als I2C-Gamepad-Controller.

Andere

1 SMD 12 Ohm Widerstand, ein ISP-Programmierer (z. B. TinyISP)

Schritt 2: Softwarevorbereitung

Softwarevorbereitung
Softwarevorbereitung
Softwarevorbereitung
Softwarevorbereitung
Softwarevorbereitung
Softwarevorbereitung

Arduino-IDE

Laden Sie die Arduino IDE herunter und installieren Sie sie, falls noch nicht:

ATTinyCore-Unterstützung

Befolgen Sie die Installationsschritte, um ATTinyCore-Unterstützung hinzuzufügen, falls noch nicht:

ESP-IDF

Folgen Sie dem ESP-IDF-Leitfaden für die ersten Schritte, um die Entwicklungsumgebung einzurichten, falls noch nicht:

Schritt 3: 3D-Druck

3d Drucken
3d Drucken

Laden Sie den Fall herunter und drucken Sie ihn aus:

Schritt 4: LCD-Unterstützung

LCD-Unterstützung
LCD-Unterstützung
LCD-Unterstützung
LCD-Unterstützung

Schneiden Sie eine Leiterplatte mit 24 x 27 Löchern und 0,4 mm für die LCD-Unterstützung. Denken Sie daran, etwas Platz für den zusammenklappbaren LCD-FPC zu reservieren. Verwenden Sie dann etwas doppelseitiges Klebeband, um das LCD auf der Platine zu befestigen.

Schritt 5: PETG-Platte vorbereiten

PETG-Platte vorbereiten
PETG-Platte vorbereiten
PETG-Platte vorbereiten
PETG-Platte vorbereiten

Schneiden Sie eine 62 mm x 69 mm PETG-Platte für das Entwicklungsboard und die Lipo-Batteriehalterung aus.

Schritt 6: ESP32 Dev Board reparieren

ESP32-Entwicklerplatine reparieren
ESP32-Entwicklerplatine reparieren

Verwenden Sie doppelseitiges Klebeband, um die Entwicklungsplatine auf der PETG-Platte zu befestigen.

Schritt 7: Lipo-Batterie reparieren

Lipo-Akku reparieren
Lipo-Akku reparieren

Verwenden Sie doppelseitiges Klebeband, um den Lipo-Akku neben dem Entwicklungsboard zu befestigen.

Schritt 8: Batterie und Dev Board anschließen

Batterie und Dev-Board verbinden
Batterie und Dev-Board verbinden

Schritt 9: Display-Pins vorbereiten

Display-Pins vorbereiten
Display-Pins vorbereiten

LCD-Displays haben viele Variationen von verschiedenen Anbietern. Bitte besorgen Sie sich das richtige Datenblatt und lesen Sie es vor jedem Patch und Anschluss.

Einige Pins sind für das Touchpanel reserviert. Da dieses LCD kein Touchpanel hat, können Sie diese Pins einfach ausschneiden, um die Störung zu reduzieren.

Schritt 10: Verbinden Sie die GND-Pins

Verbinden Sie die GND-Pins
Verbinden Sie die GND-Pins
Verbinden Sie die GND-Pins
Verbinden Sie die GND-Pins

In den meisten Fällen müssen nur wenige Pins mit GND verbunden werden. Um den Lötaufwand zu reduzieren, schneide ich eine Kupferbandform, um alle GND-Pins zu erreichen, und löte dann insgesamt.

Schritt 11: Vcc-Pins anschließen

Vcc-Pins verbinden
Vcc-Pins verbinden

Es sind 2 Pins erforderlich, die mit Vcc, LCD-Strom und LED-Strom verbunden sind. Laut Datenblatt kann die LCD-Stromversorgung direkt an den 3,3-V-Pin der Entwicklerplatine angeschlossen werden, aber die LED-Stromversorgung arbeitet etwas niedriger als 3,3 V. Daher ist es besser, einen SMD-Widerstand in der Mitte hinzuzufügen, z. 12 Ohm Widerstand.

Schritt 12: LCD- und Dev-Board-Unterstützung anschließen

Unterstützung von LCD- und Dev-Board-Verbindungen
Unterstützung von LCD- und Dev-Board-Verbindungen

Verwenden Sie Tape, um die LCD-Unterstützung und die Entwicklerplatinenunterstützung zusammen zu verbinden. Beide Stützen sollten etwa 5 mm Spalt zum Falten reservieren.

Schritt 13: SPI-Pins anschließen

SPI-Pins verbinden
SPI-Pins verbinden

Hier die Verbindungszusammenfassung:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> nicht verbunden Vcc -> 3,3 V LED+ -> 12 Ohm Widerstand -> 3,3 V LED - -> GND

Schritt 14: Flash-Programm

Flash-Programm
Flash-Programm
Flash-Programm
Flash-Programm
Flash-Programm
Flash-Programm
Flash-Programm
Flash-Programm
  1. Laden Sie den Quellcode auf GitHub herunter:
  2. Führen Sie im Quellcodeordner "make menuconfig" aus
  3. Wählen Sie "Nofrendo ESP32-spezifische Konfiguration"
  4. Wählen Sie "Hardware zum Ausführen auf" -> "Benutzerdefinierte Hardware"
  5. Wählen Sie "LCD-Typ" -> "ST7789V LCD"
  6. Füllstifteinstellungen: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Hintergrundbeleuchtung -> -1, IPS -> Y
  7. Beenden und speichern
  8. Führen Sie "make -j5 flash" aus
  9. Führen Sie "sh flashrom.sh PATH_TO_YOUR_ROM_FILE" aus.

Schritt 15: I2C-Anschluss

I2C-Anschluss
I2C-Anschluss
I2C-Anschluss
I2C-Anschluss
I2C-Anschluss
I2C-Anschluss

Brechen Sie die I2C-Pins aus, ESP32-Standard-I2C-Pins sind:

Pin 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (keine 5 V Stromversorgung bei Versorgung mit Lipo-Batterie) Pin 4 (GND) -> GND

Schritt 16: Montageteil 1

Image
Image

Befolgen Sie die Videoschritte, um alle Teile zu falten und in das Gehäuse zu drücken.

Schritt 17: Prototyp I2C Gamepad

Prototyp eines I2C-Gamepads
Prototyp eines I2C-Gamepads
Prototyp eines I2C-Gamepads
Prototyp eines I2C-Gamepads

Das Programm für das I2C Gamepad ist sehr einfach, nur 15 Zeilen Code. Es ist jedoch etwas schwierig, den ATtiny861 nach dem Löten neu zu programmieren, daher ist es besser, ihn zuerst auf dem Steckbrett zu testen.

Laden, kompilieren und flashen Sie das Programm von GitHub:

Schritt 18: I2C-Gamepad erstellen

I2C-Gamepad erstellen
I2C-Gamepad erstellen
I2C-Gamepad erstellen
I2C-Gamepad erstellen
I2C-Gamepad erstellen
I2C-Gamepad erstellen

Hier die Verbindungszusammenfassung:

ATtiny861 Taste

GND -> Alle Tasten ein Pin Pin 20 (PA0) -> Up-Taste Pin 19 (PA1) -> Down-Taste Pin 18 (PA2) -> Linke Taste Pin 17 (PA3) -> Rechte Taste Pin 14 (PA4) -> Auswahltaster Pin 13 (PA5) -> Starttaster Pin 12 (PA6) -> A Taster Pin 11 (PA7) -> B Taster Pin 6 (GND) -> I2C Stiftleiste Pin 4 Pin 5 (Vcc) -> I2C Stiftleiste Pin 3 Pin 3 (SCL) -> I2C Stiftleiste Pin 1 Pin 1 (SDA) -> I2C Stiftleiste Pin 2

Schritt 19: Montageteil 2

Image
Image
Optional: Audio-Breakout-Pins
Optional: Audio-Breakout-Pins

Befolgen Sie die Videoschritte, um die Abdeckung und das I2C-Gamepad am Hauptkörper zu installieren.

Schritt 20: Optional: Audio Breakout Pins

Image
Image
Optional: Audio-Breakout-Pins
Optional: Audio-Breakout-Pins

Die ESP32-Entwicklungsplatine Pin 25 und 26 gibt das analoge Audiosignal aus, es ist sehr einfach, diese 2 Pins und auch die Power-Pins (3,3 V und GND) auf der Oberseite auszubrechen. Dann können Sie einen Kopfhörer anschließen, um ihn anzuschließen. Oder Sie können sogar ein Audioverstärkermodul mit Lautsprecher hinzufügen, um es laut abzuspielen.

Schritt 21: Was kommt als nächstes?

Was kommt als nächstes?
Was kommt als nächstes?

Der NES-Emulator ist nicht die einzige interessante Sache, die Sie mit ESP32 machen können. Z. B. Sie können damit eine Micro-Python-Konsole bauen. Die einzige Komponente, die Sie ändern müssen, ist vom I2C-Gamepad auf die I2C-Tastatur. Ich denke, es ist nicht so schwierig, es mit einem ATtiny88-Controller zu schaffen. Sie können meinem Twitter folgen, um den Status zu sehen.

Empfohlen: