Mündəricat:
- Addım 1: Avadanlıqların Hazırlanması
- Addım 2: Proqramın Hazırlanması
- Addım 3: 3D çap
- Addım 4: LCD dəstəyi
- Addım 5: PETG Plate hazırlayın
- Addım 6: ESP32 Geliştirici Kartını düzəldin
- Addım 7: Lipo Batareyasını düzəldin
- Addım 8: Batareya və Cihaz Kartını qoşun
- Addım 9: Ekran pinlərini hazırlayın
- Addım 10: GND pinlərini bağlayın
- Addım 11: Vcc pinlərini bağlayın
- Addım 12: LCD və Dev lövhəsi dəstəyinə qoşulun
- Addım 13: SPI pinlərini bağlayın
- Addım 14: Flash Proqramı
- Addım 15: I2C Konnektoru
- Addım 16: Montaj 1 -ci hissə
- Addım 17: Prototip I2C Gamepad
- Addım 18: I2C Gamepad qurun
- Addım 19: 2 -ci hissə
- Addım 20: İsteğe bağlı: Audio Breakout Pins
- Addım 21: Sonrakı Nədir?
Video: ESP32 Əl Oyun Konsolu: 21 Adım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
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ı
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ı
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
Davanı yükləyin və çap edin:
Addım 4: 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
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
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
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
Addım 9: Ekran pinlərini 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
Ə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, 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 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
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ı
- Mənbə kodunu GitHub-da yükləyin:
- Mənbə kodu qovluğunun altında "make menuconfig" əmrini yerinə yetirin.
- "Nofrendo ESP32 üçün xüsusi konfiqurasiya" seçin
- "İşləmək üçün Avadanlıq" -> "Xüsusi Təchizat" ı seçin.
- "LCD növü" -> "ST7789V LCD" seçin
- Pin ayarlarını doldurun: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
- Çıx və Saxla
- "Make -j5 flash" ı işə salın
- "Sh flashrom.sh PATH_TO_YOUR_ROM_FILE" işləyin
Addım 15: I2C Konnektoru
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ə
Bütün hissələri qutuya qatlamaq və sıxmaq üçün video addımlarını izləyin.
Addım 17: 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
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ə
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
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?
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ə:
DIY Raspberry Pi Zero El Oyun Konsolu: 6 Addım (Şəkillərlə birlikdə)
DIY Raspberry Pi Zero Əl Oyun Konsolu: Bu layihədə sizə Raspberry Pi Zero, NiMH batareyaları, ev şəraitində çox boşalma qoruma dövrəsi, arxa görünüşlü bir lcd və səs gücləndiricisini oynaya bilən bir oyun konsolu yaratmaq üçün necə göstərəcəyəm. retro oyunlar. Gəlin başlayaq
1963 Pi Tourer Oyun Konsolu: 9 addım (şəkillərlə birlikdə)
1963 Pi Tourer Oyun Konsolu: Bu, lazımlı bir portativ retro oyun konsoluna çevirdiyim 1963 -cü il Sky Tourer avtomobil radiosudur. Daxili Raspberry Pi 3, 6 arcade düymələri və Picade nəzarətçi lövhəsi vasitəsi ilə bu Vintage RetroPie spritesini idarə edən joystickə malikdir
Əl Oyun Konsolu - Arduboy Clone: 6 Addım (Şəkillərlə birlikdə)
Əl Oyun Konsolu | Arduboy Clone: Bir neçə ay əvvəl rəsmi veb saytına görə onlayn öyrənməyi, paylaşmağı və oynamağı asanlaşdıran 8-bitlik miniatür bir oyun platforması olan Arduboy ilə rastlaşdım. Açıq mənbə platformadır. Arduboy üçün oyunlar istifadəçi tərəfindən hazırlanmışdır
Vizit kartı/oyun konsolu: ATtiny85 və OLED ekranı: 5 addım (şəkillərlə)
Vizit Kartı/Oyun Konsolu: ATtiny85 və OLED Ekranı: Hər kəsə salam! Bu gün sizə öz vizit kartınızı/oyun konsolunuzu/arxa işıqlı I2C OLED ekranı və ATtiny85 Mikroprosessoru olan hər şeyi təsəvvür edə biləcəyinizi göstərəcəyəm. Bu Təlimat kitabında necə dizayn etdiyim bir PCB -dən danışacağam
Ev Oyun Konsolu- "NinTIMdo RP": 7 Addım (Şəkillərlə birlikdə)
Homemade Game Console- "NinTIMdo RP": Daha ətraflı izahlar, hissələr siyahısı və faylları olan veb səhifəsinə bağlantı Məqsəd yaxşı işləyən bir konsol yaratmaq idi