Cuprins:
- Pasul 1: Pregătirea hardware-ului
- Pasul 2: Pregătirea software-ului
- Pasul 3: Imprimare 3D
- Pasul 4: Suport LCD
- Pasul 5: Pregătiți placa PETG
- Pasul 6: Remediați placa ESP32 Dev
- Pasul 7: Remediați bateria Lipo
- Pasul 8: Conectați bateria și placa de dezvoltare
- Pasul 9: Pregătiți pinii afișajului
- Pasul 10: Conectați pinii GND
- Pasul 11: Conectați pinii Vcc
- Pasul 12: Conectați suportul pentru placa LCD și Dev
- Pasul 13: Conectați pinii SPI
- Pasul 14: Program Flash
- Pasul 15: Conector I2C
- Pasul 16: Asamblarea Partea 1
- Pasul 17: Prototipul I2C Gamepad
- Pasul 18: Construiți Gamepad I2C
- Pasul 19: Asamblarea Partea 2
- Pasul 20: Opțional: Pinuri audio
- Pasul 21: Ce urmează?
Video: Consola de joc portabilă ESP32: 21 de pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
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
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
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
Descărcați și tipăriți carcasa:
Pasul 4: 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
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
Folosiți bandă adezivă dublă laterală pentru a fixa placa dev pe placa PETG.
Pasul 7: 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
Pasul 9: 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
Î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
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
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
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
- Descărcați codul sursă la GitHub:
- În folderul cod sursă, rulați „face menuconfig”
- Selectați „Configurare specifică Nofrendo ESP32”
- Selectați „Hardware pentru a rula” -> „Hardware personalizat”
- Selectați „Tip LCD” -> „ST7789V LCD”
- Setări pin de umplere: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Iluminare de fundal -> -1, IPS -> Y
- Ieșiți și salvați
- Rulați „face -j5 flash”
- Rulați „sh flashrom.sh PATH_TO_YOUR_ROM_FILE”
Pasul 15: 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
Urmați pașii video pentru a plia și strânge toate piesele în carcasă.
Pasul 17: Prototipul 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
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
Urmați pașii video pentru a instala capacul și gamepad-ul I2C pe corpul principal.
Pasul 20: Opțional: Pinuri audio
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ă?
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:
Consolă de joc portabilă Lego cu Space Invaders: 4 pași
Consolă portabilă de jocuri Lego cu Space Invaders: v-ați gândit vreodată să fiți dezvoltator de jocuri și să vă construiți propria consolă de jocuri pe care să o puteți juca din mers? Tot ce aveți nevoie este un pic de timp, hardwareLego bricksa Mini-Calliope (poate fi comandat pe acest site https://calliope.cc/ro) și ceva abilitate
Consolă de joc portabilă DIY folosind RetroPie: 7 pași
DIY Handheld Game Console folosind RetroPie: vizionați videoclipul de mai sus pentru a înțelege mai bine acest proiect. Amenda. Este timpul să începem! În primul rând, vom folosi RetroPie. Acest lucru ne lasă două opțiuni. Dacă am instalat deja Raspbian pe cardul nostru SD, atunci putem instala RetroP
Creați-vă propria consolă de joc portabilă retro! care este și o tabletă Win10 !: 6 pași (cu imagini)
Asigurați-vă propria dvs. consolă de jocuri portabile! …… care este și o tabletă Win10! Acesta va consta dintr-un 7 " HDMI LCD cu ecran tactil, un LattePanda SBC, un PCB de alimentare USB de tip C PD și câteva alte elemente complementare
Consolă de joc portabilă - Clona Arduboy: 6 pași (cu imagini)
Consolă de joc portabilă | Arduboy Clone: Acum câteva luni am întâlnit Arduboy care, conform site-ului său oficial, este o platformă de jocuri în miniatură pe 8 biți, care facilitează învățarea, partajarea și jocul online. Este o platformă open source. Jocurile pentru Arduboy sunt făcute de utilizator
Consola de joc Arduino Pocket + A-Maze - Joc Maze: 6 pași (cu imagini)
Arduino Pocket Game Console + A-Maze - Maze Game: Bine ați venit la primul meu instructable! Proiectul pe care vreau să îl împărtășesc astăzi este jocul de labirint Arduino, care a devenit o consolă de buzunar la fel de capabilă ca Arduboy și consolele similare bazate pe Arduino. Poate fi intermitent cu jocurile mele (sau ale dvs.) viitoare datorită expo