INHOUDSOPGAWE:

ESP32 Handheld -spelkonsole: 21 stappe (met foto's)
ESP32 Handheld -spelkonsole: 21 stappe (met foto's)

Video: ESP32 Handheld -spelkonsole: 21 stappe (met foto's)

Video: ESP32 Handheld -spelkonsole: 21 stappe (met foto's)
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Julie
Anonim
Image
Image
Voorbereiding van hardeware
Voorbereiding van hardeware

Hierdie instruksies wys hoe u 'n ESP32 en ATtiny861 kan gebruik om 'n NES -emulator -spelkonsole te bou.

Stap 1: Voorbereiding van hardeware

Voorbereiding van hardeware
Voorbereiding van hardeware
Voorbereiding van hardeware
Voorbereiding van hardeware

ESP32 Dev Board

Hierdie keer gebruik ek 'n TTGO T8 ESP32 dev -bord. Hierdie bord het 'n ingeboude Lipo-laai- en reguleringskring, dit kan help om die ekstra komponente te verminder.

Vertoon

Hierdie keer gebruik ek 'n 2.4 IPS LCD. Die bestuurderbeheerder is ST7789V en die resolusie is 320 x 240. Hierdie resolusie pas die beste by die NES -emulator van 252 x 224.

Battery

Hierdie keer gebruik ek 'n 454261 Lipo -battery. 4,5 mm is die dikte van die ESP32 dev board, en 61 mm is die breedte van die board.

Speldopskrif

'N 4 -pins manlike ronde penkop en 'n 4 -pins vroulike ronde penkop om 'n I2C -gamepad aan te sluit.

PETG -plaat

'N Klein PET/PETG -bordjie vir die ondersteuning van die dev board en Lipo -battery, kan u dit maklik in die verpakking van die produk vind.

PCB vir veelvuldige doeleindes

2 PCB benodig, 1 0,4 mm dik om die skerm te ondersteun, 1 1,2 mm dik vir 'n I2C -gamepad.

Knoppies

'N Knoppie met 5 rigtings, 2 klein knoppies vir Select en Start en 2 vir A en B knoppie.

I2C Gamepad -beheerder

Hierdie keer gebruik ek 'n ATtiny861 -mikrokontroleerder as 'n I2C -gamepad -kontroleerder.

Ander

1 SMD 12 Ohm weerstand, 'n ISP programmeerder (bv. TinyISP)

Stap 2: Voorbereiding van sagteware

Voorbereiding van sagteware
Voorbereiding van sagteware
Voorbereiding van sagteware
Voorbereiding van sagteware
Voorbereiding van sagteware
Voorbereiding van sagteware

Arduino IDE

Laai en installeer Arduino IDE indien nog nie:

Ondersteuning van ATTinyCore

Volg die installeringstappe om ATTinyCore -ondersteuning by te voeg, indien nog nie:

ESP-IDF

Volg die ESP-IDF-aanwysingsgids om die ontwikkelingsomgewing op te stel indien nog nie:

Stap 3: 3D -drukwerk

3D druk
3D druk

Laai die saak af en druk dit af:

Stap 4: LCD -ondersteuning

LCD Ondersteuning
LCD Ondersteuning
LCD Ondersteuning
LCD Ondersteuning

Sny 'n 0,4 mm -printplaat van 24 x 27 gate vir LCD -ondersteuning. Onthou, bespreek 'n bietjie ruimte vir die vou van LCD FPC. Gebruik dan 'n kleeflint aan die dubbelkant om die LCD op die printplaat vas te maak.

Stap 5: Berei PETG -bord voor

Berei PETG -bord voor
Berei PETG -bord voor
Berei PETG -bord voor
Berei PETG -bord voor

Knip 'n PETG -plaat van 62 mm x 69 mm uit vir 'n dev board en Lipo -batteryondersteuning.

Stap 6: Los ESP32 Dev Board op

Los ESP32 Dev Board op
Los ESP32 Dev Board op

Gebruik kleefband met dubbel sy om die bord op die PETG -plaat vas te maak.

Stap 7: Maak die Lipo -battery reg

Maak die Lipo -battery reg
Maak die Lipo -battery reg

Gebruik kleeflint aan die dubbelkant om die Lipo -battery vas te maak, behalwe die toestelbord.

Stap 8: Koppel die battery- en ontwikkelbord aan

Koppel battery- en ontwikkelbord aan
Koppel battery- en ontwikkelbord aan

Stap 9: Berei skermpenne voor

Berei skermpenne voor
Berei skermpenne voor

LCD -skerms het baie variasies van verskillende verskaffers. Kry die korrekte datablad en lees dit voor enige pleister en verbinding.

Sommige penne is gereserveer vir aanraakpaneel. Aangesien hierdie LCD nie 'n aanraakpaneel het nie, kan u net die penne uitknip om die versteuring te verminder.

Stap 10: Koppel GND Pins

Koppel GND Pins
Koppel GND Pins
Koppel GND Pins
Koppel GND Pins

In die meeste gevalle is daar min penne wat aan GND gekoppel moet word. Om die soldeerkrag te verminder, sny ek 'n koperbandvorm om al die GND -penne te bereik en dan heeltemal te soldeer.

Stap 11: Koppel Vcc -penne aan

Koppel Vcc -penne aan
Koppel Vcc -penne aan

Daar is 2 penne nodig om aan te sluit op Vcc, LCD -krag en LED -krag. Volgens die gegewensblad kan die LCD -krag direk met die 3,3 V -pen op die dev board gekoppel word, maar die LED -krag werk 'n bietjie laer as 3,3 V. Dit is dus beter om 'n SMD -weerstand in die middel by te voeg, bv. 12 Ohm weerstand.

Stap 12: Koppel LCD- en Dev Board -ondersteuning

Koppel LCD- en Dev Board -ondersteuning
Koppel LCD- en Dev Board -ondersteuning

gebruik band, verbind LCD -ondersteuning en ondersteuning vir dev -bord saam. Beide steun moet 'n gaping van ongeveer 5 mm hê om te vou.

Stap 13: Koppel SPI -penne

Koppel SPI -penne
Koppel SPI -penne

Hier is die verbindingopsomming:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> nie gekoppel Vcc -> 3.3 V LED+ -> 12 Ohm weerstand -> 3.3 V LED - -> GND

Stap 14: Flash -program

Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
Flash -program
  1. Laai die bronkode af by GitHub:
  2. Onder die bronkode -gids, voer 'maak menuconfig' uit
  3. Kies 'Nofrendo ESP32-spesifieke opset'
  4. Kies "Hardware om op te werk" -> "Aangepaste hardeware"
  5. Kies "LCD -tipe" -> "ST7789V LCD"
  6. Vulpeninstellings: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Agtergrond -> -1, IPS -> Y
  7. Verlaat en stoor
  8. Begin "maak -j5 flits"
  9. Begin "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Stap 15: I2C -aansluiting

I2C -aansluiting
I2C -aansluiting
I2C -aansluiting
I2C -aansluiting
I2C -aansluiting
I2C -aansluiting

Deur die I2C -penne te breek, is ESP32 se standaard I2C -penne:

Speld 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (geen 5 V -krag terwyl dit deur die Lipo -battery aangedryf word) Pin 4 (GND) -> GND

Stap 16: Vergadering Deel 1

Image
Image

Volg die videostappe om al die dele in die omhulsel te vou en te druk.

Stap 17: prototipe I2C gamepad

Prototipe I2C Gamepad
Prototipe I2C Gamepad
Prototipe I2C Gamepad
Prototipe I2C Gamepad

Die program vir die I2C Gamepad is baie eenvoudig, slegs 15 reëls kode. Maar dit is 'n bietjie moeilik om die ATtiny861 te herprogrammeer nadat dit gesoldeer is, dus dit is beter om dit eers op die broodbord te toets.

Laai die program af, stel dit op en flits dit vanaf GitHub:

Stap 18: Bou I2C Gamepad

Bou I2C Gamepad
Bou I2C Gamepad
Bou I2C Gamepad
Bou I2C Gamepad
Bou I2C Gamepad
Bou I2C Gamepad

Hier is die verbandopsomming:

ATtiny861 -knoppie

GND -> Alle knoppies een pen Pin 20 (PA0) -> Up knoppie Pin 19 (PA1) -> Down knoppie Pin 18 (PA2) -> Linker knoppie Pin 17 (PA3) -> Regter knoppie Pin 14 (PA4) -> Kies knoppie Pin 13 (PA5) -> Start knoppie Pin 12 (PA6) -> A knoppie Pin 11 (PA7) -> B knoppie Pin 6 (GND) -> I2C male pin header pin 4 Pin 5 (Vcc) -> I2C pen pen kop 3 pen 3 pen 3 (SCL) -> I2C pen pen kop 1 pen 1 (SDA) -> I2C pen pen kop 2

Stap 19: Vergadering Deel 2

Image
Image
Opsioneel: Audio Breakout Pins
Opsioneel: Audio Breakout Pins

Volg die videostappe om die omslag en die I2C -gamepad aan die hoofliggaam te installeer.

Stap 20: Opsioneel: Audio Breakout Pins

Image
Image
Opsioneel: Audio Breakout Pins
Opsioneel: Audio Breakout Pins

ESP32 dev board Pin 25 en 26 lewer die analoog klanksignaal uit; dit is baie maklik om hierdie twee penne en ook kragpenne (3.3 V en GND) aan die bokant uit te breek. Dan kan u 'n koptelefoon plak om dit aan te sluit. Of selfs u kan 'n klankversterkermodule met luidspreker byvoeg om dit hard te speel.

Stap 21: Wat is volgende?

Wat is volgende?
Wat is volgende?

NES -emulator is nie die enigste interessante ding wat u met ESP32 kan maak nie. Bv. u kan 'n mikro -luislangkonsole daarmee bou. Die enigste komponent wat u moet verander, is van I2C gamepad na I2C -sleutelbord. Ek dink dit is nie so moeilik om dit met 'n ATtiny88 -beheerder te maak nie. U kan my twitter volg om die status te sien.

Aanbeveel: