Inhaltsverzeichnis:
- Schritt 1: Hardwarevorbereitung
- Schritt 2: Softwarevorbereitung
- Schritt 3: 3D-Druck
- Schritt 4: LCD-Unterstützung
- Schritt 5: PETG-Platte vorbereiten
- Schritt 6: ESP32 Dev Board reparieren
- Schritt 7: Lipo-Batterie reparieren
- Schritt 8: Batterie und Dev Board anschließen
- Schritt 9: Display-Pins vorbereiten
- Schritt 10: Verbinden Sie die GND-Pins
- Schritt 11: Vcc-Pins anschließen
- Schritt 12: LCD- und Dev-Board-Unterstützung anschließen
- Schritt 13: SPI-Pins anschließen
- Schritt 14: Flash-Programm
- Schritt 15: I2C-Anschluss
- Schritt 16: Montageteil 1
- Schritt 17: Prototyp I2C Gamepad
- Schritt 18: I2C-Gamepad erstellen
- Schritt 19: Montageteil 2
- Schritt 20: Optional: Audio Breakout Pins
- Schritt 21: Was kommt als nächstes?
Video: ESP32 Handheld-Spielekonsole - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Diese instructables zeigen, wie man einen ESP32 und ATtiny861 verwendet, um eine NES-Emulator-Spielekonsole zu bauen.
Schritt 1: 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
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
Laden Sie den Fall herunter und drucken Sie ihn aus:
Schritt 4: 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
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
Verwenden Sie doppelseitiges Klebeband, um die Entwicklungsplatine auf der PETG-Platte zu befestigen.
Schritt 7: Lipo-Batterie reparieren
Verwenden Sie doppelseitiges Klebeband, um den Lipo-Akku neben dem Entwicklungsboard zu befestigen.
Schritt 8: Batterie und Dev Board anschließen
Schritt 9: 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
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
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
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
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
- Laden Sie den Quellcode auf GitHub herunter:
- Führen Sie im Quellcodeordner "make menuconfig" aus
- Wählen Sie "Nofrendo ESP32-spezifische Konfiguration"
- Wählen Sie "Hardware zum Ausführen auf" -> "Benutzerdefinierte Hardware"
- Wählen Sie "LCD-Typ" -> "ST7789V LCD"
- Füllstifteinstellungen: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Hintergrundbeleuchtung -> -1, IPS -> Y
- Beenden und speichern
- Führen Sie "make -j5 flash" aus
- Führen Sie "sh flashrom.sh PATH_TO_YOUR_ROM_FILE" aus.
Schritt 15: 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
Befolgen Sie die Videoschritte, um alle Teile zu falten und in das Gehäuse zu drücken.
Schritt 17: Prototyp I2C Gamepad
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
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
Befolgen Sie die Videoschritte, um die Abdeckung und das I2C-Gamepad am Hauptkörper zu installieren.
Schritt 20: 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?
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:
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 9 Schritte
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um die Zeit auf dem LCD anzuzeigen
M5STACK So zeigen Sie Temperatur, Feuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 6 Schritte
M5STACK So zeigen Sie Temperatur, Luftfeuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um Temperatur, Luftfeuchtigkeit und Druck mit dem ENV-Sensor (DHT12, BMP280, BMM150)
Google-Suche auf ESP32: 7 Schritte
Google-Suche auf ESP32: In diesem Tutorial zeige ich Ihnen, wie Sie Google-Suchen mit einem ESP32 durchführen. Das Ergebnis selbst ist nicht sehr nützlich, da die Suchergebnisse im seriellen Monitor des Computers angezeigt werden, aber es ist eine coole Sache, die Leistung von ESP32 zu zeigen. Der Code kann
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu -- ESP32-Anfängerleitfaden: 5 Schritte
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu || ESP32-Anfängerhandbuch: In diesem Projekt zeige ich Ihnen, wie einfach / schwierig es ist, einen ESP32 mit der Arduino IDE zu verwenden, um jedem Elektronikprojekt eine WiFi-Steuerung hinzuzufügen. Unterwegs zeige ich Ihnen, wie Sie mit dem ESP32 einen einfachen WLAN-Server erstellen und wie Sie
So verbinden Sie einen ESP32 mit der IoT-Cloud: 8 Schritte
So verbinden Sie einen ESP32 mit der IoT-Cloud: Diese Anleitung enthält eine Reihe von Artikeln zum Anschließen von Hardware wie Arduino und ESP8266 an die Cloud. Ich werde Ihnen erklären, wie Sie Ihren ESP32-Chip mit dem AskSensors IoT-Dienst mit der Cloud verbinden. Warum ESP32?Nach dem großen Erfolg