Mundarija:

ESP32 portativ o'yin konsoli: 21 qadam (rasmlar bilan)
ESP32 portativ o'yin konsoli: 21 qadam (rasmlar bilan)

Video: ESP32 portativ o'yin konsoli: 21 qadam (rasmlar bilan)

Video: ESP32 portativ o'yin konsoli: 21 qadam (rasmlar bilan)
Video: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, Iyul
Anonim
Image
Image
Uskunani tayyorlash
Uskunani tayyorlash

NES emulyatori o'yin konsoli yaratish uchun ESP32 va ATtiny861 dan foydalanish ko'rsatmalari.

1 -qadam: Uskuna tayyorlash

Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash

ESP32 ishlab chiqarish kartasi

Bu safar men TTGO T8 ESP32 ishlab chiqarish kartasidan foydalanmoqdaman. Ushbu taxtada o'rnatilgan Lipo zaryadlash va sozlash sxemasi mavjud, bu qo'shimcha komponentlarni kamaytirishga yordam beradi.

Ko'rsatish

Bu safar men 2,4 dyuymli IPS LCD -dan foydalanmoqdaman. Haydovchi boshqaruvchisi ST7789V va o'lchamlari 320 x 240. Bu o'lcham 252 x 224 o'lchamdagi NES emulyatoriga eng mos keladi.

Batareya

Bu safar men 454261 Lipo batareyasidan foydalanayapman. 4,5 mm - ESP32 dev taxtasining qalinligi, taxtaning kengligi - 61 mm.

Pin sarlavhasi

I2C geympadini ulash uchun 4 pinli erkak dumaloq pinli va 4 pinli ayol dumaloq pinli sarlavha.

PETG plitasi

Devor kartasi va Lipo batareyasini qo'llab -quvvatlash uchun kichik PET/PETG plastinkasi, uni mahsulotning qadoqlarida osongina topish mumkin.

Ko'p maqsadli PCB

Displeyni qo'llab -quvvatlash uchun qalinligi 1 0,4 mm, I2C geympad uchun 1,2 mm qalinlikdagi 2 ta tenglikni kerak.

Tugmalar

5 ta yo'nalish tugmasi, Tanlash va Boshlash uchun 2 ta kichik tugma va A va B tugmasi uchun 2 ta.

I2C geympad boshqaruvchisi

Bu safar men ATtiny861 mikrokontrollerini I2C geympad tekshirgichi sifatida ishlataman.

Boshqalar

1 SMD 12 Ohmli qarshilik, ISP dasturchisi (masalan, TinyISP)

2 -qadam: dasturiy ta'minotni tayyorlash

Dasturiy ta'minot tayyorlash
Dasturiy ta'minot tayyorlash
Dasturiy ta'minot tayyorlash
Dasturiy ta'minot tayyorlash
Dasturiy ta'minot tayyorlash
Dasturiy ta'minot tayyorlash

Arduino IDE

Agar bo'lmasa, Arduino IDE -ni yuklab oling va o'rnating:

ATTinyCore -ni qo'llab -quvvatlash

Agar bo'lmasa, ATTinyCore -ni qo'llab -quvvatlash uchun o'rnatish bosqichlarini bajaring:

ESP-IDF

Ishlash muhitini sozlash uchun ESP-IDF ishga tushirish qo'llanmasiga amal qiling:

3 -qadam: 3D bosib chiqarish

3D bosib chiqarish
3D bosib chiqarish

Ishni yuklab oling va chop eting:

4 -qadam: LCD -ni qo'llab -quvvatlash

LCD qo'llab -quvvatlash
LCD qo'llab -quvvatlash
LCD qo'llab -quvvatlash
LCD qo'llab -quvvatlash

LCD qo'llab -quvvatlash uchun 24 x 27 teshikli 0,4 mm tenglikni kesib oling. Esda tutingki, LCD FPC -ni yig'ish uchun joy ajratib qo'ying. Keyin, bir necha tomonlama yopishqoq lentani ishlatib, LCD -ni PCB -ga mahkamlang.

5 -qadam: PETG plitasini tayyorlang

PETG plitasini tayyorlang
PETG plitasini tayyorlang
PETG plitasini tayyorlang
PETG plitasini tayyorlang

Devor taxtasi va Lipo batareyasini qo'llab -quvvatlash uchun 62 mm x 69 mm PETG plastini kesib oling.

6 -qadam: ESP32 Dev platasini tuzating

ESP32 Dev platasini tuzating
ESP32 Dev platasini tuzating

PETG plastinkasidagi devon taxtasini mahkamlash uchun ikki tomonlama yopishqoq lentadan foydalaning.

7 -qadam: Lipo batareyasini to'g'rilang

Lipo batareyasini tuzatish
Lipo batareyasini tuzatish

Lipo batareyasini mahkamlash panelidan tashqari, ikki tomonlama yopishqoq lentadan foydalaning.

8 -qadam: Batareya va asboblar panelini ulang

Batareya va qurilma kartasini ulang
Batareya va qurilma kartasini ulang

9 -qadam: Ko'rish pimlarini tayyorlang

Ko'rsatish pinlarini tayyorlang
Ko'rsatish pinlarini tayyorlang

LCD displey turli xil sotuvchilardan farq qiladi. Iltimos, to'g'ri ma'lumotlar jadvalini oling va har qanday tuzatish va ulanishdan oldin o'qing.

Ba'zi pinlar sensorli panel uchun ajratilgan. Ushbu LCD displeyda sensorli panel yo'qligi sababli, bu pinlarni kesib tashlash buzilishni kamaytiradi.

10 -qadam: GND pinlarini ulang

GND pinlarini ulang
GND pinlarini ulang
GND pinlarini ulang
GND pinlarini ulang

Ko'pgina hollarda, GND -ga ulanishni talab qiladigan bir nechta pin mavjud. Lehimlash harakatlarini kamaytirish uchun men mis lenta shaklini kesib, barcha GND pinlariga etib keldim va keyin butunlay lehimladim.

11 -qadam: Vcc pinlarini ulang

Vcc pinlarini ulang
Vcc pinlarini ulang

Vcc, LCD va LED quvvatiga ulanish uchun 2 ta pin kerak. Ma'lumotlar varag'iga ko'ra, LCD quvvati to'g'ridan -to'g'ri devordagi 3.3 V pinli ulanishi mumkin, lekin LED quvvati 3.3 V dan pastroq ishlaydi, shuning uchun o'rtasiga SMD rezistorini qo'shgan ma'qul, masalan. 12 Ohm qarshilik.

12 -qadam: LCD va qurilmalar panelini qo'llab -quvvatlang

LCD va qurilmalar panelini qo'llab -quvvatlang
LCD va qurilmalar panelini qo'llab -quvvatlang

lenta ulanish LCD qo'llab -quvvatlash va dev kengashi qo'llab -quvvatlash birga foydalaning. Ikkala tayanch ham burish uchun 5 mm atrofida bo'sh joy qoldirishi kerak.

13 -qadam: SPI pinlarini ulang

SPI pinlarini ulang
SPI pinlarini ulang

Bu erda ulanishning qisqacha tavsifi:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> ulanmagan Vcc -> 3,3 V LED+ -> 12 Ohm qarshilik -> 3,3 V LED - -> GND

14 -qadam: Flash dasturi

Flash dasturi
Flash dasturi
Flash dasturi
Flash dasturi
Flash dasturi
Flash dasturi
Flash dasturi
Flash dasturi
  1. Manba kodini GitHub-da yuklab oling:
  2. Manba kodi papkasida "make menuconfig" ni ishga tushiring.
  3. "Nofrendo ESP32 uchun maxsus konfiguratsiya" -ni tanlang.
  4. "Ishga tushadigan uskunalar" -> "Maxsus uskunalar" -ni tanlang.
  5. "LCD turi" -> "ST7789V LCD" ni tanlang.
  6. Pim sozlamalarini to'ldiring: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, shahar -> 27, RST -> 33, orqa yorug'lik -> -1, IPS -> Y
  7. Chiqish va saqlash
  8. "Make -j5 flesh" ni ishga tushiring
  9. "Sh flashrom.sh PATH_TO_YOUR_ROM_FILE" ni ishga tushiring

15 -qadam: I2C ulagichi

I2C ulagichi
I2C ulagichi
I2C ulagichi
I2C ulagichi
I2C ulagichi
I2C ulagichi

I2C pinlari, ESP32 standart I2C pinlari:

1 -pin (SCL) -> GPIO 22

2 -pin (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (Lipo batareyasi bilan ishlaydigan 5 V kuchsiz) 4 -pin (GND) -> GND

16 -qadam: 1 -qism

Image
Image

Qutiga barcha qismlarni burish va siqish uchun video bosqichlarini bajaring.

17 -qadam: I2C Gamepad prototipi

I2C Gamepad prototipi
I2C Gamepad prototipi
I2C Gamepad prototipi
I2C Gamepad prototipi

I2C Gamepad uchun dastur juda oddiy, faqat 15 qatorli kod. Lehimlashdan keyin ATtiny861 -ni qayta dasturlash biroz qiyin, shuning uchun uni avval non panelida sinab ko'rish yaxshiroqdir.

GitHub -dan dasturni yuklab oling, kompilyatsiya qiling va o'chiring:

18 -qadam: I2C Gamepad -ni yarating

I2C Gamepad -ni yarating
I2C Gamepad -ni yarating
I2C Gamepad -ni yarating
I2C Gamepad -ni yarating
I2C Gamepad -ni yarating
I2C Gamepad -ni yarating

Mana ulanish Xulosa:

ATtiny861 tugmasi

GND -> Barcha tugmachalar bitta pinli pin 20 (PA0) -> yuqoriga tugmachasi 19 (PA1) -> pastki tugmachasi 18 (PA2) -> chap tugmachasi pin 17 (PA3) -> o'ng tugmachasi pin 14 (PA4) -> Pin 13 (PA5) -> Boshlash tugmasi Pin 12 (PA6) -> A tugmasi Pin 11 (PA7) -> B tugmasi Pin 6 (GND) -> I2C erkak pinli pin 4 -pin 5 (Vcc) -> I2C tugmachasini tanlang. erkak pin sarlavhasi pin 3 -pin 3 (SCL) -> I2C erkak pin bosh sarlavhasi 1 -pin 1 (SDA) -> I2C erkak pin sarlavhasi pin 2

19 -qadam: Assambleyaning 2 -qismi

Image
Image
Majburiy emas: audio uzilish pinlari
Majburiy emas: audio uzilish pinlari

Qopqoqni va I2C geympadini asosiy korpusga o'rnatish uchun video bosqichlarni bajaring.

20 -qadam: Ixtiyoriy: Ovoz uzilish pinlari

Image
Image
Majburiy emas: audio uzilish pinlari
Majburiy emas: audio uzilish pinlari

Pin 25 va 26 -sonli ESP32 dev platasi analog audio signalni chiqaradi, bu ikkita pinni, shuningdek tepadagi quvvat pimlarini (3.3 V va GND) ajratish juda oson. Keyin quloqchinni mahkamlash uchun yamoq qo'yishingiz mumkin. Yoki hatto baland ovozda ijro etish uchun karnay bilan audio kuchaytirgich modulini qo'shishingiz mumkin.

21 -qadam: Keyin nima bo'ladi?

Keyingisi nima?
Keyingisi nima?

NES emulyatori - bu ESP32 yordamida qila oladigan yagona qiziqarli narsa emas. Masalan, u bilan mikro python konsolini qurishingiz mumkin. O'zgartirish kerak bo'lgan yagona komponent - bu I2C geympadidan I2C klaviaturasiga o'tish. Menimcha, buni ATtiny88 tekshirgichi yordamida amalga oshirish unchalik qiyin emas. Vaziyatni ko'rish uchun siz mening tvitterimni kuzatib borishingiz mumkin.

Tavsiya: