Obsah:
- Krok 1: Příprava hardwaru
- Krok 2: Příprava softwaru
- Krok 3: 3D tisk
- Krok 4: Podpora LCD
- Krok 5: Připravte desku PETG
- Krok 6: Opravte vývojovou desku ESP32
- Krok 7: Opravte baterii Lipo
- Krok 8: Připojte desku baterie a vývojáře
- Krok 9: Připravte si zobrazovací piny
- Krok 10: Připojte GND piny
- Krok 11: Připojte Vcc piny
- Krok 12: Připojte podporu LCD a vývojové desky
- Krok 13: Připojte piny SPI
- Krok 14: Flash Program
- Krok 15: Konektor I2C
- Krok 16: Montáž Část 1
- Krok 17: Prototyp I2C Gamepad
- Krok 18: Sestavte I2C Gamepad
- Krok 19: Montáž Část 2
- Krok 20: Volitelné: Audio Breakout Piny
- Krok 21: Co bude dál?
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Tento návod ukazuje, jak použít ESP32 a ATtiny861 k vytvoření herní konzoly emulátoru NES.
Krok 1: Příprava hardwaru
Deska pro vývojáře ESP32
Tentokrát používám vývojovou desku TTGO T8 ESP32. Tato deska má vestavěný nabíjecí a regulační obvod Lipo, což může pomoci snížit počet dalších komponent.
Zobrazit
Tentokrát používám 2,4 IPS LCD. Ovladač ovladače je ST7789V a rozlišení je 320 x 240. Toto rozlišení je nejvhodnější pro emulátor NES s rozlišením 252 x 224.
baterie
Tentokrát používám baterii 454261 Lipo. 4,5 mm je tloušťka desky ESP32 dev a 61 mm je šířka desky.
Pin Header
4kolíkový konektor pro kulaté kolíky a 4kolíkový konektor pro kulatý kolík pro připojení gamepadu I2C.
PETG deska
Malá deska PET/PETG pro podporu desky pro vývoj a baterie Lipo ji snadno najdete v balení produktu.
Víceúčelová deska plošných spojů
Jsou vyžadovány 2 PCB, 1 0,4 mm silné pro podporu displeje, 1 1,2 mm silné pro I2C gamepad.
Tlačítka
Tlačítko s 5 směry, 2 malá tlačítka pro výběr a spuštění a 2 pro tlačítka A a B.
Ovladač gamepadu I2C
Tentokrát používám mikrokontrolér ATtiny861 jako ovladač gamepadu I2C.
Ostatní
1 rezistor SMD 12 Ohm, programátor ISP (např. TinyISP)
Krok 2: Příprava softwaru
Arduino IDE
Stáhněte a nainstalujte Arduino IDE, pokud ještě ne:
Podpora ATTinyCore
Pokud ještě nemáte podporu ATTinyCore, postupujte podle pokynů k instalaci:
ESP-IDF
Postupujte podle příručky Začínáme s ESP-ID a nastavte vývojové prostředí, pokud ještě ne:
Krok 3: 3D tisk
Stáhněte si a vytiskněte pouzdro:
Krok 4: Podpora LCD
Vyřízněte 24 x 27 otvorů 0,4 mm PCB pro podporu LCD. Nezapomeňte si vyhradit místo pro skládání LCD FPC. Poté pomocí oboustranné lepicí pásky upevněte LCD na desku plošných spojů.
Krok 5: Připravte desku PETG
Vystřihněte desku PETG 62 mm x 69 mm pro desku pro vývoj a podporu baterie Lipo.
Krok 6: Opravte vývojovou desku ESP32
Pomocí oboustranné lepicí pásky připevněte desku vývojáře na desku PETG.
Krok 7: Opravte baterii Lipo
Pomocí oboustranné lepicí pásky připevněte baterii Lipo vedle desky pro vývojáře.
Krok 8: Připojte desku baterie a vývojáře
Krok 9: Připravte si zobrazovací piny
LCD displej má mnoho variant od různých prodejců. Získejte správný datový list a přečtěte si jej před jakoukoli opravou a připojením.
Některé piny jsou vyhrazeny pro dotykový panel. Vzhledem k tomu, že tento displej LCD nemá dotykový panel, můžete rušení omezit jednoduše vyříznutím těchto kolíků.
Krok 10: Připojte GND piny
Ve většině případů existuje několik pinů, které vyžadují připojení k GND. Abych snížil úsilí při pájení, ustřihl jsem tvar měděné pásky, abych dosáhl na všechny piny GND, a pak pájení úplně.
Krok 11: Připojte Vcc piny
K připojení Vcc, napájení LCD a napájení LED jsou zapotřebí 2 piny. Podle datového listu lze napájení LCD přímo připojit k desce dev 3,3 V, ale napájení LED pracuje o něco méně než 3,3 V. Je tedy lepší přidat odpor SMD uprostřed, např. 12 ohmový odpor.
Krok 12: Připojte podporu LCD a vývojové desky
použijte společně páskové připojení LCD podpory a podpory desky vývojáře. Obě podpěry by si měly vyhradit kolem 5 mm mezery pro skládání.
Krok 13: Připojte piny SPI
Zde je shrnutí připojení:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> nepřipojeno Vcc -> 3,3 V LED+ -> 12 Ohm rezistor -> 3,3 V LED - -> GND
Krok 14: Flash Program
- Stáhněte si zdrojový kód na GitHub:
- Ve složce zdrojového kódu spusťte „make menuconfig“
- Vyberte „Konfigurace specifická pro Nofrendo ESP32“
- Vyberte „Hardware pro spuštění“-> „Vlastní hardware“
- Vyberte „Typ LCD“-> „LCD ST7789V“
- Nastavení kolíku výplně: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
- Ukončit a uložit
- Spusťte „make -j5 flash“
- Spusťte „sh flashrom.sh PATH_TO_YOUR_ROM_FILE“
Krok 15: Konektor I2C
Prolomte I2C piny, výchozí I2C piny ESP32 jsou:
Pin 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (bez napájení 5 V při napájení baterií Lipo) Pin 4 (GND) -> GND
Krok 16: Montáž Část 1
Při skládání a mačkání všech částí do pouzdra postupujte podle pokynů pro video.
Krok 17: Prototyp I2C Gamepad
Program pro I2C Gamepad je velmi jednoduchý, pouze 15 řádků kódu. Je ale trochu těžké přeprogramovat ATtiny861 po pájení, takže je lepší to nejprve vyzkoušet na prkénku.
Stáhněte si, zkompilovejte a flashujte program z GitHubu:
Krok 18: Sestavte I2C Gamepad
Zde je shrnutí připojení:
Tlačítko ATtiny861
GND -> Všechna tlačítka jeden pin Pin 20 (PA0) -> Tlačítko Nahoru Pin 19 (PA1) -> Tlačítko dolů Pin 18 (PA2) -> Levé tlačítko Pin 17 (PA3) -> Pravé tlačítko Pin 14 (PA4) -> Tlačítko výběru Pin 13 (PA5) -> Tlačítko Start Pin 12 (PA6) -> Tlačítko A Pin 11 (PA7) -> Tlačítko B Pin 6 (GND) -> I2C konektor pin samec pin 4 Pin 5 (Vcc) -> I2C kolíkový konektor 3 zástrčky 3 (SCL) -> I2C konektor zástrčky 1 kolíku 1 (SDA) -> konektor I2C zástrčky 2
Krok 19: Montáž Část 2
Podle pokynů k videu nainstalujte kryt a gamepad I2C na hlavní tělo.
Krok 20: Volitelné: Audio Breakout Piny
Deska 25 a 26 pro desku ESP32 pro výstup analogového zvukového signálu, je velmi snadné rozbít tyto 2 piny a také napájecí piny (3,3 V a GND) nahoře. Poté můžete připojit zástrčku sluchátka. Nebo dokonce můžete přidat modul zesilovače zvuku s reproduktorem a hrát jej nahlas.
Krok 21: Co bude dál?
Emulátor NES není jedinou zajímavou věcí, kterou můžete s ESP32 vytvořit. Např. můžete s ním postavit konzolu micro python. Jedinou komponentou, kterou musíte změnit, je gamepad I2C na klávesnici I2C. Myslím, že to není tak obtížné vyrobit pomocí ovladače ATtiny88. Stav můžete sledovat na mém twitteru.