Cuprins:

Consola de joc portabilă ESP32: 21 de pași (cu imagini)
Consola de joc portabilă ESP32: 21 de pași (cu imagini)

Video: Consola de joc portabilă ESP32: 21 de pași (cu imagini)

Video: Consola de joc portabilă ESP32: 21 de pași (cu imagini)
Video: What happens If We Connect Flash Drive to Charger❓ 2024, Iulie
Anonim
Image
Image
Pregătirea hardware-ului
Pregătirea hardware-ului

Acest instructable arată cum să utilizați un ESP32 și ATtiny861 pentru a construi o consolă de jocuri NES emulator.

Pasul 1: Pregătirea hardware-ului

Pregătirea hardware-ului
Pregătirea hardware-ului
Pregătirea hardware-ului
Pregătirea hardware-ului

ESP32 Dev Board

De data aceasta folosesc o placă dev TTGO T8 ESP32. Această placă are circuit încorporat de încărcare și reglare Lipo, poate ajuta la reducerea componentelor suplimentare.

Afişa

De data aceasta folosesc un LCD IPS de 2,4 . Controlerul driverului este ST7789V și rezoluția este de 320 x 240. Această rezoluție se potrivește cel mai bine pentru rezoluția 252 x 224 a emulatorului NES.

Baterie

De data aceasta folosesc o baterie Lipo 454261. 4,5 mm este grosimea plăcii dev ESP32 și 61 mm este lățimea plăcii.

Antet Pin

Un antet rotund masculin cu 4 pini și un antet cu rotund femel cu 4 pini pentru conectarea gamepadului I2C.

Placă PETG

O mică placă PET / PETG pentru susținerea plăcii de dezvoltare și a bateriei Lipo, o puteți găsi cu ușurință în ambalajul produsului.

PCB cu scop multiplu

Este necesar 2 PCB, 1 0,4 mm grosime pentru susținerea afișajului, 1 1,2 mm grosime pentru un gamepad I2C.

Butoane

Un buton cu 5 direcții, 2 butoane mici pentru Selectare și Start și 2 pentru butonul A și B.

Controler Gamepad I2C

De data aceasta folosesc un microcontroler ATtiny861 ca controler de gamepad I2C.

Alții

1 rezistor SMD de 12 Ohm, un programator ISP (de ex. TinyISP)

Pasul 2: Pregătirea software-ului

Pregătirea software-ului
Pregătirea software-ului
Pregătirea software-ului
Pregătirea software-ului
Pregătirea software-ului
Pregătirea software-ului

IDE Arduino

Descărcați și instalați Arduino IDE dacă nu este încă:

Suport ATTinyCore

Urmați pașii de instalare pentru a adăuga suportul ATTinyCore dacă nu încă:

ESP-IDF

Urmați ghidul de începere ESP-IDF pentru a configura mediul de dezvoltare, dacă nu încă:

Pasul 3: Imprimare 3D

printare 3d
printare 3d

Descărcați și tipăriți carcasa:

Pasul 4: Suport LCD

Suport LCD
Suport LCD
Suport LCD
Suport LCD

Tăiați un PCB de 24 x 27 găuri de 0,4 mm pentru suport LCD. Nu uitați să rezervați spațiu pentru plierea FPC LCD. Apoi folosiți o bandă adezivă dublă, fixați LCD-ul pe PCB.

Pasul 5: Pregătiți placa PETG

Pregătiți placa PETG
Pregătiți placa PETG
Pregătiți placa PETG
Pregătiți placa PETG

Decupați o placă PETG de 62 mm x 69 mm pentru placa dev și suport baterie Lipo.

Pasul 6: Remediați placa ESP32 Dev

Remediați placa ESP32 Dev
Remediați placa ESP32 Dev

Folosiți bandă adezivă dublă laterală pentru a fixa placa dev pe placa PETG.

Pasul 7: Remediați bateria Lipo

Remediați bateria Lipo
Remediați bateria Lipo

Folosiți bandă adezivă laterală dublă pentru a fixa bateria Lipo pe lângă placa de dezvoltare.

Pasul 8: Conectați bateria și placa de dezvoltare

Conectați bateria și placa de dezvoltare
Conectați bateria și placa de dezvoltare

Pasul 9: Pregătiți pinii afișajului

Pregătiți pinii afișajului
Pregătiți pinii afișajului

Afișajul LCD are multe variante din diferiți furnizori. Vă rugăm să obțineți foaia de date corectă și să o citiți înainte de orice patch și conexiune.

Unele pini sunt rezervate pentru panoul tactil. Deoarece acest LCD nu are panou tactil, pur și simplu decupați ace ace pot reduce perturbarea.

Pasul 10: Conectați pinii GND

Conectați pinii GND
Conectați pinii GND
Conectați pinii GND
Conectați pinii GND

În majoritatea cazurilor, există puțini pini care necesită conectarea la GND. Pentru a reduce efortul de lipit, am tăiat o formă de bandă de cupru pentru a ajunge la toate știfturile GND și apoi a lipit complet.

Pasul 11: Conectați pinii Vcc

Conectați pinii Vcc
Conectați pinii Vcc

Sunt necesari 2 pini conectați la Vcc, alimentarea LCD și alimentarea cu LED. Potrivit fișei tehnice, alimentarea LCD se poate conecta direct la placa dev 3,3 V pin, dar puterea LED-ului funcționează puțin mai jos de 3,3 V. Deci, este mai bine să adăugați un rezistor SMD în mijloc, de ex. Rezistor de 12 Ohm.

Pasul 12: Conectați suportul pentru placa LCD și Dev

Conectați suportul pentru placa LCD și Dev
Conectați suportul pentru placa LCD și Dev

utilizați suportul de conectare bandă LCD și suportul pentru placa dev împreună. Ambele suporturi trebuie să rezerve un spațiu de aproximativ 5 mm pentru pliere.

Pasul 13: Conectați pinii SPI

Conectați pinii SPI
Conectați pinii SPI

Iată rezumatul conexiunii:

LCD ESP32

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

Pasul 14: Program Flash

Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
Program Flash
  1. Descărcați codul sursă la GitHub:
  2. În folderul cod sursă, rulați „face menuconfig”
  3. Selectați „Configurare specifică Nofrendo ESP32”
  4. Selectați „Hardware pentru a rula” -> „Hardware personalizat”
  5. Selectați „Tip LCD” -> „ST7789V LCD”
  6. Setări pin de umplere: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Iluminare de fundal -> -1, IPS -> Y
  7. Ieșiți și salvați
  8. Rulați „face -j5 flash”
  9. Rulați „sh flashrom.sh PATH_TO_YOUR_ROM_FILE”

Pasul 15: Conector I2C

Conector I2C
Conector I2C
Conector I2C
Conector I2C
Conector I2C
Conector I2C

Breakout pinii I2C, pinii I2C impliciti ESP32 sunt:

Pinul 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (fără alimentare de 5 V în timp ce este alimentat cu baterie Lipo) Pin 4 (GND) -> GND

Pasul 16: Asamblarea Partea 1

Image
Image

Urmați pașii video pentru a plia și strânge toate piesele în carcasă.

Pasul 17: Prototipul I2C Gamepad

Prototip I2C Gamepad
Prototip I2C Gamepad
Prototip I2C Gamepad
Prototip I2C Gamepad

Programul pentru I2C Gamepad este foarte simplu, doar 15 linii de cod. Dar este puțin greu să reprogramați ATtiny861 după lipire, deci este mai bine să-l testați mai întâi pe panou.

Descărcați, compilați și blocați programul de pe GitHub:

Pasul 18: Construiți Gamepad I2C

Construiți I2C Gamepad
Construiți I2C Gamepad
Construiți I2C Gamepad
Construiți I2C Gamepad
Construiți I2C Gamepad
Construiți I2C Gamepad

Iată rezumatul conexiunii:

Butonul ATtiny861

GND -> Toate butoanele un pin Pin 20 (PA0) -> Buton Sus Pin 19 (PA1) -> Buton Jos Pin 18 (PA2) -> Buton stânga Pin 17 (PA3) -> Buton dreapta Pin 14 (PA4) -> Selectați butonul Pin 13 (PA5) -> Buton Start Pin 12 (PA6) -> Buton A Pin 11 (PA7) -> Buton B Pin 6 (GND) -> I2C pin masculin antet pin 4 Pin 5 (Vcc) -> I2C pin pin antet mascul 3 Pin 3 (SCL) -> pin antet pin masculin I2C 1 Pin 1 (SDA) -> pin pin antet mascul 2 I2C

Pasul 19: Asamblarea Partea 2

Image
Image
Opțional: Pinuri audio Breakout
Opțional: Pinuri audio Breakout

Urmați pașii video pentru a instala capacul și gamepad-ul I2C pe corpul principal.

Pasul 20: Opțional: Pinuri audio

Image
Image
Opțional: Pinuri audio Breakout
Opțional: Pinuri audio Breakout

ESP32 dev board Pin 25 și 26 scoate semnalul audio analogic, este foarte ușor să rupeți acești 2 pini și, de asemenea, pini de alimentare (3,3 V și GND) în partea de sus. Apoi, puteți fixa o cască pentru a o conecta. Sau chiar puteți adăuga un modul de amplificare audio cu difuzor pentru a-l reda tare.

Pasul 21: Ce urmează?

Ce urmeaza?
Ce urmeaza?

Emulatorul NES nu este singurul lucru interesant pe care îl puteți face cu ESP32. De exemplu. cu ea puteți construi o consolă micro python. Singura componentă pe care trebuie să o schimbați este de la gamepad I2C la tastatură I2C. Cred că nu este atât de dificil să o faci cu un controler ATtiny88. Puteți urmări twitter-ul meu pentru a vedea starea.

Recomandat: