Talaan ng mga Nilalaman:

Console ng Game na Handheld ng ESP32: 21 Mga Hakbang (na may Mga Larawan)
Console ng Game na Handheld ng ESP32: 21 Mga Hakbang (na may Mga Larawan)

Video: Console ng Game na Handheld ng ESP32: 21 Mga Hakbang (na may Mga Larawan)

Video: Console ng Game na Handheld ng ESP32: 21 Mga Hakbang (na may Mga Larawan)
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Hulyo
Anonim
Image
Image
Paghahanda ng Hardware
Paghahanda ng Hardware

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

Paghahanda ng Hardware
Paghahanda ng Hardware
Paghahanda ng Hardware
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

Paghahanda ng Software
Paghahanda ng Software
Paghahanda ng Software
Paghahanda ng Software
Paghahanda ng Software
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

Pagpi-print ng 3D
Pagpi-print ng 3D

I-download at i-print ang kaso:

Hakbang 4: Suporta sa LCD

Suporta ng LCD
Suporta ng LCD
Suporta ng LCD
Suporta ng 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

Ihanda ang PETG Plate
Ihanda ang PETG Plate
Ihanda ang PETG Plate
Ihanda ang 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

Ayusin ang ESP32 Dev Board
Ayusin ang ESP32 Dev Board

Gumamit ng double side adhesive tape upang ayusin ang dev board sa PETG plate.

Hakbang 7: Ayusin ang Baterya ng Lipo

Ayusin ang Baterya ng Lipo
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

Ikonekta ang Lupon ng Baterya at Dev
Ikonekta ang Lupon ng Baterya at Dev

Hakbang 9: Ihanda ang Mga Display Pins

Ihanda ang Mga Display Pins
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

Ikonekta ang mga GND Pins
Ikonekta ang mga GND Pins
Ikonekta ang mga GND Pins
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

Ikonekta ang mga Pins ng Vcc
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

Ikonekta ang Suporta ng LCD & Dev Board
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

Ikonekta ang SPI Pins
Ikonekta ang SPI Pins

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

Programa ng Flash
Programa ng Flash
Programa ng Flash
Programa ng Flash
Programa ng Flash
Programa ng Flash
Programa ng Flash
Programa ng Flash
  1. I-download ang source code sa GitHub:
  2. Sa ilalim ng folder ng source code, patakbuhin ang "make menuconfig"
  3. Piliin ang "Nofrendo ESP32-tukoy na pagsasaayos"
  4. Piliin ang "Hardware to run on" -> "Custom Hardware"
  5. Piliin ang "LCD Type" -> "ST7789V LCD"
  6. Punan ang mga setting ng pin: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
  7. Lumabas at Makatipid
  8. Patakbuhin ang "make -j5 flash"
  9. Patakbuhin ang "sh flashrom.sh PATH_TO_YOUR_ROM_emium"

Hakbang 15: Konektor ng I2C

I2C Connector
I2C Connector
I2C Connector
I2C Connector
I2C Connector
I2C Connector

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

Image
Image

Sundin ang mga hakbang sa video upang tiklop at pisilin ang lahat ng mga bahagi sa kaso.

Hakbang 17: Prototype I2C Gamepad

Prototype I2C Gamepad
Prototype I2C Gamepad
Prototype I2C Gamepad
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

Bumuo ng I2C Gamepad
Bumuo ng I2C Gamepad
Bumuo ng I2C Gamepad
Bumuo ng I2C Gamepad
Bumuo ng I2C Gamepad
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

Image
Image
Opsyonal: Mga Audio Breakout Pins
Opsyonal: Mga Audio Breakout Pins

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

Image
Image
Opsyonal: Mga Audio Breakout Pins
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?

Anong susunod?
Anong 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: