Mündəricat:
Video: Arduino döyüş gəmisi oyunu: 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Uşaqlıqda Battleship Oyununun kağız və qələm versiyasını oynadığımı xatırlayıram. Əslində, bu, 1 -ci Dünya Müharibəsindən bəri mövcuddur. 1960 -cı illərin əvvəllərində işıqlar, səslər və gizli minalar olan "Sonar Sub Hunt" adlı "elektron" bir variantım da var idi. Bugünkü video oyun standartlarına görə Döyüş gəmisi olduqca darıxdırıcıdır, amma nəvələrin nə düşündüyünü görmək üçün onsuz da bir şey edəcəyimi düşündüm. Axı, bəzən retro sərin ola bilər.
Döyüş gəmisi oyunu ilə maraqlanmasanız belə, bu layihənin başqa yerlərində faydalı olacaq parçaları var. Xüsusi bir xarakter yerini təyin etmək üçün bir rutin daxil olan sadə 4 bitli 1602 LCD interfeysi var. 4x4 keçid matrisini deşifr etmək üçün bir interfeys də var. Bu iki interfeys ayrı -ayrı fayllar şəklində mövcuddur, buna görə də asanlıqla nəql edilə bilər. Oyunda müxtəlif səs effektləri və sadə bir tranzistorlu səs gücləndirici dövrəsi də var.
Addım 1: Avadanlıq
Burada təqdim olunan sxem bir oyunçu üçün nəzərdə tutulmuşdur, buna görə iki qurğu hazırlamaq lazımdır. Cihazlar, UART TX və RX xətləri və torpaq telini ehtiva edən 3 telli bir interfeys istifadə edərək ünsiyyət qurur. Standart 1/8 düymlük stereo qulaqlıq yuvası və hər iki ucunda kişi fişləri olan standart bir kabel istifadə etməyi seçdim. Bir qutudan gələn RX digər qutunun TX-ə gedir və əksinə. Bunu, qutunun içərisindəki qulaqlıq yuvasına lehimlənmiş telləri dəyişdirərək və ya qurarkən elektron lövhədə dəyişdirərək edə bilərsiniz.
Klassik oyun bir matris olaraq quruldu, ancaq ekran üçün 1602 LCD istifadə edərək sadə bir tətbiq etməyi qərara aldım. Birinci sətirdə oyunçunun gəmi yeri və rəqibin zərbələri göstərilir. İkinci sətirdə oyunçunun atışları və rəqibin gəmilərinə vurduğu zərbələr göstərilir. Bu, gəmilər üçün 16 mümkün yer təmin edir. Gəmilərin sayı proqramda təyin olunur və özbaşına olaraq 5 -i seçdim.
16 gəmi yeri 4x4 matrisə imkan verdiyinə görə keçid tələblərinə uyğun gəlir. Mövcud 4x4 matrisli keçid yastıqları var, ancaq xətti ekrana uyğun olaraq tək açarda fərdi açarları istifadə etməyi seçdim. Ancaq açarları 4x4 matris olaraq bağladım ki, yalnız səkkiz Arduino sancağına ehtiyac var. Düzgün əlaqələr üçün keçid telinin sxeminə və sxeminə baxın.
LCD ekran 4 bitlik bir interfeys üçün bağlanmışdır. Hansı oyunçunun vurmalı olduğunu göstərmək üçün D13 pininə xarici bir LED əlavə etdim. Başlanğıcda, oyunçular ilk vuruşu kimin atacağına qərar verir və sonra proqram avtomatik olaraq oyunun irəli və irəli nəzarət edir.
Çəkiliş, partlayışlar, hazır oyun və qalib/məğlub üçün sadə səs effektləri əlavə etmək istədim. Sadə bir piezo səs siqnalı istifadə etməyə çalışdım, amma əvəzində kiçik bir dinamiklə bitdi. Dinamikin tələb etdiyi cərəyan, Arduinonun idarə edə biləcəyini aşır, buna görə sadə bir tranzistor gücləndiricisi əlavə edildi. Səs hələ də əla deyil, ancaq səs -küydən daha yaxşıdır. Dinamikim 4 ohmdur, amma 8 ohm gücünüz varsa, sxemdəki müqaviməti 39 ohm-dan 33 ohm-a dəyişdirin. Bir piezo səs siqnalı istifadə edirsinizsə, buzzerin digər tərəfi yerə bağlı olaraq Arduino pinindən birbaşa idarə edə bilməlisiniz.
Xarici sıfırlama açarı da daxil edilir və Arduino üzərindəki yer və "sıfırlama" pimi arasında birbaşa bağlanır. Bu, oyunu yenidən başlatmaq üçün vasitələr təqdim edir.
Addım 2: Proqram təminatı
Proqram, LCD interfeysim üçün daxiletmə faylına malikdir və mən də 4x4 keçid matris taraması üçün bir əlavə faylı yaratdım. Başlanğıc, oyunçudan gəmiləri üçün yerləri seçməsini tələb edir və sonra "Hazır" vəziyyətinə keçir. Hər iki oyunçu hazır olduqda onlardan biri açara basaraq oyuna başlayır.
Çəkiliş yeri UART vasitəsi ilə digər oyunçuya ötürülür və müvafiq nəticə vuruş edən oyunçuya geri ötürülür. Daha əvvəl də qeyd edildiyi kimi, ilk çəkiliş edildikdən sonra, proqram növbəti vuruşu kimin edəcəyini idarə edir. Bir atış ötürülməzdən əvvəl, əvvəlki çəkilişlərin yerləri ilə yoxlanılır. Əgər həmin yer artıq istifadə olunubsa, o zaman çəkiliş ötürülməyəcək. "My_Shot" LED -i kimin növbəsinin olduğunu müəyyənləşdirir. Etibarlı bir seçim üçün bir atış səsi və bir gəmi vurulduqda partlayış səsi də var. Səs effektləri, oyuna uyğun dəyişikliklərlə onlayn olaraq tapılan nümunələrdən əldə edilir.
Rəqibin bütün gəmiləri vurulduqdan sonra hər bir LCD -də bir mesaj görünür - biri qalib, biri də məğlub. Mesaj, oyunun sıfırlama düyməsinə basaraq yenidən başlaya biləcəyini də göstərir. Qalib və uduzan üçün ayrıca səs effektləri də var.
Addım 3: Ekran görüntüləri
Oyundan bəzi ekran görüntüləri. Bu yazı üçün budur. Digər Təlimatlarımı və həmçinin www.boomerrules.wordpress.com saytındakı veb saytımı yoxlayın
Tövsiyə:
Karton və Arduino ilə bir döyüş botu necə qurulacaq: 7 addım (şəkillərlə)
Karton və Arduino ilə bir döyüş botu necə qurulur: Arduino UNO -dan istifadə edərək döyüş botları yaratdım və cəsədləri düzəltmək üçün kartondan istifadə etdim. Mən əlverişli təchizatlardan istifadə etməyə çalışdım və uşaqlara döyüş botlarının dizaynı ilə bağlı yaradıcılıq azadlığı verdim. Battlebot simsiz idarəedicidən əmr alır
Döyüş Arenasında istifadə etmək üçün öz Duel Disklərinizi yaradın: 4 addım
Döyüş Arenasında istifadə etmək üçün öz Duel Disklərinizi yaradın: Yugioh cizgi film seriyasında tapılan duel diskləri məni hər zaman yarı heyran qoymuşdu. Bir kart göyərtəsi istifadə edərək bir məxluqu çağırıb sonra onu bir növ holoqrafik döyüş arenasında əyləşdirmək nə qədər xoş olardı? İşdə keçəcəyəm h
Döyüş Dronları Quadcopters Aka Əsl Dogfight Təcrübəsi: 8 Addım (Şəkillərlə)
Döyüş Dronları Quadcopters Aka Əsl Dogfight Təcrübəsi: Mənim "kitabım" a xoş gəldiniz #37Bazarda mövcud olan döyüş dronlarının bir az qarışıq olduğunu qəbul etməliyik. Kimin qazandığını və kimin məğlub olduğunu başa düşmək çox çətindir. Bir pilotsuz uçan aparat aşağı enəndə, digəri təqib edir (bir -birinə çırpılır
Döyüş Robotu Necə Hazırlanır (HƏR Bacarıq Səviyyə Üçün): 8 addım
Döyüş Robotu Necə Hazırlanır (HƏR Bacarıq Səviyyə Üçün): Döyüş robot texnikasına başlayanda "addım -addım" olmadığını gördüm. Döyüş robotu, internetdə bir çox araşdırma apardıqdan sonra bir hissəsini bir döyüş robotu hazırlamaq üçün bir bələdçi yaratmaq üçün tərtib etmək qərarına gəldim ki, kimsə
Döyüş gəmiləri oyunu: 9 addım
Müharibə Gəmiləri Oyunu: Dəniz döyüş maşınlarının tam nəzarətində kapitan olmağı xəyal etdinizmi? Sonra War ship oyunu sizin üçün mükəmməl bir oyundur. Bu epik dəniz döyüşləri oyunu partlayıcılarla doludur və əsas məqsədi harada olduğunu təxmin edərək bütün düşmən gəmilərini məhv etməkdir