Բովանդակություն:

ESP32 Handheld Game Console: 21 քայլ (նկարներով)
ESP32 Handheld Game Console: 21 քայլ (նկարներով)

Video: ESP32 Handheld Game Console: 21 քայլ (նկարներով)

Video: ESP32 Handheld Game Console: 21 քայլ (նկարներով)
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Հուլիսի
Anonim
Image
Image
Սարքավորման պատրաստում
Սարքավորման պատրաստում

Այս հրահանգները ցույց են տալիս, թե ինչպես օգտագործել ESP32 և ATtiny861 ՝ NES emulator խաղային վահանակ ստեղծելու համար:

Քայլ 1: Սարքավորման պատրաստում

Սարքավորման պատրաստում
Սարքավորման պատրաստում
Սարքավորման պատրաստում
Սարքավորման պատրաստում

ESP32 Dev տախտակ

Այս անգամ ես օգտագործում եմ TTGO T8 ESP32 dev տախտակ: Այս տախտակն ունի ներկառուցված Lipo լիցքավորման և կարգավորող միացում, այն կարող է օգնել նվազեցնել լրացուցիչ բաղադրիչները:

Displayուցադրել

Այս անգամ ես օգտագործում եմ 2.4 դյույմանոց IPS LCD: Վարորդի վերահսկիչը ST7789V է, իսկ լուծումը ՝ 320 x 240. Այս լուծումը լավագույնս համապատասխանում է NES emulator 252 x 224 բանաձևին:

Մարտկոց

Այս անգամ ես օգտագործում եմ 454261 Lipo մարտկոց: 4.5 մմ - ESP32 dev board- ի հաստությունը, իսկ 61 մմ - տախտակի լայնությունը:

Ամրացնել վերնագիրը

4 կապում արական կլոր քորոց գլխագլուխ և 4 կապիկ կանացի կլոր քորոց վերնագիր ՝ I2C խաղատախտակը միացնելու համար:

PETG ափսե

Փոքր PET/PETG ափսե `dev տախտակին և Lipo մարտկոցին աջակցելու համար, այն հեշտությամբ կարող եք գտնել ապրանքի փաթեթավորման մեջ:

Բազմաֆունկցիոնալ PCB

Պահանջվում է 2 հատ PCB, 1 0,4 մմ հաստ ՝ Displayուցադրմանն աջակցելու համար, 1 1,2 մմ հաստությամբ ՝ I2C խաղատախտակի համար:

Կոճակներ

A 5 ուղղությունների կոճակ, 2 փոքր կոճակներ Select և Start և 2 և A և B կոճակների համար:

I2C Gamepad Controller

Այս անգամ ես օգտագործում եմ ATtiny861 միկրոկոնտրոլերը ՝ որպես I2C gamepad վերահսկիչ:

Մյուսները

1 SMD 12 Օմ դիմադրություն, ISP ծրագրավորող (օրինակ ՝ TinyISP)

Քայլ 2: Softwareրագրաշարի պատրաստում

Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում

Arduino IDE

Ներբեռնեք և տեղադրեք Arduino IDE- ն, եթե դեռ չկա ՝

ATTinyCore աջակցություն

Հետևեք տեղադրման քայլերին ՝ ATTinyCore աջակցություն ավելացնելու համար, եթե դեռ չկա ՝

ESP-IDF

Հետևեք ESP-IDF- ի զարգացման ուղեցույցին `զարգացման միջավայրը կարգավորելու համար, եթե դեռ ոչ:

Քայլ 3: 3D տպագրություն

3D տպագրություն
3D տպագրություն

Ներբեռնեք և տպեք գործը ՝

Քայլ 4: LCD աջակցություն

LCD աջակցություն
LCD աջակցություն
LCD աջակցություն
LCD աջակցություն

LCD- ի աջակցության համար կտրեք 24 x 27 անցք 0.4 մմ չափի PCB: Հիշեք, որ որոշակի տարածք պահեք ծալովի LCD FPC- ի համար: Այնուհետեւ օգտագործեք երկկողմանի սոսինձ ժապավեն, ամրացրեք LCD- ը PCB- ի վրա:

Քայլ 5. Պատրաստեք PETG ափսե

Պատրաստեք PETG ափսե
Պատրաստեք PETG ափսե
Պատրաստեք PETG ափսե
Պատրաստեք PETG ափսե

Կտրեք 62 մմ x 69 մմ չափի PETG ափսե ՝ dev board- ի և Lipo մարտկոցի աջակցության համար:

Քայլ 6. Ուղղեք ESP32 Dev Board- ը

Ուղղեք ESP32 Dev տախտակը
Ուղղեք ESP32 Dev տախտակը

Օգտագործեք երկկողմանի սոսինձ ժապավեն `PETG ափսեի վրա dev տախտակը ամրացնելու համար:

Քայլ 7: Լիցքավորեք Lipo մարտկոցը

Ուղղեք Lipo մարտկոցը
Ուղղեք Lipo մարտկոցը

Օգտագործեք երկկողմանի սոսինձ ժապավեն `Lipo մարտկոցը բացի dev board- ից ամրացնելու համար:

Քայլ 8: Միացրեք մարտկոցի և միացման տախտակը

Միացրեք Battery & Dev Board- ը
Միացրեք Battery & Dev Board- ը

Քայլ 9. Պատրաստեք ցուցադրման կապում

Պատրաստեք ցուցադրման կապում
Պատրաստեք ցուցադրման կապում

LCD էկրանն ունի բազմաթիվ փոփոխություններ ՝ տարբեր մատակարարներից: Ստացեք ճիշտ տվյալների թերթիկ և կարդացեք այն ցանկացած կարկատումից և կապից առաջ:

Որոշ կապում վերապահված է սենսորային վահանակի համար: Քանի որ այս LCD- ն չունի սենսորային վահանակ, պարզապես կտրելով դրանք, կարող եք նվազեցնել անհանգստությունը:

Քայլ 10: Միացրեք GND կապում

Միացրեք GND կապում
Միացրեք GND կապում
Միացրեք GND կապում
Միացրեք GND կապում

Շատ դեպքերում քչերն են կապում, որոնք պահանջում են միանալ GND- ին: Reduceոդման ջանքերը նվազեցնելու համար ես կտրեցի պղնձե ժապավենի ձևը, որպեսզի հասնեմ GND- ի բոլոր կապումներին, իսկ հետո ընդհանրապես զոդում:

Քայլ 11: Միացրեք Vcc կապում

Միացրեք Vcc կապում
Միացրեք Vcc կապում

Vcc- ին, LCD հզորությանը և LED հոսանքին միանալու համար անհրաժեշտ է 2 կապում: Ըստ տվյալների թերթիկի, LCD հզորությունը կարող է ուղղակիորեն միանալ dev 3.3 վտ պինին, բայց LED հզորությունը գործում է 3.3 Վ -ից փոքր -ինչ ցածր: Այսպիսով, ավելի լավ է մեջտեղում ավելացնել SMD ռեզիստոր, օրինակ. 12 Օմ դիմադրություն:

Քայլ 12: Միացրեք LCD և Dev տախտակի աջակցությունը

Միացրեք LCD և Dev տախտակի աջակցությունը
Միացրեք LCD և Dev տախտակի աջակցությունը

օգտագործեք ժապավենը միացրեք LCD- ի և dev board- ի աջակցությունը միասին: Երկու հենարաններն էլ պետք է մոտ 5 մմ բաց թողնեն ծալման համար:

Քայլ 13: Միացրեք SPI կապում

Միացրեք SPI կապում
Միացրեք SPI կապում

Ահա կապի ամփոփագիրը.

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> միացված չէ Vcc -> 3.3 Վ LED+ -> 12 Օմ դիմադրություն -> 3.3 Վ LED - -> GND

Քայլ 14: Flash ծրագիր

Flash ծրագիր
Flash ծրագիր
Flash ծրագիր
Flash ծրագիր
Flash ծրագիր
Flash ծրագիր
Ֆլեշ ծրագիր
Ֆլեշ ծրագիր
  1. Ներբեռնեք աղբյուրի կոդը GitHub- ում ՝
  2. Կոդի թղթապանակի ներքո գործարկեք "make menuconfig"
  3. Ընտրեք «Nofrendo ESP32- ի հատուկ կազմաձևում»
  4. Ընտրեք «Սարքավորումներ աշխատելու համար» -> «Պատվերով սարքավորում»
  5. Ընտրեք «LCD տեսակը» -> «ST7789V LCD»
  6. Լրացրեք քորոցների կարգավորումները ՝ MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, լուսավորություն -> -1, IPS -> Y
  7. Դուրս եկեք և պահեք
  8. Գործարկեք "make -j5 flash"
  9. Գործարկել «sh flashrom.sh PATH_TO_YOUR_ROM_FILE»

Քայլ 15: I2C միակցիչ

I2C միակցիչ
I2C միակցիչ
I2C միակցիչ
I2C միակցիչ
I2C միակցիչ
I2C միակցիչ

Պառակտում I2C կապում, ESP32 կանխադրված I2C կապում են:

Պին 1 (SCL) -> GPIO 22

Պին 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3.3 V (ոչ 5 Վ էներգիա Lipo մարտկոցով սնվելիս) Pin 4 (GND) -> GND

Քայլ 16. Հավաքում Մաս 1

Image
Image

Հետևեք տեսանյութի քայլերին ՝ բոլոր մասերը պատյանը ծալելու և սեղմելու համար:

Քայլ 17. Նախատիպ I2C Gamepad

Նախատիպ I2C Gamepad
Նախատիպ I2C Gamepad
Նախատիպ I2C Gamepad
Նախատիպ I2C Gamepad

I2C Gamepad- ի ծրագիրը շատ պարզ է, ընդամենը 15 տող կոդ: Բայց մի փոքր դժվար է ATtiny861- ը զոդելուց հետո նորից ծրագրավորելը, ուստի ավելի լավ է այն նախ փորձարկել սեղանի վրա:

Ներբեռնեք, կազմեք և միացրեք ծրագիրը GitHub- ից ՝

Քայլ 18. Կառուցեք I2C Gamepad

Կառուցեք I2C Gamepad
Կառուցեք I2C Gamepad
Կառուցեք I2C Gamepad
Կառուցեք I2C Gamepad
Կառուցեք I2C Gamepad
Կառուցեք I2C Gamepad

Ահա կապի ամփոփագիրը.

ATtiny861 կոճակ

GND -> Բոլոր կոճակները մեկ կապում Pin 20 (PA0) -> վերևի կոճակ Pin 19 (PA1) -> ներքևի կոճակ Pin 18 (PA2) -> Ձախ կոճակի Pin 17 (PA3) -> Աջ կոճակի Pin 14 (PA4) -> Ընտրեք կոճակ Pin 13 (PA5) -> Start կոճակ Pin 12 (PA6) -> A կոճակ Pin 11 (PA7) -> B կոճակ Pin 6 (GND) -> I2C արական քորոց գլխագիծ 4 Pin 5 (Vcc) -> I2C արական քորոց գլխագիծ 3 Պին 3 (SCL) -> I2C արական քորոց վերնագրի քորոց 1 Պին 1 (SDA) -> I2C արական քորոց գլխագիծ քորոց 2

Քայլ 19. Համագումար Մաս 2

Image
Image
Լրացուցիչ. Աուդիո Breakout կապում
Լրացուցիչ. Աուդիո Breakout կապում

Հետևեք վիդեո քայլերին ՝ ծածկը և I2C խաղատախտակը հիմնական մարմնին տեղադրելու համար:

Քայլ 20: Լրացուցիչ. Աուդիո անջատման կապում

Image
Image
Լրացուցիչ. Աուդիո Breakout կապում
Լրացուցիչ. Աուդիո Breakout կապում

ESP32 dev board Pin 25 և 26 թողարկում է անալոգային աուդիո ազդանշան, շատ հեշտ է ճեղքել այս երկու կապում, ինչպես նաև վերևի հոսանքի (3.3 V և GND) կապերը: Այնուհետև կարող եք կարկատել ականջակալը ՝ այն միացնելու համար: Կամ նույնիսկ դուք կարող եք ձայնային ուժեղացուցիչի մոդուլ ավելացնել բարձրախոսով `այն բարձրաձայն նվագելու համար:

Քայլ 21. Ի՞նչ է հաջորդը:

Ի՞նչ է հաջորդը
Ի՞նչ է հաջորդը

NES emulator- ը միակ հետաքրքիր բանը չէ, որ կարող եք պատրաստել ESP32- ով: Օրինակ ՝ դրա հետ կարող եք կառուցել միկրո պիթոնի վահանակ: Միակ բաղադրիչը, որը պետք է փոխեք, I2C gamepad- ից I2C ստեղնաշարն է: Կարծում եմ, որ դա այնքան էլ դժվար չէ ATtiny88 կարգավորիչով պատրաստել: Դուք կարող եք հետևել իմ Twitter- ին ՝ կարգավիճակը տեսնելու համար:

Խորհուրդ ենք տալիս: