Мазмұны:

Arduino жауынгерлік ойын: 3 қадам
Arduino жауынгерлік ойын: 3 қадам

Бейне: Arduino жауынгерлік ойын: 3 қадам

Бейне: Arduino жауынгерлік ойын: 3 қадам
Бейне: ОБЗОР сражающихся беспилотников Propel Sky Force Боевой лазерный дрон 2024, Қараша
Anonim
Ардуино жауынгерлік ойыны
Ардуино жауынгерлік ойыны

Бала кезімде жауынгерлік ойынның қағаз бен қарындаш нұсқасын ойнағаным есімде. Шын мәнінде, бұл 1 -ші дүниежүзілік соғыстан бері бар. Менде 1960 -жылдардың басында «Sonar Sub Hunt» деп аталатын «электронды» нұсқасы болды, онда жарықтар мен дыбыстар мен жасырын миналар болды. Бүгінгі бейне ойын стандарттары бойынша Battleship өте скучно, бірақ мен немерелердің бұл туралы не ойлайтынын көру үшін бәрін жасаймын деп ойладым. Ақыр соңында, кейде ретро керемет болуы мүмкін.

Бұл жобаның ұсақ -түйектері бар, олар басқа жерде пайдалы болады, тіпті егер сіз Battleship ойынын жасағыңыз келмесе. Онда 4-разрядты 1602 СКД интерфейсі бар, ол белгілі бір таңбаның орнын белгілеуді қамтиды. Сонымен қатар 4х4 ауыстырып қосқыш матрицаны декодтауға арналған интерфейс бар. Бұл екі интерфейс бөлек файлдар ретінде қол жетімді, сондықтан олар оңай тасымалданады. Ойын сонымен қатар әр түрлі дыбыстық эффекттер мен қарапайым бір транзисторлы дыбыс күшейткіш схемасына ие.

1 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал

Мұнда ұсынылған схема бір ойыншыға арналған, сондықтан екі қондырғы жасау керек. Құрылғылар UART TX және RX желілері мен жерге қосылған сымды қамтитын 3 сымды интерфейс арқылы байланысады. Мен стандартты 1/8 дюймдік стерео құлақаспап ұясын және екі ұшында ер штепсельдері бар стандартты кабельді қолдануды таңдадым. Бір қораптан RX екінші қораптың TX-не өтеді және керісінше. Сіз мұны қораптың ішіндегі құлаққап ұясына дәнекерленген сымдарды ауыстыру немесе оны салу кезінде оларды тақтаға ауыстыру арқылы жасай аласыз.

Классикалық ойын матрица түрінде шығарылды, бірақ мен дисплейге арналған 1602 СКД көмегімен қарапайым іске асыруды шештім. Бірінші жолда ойыншының кеме орындары мен қарсыластың соққылары көрсетіледі. Екінші жолда ойыншының соққылары мен қарсыластың кемелеріне тиген соққылары көрсетіледі. Бұл кемелер үшін 16 мүмкін орын ұсынады. Кемелер саны бағдарламалық қамтамасыз етуде орнатылған, мен ерікті түрде 5 -ті таңдадым.

16 кеменің орналасуы коммутатордың талаптарына сәйкес келеді, себебі ол 4х4 матрицаны алуға мүмкіндік береді. 4х4 матрицалық коммутаторлар бар, бірақ мен желілік дисплейге сәйкес келу үшін жеке қосқыштарды бір жолда қолдануды таңдадым. Мен қосқыштарды 4х4 матрица ретінде сымға қостым, сондықтан тек сегіз Arduino түйреуіші қажет. Дұрыс қосылулар үшін қосқыштың қосылу схемасын және схемасын қараңыз.

СКД дисплейі 4 биттік интерфейс үшін сымды. Мен сондай -ақ D13 түйреуішіне сыртқы жарықдиодты қостым, ол қай ойыншыға түсіру керектігін көрсетеді. Бастапқыда ойыншылар бірінші соққыны кім қабылдайтынын шешеді, содан кейін бағдарламалық жасақтама ойынның алға -артына автоматты түрде басқарады.

Мен түсірілімге, жарылыстарға, ойынға дайын және жеңімпаз/жеңілушіге қарапайым дыбыстық эффектілер қосқым келді. Мен қарапайым пьезо -дыбыстық сигналды қолдануға тырыстым, бірақ оның орнына кішкене динамик келді. Динамикке қажет ток Arduino -ның жұмыс қабілеттілігінен асып түседі, сондықтан қарапайым транзисторлық күшейткіш қосылды. Дыбыс әлі де жақсы емес, бірақ дыбыстық сигналға қарағанда жақсы. Менің динамигім 4 Ом, бірақ егер сізде 8 Ом болса, онда схемадағы резисторды 39 Омнан 33 Омға ауыстырыңыз. Егер сіз пьезо -дыбыстық сигналды қолдансаңыз, оны Arduino түйреуішінен дыбыс сигналының екінші жағы жерге қосылған күйінде басқара аласыз.

Сыртқы қалпына келтіру қосқышы да қосылады және Arduino -дағы жерге және «қалпына келтіру» түйреуішінің арасына тікелей қосылады. Бұл ойынды қайта бастауға мүмкіндік береді.

2 -қадам: Бағдарламалық қамтамасыз ету

Бағдарламалық жасақтамада менің СКД интерфейсі үшін қосу файлы бар, мен 4x4 қосқыш матрицаны сканерлеу үшін қосу файлын құрдым. Инициализация ойыншыға кемелерінің орналасатын жерін таңдауды ұсынады, содан кейін «Дайын» күйіне өтеді. Екі ойыншы дайын болған кезде олардың бірі ойынды қосқышты басу арқылы бастайды.

Түсіру орны UART арқылы басқа ойыншыға беріледі, ал тиісті нәтиже оны атқан ойыншыға қайтарылады. Жоғарыда айтылғандай, бірінші кадр түсірілгеннен кейін, бағдарламалық жасақтама келесі кадрды кім алатынын бақылайды. Түсіруді бастамас бұрын, ол алдыңғы кадрлардың орналасқан жерлерімен салыстырылады. Егер бұл орын бұрыннан қолданылған болса, онда кадр жіберілмейді. «My_Shot» жарық диоды кімнің кезегін анықтайды. Сондай -ақ, жарамды таңдау үшін түсірілген дыбыс және кеме соғылған жағдайда жарылыс дыбысы бар. Дыбыстық әсерлер ойынға сәйкес модификациясы бар интернеттен табылған мысалдардан алынған.

Қарсыластың кемелері соққыға жығылғаннан кейін, әр СКД -да хабарлама пайда болады - біреуі жеңімпаз, бірі жеңілген. Хабарламада сонымен қатар ойынды қалпына келтіру түймесін басу арқылы қайта бастауға болатындығы көрсетілген. Жеңімпаз бен жеңілгенге арналған бөлек дыбыстық эффектілер бар.

3 -қадам: скриншоттар

Экран суреттері
Экран суреттері
Экран суреттері
Экран суреттері
Экран суреттері
Экран суреттері
Экран суреттері
Экран суреттері

Міне, ойыннан бірнеше скриншоттар. Бұл бұл пост үшін. Менің басқа нұсқаулықтарымды, сонымен қатар www.boomerrules.wordpress.com веб -сайтын қараңыз

Ұсынылған: