Mündəricat:

ESP32 Əl Oyun Konsolu: 21 Adım (Şəkillərlə birlikdə)
ESP32 Əl Oyun Konsolu: 21 Adım (Şəkillərlə birlikdə)

Video: ESP32 Əl Oyun Konsolu: 21 Adım (Şəkillərlə birlikdə)

Video: ESP32 Əl Oyun Konsolu: 21 Adım (Şəkillərlə birlikdə)
Video: Cambaz Robot Nasıl Yapılır? | 20TL'ye Robot Yaptım! 2024, Iyul
Anonim
Image
Image
Avadanlıq Hazırlanması
Avadanlıq Hazırlanması

Bu təlimatlar, NES emulator oyun konsolu qurmaq üçün ESP32 və ATtiny861 -dən necə istifadə olunacağını göstərir.

Addım 1: Avadanlıqların Hazırlanması

Avadanlıq Hazırlanması
Avadanlıq Hazırlanması
Avadanlıq Hazırlanması
Avadanlıq Hazırlanması

ESP32 inkişaf lövhəsi

Bu dəfə bir TTGO T8 ESP32 inkişaf lövhəsindən istifadə edirəm. Bu lövhədə quraşdırılmış Lipo şarj və tənzimləmə dövrəsi var, əlavə komponentləri azaltmağa kömək edə bilər.

Ekran

Bu dəfə 2.4 IPS LCD istifadə edirəm. Sürücü idarəedicisi ST7789V və qətnaməsi 320 x 240 -dir. Bu qətnamə NES emulator 252 x 224 qətnaməsinə ən uyğundur.

Batareya

Bu dəfə 454261 Lipo batareyasından istifadə edirəm. 4.5 mm ESP32 dev lövhəsinin qalınlığı və 61 mm lövhənin enidir.

Pin Başlığı

I2C gamepad -ı bağlamaq üçün 4 pinli kişi yuvarlaq pin başlığı və 4 pinli dişi yuvarlaq pin başlığı.

PETG plitəsi

Dev board və Lipo batareyasını dəstəkləmək üçün kiçik bir PET/PETG boşqab, onu məhsul qablaşdırmasında asanlıqla tapa bilərsiniz.

Çox məqsədli PCB

Ekranı dəstəkləmək üçün 1 0.4 mm qalınlığında 2 PCB, I2C gamepad üçün 1.2 mm qalınlığında.

Düymələr

5 istiqamət düyməsi, Seç və Başlat üçün 2 kiçik düymə və A və B düyməsi üçün 2.

I2C Gamepad nəzarətçisi

Bu dəfə I2C gamepad nəzarətçisi olaraq ATtiny861 mikro nəzarətçisindən istifadə edirəm.

Digərləri

1 SMD 12 Ohm rezistor, bir ISP proqramçısı (məsələn TinyISP)

Addım 2: Proqramın Hazırlanması

Proqram Hazırlanması
Proqram Hazırlanması
Proqram Hazırlanması
Proqram Hazırlanması
Proqram Hazırlanması
Proqram Hazırlanması

Arduino IDE

Hələ yoxsa Arduino IDE -ni yükləyin və quraşdırın:

ATTinyCore Dəstəyi

Hələ olmasa ATTinyCore dəstəyi əlavə etmək üçün quraşdırma addımlarını izləyin:

ESP-IDF

İnkişaf mühitinin hələ qurulmaması üçün ESP-IDF başlanğıc təlimatını izləyin:

Addım 3: 3D çap

3D çap
3D çap

Davanı yükləyin və çap edin:

Addım 4: LCD dəstəyi

LCD Dəstəyi
LCD Dəstəyi
LCD Dəstəyi
LCD Dəstəyi

LCD dəstəyi üçün 24 x 27 delikli 0,4 mm PCB kəsin. LCD FPC qatlamaq üçün bir az yer ayırmağı unutmayın. Sonra PCB -də LCD -ni düzəltmək üçün bir neçə tərəfli yapışan bant istifadə edin.

Addım 5: PETG Plate hazırlayın

PETG lövhəsini hazırlayın
PETG lövhəsini hazırlayın
PETG lövhəsini hazırlayın
PETG lövhəsini hazırlayın

Dev lövhə və Lipo batareya dəstəyi üçün 62 mm x 69 mm PETG boşqabını kəsin.

Addım 6: ESP32 Geliştirici Kartını düzəldin

ESP32 inkişaf lövhəsini düzəldin
ESP32 inkişaf lövhəsini düzəldin

PETG lövhəsindəki lövhəni düzəltmək üçün iki tərəfli yapışan bant istifadə edin.

Addım 7: Lipo Batareyasını düzəldin

Lipo Batareyasını düzəldin
Lipo Batareyasını düzəldin

Quraşdırma lövhəsindən başqa Lipo batareyasını düzəltmək üçün iki tərəfli yapışan bant istifadə edin.

Addım 8: Batareya və Cihaz Kartını qoşun

Batareya və cihaz lövhəsini qoşun
Batareya və cihaz lövhəsini qoşun

Addım 9: Ekran pinlərini hazırlayın

Göstərmə pinləri hazırlayın
Göstərmə pinləri hazırlayın

LCD displey, fərqli satıcılardan fərqli olaraq bir çox dəyişikliyə malikdir. Zəhmət olmasa düzgün məlumat cədvəlini əldə edin və hər hansı bir yamadan və əlaqədən əvvəl oxuyun.

Bəzi pinlər toxunma paneli üçün ayrılmışdır. Bu LCD -də toxunma paneli olmadığından, bu pinləri kəsmək narahatlığı azalda bilər.

Addım 10: GND pinlərini bağlayın

GND pinlərini bağlayın
GND pinlərini bağlayın
GND pinlərini bağlayın
GND pinlərini bağlayın

Əksər hallarda, GND -ə qoşulmağı tələb edən az sayda pin var. Lehimləmə səylərini azaltmaq üçün, bütün GND sancaqlarına çatmaq üçün mis lent şəklini kəsdim və sonra tamamilə lehimləmə.

Addım 11: Vcc pinlərini bağlayın

Vcc pinlərini bağlayın
Vcc pinlərini bağlayın

Vcc, LCD gücü və LED gücünə qoşulmaq üçün 2 pin lazımdır. Məlumat cədvəlinə görə, LCD gücü birbaşa 3.3 V pin lövhəsinə qoşula bilər, lakin LED gücü 3.3 V -dən bir qədər aşağı işləyir, buna görə ortada bir SMD rezistoru əlavə etmək daha yaxşıdır. 12 Ohm müqavimət.

Addım 12: LCD və Dev lövhəsi dəstəyinə qoşulun

LCD və Dev lövhəsi dəstəyinə qoşun
LCD və Dev lövhəsi dəstəyinə qoşun

LCD dəstəyi və inkişaf etdirici lövhəsi dəstəyini birlikdə bağlayın. Hər iki dəstək də qatlama üçün təxminən 5 mm boşluq saxlamalıdır.

Addım 13: SPI pinlərini bağlayın

SPI pinlərini bağlayın
SPI pinlərini bağlayın

Budur əlaqə xülasəsi:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> bağlı deyil Vcc -> 3.3 V LED+ -> 12 Ohm müqavimət -> 3.3 V LED - -> GND

Addım 14: Flash Proqramı

Flash proqramı
Flash proqramı
Flash proqramı
Flash proqramı
Flash proqramı
Flash proqramı
Flash proqramı
Flash proqramı
  1. Mənbə kodunu GitHub-da yükləyin:
  2. Mənbə kodu qovluğunun altında "make menuconfig" əmrini yerinə yetirin.
  3. "Nofrendo ESP32 üçün xüsusi konfiqurasiya" seçin
  4. "İşləmək üçün Avadanlıq" -> "Xüsusi Təchizat" ı seçin.
  5. "LCD növü" -> "ST7789V LCD" seçin
  6. Pin ayarlarını doldurun: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
  7. Çıx və Saxla
  8. "Make -j5 flash" ı işə salın
  9. "Sh flashrom.sh PATH_TO_YOUR_ROM_FILE" işləyin

Addım 15: I2C Konnektoru

I2C bağlayıcı
I2C bağlayıcı
I2C bağlayıcı
I2C bağlayıcı
I2C bağlayıcı
I2C bağlayıcı

I2C pinləri, ESP32 standart I2C sancaqları:

Pin 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3.3 V (Lipo batareyası ilə işləyərkən 5 V gücü yoxdur) Pin 4 (GND) -> GND

Addım 16: Montaj 1 -ci hissə

Image
Image

Bütün hissələri qutuya qatlamaq və sıxmaq üçün video addımlarını izləyin.

Addım 17: Prototip I2C Gamepad

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

I2C Gamepad üçün proqram çox sadədir, yalnız 15 sətir koddur. Ancaq lehimdən sonra ATtiny861 -i yenidən proqramlaşdırmaq bir az çətindir, buna görə əvvəlcə çörək taxtasında sınamaq daha yaxşıdır.

GitHub -dan proqramı yükləyin, tərtib edin və flaş edin:

Addım 18: I2C Gamepad qurun

I2C Gamepad qurun
I2C Gamepad qurun
I2C Gamepad qurun
I2C Gamepad qurun
I2C Gamepad qurun
I2C Gamepad qurun

Budur əlaqə Özeti:

ATtiny861 düyməsi

GND -> Bütün düymələr bir pin Pin 20 (PA0) -> Yuxarı düymə Pin 19 (PA1) -> Aşağı düymə Pin 18 (PA2) -> Sol düymə Pin 17 (PA3) -> Sağ düymə Pin 14 (PA4) -> Pin 13 (PA5) -> Başlat düyməsi Pin 12 (PA6) -> A düyməsi Pin 11 (PA7) -> B düyməsi Pin 6 (GND) -> I2C kişi pin başlıq pin 4 Pin 5 (Vcc) -> I2C kişi pin başlıq pin 3 Pin 3 (SCL) -> I2C kişi pin başlıq pin 1 Pin 1 (SDA) -> I2C kişi pin başlıq pin 2

Addım 19: 2 -ci hissə

Image
Image
İsteğe bağlı: Audio Breakout Pins
İsteğe bağlı: Audio Breakout Pins

Qapağı və I2C gamepadını əsas gövdəyə quraşdırmaq üçün video addımlarını izləyin.

Addım 20: İsteğe bağlı: Audio Breakout Pins

Image
Image
İsteğe bağlı: Audio Breakout Pins
İsteğe bağlı: Audio Breakout Pins

Pin 25 və 26 ESP32 dev board analoq səs siqnalını çıxarır, bu 2 sancağı və üstdəki güc sancaqlarını (3.3 V və GND) ayırmaq çox asandır. Sonra qulaqcığı yamaqla bağlaya bilərsiniz. Və ya hətta yüksək səslə səsləndirmək üçün dinamikli bir səs gücləndirici modulu əlavə edə bilərsiniz.

Addım 21: Sonrakı Nədir?

Sonrakı Nədir?
Sonrakı Nədir?

NES emulatoru, ESP32 ilə edə biləcəyiniz yeganə maraqlı şey deyil. Məsələn, onunla bir mikro python konsolu qura bilərsiniz. Dəyişdirməyiniz lazım olan yeganə komponent I2C gamepad -dan I2C klaviatura qədərdir. Düşünürəm ki, ATtiny88 nəzarətçisi ilə bunu etmək o qədər də çətin deyil. Vəziyyəti görmək üçün twitterimi izləyə bilərsiniz.

Tövsiyə: