Talaan ng mga Nilalaman:
- Hakbang 1: Paghahanda ng Hardware
- Hakbang 2: Paghahanda ng Software
- Hakbang 3: Pag-print sa 3D
- Hakbang 4: Suporta sa LCD
- Hakbang 5: Maghanda ng PETG Plate
- Hakbang 6: Ayusin ang Linya ng Dev32 ng Dev32
- Hakbang 7: Ayusin ang Baterya ng Lipo
- Hakbang 8: Ikonekta ang Board ng Baterya at Dev
- Hakbang 9: Ihanda ang Mga Display Pins
- Hakbang 10: Ikonekta ang mga GND Pins
- Hakbang 11: Ikonekta ang mga Pins ng Vcc
- Hakbang 12: Ikonekta ang Suporta ng LCD & Dev Board
- Hakbang 13: Ikonekta ang mga Pins ng SPI
- Hakbang 14: Flash Program
- Hakbang 15: Konektor ng I2C
- Hakbang 16: Bahagi ng Assembly 1
- Hakbang 17: Prototype I2C Gamepad
- Hakbang 18: Bumuo ng I2C Gamepad
- Hakbang 19: Bahagi ng Assembly 2
- Hakbang 20: Opsyonal: Mga Audio Breakout Pins
- Hakbang 21: Ano ang Susunod?
Video: Console ng Game na Handheld ng ESP32: 21 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ipinapakita ng mga itinuturo na ito kung paano gumamit ng isang ESP32 at ATtiny861 upang bumuo ng isang NES emulator game console.
Hakbang 1: Paghahanda ng Hardware
ESP32 Dev Board
Sa oras na ito ay gumagamit ako ng isang TTGO T8 ESP32 dev board. Ang board na ito ay may built-in na Lipo na singilin at nagreregula ng circuit, makakatulong ito na mabawasan ang labis na mga sangkap.
Ipakita
Sa oras na ito gumagamit ako ng isang 2.4 IPS LCD. Ang driver controller ay ST7789V at ang resolusyon ay 320 x 240. Ang resolusyon na ito ay pinakamahusay na akma para sa resolusyon ng NES emulator 252 x 224.
Baterya
Sa oras na ito ay gumagamit ako ng isang 454261 Lipo na baterya. 4.5 mm ang kapal ng ESP32 dev board, at 61 mm ang lapad ng board.
Pin Header
Isang 4 na pin na lalaking bilog na pin na header at isang 4 na pin na babaeng bilog na pin na header para sa pagkonekta ng I2C gamepad.
Plato ng PETG
Ang isang maliit na plato ng PET / PETG para sa pagsuporta sa dev board at baterya ng Lipo, madali mo itong mahahanap sa pag-iimpake ng produkto.
Maramihang Layunin PCB
2 PCB kinakailangan, 1 0.4 mm makapal para sa pagsuporta sa Display, 1 1.2 mm makapal para sa isang gamepad ng I2C.
Mga Pindutan
Isang pindutan ng 5 direksyon, 2 maliit na pindutan para sa Piliin at Start at 2 para sa A at B na pindutan.
I2C Gamepad Controller
Sa oras na ito gumamit ako ng isang ATtiny861 microcontroller bilang isang I2C gamepad controller.
Ang iba pa
1 SMD 12 Ohm resistor, isang ISP programmer (hal. TinyISP)
Hakbang 2: Paghahanda ng Software
Arduino IDE
I-download at i-install ang Arduino IDE kung wala pa:
Suporta ng ATTinyCore
Sundin ang mga hakbang sa pag-install upang magdagdag ng suporta sa ATTinyCore kung hindi pa:
ESP-IDF
Sundin ang gabay sa pagsisimula ng ESP-IDF upang ma-setup ang kapaligiran sa pag-unlad kung hindi pa:
Hakbang 3: Pag-print sa 3D
I-download at i-print ang kaso:
Hakbang 4: Suporta sa LCD
Gupitin ang isang 24 x 27 na butas na 0.4 mm PCB para sa suporta ng LCD. Tandaan na magreserba ng ilang puwang para sa natitiklop na LCD FPC. Pagkatapos ay gumamit ng ilang dobleng panig na malagkit na tape ayusin ang LCD sa PCB.
Hakbang 5: Maghanda ng PETG Plate
Gupitin ang isang 62 mm x 69 mm PETG plate para sa dev board at suporta sa baterya ng Lipo.
Hakbang 6: Ayusin ang Linya ng Dev32 ng Dev32
Gumamit ng double side adhesive tape upang ayusin ang dev board sa PETG plate.
Hakbang 7: Ayusin ang Baterya ng Lipo
Gumamit ng dobleng gilid na adhesive tape upang ayusin ang baterya ng Lipo bukod sa dev board.
Hakbang 8: Ikonekta ang Board ng Baterya at Dev
Hakbang 9: Ihanda ang Mga Display Pins
Ang LCD display ay maraming pagkakaiba-iba form form iba't ibang mga vendor. Mangyaring makuha ang tamang datasheet at basahin ito bago ang anumang patch at koneksyon.
Ang ilang mga pin ay nakalaan para sa touch panel. Dahil ang LCD na ito ay walang touch panel, gupitin lamang ang mga pin na maaaring mabawasan ang kaguluhan.
Hakbang 10: Ikonekta ang mga GND Pins
Sa karamihan ng kaso, maraming mga pin ang nangangailangan ng kumonekta sa GND. Upang mabawasan ang pagsisikap sa paghihinang, pinutol ko ang isang hugis na tanso na tape upang maabot ang lahat ng mga pin ng GND at pagkatapos ay kabuuan ng paghihinang.
Hakbang 11: Ikonekta ang mga Pins ng Vcc
Mayroong 2 pin na kinakailangang kumonekta sa Vcc, LCD power at LED power. Ayon sa sheet ng data, ang LCD power ay maaaring direktang kumonekta sa dev board 3.3 V pin ngunit ang LED power ay gumana nang medyo mas mababa sa 3.3 V. Kaya't mas mahusay na magdagdag ng isang resistor ng SMD sa gitna, hal. 12 Ohm risistor.
Hakbang 12: Ikonekta ang Suporta ng LCD & Dev Board
gumamit ng tape na magkonekta ng suporta sa LCD at suporta ng dev board nang magkasama. Ang parehong suporta ay dapat magreserba sa paligid ng 5 mm na puwang para sa natitiklop.
Hakbang 13: Ikonekta ang mga Pins ng SPI
Narito ang buod ng koneksyon:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> hindi konektado Vcc -> 3.3 V LED + -> 12 Ohm resistor -> 3.3 V LED - -> GND
Hakbang 14: Flash Program
- I-download ang source code sa GitHub:
- Sa ilalim ng folder ng source code, patakbuhin ang "make menuconfig"
- Piliin ang "Nofrendo ESP32-tukoy na pagsasaayos"
- Piliin ang "Hardware to run on" -> "Custom Hardware"
- Piliin ang "LCD Type" -> "ST7789V LCD"
- Punan ang mga setting ng pin: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
- Lumabas at Makatipid
- Patakbuhin ang "make -j5 flash"
- Patakbuhin ang "sh flashrom.sh PATH_TO_YOUR_ROM_emium"
Hakbang 15: Konektor ng I2C
Breakout ang mga I2C pin, ang mga ESP32 na default na I2C na pin ay:
Pin 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3.3 V (walang 5 V na lakas habang pinalakas ng baterya ng Lipo) Pin 4 (GND) -> GND
Hakbang 16: Bahagi ng Assembly 1
Sundin ang mga hakbang sa video upang tiklop at pisilin ang lahat ng mga bahagi sa kaso.
Hakbang 17: Prototype I2C Gamepad
Ang programa para sa I2C Gamepad ay napaka-simple, 15 linya lamang ng code. Ngunit medyo mahirap na muling pagprogram ng ATtiny861 pagkatapos ng paghihinang, kaya mas mahusay na subukan muna ito sa breadboard.
I-download, i-compile at i-flash ang programa mula sa GitHub:
Hakbang 18: Bumuo ng I2C Gamepad
Narito ang koneksyon Buod:
ATtiny861 Button
GND -> Lahat ng mga pindutan isang pin Pin 20 (PA0) -> Up button Pin 19 (PA1) -> Down button Pin 18 (PA2) -> left button Pin 17 (PA3) -> Right button Pin 14 (PA4) -> Piliin ang button Pin 13 (PA5) -> Start button Pin 12 (PA6) -> Isang button Pin 11 (PA7) -> B button Pin 6 (GND) -> I2C male pin header pin 4 Pin 5 (Vcc) -> I2C male pin header pin 3 Pin 3 (SCL) -> I2C male pin header pin 1 Pin 1 (SDA) -> I2C male pin header pin 2
Hakbang 19: Bahagi ng Assembly 2
Sundin ang mga hakbang sa video upang mai-install ang takip at ang I2C gamepad sa pangunahing katawan.
Hakbang 20: Opsyonal: Mga Audio Breakout Pins
Ang ESP32 dev board Pin 25 at 26 ay naglalabas ng analog audio signal, napakadaling i-breakout ang 2 mga pin na ito at pati na rin ang mga power pin (3.3 V at GND) sa itaas. Pagkatapos ay maaari mong i-patch ang isang earphone upang mai-plug ito. O kahit na maaari kang magdagdag ng isang module ng audio amplifier sa speaker upang i-play ito ng malakas.
Hakbang 21: Ano ang Susunod?
Ang NES emulator ay hindi lamang ang kagiliw-giliw na bagay na maaari mong gawin sa ESP32. Hal. maaari kang bumuo ng isang micro python console kasama nito. Ang tanging sangkap na kailangan mong baguhin ay mula sa I2C gamepad hanggang sa I2C keyboard. Sa palagay ko hindi napakahirap gawin ito sa isang ATtiny88 controller. Maaari mong sundin ang aking kaba upang makita ang katayuan.
Inirerekumendang:
DIY Raspberry Pi Zero Handheld Game Console: 6 Hakbang (na may Mga Larawan)
DIY Raspberry Pi Zero Handheld Game Console: Sa proyektong ito ipapakita ko sa iyo kung paano ako gumamit ng isang Raspberry Pi Zero, NiMH na baterya, isang homemade over-discharge protection circuit, isang rearview lcd at isang audio amp upang lumikha ng isang hand console ng laro na maaaring maglaro mga larong retro. Magsimula na tayo
GamePi - ang Handheld Emulator Console: 17 Hakbang (na may Mga Larawan)
GamePi - ang Handheld Emulator Console: Intro: Inilalarawan sa pagtuturo na ito ang pagbuo ng isang Raspberry Pi 3 na pinapatakbo ng handheld emulate console - Nabinyagan ko ito GamePi. Mayroong maraming mga katulad na itinuturo para sa mga naturang aparato ngunit para sa aking panlasa ang karamihan sa kanila ay alinman sa masyadong malaki, masyadong maliit, masyadong
Console ng Handheld Gaming - Arduboy Clone: 6 Mga Hakbang (na may Mga Larawan)
Console ng Handheld Gaming | Arduboy Clone: Ilang buwan na ang nakaraan nakilala ko ang Arduboy na ayon sa opisyal na website ay isang maliit na 8-bit na platform ng laro na ginagawang madali upang matuto, magbahagi at maglaro ng online. Ito ay isang bukas na platform ng mapagkukunan. Ang mga laro para sa Arduboy ay ginawa ng gumagamit
Homemade Handheld Console: 12 Hakbang (na may Mga Larawan)
Homemade Handheld Console: Welcometo ang aking sunud-sunod na gabay sa kung paano lumikha ng iyong sariling DIY GameBoy na may isang Raspberry Pi 3 at ang Retropie emulation software. Bago simulan ang proyektong ito, wala akong karanasan sa raspberry pi, retropie, paghihinang, pag-print ng 3d o electr
Handheld Console With Wireless Controllers and Sensors (Arduino MEGA & UNO): 10 Hakbang (na may Mga Larawan)
Handheld Console With Wireless Controllers and Sensors (Arduino MEGA & UNO): Ang ginamit ko: - Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 " TFT 320x480 Touchscreen HXD8357D- Buzzer- 4Ohm 3W Speaker- 5mm LED lights- Ultimaker 2+ Printer w / Black PLA Filament- Lasercutter w / MDF kahoy- Itim na pintura ng spray (para sa kahoy) - 3x nRF24