Mundarija:

ESP32 VGA Arja o'yinlari va joystik: 6 qadam (rasmlar bilan)
ESP32 VGA Arja o'yinlari va joystik: 6 qadam (rasmlar bilan)

Video: ESP32 VGA Arja o'yinlari va joystik: 6 qadam (rasmlar bilan)

Video: ESP32 VGA Arja o'yinlari va joystik: 6 qadam (rasmlar bilan)
Video: Как подключить старый монитор к ардуино. VGA to ESP32 2024, Iyul
Anonim
Image
Image
ESP32 VGA Arja Games va Joystick
ESP32 VGA Arja Games va Joystick
ESP32 VGA Arja Games va Joystick
ESP32 VGA Arja Games va Joystick

Bu yo'riqnomada men VGA monitorining chiqishi bilan ESP32 yordamida to'rtta arkadani - Tetris - Ilon - Breakout - Bomber - qanday ko'paytirishni ko'rsataman.

Ruxsat - 320 x 200 piksel, 8 ta rangda. Men ilgari Arduino Uno bilan bir versiya qilganman (bu yerga qarang), lekin o'lchamlari atigi 120 x 60 piksel, 4 ta rang va Arduino xotirasi deyarli to'lgan edi. ESP32 -ning yuqori ko'rsatkichlari tufayli piksellar sonini ham, ijro etish qobiliyatini ham oshiradi. Bundan tashqari, hali ko'p xotira mavjud, shuning uchun kelajakda yangi o'yinlarni qo'shish oson bo'ladi.

Men RS232 kabeli orqali oddiy joystikni ulashni ham ko'rsataman. Men Commodore 64 -ning bir xil pinoutini ishlataman.

Bu loyiha Fabrizio Di Vittorio tomonidan yozilgan ajoyib ESP32 VGA kutubxonasi yordamida amalga oshdi. Batafsil ma'lumot uchun bu erga qarang.

1 -qadam: ESP32 taxtasi, Arduino IDE -ni o'rnatish va VGA kutubxonasini sozlash

ESP32 taxtasi, Arduino IDE o'rnatish va VGA kutubxonasi konfiguratsiyasi
ESP32 taxtasi, Arduino IDE o'rnatish va VGA kutubxonasi konfiguratsiyasi
ESP32 taxtasi, Arduino IDE -ni o'rnatish va VGA kutubxonasi konfiguratsiyasi
ESP32 taxtasi, Arduino IDE -ni o'rnatish va VGA kutubxonasi konfiguratsiyasi
ESP32 taxtasi, Arduino IDE o'rnatish va VGA kutubxonasi konfiguratsiyasi
ESP32 taxtasi, Arduino IDE o'rnatish va VGA kutubxonasi konfiguratsiyasi

Birinchidan, siz ESP32 1 yoki undan yuqori versiyasini sotib olishingiz kerak. Ko'p versiyalar mavjud, lekin men ko'p pinli birini tanlashni maslahat beraman, yaxshisi bu rasmdagi kabi 38 pinli. Men ushbu versiyadan foydalanmoqdaman, lekin menimcha, boshqalari ham yaxshi. Ebayda siz ushbu modelni 7 evrodan past narxda topishingiz mumkin, shu jumladan etkazib berish.

Kengashni olganingizdan so'ng, siz quyidagi uchta kichik bosqichni bajarishingiz kerak:

  1. Oxirgi Arduino IDE -ni o'rnating
  2. IDE -da ESP32 -ni sozlang
  3. VGA kutubxonasini yuklab oling va o'rnating

Sub-qadam 1. ESP32-ni dasturlashning turli usullari mavjud, lekin bu erda siz Arduino IDE-dan foydalanishingiz kerak (men aytmoqchi, 1.8.9 versiyasidan foydalanayapman). Uni o'rnatish uchun siz Arduino IDE sahifasiga o'tishingiz va ko'rsatmalarga amal qilishingiz mumkin.

Sub-qadam 2. Oldingi operatsiyani bajargandan so'ng, siz Arduino IDE ichida ESP32-ni sozlashingiz kerak. Bu ahamiyatsiz emas, chunki ESP32 (hali?) Ona tilida emas. Siz ushbu qo'llanmani yoki quyidagi amallarni bajarishingiz mumkin.

1) Arduino IDE -ni oching

2) imtiyozlar oynasini oching, Fayl/Preferentsiya, "Ctrl+vergul" ni bosing.

3) "Kengash menejerining qo'shimcha URL -lariga" o'ting, quyidagi matnni nusxa ko'chiring va joylashtiring:

https://dl.espressif.com/dl/package_esp32_index.js…

va OK tugmasini bosing.

4) Ochiq taxtalar menejeri. Asboblar/Kengash/Kengash menejeriga o'ting …

5) ESP32 -ni qidiring va "ESP32 by Espressif Systems" uchun o'rnatish tugmasini bosing:

6) Bu vaqtda, siz birinchi marta ESP32 -ni ulaganingizda, mavjud ESP32 platalar ro'yxatidan to'g'ri modelni tanlashingiz kerak (bu bosqichdagi rasmga qarang). Agar modelga shubha tug'ilsa, umumiy, ya'ni birinchisini tanlang. Bu men uchun ishlaydi.

7) tizim, shuningdek, to'g'ri USB (COM) portini va yuklash tezligini (odatda 921600) tanlashi kerak. Bu vaqtda sizning kompyuteringiz va ESP32 kartasi o'rtasida aloqa o'rnatilishi kerak.

Sub-qadam 3. Nihoyat, siz FabGL VGA kutubxonasini o'rnatishingiz kerak. To'liq siqilgan faylni yuklab olish uchun shu erni bosing. Uni oching va natijada paydo bo'lgan papkani (FabGL-master) Arduino IDE kutubxonalari papkasida nusxa ko'chiring:

"… / arduino-1.8.12 / kutubxonalar".

2 -qadam: "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0" yuklanmoqda

Ushbu qadamning pastki qismidagi ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip -ni yuklab oling. Arduino IDE -ni oching va oching, so'ng uni ESP32 -ga yuklang. Agar sizda xato xabari bo'lmasa, kod allaqachon ishlayotgan bo'lishi kerak va siz faqat VGA portini va tugmachalarini (yoki joystikni) ulashingiz kerak.

3 -qadam: VGA portini ulash

VGA portini ulash
VGA portini ulash

Sizga quyidagi qismlar kerak bo'ladi:

  • DSUB15 ulagichi, ya'ni VGA ayol ulagichi yoki kesiladigan VGA kabeli.
  • uchta 270 Ohm qarshilik.

ESP32 GPIO pin 2, 15 va 21 ni mos ravishda 270 Ohmli rezistorlar orqali VGA qizil, yashil va ko'k rangga ulang.

VGA Hsync va Vsync -ni mos ravishda ESP32 GPIO 17 va 4 -pinlariga ulang.

5, 6, 7, 8 va 10 -chi DSUB15 ulagichlarini ESP32 GND ga ulang.

VGA DSUB15 ulagichi pinining ta'rifi uchun ushbu bosqichdagi rasmga qarang. NB, bu ayol ulagichining lehim tomoni.

4 -qadam: To'rt tugmani ulang

To'rt tugmachani ulang
To'rt tugmachani ulang
To'rt tugmachani ulang
To'rt tugmachani ulang
To'rt tugmachani ulang
To'rt tugmachani ulang

Agar sizda C64 joystik bo'lmasa, siz ushbu bosqichdan so'ng to'rtta tugmani ulashingiz mumkin. Agar sizda joystik bo'lsa, siz bu bosqichni o'tkazib yuborib, keyingisiga o'tishingiz mumkin, lekin baribir tugmachalarni ham, joystikni ham ulashingiz mumkin (ular baribir "parallel").

Ushbu bosqichning sxemasi +5V dan bitta tugmani (Odatda ochiq) ESP32 piniga qanday ulash kerakligini ko'rsatadi.

ESP berilgan pinni GND orqali 1 dan 5 kOm gacha qarshilikka ulashingiz kerakligini ham unutmang. Shunday qilib, tugma qo'yilganda (ochilganda) ESP pinasi nol voltsli bo'ladi. Aniqroq aytganda, siz quyidagi tartibda to'rtta tugmani ulashingiz kerak:

  • 12 tugmachasini o'ng tugmachaga mahkamlang
  • 25 -pinni yuqoriga ko'tarish tugmasi
  • 14 tugmachasini chap tugmachaga mahkamlang
  • 35 tugmachasini pastga bosing

5 -qadam: Datchikni ulang

Joystikni ulang
Joystikni ulang
Joystikni ulang
Joystikni ulang
Joystikni ulang
Joystikni ulang

C64 joystikida bu qadamning birinchi rasmida ko'rsatilgan pinout bor. Uni ESP32 -ga ulash uchun sizga ikkinchi rasmda ko'rsatilgandek 9 pinli DSUB erkak ulagichi (ya'ni rozetka) kerak bo'ladi. Men eski elektron taxtadan pinlari ochilgan birini olib tashladim. Uni olib tashlash uchun siz issiqlik tabancasidan foydalanishingiz mumkin (lekin buni ochiq havoda qiling!).

Bu rasmlardagi raqamli tartibda pinlarni ulashingiz kerak. E'tibor bering, sxema joystik tomonini bildiradi, shuning uchun u ayol vilkasini ulashini bildiradi. ESP32 -ga ulanish uchun rozetkada (erkak) "ko'zgu" holatiga ega pinlar mavjud. Shubha tug'ilsa, esda tutingki, pin raqami har doim uchinchi rasmda ko'rsatilgandek erkak va ayol konnektorlarda ko'rsatiladi.

Agar siz o'yinlarni faqat joystik bilan boshqarishni xohlasangiz, uning umumiy pinini (9) ESP32 +5V ga va 1, 2, 3, 4 va 6 -chi joystik pinlarini quyidagi ro'yxatga muvofiq ESP berilgan pinlariga ulang.

  • ESP pin 12 o'ng tugmachasi (RS232 pin 4)
  • ESP pin 14 chap tugmachasi (RS232 pin 3)
  • ESP pin 35 - pastga tugmasi (RS232 pin 2)
  • ESP pin 25 dan yuqoriga tugmasi (RS232 pin 1 va 6, ya'ni joystik olovi)

Eslatib o'tamiz, 12, 14, 25 va 35 -sonli ESP pinlari 1 dan 5 kOhmgacha bo'lgan rezistor orqali GND ga ulangan bo'lishi kerak. Shunday qilib, tugma qo'yilganda (ochilganda) ESP pinasi nol voltsli bo'ladi.

NB2 joystikining UP pozitsiyasi va yong'in tugmasi ESP pin 25 ga ulanadi.

Men kompyuter platasida to'rtta tugmachani bog'ladim, shuning uchun menga joystik kerak emas (garchi joystik bilan kulgili bo'lsa ham). Shunga qaramay, RS232 pin 9 +5 V ga ulangan bo'lishi kerak va joystik pinlari tugmachalarga parallel.

6 -qadam: Xulosa va tan olish

Xulosa va tan olish
Xulosa va tan olish

Agar hamma narsa to'g'ri ishlayotgan bo'lsa, VGA monitorini ulang va siz eski uslubdagi o'yinlardan bahramand bo'lishingiz kerak!

Siz faqat VGA kutubxonasi imkoniyatlarini sinab ko'rish uchun 640 x 350 pikselli Mandelbrot to'plamini chizishingiz mumkin.

Shuni esda tutingki, kod kelajakda boshqa o'yinlarga osonlikcha qo'shilishi mumkin bo'lgan tarzda yozilgan (ESP32da juda ko'p joy bor!). Menga bu loyiha etarlicha qiziqish uyg'otadi, men buni qila olaman …

Nihoyat, men o'z tanklarimni Fabrizio Di Vittorioga ajoyib ESP32 VGA kutubxonasi uchun bildirmoqchiman. Qo'shimcha ma'lumot, misollar va… Space Invaders uchun uning saytiga tashrif buyuring.

Tavsiya: