Mündəricat:

Bir Analog Girişdən istifadə edən 4 Düymə Oyunları: 6 Addım (Şəkillərlə)
Bir Analog Girişdən istifadə edən 4 Düymə Oyunları: 6 Addım (Şəkillərlə)

Video: Bir Analog Girişdən istifadə edən 4 Düymə Oyunları: 6 Addım (Şəkillərlə)

Video: Bir Analog Girişdən istifadə edən 4 Düymə Oyunları: 6 Addım (Şəkillərlə)
Video: Arduino Devre Tasarımı | 0 Dan Siparişe | MCU SERISI 2024, Iyul
Anonim
Image
Image

Bu təlimat bir -birindən asılı olmayaraq aşkar edilə bilən çoxlu düymələr üçün bir analoq giriş xəttindən istifadə etməyə yönəlmişdir.

Və daxil edilən bu düymələrin istifadəsini vurğulamaq üçün dörd fərqli 4 düyməli oyun oynamaq üçün bir proqramdır. Buradakı bütün oyunlar (cəmi 8) bir Led nərdivan ekranı istifadə edir (əvvəlki layihəyə baxın: təlimatlar: Tək Xəttli LED-Ekran-Oyunlar).

Digər ekran çıxışları ilə öz 4 düyməli montajınızı istifadə edə bilərsiniz, sadəcə daxil edilmiş eskizlərdən birinin 'scanButtons ()' funksiyasından istifadə edin. Və bu eskizləri, məsələn, istifadə etmək üçün istifadə edin.

Oyunlar bir bacarıq oyunu: Whack-a-Mole, bir yaddaş oyunu: Simon deyir, məntiqi oyunlar Sea Hunt və Flip'd Reveri-yə bənzər iki oyunçu oyunu. Daha sonra, bu təlimatlandırmada, daha sonra iki nəfərlik baş-başa yarış yarışlarını da təqdim edəcəyəm.

Addım 1: Optimal Düymə Konfiqurasiyasının təyin edilməsi

Sadəcə olaraq, hər birinin arasına vurulmuş düymələri olan bəzi rezistorlardan istifadə etmək, bir düyməni basmaqla digərini bağlamaqdan narahat olmasanız yaxşı olar. Belə bir konfiqurasiyada hər bir düymə basıldıqda onun altındakı hər şeyi bloklayır. Yalnız iki düyməyə ehtiyacınız olanda və stolüstü tennis tətbiqində olduğu kimi bir anda yalnız bir şeyə əhəmiyyət verirsinizsə; Bir oyunçu digərini vurmadan əvvəl barmağını düyməsindən çıxara bilmirsə (çox yavaş və ya pis niyyətlə).

Çox sayda düymə, hər birinin girişə gedən fərqli müqavimət dəyərləri olan bir analoq xəttinə qoşulmuşdur. Yalnız 2 və ya 3 düymə olduqda hansı düyməyə və ya cütə basıldığını asanlıqla ayırd edə bilərsiniz. Ancaq daha çox düymə və ya ikidən çox basıldığında etibarlı deyil, çünki oxunuşların ən pis halda birləşməsi bir -birinə çox yaxınlaşır.

Dörd düymə və rezistordan ibarət Double-Y konfiqurasiyasında hər hansı bir, ikiqat, hətta üçlü və ya dörd düymənin hamısını etibarlı şəkildə ayırd edə bilərsiniz. Bunu etmək üçün proqram sürücüsü bir sonrakı hissədə və kod siyahısında əhatə olunacaq.

Digər düymələrin vəziyyətindən asılı olmayaraq hər düymənin basıldığı aşkar edilə bilən bir analoq girişə dörd düymənin bağlanması arzusu ilə bir elektron tabloda bir neçə konfiqurasiyanı modelləşdirdim. Mən gördüm ki, ikiqat Y (3 rezistordan ibarət 2 dəstdən ibarət) konfiqurasiya ən yaxşı imkanları verir. Aşağıdakı naqillərin sxematik diaqramına baxın. Onları hər iki basılan düymə birləşməsi arasındakı ümumi müqavimətin ən çox ayrılmasına əsaslanaraq qiymətləndirirdim. Hesablanmış analoq dəyərləri daha da modelləşdirdim. Aşağıdakı elektron tablo faylına baxın.

Yuxarıdakı konfiqurasiyalarda istifadə ediləcək ən yaxşı dəyərləri müəyyən etmək üçün, mümkün oxunuş girişləri arasında ən az fərq yaradan dəsti taparaq potensial müqavimət dəyərlərinin bütün mümkün permütasiyalarını hərtərəfli sınayan bir simulyasiya yazdım. İstifadə etdiyim kodu verdim. Bu birlikdə atdığım, istədiklərimi əldə etdiyim və bir kənara qoyduğum kobud güc vasitəsi idi, buna görə heç bir şəkildə optimallaşdırılmadı. Tamamilə olduğu kimi, yalnız tarixi istinad üçündür (aşağıda Solve_4R.html).

Baxış üçün çıxışı budur:

R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 15 dəq Delta: 3.3658818125

R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 18 minR delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 12 R5: 18 R6: 10 minR delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 15 R5: 10 R6: 33 minR delta: 5.0576510475 R1: 10 R2: 12 R3: 10 R4: 15 R5: 12 R6: 10 minR delta: 7.104826870 R1: 10 R2: 12 R3: 10 R4: 18 R5: 10 R6: 18 minR delta: 8.1673424912 R1: 10 R2: 12 R3: 10 R4: 18 R5: 15 R6: 22 minR delta: 8.6504939648 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 18 MinR delta: 10.1721492515 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 22 minR delta: 10.5040000560 R1: 10 R2: 12 R3: 10 R4: 27 R5: 12 R6: 27 minR delta: 10.7814361579 R1: 10 R2: 12 R3: 12 R4: 33 R5: 15 R6: 36 minR delta: 10.8827552754 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 22 minR delta: 11.4499029683 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 27 minR delta: 12.0961591599 R1: 10 R2: 12 R3: 15 R4: 68 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 75 R5: 10 R6: 27 dəq Delta: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 82 R5: 10 R6: 27 dəq Delta: 1 2.7992171382 R1: 10 R2: 12 R3: 15 R4: 91 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 82 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 91 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 100 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 68 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 75 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 15 R5: 10 R6: 27 dəq delta: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 100 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 15 R3: 10 R4: 18 R5: 18 R6: 12 minR delta: 13.2909379968 R1: 10 R2: 15 R3: 10 R4: 22 R5: 12 R6: 10 minR delta: 14.245362837 R1: 10 R2: 15 R3: 10 R4: 39 R5: 18 R6: 27 dəq Delta: 14.5126340326 R1: 10 R2: 15 R3: 10 R4: 56 R5: 12 R6: 15 dəq delta: 15.220571553 R1: 10 R2: 15 R3: 12 R4: 27 R5: 12 R6: 12 minR delta: 18.8228671943 R1: 10 R2: 15 R3: 12 R4: 39 R5: 18 R6: 27 minR delta: 19.236186493 R1: 10 R2: 15 R3: 15 R4: 47 R5: 22 R6: 33 minR delta: 19.5685736556 R1: 10 R2: 15 R3: 22 R4: 56 R5: 22 R6: 27 minR delta: 19.7887024012 R1: 10 R2: 15 R3: 27 R4: 220 R5: 12 R6: 10 minR delta: 21.2533513149 R1: 10 R2: 15 R3: 220 R4: 27 R5: 12 R6: 10 minR delta: 21.2533513149 R1: 10 R2: 18 R3: 22 R4: 68 R5: 33 R6: 39 minR delta: 21.58566448 R1: 10 R2: 18 R3: 27 R4: 75 R5: 33 R6: 36 minR delta: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 36 dəq delta: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 39 minR delta: 22.158443806 R1: 10 R2: 18 R3: 33 R4: 75 R5: 27 R6: 18 minR delta: 24.2578084248 R1: 10 R2: 18 R3: 75 R4: 33 R5: 27 R6: 18 minR delta: 24.2578084248 R1: 10 R2: 36 R3: 36 R4: 68 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 36 R4: 75 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 39 R4: 75 R5: 12 R6: 15 minR delta: 24.380952380 R1: 10 R2: 36 R3: 68 R4: 36 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 36 R5: 12 R6: 18 dəq D delta: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 39 R5: 12 R6: 15 dəq Delta: 24.380952380 R1: 10 R2: 39 R3: 15 R4: 39 R5: 10 R6: 27 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 47 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 56 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 27 R4: 56 R5: 10 R6: 15 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 39 R4: 15 R5: 10 R6: 27 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 47 R4: 22 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 22 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 27 R5: 10 R6: 15 dəq delta: 24.4674161824 R1: 12 R2: 39 R3: 33 R4: 75 R5: 15 R6: 39 minR delta: 24.5467795136 R1: 12 R2: 39 R3: 33 R4: 82 R5: 18 R6: 47 minR delta: 24.789976640 R1: 12 R2: 39 R3: 47 R4: 100 R5: 18 R6: 33 minR delta: 24.789976640 R1: 12 R2: 39 R3: 56 R4: 100 R5: 15 R6: 12 minR delta: 25.3564579616 R1: 12 R2: 39 R3: 100 R4: 56 R5: 15 R6: 12 minR delta: 25.3564579616 R1: 12 R2: 47 R3: 18 R4: 47 R5: 10 R6: 27 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 22 R4: 56 R5: 10 R6: 22 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 27 R4: 56 R5: 10 R6: 18 dəq delta: 27.4996466431 R1: 12 R2: 47 R3: 47 R4: 18 R5: 10 R6: 27 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 22 R5: 10 R6: 22 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 27 R5: 10 R6: 18 minR delta: 27.4996466431 R1: 15 R2: 56 R3: 22 R4: 56 R5: 10 R6: 27 minR delta: 29.1605253709 R1: 15 R2: 56 R3: 22 R4: 56 R5: 12 R6: 33 minR delta: 29.811354701 R1: 15 R2: 56 R3: 33 R4: 68 R5: 12 R6: 22 minR delta: 29.811354701 R1: 15 R2: 56 R3: 56 R4: 22 R5: 12 R6: 33 minR delta: 29.811354701 R1: 15 R2: 56 R3: 68 R4: 33 R5: 12 R6: 22 minR delta: 29.811354701 R1: 18 R2: 68 R3: 27 R4: 68 R5: 12 R6: 33 dəq delta: 30.7487559507 R1: 18 R2: 68 R3: 33 R4: 68 R5: 12 R6: 27 minR delta: 30.8965517241 R1: 18 R2: 68 R3: 68 R4: 33 R5: 12 R6: 27 minR delta: 30.8965517241 R1: 18 R2: 75 R3: 27 R4: 68 R5: 12 R6: 36 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 47 R4: 91 R5: 12 R6: 10 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 68 R4: 27 R5: 12 R6: 36 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 91 R4: 47 R5: 12 R6: 10 dəq Delta: 30.9007058823 R1: 22 R2: 82 R3: 36 R4: 82 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 22 R2: 82 R3: 82 R4: 36 R5: 15 R6: 39 dəq delta: 33.2525545171 R1: 36 R2: 82 R3: 22 R4: 82 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 82 R2: 22 R3: 36 R4: 82 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 82 R2: 22 R3: 82 R4: 36 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 82 R2: 36 R3: 22 R4: 82 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 82 R2: 36 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 dəq Delta: 33.2525545171

Addım 2: 4 düyməli montajım

Mənim 4 Düyməli Assambleyam
Mənim 4 Düyməli Assambleyam

Dörd düyməm üçün yuxarıdakı diaqramda göstərildiyi kimi bu düymələri və delikli bir PCB və rezistorlardan istifadə etdim. Dörd düyməni fiziki olaraq necə tətbiq etdiyiniz geniş şəkildə açıqdır və sizin və layihələrinizin ehtiyaclarına bağlıdır. Yuxarıdakı diaqramda elektrik olduğu müddətcə. Tikinti qurğunuzun düymələrin naqilləri ilə heç bir əlaqə qurmayacağınızdan əmin olun ki, bu da səhv düymə davranışına səbəb olan oxunuşları atacaq.

Lövhəmdə 'Function' düyməsi kimi istifadə etdiyim kiçik bir düymə var. Digər giriş oxunuşlarımı əhəmiyyətli dərəcədə atmayan 2 meqohm rezistorla birlikdədir; yalnız onu basıldığında aşkar edə bilərəm. Necə istifadə etdiyimi daha yaxşı başa düşmək üçün bunu görməməzliyə vura və ya kodu yoxlaya bilərsiniz.

Test eskizi 'Test_12Leds_6Btns', MCU və faktiki düymə quruluşu tərəfindən düymələrə basmaların aşkarlanmasını yoxlamaq üçün istifadə edilə bilər. Çıxışına ya LED Ladder, ya da serial monitor ilə baxmaq imkanı verilir. Sahib ola biləcəyiniz hər hansı bir ekran növü ilə çıxış üçün asanlıqla dəyişdirilə bilər.

MCU'nuzun daxili çəkmə rezistorundakı potensial fərqlər və ya istifadə etdiyiniz rezistorların tolerantlığı səbəbiylə girişin müqayisə etdiyi kodun oxunuş dəstini tənzimləməyiniz lazım ola bilər. İstəsəniz, kalibrləmə düzəlişləri etmək məcburiyyətində qalmamaq üçün həssas rezistorlar istifadə edə bilərsiniz. Yeri gəlmişkən, bir layihə üçün planlaşdırdığım digər istifadələrə mane olacağı üçün xarici bir çəkmə istifadə etmədim.

Hansı düymələrin (düymələrin) basıldığını, təchizat gərginliyi səviyyəsindən (və/və ya MCU fərqindən) təsirlənməməsini təmin etmək üçün görülən əsas proqram hərəkətlərindən biri, maksimum oxunuşuna əsaslanaraq analoq girişi ölçməkdir. təchizatı gərginliyindən təsirlənir.

Bu düymələrə xidmət edən 'sürücü' proqramı 'scanButtons ()' rutinidir. Analoq giriş dəyərinin həll olunmasını gözləyir, sonra oxunuşu əvvəlcədən təyin edilmiş dəyərlər silsiləsinə daxil edir; və düymələrin toplanması üçün uyğun vəziyyətlərə çevirir. Bu rutin və tətbiq proqramı ilə paylaşdığı ictimai dəyişənlər, bu düymənin müstəqil düymələrdə oxşar şəkildə istifadə edilməsi üçün lazım olan hər şeydir.

Qeyd! 'ScanButtons ()' in hazırkı versiyası, mümkün olan üç düymə birləşməsini bənzərsiz şəkildə təyin etməyə çalışmır, çünki mənim üçün real olaraq lazım deyildi və lazım olan kodu və kalibrləmə dəqiqliyini daha da çətinləşdirəcəkdi.

Addım 3: Oyun oynayın

İstənilən eskiz, 'LadderGames4' və ya 'Head2head' hər hansı bir Arduino MCU -ya yüklənə və işləyə bilər, ancaq LadderGames4 -də 'SimonSays' və ya digər iki oyundan hər hansı birinin 8K baytlıq proqram sahəsinə uyğun olması üçün şərhləri olmalıdır. bir Attiny-85. Audio, ATtiny-85 ilə də bir problemdir, yuxarıda göstərilən əvvəlki layihəyə baxın. Kod şərti tərtiblə qurulub və Nano, Uno və ATtiny-85 ilə işlədiyi bilinir.

Başlanğıcdan sonra bu eskizlərin hər birində, dörd mümkün oyun seçiminə uyğun olaraq bir anda bütün rəngləri Qırmızı… Sarı… Yaşıl … Mavi Ledləri işıqlandıran Menyu təqdim olunur. İstək seçimi yandıqda Btn1 düyməsini basırsınız və ya 2-4 oyunlar üçün Btn2-4 düyməsini istənilən vaxt basırsınız. Seçməyin lazımsız yolu həm iki, həm də dörd düyməli tətbiq və oyunlara uyğun olmaqdır. Oyunun birdən çox versiyası varsa, ver-1 üçün yanıb-sönən qırmızı, ver-2 üçün sarı yanıb-sönən və s.

4 Düymə Oyunları

Yaddaş oyunu, göz-əl koordinasiya oyunu və iki strategiya oyunu.

Simon deyir ki, bu, əvvəlki layihələrdə olduğu kimi oyunun yenidən həyata keçirilməsidir:

www.instructables.com/id/Fast-Easy-Simon/

www.instructables.com/id/Improved-Simon-Says-Code/

Hər hansı digər 'Simon Says' oyunu kimi oynayır.

Baxmayaraq ki, hər bir oyunçunun öz növbəsində seriyaya yeni bir işıq notu əlavə etdiyi iki nəfərlik versiyanı əlavə etdim (2-ci seçimi seçəndə sarı rəngdə yanıb-sönür). Əvvəlki hər şeyi düzgün təkrarlamayan birincisi oyunu itirir.

Bir Mole vur

30 saniyə ərzində eyni anda 1, 2 və ya 3 fərqli mol çıxır (qırmızı, yel, grn, blu). Müvafiq Btn1-4 düymələrinə basaraq onları 'vurmaq' lazımdır. Yalnız bir düyməyə basmaq qəbul ediləcək, eyni anda bir neçə düyməyə basmaq olmaz. Oyun davam edərkən bir dəstə mol nə qədər qalsa da qısalır. Göstərilən bütün molları vurarsanız, yeni bir dəst görünəcək; belə ki, daha çox mol olsan, vurmaq şansın olacaq.

Bir oyun bitdikdən sonra ekran, vurulan hər 10 mol üçün bir işıq yandıraraq hesabı əks etdirir. Oyun hər bir köstebek vuruşu üçün 10 bal topladığı üçün, 5 yanan led, 500+ standart Whac-a-Mole balını təmsil edir. Başqa bir tur oynamaq üçün oyunu yenidən seçməlisiniz.

Sürətli hərəkət və yüksək nəticələr üçün hər düymədə bir barmaq istifadə edirəm. Daha düzgün bir çağırış üçün, bir qoltuğun istifadəsinə cavab olaraq, bir tərəfdən yalnız bir barmağınızı istifadə etməlisiniz.

Bir barmağımla istifadə etdiyim tipik bal 500 -lərdədir, 4 barmaqdan istifadə etməklə (hər düyməyə bir) 600 -dən çoxdur. Ən yüksək balım 700+. Birdən çox barmaqdan istifadə etmək xüsusilə çətindir, çünki bir və digərinə basmaqda üst -üstə düşmə olarsa, ikincisi proqram tərəfindən qəbul edilməyəcək və bütün düymələri başqa biri qəbul edilməzdən əvvəl buraxmalısınız. Hər kəs 12 -dən çox işıq əldə edərsə, 1200+ bal üçün bizə bildirin.

Dəniz Ovu

Dərinliklərdə hərəkət edən görünməyən bir sualtı gəmi var. İlkin yeri və istiqaməti təsadüfi olur. Aldığınız hər dönüşdən sonra öz yolu boyunca hərəkət edir. Sonar hesabatları ilə harada olduğunu əvvəlcədən təxmin etməli və dərin bir yüklə batırmalısınız. Sonar səsi, zəif bir işıq olaraq başlanğıc yerindən (hər iki istiqamətdə) dalğalanır və alt məsafədə (ping ilə birlikdə) işıqlanır. Ancaq unutmayın ki, alt hər hansı bir şəkildə ola bilər və naməlum istiqamətdə hərəkət edir. Dərin bir yük başladığı yerin dərinliyində partlayır. Səssiz bir partlayış eşidirsən, ya heç nə yoxdur, ya da alt hissənin böyük partlayışını və parlaq bir flaş eşidirsən.

İmleci bir sonar şamandıra atmaq istədiyiniz yerə aparmaq üçün sola və sağa Btn2 və Btn3 ilə dərinlik doldurulur. Button-1 onları işə salmaq üçün istifadə olunur.

1-ci versiyada, hər bir cəhd dərinlik doldurma və sonar hesabatının birləşməsidir; və onlardan məhdudiyyətsiz istifadə edə bilərsiniz.

2 -ci versiyada, alt üstü kimin batırdığını görmək üçün növbə ilə baş -başa. Oyunçu 1 Btn1-dən, ikinci oyunçu isə dərinlik yüklərini işə salmaq üçün Btn4-dən istifadə edir.

3-cü versiyada, dərinlik yükləri və sonar hesabatları müvafiq olaraq Btn1 və Btn4 tərəfindən işə salınır. Əlinizdə yalnız üç dərinlik yükü var. İstədiyiniz bütün sonar hesabatlarını əldə edə bilərsiniz. Onu bu ittihamlarla ala bilməsəniz itirərsiniz.

4-cü versiyada, subay voleybola 1-3 boşluq nisbətində hərəkət edə bilər və əks halda 3-cü versiya kimi oynayır, ancaq 6 dərinlik yükü alırsınız.

Tarix: İlk dəfə 'Sea Hunt' oyununu 1970 -ci illərdə yaratdım. Sonra giriş və çıxış cihazı bir teletype idi. Ancaq o zaman dəniz burada olduğu kimi 1 ölçülü deyil, 2 ölçülü bir ızgara idi.

DİQQƏT: Koddakı dərinlik məhdudiyyətini, əksər insanlar üçün oynamaq üçün kifayət qədər çətin olduğu düşüncəsi ilə şərh etdim.

Çevirdi

Bu iki oyunçu oyunu bir az Reveri -yə bənzəyir, çünki bütün hüceyrələri rənginizə çevirməyə çalışırsınız, amma bu fərqli şəkildə həyata keçirilir.

Bu iki oyunçu oyununda bir oyunçunun məqsədi bütün işıqları söndürmək, digəri isə hamısını yandırmaqdır. Bir oyunçu ya digər oyunçunun bir qrup lampasını söndürmək üçün Btn1 istifadə edir və ya "Söndürmə işıqlarından" birindən imtina edir (onu yandırır). Digər oyunçu bir qrup "İşıq" ı yandırmaq üçün Btn4 istifadə edir və ya bir kürəyini Söndürür.

Lövhə təsadüfi bir LED dəsti ilə başlayır. İlk oyunçunun növbəsi olduqda, potensial olaraq çevrilmək üçün 'imlecin', maraq nöqtəsindəki leddə sürətli bir karartma və ya işıqlandırma var. 2 nömrəli oyunçunun növbəsində, kursor göstəricisi olaraq uzun bir LED yanıb -sönür. Yanlış oyunçu düyməsini basarsa, növbədənkənar olaraq çox qısa bir bip səsi gəlir. Kursor sola Btn2 və sağa Btn3 ilə köçürülür. Məğlub olan oyunçu növbəti oyuna başlayır.

Nə çevirəcəyinizə dair strategiya əhəmiyyətli ola bilər.

Addım 4: Başa Müsabiqələr

İki düymə / iki oyunçu oyunu

İlk 4 düyməli oyunda yalnız 'Whack-a-Mole' həqiqətən düymə işlənməsinin tam müstəqilliyinə güvənir. Həm də hamısı müstəqil düymə aşkarlamasından asılı olan dörd baş -başa oyun tətbiq etdim. Bu oyunlar bunlardır: Quick Draw, Tug a War, Toyuq və Hot Hands (Slapsies).

Sürətli Draw (Reaksiya testi)

Müsabiqə 'Hazır'/qırmızı, 'Set'/sarı və 'Draw!'/Yaşıl; sənə yaşıl işıq yandıranda kifayət qədər təsadüfi. Düyməsini ilk vuran qalib gəlir. Çox tez vurursan və bir səs -küylə rüsvay olursan.

Oyunçu 1 Btn1 (solda) və oyunçu 2 Btn4 (sağda) istifadə edir.

Dartma Döyüşü

'Hazır', 'Set'… 'GO!' İlə başlayır. Ortada bir cisim görünür, ip üzərində 'yay'. Sonra oyunçular düymələrini bacardıqları qədər sürətli və tez -tez vururlar. Yay ən çox vuran oyunçuya doğru hərəkət edəcək. Yay bir ucuna çatanda qalib gəlir.

Toyuq

Bu yarışma da buna bənzər şəkildə başlayır. 'Get!' Səsindən və yaşıl flaşdan sonra. Oyunçular düymələrini basıb saxlayırlar, işıq çaxması (arabaları) onlardan digərinə doğru hərəkət etməyə başlayır. Qalib, iki blipsin bir -birinə çırpılmasından bir qədər əvvəl düyməsini (arabasından sıçrayan) son buraxan adamdır. Kimsə gec buraxsa və ya ümumiyyətlə buraxmasa, qəzaya uğrayır və məğlub olur. Hər ikisi çox gec tullanırsa (buraxırsa) heç kim qalib gəlmir.

Başlanğıcda bir cüt əks LED ekranı keçər, bu anda Fnc-Btn2 düyməsini basarsanız oyun sürəti artar. Bu bir neçə dəfə təkrarlana bilər.

İsti Əllər

Əl vurma oyununun rəqəmsal versiyası (aka Red-Hands və ya Slapsies). İki oyunçunun düymələrini birlikdə basmasını başlamaq üçün bir tərəf buraxır, sonra digər tərəf düyməsini buraxana qədər düyməsini iki dəfə basmağa çalışır. Sonra qarşı tərəf də buna bənzəyir. Sırası gələn oyunçu, turun əvvəlində yan tərəfindəki ledlərin işıqlandırılması ilə göstərilir. Bir düyməni yalnız itələmək çox sürətli və asan olduğunu gördüm, buna görə də daha çox hərəkət və vaxt tələb edən iki əl düzəltdim, məsələn həm əlini digərinin üstünə çevirmək, həm də aşağı vurmaq. TBD: İkinci bir versiyada, hər kəs üçün pulsuzdur, hər hansı bir oyunçu digərinin ən yaxşısını əldə etməyə çalışa bilər.

Xəbərdarlıq ! Bu yaxınlarda oynamadığınız bir oyunu oynamadan əvvəl yuxarıdakı oyunların iş qaydalarını çap etməyi və yenidən oxumağı məsləhət görürəm. Əks təqdirdə özünüzü məyus edə bilərsiniz; oyunun gerçək olduğu zaman düzgün işləmədiyini düşünmək, ancaq sizin və oyunun fərqli yolları və gözləntiləri var. Mən özüm bir neçə dəfədən çox bunun qurbanı olmuşam.

Buradakı səkkiz oyun və əvvəlki layihəmdəki Tək Xəttli LED-Ekran Oyunları ilə bu dörd düymə + led nərdivan aparatı birləşməsi ilə 12 oyun oynamaq üçün proqramı təmin edir.

İlin sonuna qədər gələn bu (düymə ekranı) cihaz üçün ən azı dörd istirahət fəaliyyətim var.

Addım 5: İsteğe bağlı 2 Oyunçu Nəzarətçisi

İsteğe bağlı 2 Oyunçu Nəzarətçisi
İsteğe bağlı 2 Oyunçu Nəzarətçisi
İsteğe bağlı 2 Oyunçu Nəzarətçisi
İsteğe bağlı 2 Oyunçu Nəzarətçisi
İsteğe bağlı 2 Oyunçu Nəzarətçisi
İsteğe bağlı 2 Oyunçu Nəzarətçisi
İsteğe bağlı 2 Oyunçu Nəzarətçisi
İsteğe bağlı 2 Oyunçu Nəzarətçisi

Yalnız iki düymə lazım olan oyunlar üçün, əlbəttə ki, həmin oyunlarda 4 düyməli PCB istifadə edə bilərdim; lakin bu oyunları oynayanda çox fiziki olmağa meyllidir. Beləliklə, velosiped sapı və böyük bir düymə ilə örtülmüş bir plastik borudan hazırlanan ayrı piston tipli düymə qurğularından istifadə edirəm.

Piston tipli düymə hissələri:

  • 1/2 "damcı xətti borusu, çiləyici dayanıqlı və ya PVC (Avadanlıq mağazası)
  • Velosiped tutacağı (Walmart)
  • Böyük düymələr (eBay)
  • 2 rezistor

Uyğunluğu qorumaq üçün bir düymədə 75 ohm, digərində 36-39 ohm ardıcıllıq var; proqram onları Btn1 və Btn4 olaraq görəcək.

Atılan bir süpürgə və ya silecek sapı deyərək borudan istifadə edə bilərsiniz.

Köhnə oyun konsolu sevinc çubuqlarını bağlaya biləcəyiniz bir adapter belə edilə bilər; Birinin yanğın düymələrinin digərinə Btn1 və Btn4 kimi bağlanmasını, Btn1-4-ün paylaşılmasında sevinc çubuqlarının naviqasiya düymələrinə gedin.

Aprel 2018: İndi xarici piston üslubunda düymələr üçün gövdə olaraq 5/8 Sıxılma Bağlayıcılarından istifadə etməyi üstün tutun. Böyük düymələr (ipliklərinə bir az lent əlavə edilərək) içərisinə mükəmməl uyğun gəlir və ələ çox gözəl oturur. Mənim kimi uşaqlardan bir cüt istifadə etməyi xoşlayıram, bir xarici əl düyməsini Bnt1 kontaktları arasında və birini Btn4 üçün asanlıqla birləşdirmək üçün bir neçə başlıq sancağı əlavə etdim.

Addım 6: Yeniləmə

Yeniləmə (lər)
Yeniləmə (lər)

In-Line LED nərdivan ekranını və düymələrini yerləşdirmək üçün 3D çaplı bir konsol qutusu hazırladım.

Bu günə qədər yaratdığım 12 oyunu, bu 12 LED ekran üçün, "Menu_12Games" adlı bir eskizdə birləşdirdim. Bu proqram, 32KB flash MCU (məsələn, Nano və ya Uno) və 5 düymə, 4 əsas + bir FncKey ilə həyata keçirilən bu layihənin aparatını tələb edir.

Seçim menyusu artıq iki pilləlidir; əvvəlcə 4 oyun qrupundan 1-i, sonra isə həmin qrup daxilində 1-4-cü oyunu seçirsiniz, aşağıda göstərildiyi kimi. Seçilmiş ekranların R-Y-G-B-ni vaxtaşırı taramasını gözləyərkən, seçiminiz olaraq Btn1-4 düyməsini hər zaman seçdiyiniz halda, seçiminizə basıldıqda görünənlərin heç bir fərqi yoxdur. 'Qrup' seçimi zamanı RYGB taraması zamanı bütün LEDlər ən azından qismən sadədir. Hər hansı bir oyundan çıxmaq və ya 'oyundan' 'qrupa' seçim etmək üçün FncKey-Btn1 vurun.

Hələ final 4 -ə kod yazmamışam. 3 yazmışam ("LeMans" daxil olmaqla). Son oyunun nə olacağını düşünmədim. Hər hansı bir fikirlə mənə yazın.

25 Yanvar 17-ni yeniləyin: 3D printerdən istifadə etmək istəyənlər üçün, cihazım üçün hazırladığım oyun konsolu qutusu ilə maraqlana bilərsiniz: https://www.instructables.com/id/3D-Printed-Case- Inline-LED-Ekran-Konsol üçün və/

17 Fevral 17 Yeniləmə: İndi "Menu_16Games.ino" olaraq mövcud olan son 4 oyunu əlavə etdim: "Addım 7: Yeniləmə, daha çox Oyunlar" altında: Tək Xəttli LED-Ekran Oyunları (Menu_12Games.ino indi sıradan çıxıb)

Qrup oyunu: 1– Qırmızı 2- Sarı 3- Yaşıl 4- Mavi

1 qırmızı PushPt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonS Whack_Mole Sea_Hunt Flip_d

Tövsiyə: