Mundarija:
- 1 -qadam: O'z Arduino VGA konsoli qanday yaratiladi
- 2 -qadam: Boshqa mualliflarning o'yinlari
- 3 -qadam: 1 -ilova: Tekshirgichlarni qanday yaratish haqida batafsil ma'lumot
- 4 -qadam: 2 -ilova: Xotira chegaralari haqida ba'zi fikrlar
Video: Beshta o'yinli Arduino VGA konsoli: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Oldingi yo'riqnomalarda men eng mashhur klassik arja o'yinlarining soddalashtirilgan versiyalarini yalang'och Arduino va boshqa bir nechta komponentlar yordamida takrorladim. Keyinchalik men ularning beshtasini bitta eskizda birlashtirdim. Bu erda men qanday qilib Pong, Breakout, Bomber, Tetris va Etch-a-Sketchdan ilhomlangan o'yinchoq o'ynaydigan oddiy konsol qurishingiz mumkinligini ko'rsataman. Bu konsoldan ilonni va boshqa mualliflar yozgan yana ikkita o'yinni ishlatish mumkin: Sandro Maffiodo aka "Smaffer" Bit Ninja va Nikita Kurylev stacker.
Asosiy xususiyat - VGAx kutubxonasi tufayli VGA signalini yaratish, shuning uchun konsolga VGA monitor kerak. Mening maqsadim, odatdagidek, uni yaratish uchun hech qanday "maxsus komponent" dan qochishdir, sizga hech qanday qo'llab -quvvatlovchi IC yoki qalqon kerak emas! Bitta komponent - ikkita potentsiometr, beshta tugma, bir nechta rezistor va DSUB15 (VGA) ulagichi. Piezo karnay ixtiyoriy. Ushbu o'yinlar qanday ko'rinishini ushbu sahifadagi rasmlarda ko'rishingiz mumkin.
VGAx kutubxonasi 120 x 60 pikselli to'rtta rangdan foydalanishga imkon beradi, lekin bu retro-o'yin konsoli uchun etarli emas. Grafika xom, lekin potentsiometrlardan foydalanish tufayli o'yinlar muammosiz o'tmoqda. Oddiy ovoz effektlari ham mavjud.
1 -qadam: O'z Arduino VGA konsoli qanday yaratiladi
Avval ushbu sahifaning pastki qismidagi ArduinoVGAgame.ino va/yoki Snake.ino kodlarini yuklab oling va ularni shaxsiy kompyuteringizga shu nomdagi katalogga ko'chiring. VGAx kutubxonasini GitHub -dagi ushbu havoladan yuklab oling. Eng oson yo'li - uni "kutubxonalar" deb nomlangan Arduino dasturiy ta'minot papkasida nusxalash, uni darhol tanib olish mumkin.
MUHIM: bu kutubxona Arduno IDE 1.6.4 uchun ishlaydi, lekin u eski yoki yangi versiyalarga to'liq mos kelmaydi.
Kodni Arduino kartangizga yuklang (men Uno va Nano ni sinab ko'rdim). Xotiraning pastligi haqida ogohlantirish odatiy holdir. Agar sizda boshqa xatolar bo'lmasa, hamma narsa yaxshi va siz darhol o'z konsolingizni yaratishni boshlashingiz mumkin.
Buning uchun sizga kerak:
- Arduino Uno Rev 3 yoki Arduino Nano 3.x (ATmega328)
- DSUB15 ulagichi, ya'ni VGA ayol ulagichi yoki kesiladigan VGA kabeli.
- rezistorlar: 2 x 68 Ohm va 2 x 470 Ohm va 5 x 1 dan 2 kOm gacha
- ikkita 10 kOm chiziqli potentsiometr (shunga o'xshash qiymatlar ham yaxshi)
- beshta tugma
- kabelning bir qismi
- bitta yoki ikkita chiroyli quti barcha komponentlarni qo'yish uchun.
Fakultativ:
- non paneli yoki lenta taxtasi
- piezo karnay
Sxema tugallangan "konsol" misoli bilan birga ushbu bosqichning yuqori qismida keltirilgan.
sxemada tugma va potansiometrni qanday ulash kerakligi ko'rsatilgan. Aniqroq aytganda, 5 ta tugmachani 5, 10, 11, 12 va 13 -pinlarga ulashingiz kerak. Har bir tugma tomonidan bajariladigan amallar sxemaning o'ng yuqori yuqori qismida tasvirlangan. Chapda potentsiometrni qanday ulash kerakligi ko'rsatilgan (A1 va A2 pinlariga ikkita potentsiometr kerak). Karnay A0 analog piniga ulangan bo'lishi kerak.
Men VGA ulagichi bo'lgan Arduino taxtasini yog'och qutiga joylashtirdim, unda birinchi o'yinchi potentsiometrini va to'rtta tugmachani, ikkinchi o'yinchi potentsiometrini va uning ishga tushirish tugmachasini alohida va kichikroq qutiga joylashtirdim.
Agar sizga bu o'yinchoq yoqsa va siz uni takrorlashga qaror qilsangiz, quyidagi izohlar bo'limiga sharh yozsangiz yoki rasm yuborsangiz minnatdorman.
2 -qadam: Boshqa mualliflarning o'yinlari
Sandro Maffiodo yaqinda BitNinja o'yinini e'lon qildi. Youn bu erda qo'shimcha ma'lumotni topishi va kodni bu yerdan yuklab olishi mumkin.
Mening konsolimdan foydalanish uchun uning kodidagi tugmani quyidagicha o'zgartirish kerak:
#BTN_UP 11 ni belgilang (13 o'rniga)
#deftine BTN_LEFT 10 (12 o'rniga)
#BTN_RIGHT 12 ni belgilang (11 o'rniga)
Bu erda Nikita Kurylevdan yig'uvchi bor. Qo'shimcha ma'lumot bu erda.
Shunga qaramay, siz kodning boshqa qismida bitta tugmani o'zgartirishingiz kerak: digitalRead (2) ni digitalRead (13) bilan almashtiring.
3 -qadam: 1 -ilova: Tekshirgichlarni qanday yaratish haqida batafsil ma'lumot
Mavjud materialga va didingizga qarab, siz tekshirgichni har xil usulda amalga oshirishingiz mumkin.
Men ularni yog'och qutilar bilan amalga oshirishni yaxshi ko'raman (bu sahifadagi rasmlarga qarang). Arduino uchun asosiy quti, VGA ulagichi va birinchi pleer tugmalari va potenziometr; ikkinchi (kichikroq) faqat ikkinchi o'yinchi tugmasi va g'ildiragi uchun (Pong va chizilgan o'yinchoq uchun kerak). Yana bir variant - hamma narsani bitta katta qutiga qo'yish.
Avval VGA portini ulashni tavsiya qilaman. Birinchi va ikkinchi rasmlarda siz ba'zi tafsilotlarni ko'rishingiz mumkin: 6 va 7 -pimlarga ulangan qizil va yashil rangdagi ikkita 470 Ohmli rezistorga va gorizontal va vertikal sinxronizatsiya signallari uchun 3 va 9 -pinlarga 68 Ohmli ikkita qarshilikka e'tibor bering.
Siz VGA DSUB15 ulagichiga ulangan pinlarga qarab turli xil rang kombinatsiyalarini tanlashingiz mumkin, 1, 2 va 3 -pinlar mos ravishda Qizil, Yashil, Moviy (RGB) ni ifodalaydi. Men 1 va 2 -chi pinlarni uladim, shuning uchun menda quyidagi rang kombinatsiyasi bor: (0, 0) = qora; (1, 0) = qizil; (0, 1) = yashil; (1, 1) = sariq.
Har xil imkoniyatlar uchun VGAx kutubxonalarini yuklagan sahifadagi ma'lumotlarni o'qishni taklif qilaman.
VGA ulagichi tayyor bo'lgach, tugmalar, g'ildiraklar va karnay uchun boshqa barcha kabellarni tayyorlashingiz mumkin (2 -rasmga qarang).
Endi hamma narsani bir joyga to'plang: esda tutingki, har bir tugma pimi 1 yoki 2 kOhmlik rezistor orqali erga ulanishi kerak, aks holda tugma ochilganda pin holati aniqlanmasligi mumkin. Bu shuni anglatadiki, agar pin o'chirilgan bo'lsa, siz uni tasodifiy (statik) kuchlanishga ega bo'lishingiz mumkin. Ushbu ko'rsatmaning ikkinchi bosqichidagi sxemani batafsilroq ko'rib chiqing.
Oxirgi qadam - hamma narsani joyida tuzatish. Men issiq yopishtiruvchi quroldan foydalandim, lekin siz o'zingiz yoqtirgan usuldan foydalanishingiz mumkin.
4 -qadam: 2 -ilova: Xotira chegaralari haqida ba'zi fikrlar
Oddiy Arduino VGA signalini va bu o'yinlarning barchasini birgalikda ishlab chiqarishi ajablanarli. Haqiqiy shishaning bo'yni-bu SRAMning etishmasligi. AVR mikrokontrolerida o'zgaruvchilarni saqlash va boshqarish uchun atigi 2048 bayt mavjud va VGAx kutubxonasi ekran o'zgaruvchilarini 120x60 pikselli ramka buferida saqlaydi, bu erda har bir pikselga 2 bit (4 ta rang) kerak bo'ladi, jami 1800 bayt. Bu shuni anglatadiki, eskiz o'zgaruvchilari uchun atigi 248 bayt qoldi. Bundan tashqari, mening tajribamga ko'ra, beqarorlikni oldini olish uchun kamida 100 bayt bo'sh joy qoldirilishi kerak. 1950 dan yuqori baytli dinamik xotiradan foydalanib, mikrokontroller g'alati va oldindan aytib bo'lmaydigan xatti -harakatlarni ko'rsata boshlaydi.
Bu shuni anglatadiki, barcha o'zgaruvchilar turli xil o'yinlar o'rtasida taqsimlanishi kerak va bu kodni o'qib bo'lmaydigan va disk raskadrovka qilishni qiyinlashtiradi. Oldingi eskizga "yangi o'yin qo'shish" shunchaki masala emas, balki hamma kodni chuqur o'zgartirish va optimallashtirish kerak.
Bundan tashqari, men minimal mumkin bo'lgan o'zgarmaydigan formatni ishlatishim kerak edi: masalan, barcha koordinatalar uchun "int" o'rniga "bayt" dan foydalanishim kerak edi, yoki boshqa hollarda "float" o'rniga "int" ni tanlashim kerak edi.
Nihoyat, mening bilimim VGAx kutubxonasi va ajoyib BitNinja o'yini yaratuvchisi Sandro Maffiodo aka Smafferga ketadi. Bu kutubxonasiz bu loyihani amalga oshirish mumkin emas edi.
Oddiy, ammo kulgili Stacker o'yini uchun Nikita Kurylevga ham rahmat.
Tavsiya:
HP DL380 G6 -ni arzon o'yinli kompyuterga aylantiring: 6 qadam
HP DL380 G6 -ni arzon o'yinli kompyuterga aylantiring: Men tez -tez tasodifan ko'rib chiqadigan g'ayrioddiy narsalarni qidirib topaman. Men topgan narsalardan biri bu bir necha yillik HP rack serverlari - HP DL380. Ularning ko'pchiligi 50 dollardan past narxlarda taklif qilinadi. Shunday qilib, men ulardan birini sotib olishga qaror qildim
Kichkina beshta kichik loyiha: 6 qadam
Kichkina beshta kichik loyiha: siz yoshlarga elektronikani ko'rsatayotganda yonadigan va shovqin chiqaradigan davralarni yaxshi ko'rishingiz kerak. Bir necha daqiqa davom etadigan bu beshta sxemani miltillash tezligini yoki vaqtini o'zgartirish uchun o'zgartirish oson. Birinchi elektron
500 ta o'yinli Ardubaby mini o'yin konsoli: 10 qadam
500 ta o'yinli Ardubaby Mini o'yin konsoli: Yaratuvchiga berilgan kreditlar (Kevin Bates), Arduboy - 8 bitli juda muvaffaqiyatli o'yin konsoli. Qiziquvchilar tomonidan yozilgan minglab o'yinlar Arduboy jamoatchilik forumida bemalol baham ko'rdi, shunda ko'p odamlar kod yozishni o'rganadilar
Beshta LED/batareya ushlagichi: 5 qadam
Beshta LED/batareya ushlagichi: LED va tanga batareyasidan foydalanish - bu loyihaga ozgina yorug'lik berish yoki oddiy elektronikani o'rgatishning ajoyib usuli. Ularni birlashtirishning bir qancha usullari bor, bu video va beshta ko'rsatma. Siz uchun materiallar/vositalar
Yangi va takomillashtirilgan beshta saqich uchun ip qutisi (NANO 3G uchun): 5 qadam
Yangi va takomillashtirilgan beshta saqich uchun ip qutisi (NANO 3G uchun): Tomcat94 Yaqinda beshta saqichdan yasalgan iPod qutisi. Men shunga o'xshash narsani qilishga qaror qildim, lekin Ipod Nano uchun