Mundarija:

Arduino jangovar kemasi o'yini: 3 qadam
Arduino jangovar kemasi o'yini: 3 qadam

Video: Arduino jangovar kemasi o'yini: 3 qadam

Video: Arduino jangovar kemasi o'yini: 3 qadam
Video: Jangovar Robot 2024, Noyabr
Anonim
Arduino jangovar kemasi o'yini
Arduino jangovar kemasi o'yini

Esimda, bolaligimda jangovar o'yinning qog'oz va qalam versiyasini o'ynaganman. Aslida, bu 1 -jahon urushi davridan beri mavjud. Menda 1960 -yillarning boshlarida "Sonar Sub Hunt" deb nomlangan "elektron" variant ham bor edi, u erda yorug'lik va tovushlar, yashirin minalar bor edi. Bugungi video o'yin standartlariga ko'ra, jangovar kema juda zerikarli, lekin men nevaralar bu haqda nima deb o'ylaganini bilish uchun shunday qilaman deb o'yladim. Axir, ba'zida retro ajoyib bo'lishi mumkin.

Agar siz jangovar kemani o'ynashni xohlamasangiz ham, bu loyihaning boshqa qismlari ham foydali bo'ladi. U 4-bitli 1602-sonli oddiy LCD-interfeysga ega, u o'ziga xos belgilar o'rnini belgilash tartibini o'z ichiga oladi. 4x4 kalitli matritsani dekodlash uchun interfeys ham mavjud. Bu ikkita interfeys alohida fayllar sifatida mavjud, shuning uchun ularni tashish oson. O'yinda turli xil ovoz effektlari va oddiy bitta tranzistorli ovoz kuchaytirgich sxemasi mavjud.

1 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna

Bu erda keltirilgan sxema bitta o'yinchi uchun mo'ljallangan, shuning uchun ikkita birlik qilish kerak. Qurilmalar UART TX va RX liniyalari va er simini o'z ichiga olgan 3 simli interfeys yordamida aloqa o'rnatadilar. Men standart 1/8 dyuymli stereo minigarniturani va ikkala uchida erkak vilkalari bo'lgan standart kabeldan foydalanishni tanladim. Bir qutidan RX boshqa qutining TX ga o'tadi va aksincha. Siz buni qutining ichidagi minigarnituraga ulangan simlarni almashtirish yoki elektron plataga almashtirish orqali qilishingiz mumkin.

Klassik o'yin matritsa sifatida tuzilgan, lekin men displey uchun 1602 LCD yordamida oddiy dasturni bajarishga qaror qildim. Birinchi qatorda o'yinchining kema joylari va raqibning zarbalari ko'rsatilgan. Ikkinchi satrda o'yinchining zarbalari va raqib kemalaridagi har qanday zarbalar ko'rsatilgan. Bu kemalar uchun 16 ta mumkin joyni beradi. Kemalar soni dasturiy ta'minotda o'rnatiladi va men o'zboshimchalik bilan 5 tani tanladim.

16 ta kema joylashuvi kalit talablariga juda mos keladi, chunki u 4x4 matritsaga ruxsat beradi. 4x4 matritsali matkaplar mavjud, lekin men bitta kalitda chiziqli displeyga mos keladigan kalitlarni ishlatishni tanladim. Men kalitlarni 4x4 matritsa qilib uladim, shunda faqat sakkizta Arduino piniga ehtiyoj bor. To'g'ri ulanishlar uchun kalitlarni ulash sxemasi va sxemasiga qarang.

LCD displey 4 bitli interfeys uchun simli. Qaysi o'yinchi otish kerakligini ko'rsatish uchun men D13 piniga tashqi LED qo'shdim. Dastlab, o'yinchilar birinchi zarbani kim olishini hal qilishadi, keyin dastur avtomatik ravishda o'yinning oldinga va orqasini boshqaradi.

Men tortishish, portlashlar, o'yin tayyor va g'olib/mag'lubiyat uchun oddiy ovoz effektlarini qo'shishni xohlardim. Men oddiy piezo -signalni ishlatishga harakat qildim, lekin uning o'rniga kichik karnay o'rnatildi. Karnay tomonidan talab qilinadigan oqim Arduino -ning ish qobiliyatidan oshib ketadi, shuning uchun oddiy tranzistorli kuchaytirgich qo'shildi. Ovoz hali ham unchalik yaxshi emas, lekin bu signaldan yaxshiroq. Mening karnayim 4 ohm, lekin agar sizda 8 ohm bo'lsa, sxemadagi qarshilikni 39 ohmdan 33 ohmga o'zgartiring. Agar siz piezo -buzzerdan foydalansangiz, uni to'g'ridan -to'g'ri Arduino pinidan haydashingiz kerak, zilzilaning boshqa tomoni erga ulangan.

Tashqi tiklash tugmasi ham mavjud va u to'g'ridan -to'g'ri Arduino -dagi er va "tiklash" pimi o'rtasida o'tkaziladi. Bu o'yinni qayta boshlash imkoniyatini beradi.

2 -qadam: dasturiy ta'minot

Dastur mening LCD interfeysim uchun qo'shilgan faylga ega va men 4x4 kalitli matritsani skanerlash uchun qo'shilgan faylni ham yaratdim. Boshlash o'yinchiga kemalari uchun joylarni tanlashni taklif qiladi va keyin "Tayyor" holatiga o'tadi. Ikkala o'yinchi ham tayyor bo'lganda, ulardan biri kalitni bosib o'yinni boshlaydi.

Tortishish joyi UART orqali boshqa o'yinchiga uzatiladi va tegishli natija zarba bergan o'yinchiga qaytariladi. Yuqorida aytib o'tganimizdek, birinchi tortishish amalga oshirilgach, dasturiy ta'minot keyingi tortishishni kim boshqarishini nazorat qiladi. Rasm uzatilishidan oldin u avvalgi tortishish joylari bo'yicha tekshiriladi. Agar bu joy allaqachon ishlatilgan bo'lsa, u holda kadr uzatilmaydi. "My_Shot" svetodiodi kimning burilishini aniqlaydi. Bundan tashqari, to'g'ri tanlov uchun o'q ovozi va kema urilganda portlash ovozi ham bor. Ovoz effektlari o'yinga mos keladigan o'zgartirishlar bilan Internetda topilgan misollardan olingan.

Raqibning kemalariga zarba berilgach, har bir LCD displeyda bitta xabar ko'rsatiladi - bittasi g'olib, ikkinchisi esa mag'lub. Xabarda, shuningdek, o'yinni qayta o'rnatish tugmachasini bosib qayta boshlash mumkinligi ko'rsatilgan. G'olib va yutqazganlar uchun alohida ovoz effektlari ham mavjud.

3 -qadam: Ekran tasvirlari

Ekran tasvirlari
Ekran tasvirlari
Ekran tasvirlari
Ekran tasvirlari
Ekran tasvirlari
Ekran tasvirlari
Ekran tasvirlari
Ekran tasvirlari

Mana, o'yinning ba'zi ekran tasvirlari. Mana bu post uchun. Boshqa ko'rsatmalarni va mening veb -saytimni tekshiring: www.boomerrules.wordpress.com

Tavsiya: