Inhoudsopgave:
- Stap 1: Hardwarevoorbereiding
- Stap 2: Softwarevoorbereiding
- Stap 3: 3D printen
- Stap 4: LCD-ondersteuning
- Stap 5: PETG-plaat voorbereiden
- Stap 6: ESP32-ontwikkelbord repareren
- Stap 7: Lipo-batterij repareren
- Stap 8: Sluit de batterij en het ontwikkelbord aan
- Stap 9: Displaypinnen voorbereiden
- Stap 10: GND-pinnen aansluiten
- Stap 11: Sluit Vcc-pinnen aan
- Stap 12: Verbind LCD & Dev Board-ondersteuning
- Stap 13: Sluit SPI-pinnen aan
- Stap 14: Flash-programma
- Stap 15: I2C-connector
- Stap 16: Montage deel 1
- Stap 17: Prototype I2C-gamepad
- Stap 18: I2C-gamepad bouwen
- Stap 19: Montage deel 2
- Stap 20: Optioneel: Audio Breakout-pinnen
- Stap 21: Wat nu?
![ESP32 handheld gameconsole - Ajarnpa ESP32 handheld gameconsole - Ajarnpa](https://i.howwhatproduce.com/images/002/image-5588-j.webp)
Video: ESP32 handheld gameconsole - Ajarnpa
![Video: ESP32 handheld gameconsole - Ajarnpa Video: ESP32 handheld gameconsole - Ajarnpa](https://i.ytimg.com/vi/VabwqIvGB6I/hqdefault.jpg)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
![Image Image](https://i.howwhatproduce.com/images/002/image-5588-2-j.webp)
![](https://i.ytimg.com/vi/VabwqIvGB6I/hqdefault.jpg)
![Hardwarevoorbereiding Hardwarevoorbereiding](https://i.howwhatproduce.com/images/002/image-5588-3-j.webp)
Deze instructables laten zien hoe je een ESP32 en ATtiny861 gebruikt om een NES-emulatorspelconsole te bouwen.
Stap 1: Hardwarevoorbereiding
![Hardwarevoorbereiding Hardwarevoorbereiding](https://i.howwhatproduce.com/images/002/image-5588-4-j.webp)
![Hardwarevoorbereiding Hardwarevoorbereiding](https://i.howwhatproduce.com/images/002/image-5588-5-j.webp)
ESP32-ontwikkelbord
Deze keer gebruik ik een TTGO T8 ESP32 ontwikkelbord. Dit bord heeft een ingebouwd Lipo-laad- en regelcircuit, het kan helpen de extra componenten te verminderen.
Weergave
Deze keer gebruik ik een 2,4 IPS LCD. De drivercontroller is ST7789V en de resolutie is 320 x 240. Deze resolutie is het best geschikt voor de NES-emulator 252 x 224 resolutie.
Accu
Deze keer gebruik ik een 454261 Lipo-batterij. 4,5 mm is de dikte van het ESP32-ontwikkelbord en 61 mm is de breedte van het bord.
Pinkoptekst
Een 4-pins mannelijke ronde pin-header en een 4-pins vrouwelijke ronde pin-header voor het aansluiten van I2C-gamepad.
PETG-plaat
Een klein PET/PETG-plaatje voor het ondersteunen van het ontwikkelbord en de Lipo-batterij, je kunt het gemakkelijk vinden in de productverpakking.
PCB voor meerdere doeleinden
2 PCB's vereist, 1 0,4 mm dik voor ondersteuning van het display, 1 1,2 mm dik voor een I2C-gamepad.
Toetsen
Een 5 richtingen knop, 2 kleine knoppen voor Select en Start en 2 voor A en B knop.
I2C Gamepad-controller
Deze keer gebruik ik een ATtiny861-microcontroller als I2C-gamepadcontroller.
anderen
1 SMD 12 Ohm weerstand, een ISP programmer (bijv. TinyISP)
Stap 2: Softwarevoorbereiding
![Softwarevoorbereiding Softwarevoorbereiding](https://i.howwhatproduce.com/images/002/image-5588-6-j.webp)
![Softwarevoorbereiding Softwarevoorbereiding](https://i.howwhatproduce.com/images/002/image-5588-7-j.webp)
![Softwarevoorbereiding Softwarevoorbereiding](https://i.howwhatproduce.com/images/002/image-5588-8-j.webp)
Arduino IDE
Download en installeer Arduino IDE indien nog niet:
ATTinyCore-ondersteuning
Volg de installatiestappen om ATTinyCore-ondersteuning toe te voegen als dat nog niet het geval is:
ESP-IDF
Volg de ESP-IDF aan de slag-gids om de ontwikkelomgeving in te stellen als dit nog niet het geval is:
Stap 3: 3D printen
![3d printen 3d printen](https://i.howwhatproduce.com/images/002/image-5588-9-j.webp)
Download en print de case:
Stap 4: LCD-ondersteuning
![LCD-ondersteuning LCD-ondersteuning](https://i.howwhatproduce.com/images/002/image-5588-10-j.webp)
![LCD-ondersteuning LCD-ondersteuning](https://i.howwhatproduce.com/images/002/image-5588-11-j.webp)
Snijd een printplaat van 24 x 27 gaten van 0,4 mm voor LCD-ondersteuning. Vergeet niet wat ruimte te reserveren voor het opvouwen van LCD FPC. Gebruik vervolgens wat dubbelzijdig plakband om het LCD-scherm op de PCB te bevestigen.
Stap 5: PETG-plaat voorbereiden
![PETG-plaat voorbereiden PETG-plaat voorbereiden](https://i.howwhatproduce.com/images/002/image-5588-12-j.webp)
![PETG-plaat voorbereiden PETG-plaat voorbereiden](https://i.howwhatproduce.com/images/002/image-5588-13-j.webp)
Knip een PETG-plaat van 62 mm x 69 mm uit voor ontwikkelbord en Lipo-batterijsteun.
Stap 6: ESP32-ontwikkelbord repareren
![ESP32-ontwikkelbord repareren ESP32-ontwikkelbord repareren](https://i.howwhatproduce.com/images/002/image-5588-14-j.webp)
Gebruik dubbelzijdig plakband om het ontwikkelbord op de PETG-plaat te bevestigen.
Stap 7: Lipo-batterij repareren
![Lipo-batterij repareren Lipo-batterij repareren](https://i.howwhatproduce.com/images/002/image-5588-15-j.webp)
Gebruik dubbelzijdig plakband om de Lipo-batterij naast het ontwikkelbord te bevestigen.
Stap 8: Sluit de batterij en het ontwikkelbord aan
![Verbind batterij en ontwikkelbord Verbind batterij en ontwikkelbord](https://i.howwhatproduce.com/images/002/image-5588-16-j.webp)
Stap 9: Displaypinnen voorbereiden
![Displaypinnen voorbereiden Displaypinnen voorbereiden](https://i.howwhatproduce.com/images/002/image-5588-17-j.webp)
LCD-schermen hebben veel variaties van verschillende leveranciers. Verkrijg de juiste datasheet en lees deze voordat u een patch en verbinding maakt.
Sommige pinnen zijn gereserveerd voor het aanraakscherm. Aangezien dit LCD-scherm geen aanraakscherm heeft, kunt u eenvoudig die pinnen verwijderen om de storing te verminderen.
Stap 10: GND-pinnen aansluiten
![GND-pinnen aansluiten GND-pinnen aansluiten](https://i.howwhatproduce.com/images/002/image-5588-18-j.webp)
![GND-pinnen aansluiten GND-pinnen aansluiten](https://i.howwhatproduce.com/images/002/image-5588-19-j.webp)
In de meeste gevallen zijn er maar weinig pinnen die op GND moeten worden aangesloten. Om de soldeerinspanning te verminderen, heb ik een koperen bandvorm gesneden om alle GND-pinnen te bereiken en vervolgens helemaal te solderen.
Stap 11: Sluit Vcc-pinnen aan
![Sluit Vcc-pinnen aan Sluit Vcc-pinnen aan](https://i.howwhatproduce.com/images/002/image-5588-20-j.webp)
Er zijn 2 pinnen nodig om verbinding te maken met Vcc, LCD-voeding en LED-voeding. Volgens het gegevensblad kan de LCD-voeding rechtstreeks worden aangesloten op de 3,3 V-pin van het ontwikkelbord, maar de LED-voeding werkt iets lager dan 3,3 V. Het is dus beter om een SMD-weerstand in het midden toe te voegen, b.v. 12 Ohm weerstand.
Stap 12: Verbind LCD & Dev Board-ondersteuning
![Connect LCD & Dev Board Ondersteuning Connect LCD & Dev Board Ondersteuning](https://i.howwhatproduce.com/images/002/image-5588-21-j.webp)
gebruik tape connect LCD-ondersteuning en dev board-ondersteuning samen. Beide steunen moeten ongeveer 5 mm ruimte reserveren voor het vouwen.
Stap 13: Sluit SPI-pinnen aan
![Sluit SPI-pinnen aan Sluit SPI-pinnen aan](https://i.howwhatproduce.com/images/002/image-5588-22-j.webp)
Hier is het verbindingsoverzicht:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> niet aangesloten Vcc -> 3,3 V LED+ -> 12 Ohm weerstand -> 3,3 V LED - -> GND
Stap 14: Flash-programma
![Flash-programma Flash-programma](https://i.howwhatproduce.com/images/002/image-5588-23-j.webp)
![Flash-programma Flash-programma](https://i.howwhatproduce.com/images/002/image-5588-24-j.webp)
![Flash-programma Flash-programma](https://i.howwhatproduce.com/images/002/image-5588-25-j.webp)
![Flash-programma Flash-programma](https://i.howwhatproduce.com/images/002/image-5588-26-j.webp)
- Download de broncode op GitHub:
- Voer in de broncodemap "make menuconfig" uit
- Selecteer "Nofredo ESP32-specifieke configuratie"
- Selecteer "Hardware om op te draaien" -> "Aangepaste hardware"
- Selecteer "LCD-type" -> "ST7789V LCD"
- Instellingen vulpen: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Achtergrondverlichting -> -1, IPS -> Y
- Afsluiten en opslaan
- Voer "make -j5 flash" uit
- Voer "sh flashrom.sh PATH_TO_YOUR_ROM_FILE" uit
Stap 15: I2C-connector
![I2C-connector I2C-connector](https://i.howwhatproduce.com/images/002/image-5588-27-j.webp)
![I2C-connector I2C-connector](https://i.howwhatproduce.com/images/002/image-5588-28-j.webp)
![I2C-connector I2C-connector](https://i.howwhatproduce.com/images/002/image-5588-29-j.webp)
Breakout de I2C-pinnen, ESP32 standaard I2C-pinnen zijn:
Pin 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (geen 5 V stroom terwijl gevoed door Lipo-batterij) Pin 4 (GND) -> GND
Stap 16: Montage deel 1
![Image Image](https://i.howwhatproduce.com/images/002/image-5588-31-j.webp)
![](https://i.ytimg.com/vi/8VfJcM7wYEQ/hqdefault.jpg)
Volg de videostappen om alle onderdelen in de koffer te vouwen en samen te drukken.
Stap 17: Prototype I2C-gamepad
![Prototype I2C-gamepad Prototype I2C-gamepad](https://i.howwhatproduce.com/images/002/image-5588-32-j.webp)
![Prototype I2C-gamepad Prototype I2C-gamepad](https://i.howwhatproduce.com/images/002/image-5588-33-j.webp)
Het programma voor de I2C Gamepad is heel eenvoudig, slechts 15 regels code. Maar het is een beetje moeilijk om de ATtiny861 te herprogrammeren na het solderen, dus het is beter om hem eerst op het breadboard te testen.
Download, compileer en flash het programma van GitHub:
Stap 18: I2C-gamepad bouwen
![I2C-gamepad bouwen I2C-gamepad bouwen](https://i.howwhatproduce.com/images/002/image-5588-34-j.webp)
![I2C-gamepad bouwen I2C-gamepad bouwen](https://i.howwhatproduce.com/images/002/image-5588-35-j.webp)
![I2C-gamepad bouwen I2C-gamepad bouwen](https://i.howwhatproduce.com/images/002/image-5588-36-j.webp)
Hier zijn de verbinding Samenvatting:
ATtiny861 knop
GND -> Alle knoppen één pin Pin 20 (PA0) -> Up-knop Pin 19 (PA1) -> Down-knop Pin 18 (PA2) -> Linkerknop Pin 17 (PA3) -> Rechterknop Pin 14 (PA4) -> Select-knop Pin 13 (PA5) -> Start-knop Pin 12 (PA6) -> A-knop Pin 11 (PA7) -> B-knop Pin 6 (GND) -> I2C mannelijke pin header pin 4 Pin 5 (Vcc) -> I2C mannelijke pin header pin 3 Pin 3 (SCL) -> I2C mannelijke pin header pin 1 Pin 1 (SDA) -> I2C mannelijke pin header pin 2
Stap 19: Montage deel 2
![Image Image](https://i.howwhatproduce.com/images/002/image-5588-38-j.webp)
![](https://i.ytimg.com/vi/mznu135IDrs/hqdefault.jpg)
![Optioneel: Audio Breakout-pinnen Optioneel: Audio Breakout-pinnen](https://i.howwhatproduce.com/images/002/image-5588-41-j.webp)
Volg de videostappen om de hoes en de I2C-gamepad op het hoofdgedeelte te installeren.
Stap 20: Optioneel: Audio Breakout-pinnen
![Image Image](https://i.howwhatproduce.com/images/002/image-5588-40-j.webp)
![](https://i.ytimg.com/vi/7ONQE77eoBk/hqdefault.jpg)
![Optioneel: Audio Breakout-pinnen Optioneel: Audio Breakout-pinnen](https://i.howwhatproduce.com/images/002/image-5588-42-j.webp)
ESP32-ontwikkelbord Pin 25 en 26 voeren het analoge audiosignaal uit, het is heel gemakkelijk om deze 2 pinnen te doorbreken en ook de voedingspinnen (3,3 V en GND) aan de bovenkant. Dan kun je een oortelefoon patchen om erop aan te sluiten. Of u kunt zelfs een audioversterkermodule met luidspreker toevoegen om deze luid af te spelen.
Stap 21: Wat nu?
![Wat is het volgende? Wat is het volgende?](https://i.howwhatproduce.com/images/002/image-5588-43-j.webp)
NES-emulator is niet het enige interessante dat u met ESP32 kunt maken. bijv. je kunt er een micropython-console mee bouwen. Het enige onderdeel dat u hoeft te wijzigen, is van I2C-gamepad naar I2C-toetsenbord. Ik denk dat het niet zo moeilijk is om het te maken met een ATtiny88 controller. U kunt mijn twitter volgen om de status te zien.
Aanbevolen:
DIY-gameconsole met Arduino: 4 stappen
![DIY-gameconsole met Arduino: 4 stappen DIY-gameconsole met Arduino: 4 stappen](https://i.howwhatproduce.com/images/001/image-2784-11-j.webp)
DIY-gameconsole met Arduino: in deze tutorial laat ik je zien hoe je een gameconsole kunt maken met Arduino nano. Dus als je een gedetailleerde video erover wilt zien, bekijk het dan op mijn YouTube-kanaal
Gewoon weer een ATtiny85 Retro-gameconsole: 4 stappen
![Gewoon weer een ATtiny85 Retro-gameconsole: 4 stappen Gewoon weer een ATtiny85 Retro-gameconsole: 4 stappen](https://i.howwhatproduce.com/images/002/image-5823-j.webp)
Gewoon een andere ATtiny85 Retro-gamingconsole: een kleine retro-console-achtige opstelling gebaseerd op ATtiny85 x 0,96 OLED voor het spelen van space-invaders, Tetris, enz
Raspberry Pi Smart TV en gameconsole: 4 stappen
![Raspberry Pi Smart TV en gameconsole: 4 stappen Raspberry Pi Smart TV en gameconsole: 4 stappen](https://i.howwhatproduce.com/images/009/image-25486-j.webp)
Raspberry Pi Smart TV en Gaming Console: Heb je een niet-slimme tv in huis liggen of overweeg je een Chromecast, Firestick of misschien een gameconsole te kopen? Laten we er zelf een maken. We zullen onze Raspberry Pi dubbel opstarten met Lakka en OSMC. Lakka voor het emuleren van games en OSMC voor video
Gameconsole: 4 stappen
![Gameconsole: 4 stappen Gameconsole: 4 stappen](https://i.howwhatproduce.com/images/010/image-27466-j.webp)
Game Console: Echt eenvoudige gameconsole, met ondersteuning voor een menu, tetris en snake. Het is gemaakt met behulp van - twee 8x8 Square Matrix Red LED Display dot Module74hc595 Drive hier gevonden - een STM32F103 Nucleo-64-4 knoppen en 4 weerstanden - draden, een breadbord, jumpers, enz
Handheld-gameconsole - Arduboy Clone: 6 stappen (met afbeeldingen)
![Handheld-gameconsole - Arduboy Clone: 6 stappen (met afbeeldingen) Handheld-gameconsole - Arduboy Clone: 6 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/003/image-8256-11-j.webp)
Handheld-gameconsole | Arduboy Clone: Een paar maanden geleden kwam ik Arduboy tegen, dat volgens de officiële website een miniatuur 8-bits spelplatform is dat het gemakkelijk maakt om online games te leren, te delen en te spelen. Het is een open source-platform. De spellen voor de Arduboy zijn gemaakt door de gebruiker