Mündəricat:

Arduino MEGA ilə Mastermind Star Wars: 5 addım (şəkillərlə)
Arduino MEGA ilə Mastermind Star Wars: 5 addım (şəkillərlə)

Video: Arduino MEGA ilə Mastermind Star Wars: 5 addım (şəkillərlə)

Video: Arduino MEGA ilə Mastermind Star Wars: 5 addım (şəkillərlə)
Video: LDmicro 21: настройка режима C и Arduino Mega (программирование микроконтроллера с помощью LDmicro) 2024, Iyul
Anonim
Arduino MEGA ilə Mastermind Star Wars
Arduino MEGA ilə Mastermind Star Wars
Arduino MEGA ilə Mastermind Star Wars
Arduino MEGA ilə Mastermind Star Wars
Arduino MEGA ilə Mastermind Star Wars
Arduino MEGA ilə Mastermind Star Wars

Bunlar üsyan üçün əlverişsiz vaxtlardır. Ölüm Ulduzu məhv edilsə də, İmperator qoşunları pulsuz aparat və Arduino -dan gizli silah kimi istifadə edirlər.

Pulsuz texnologiyaların üstünlüyü budur, hər kəs (istər yaxşı, istərsə də pis) onlardan istifadə edə bilər.

Anoat planetində yerləşən gizli bir bazada, Imperial Destroyer'ı təkrarlaya bilən bir 3D printer qururlar.

İmperiyanı məğlub etməyin yeganə həlli, Luke Skycuartielles və Obi-Wan Banzi tərəfindən idarə olunan bir qrup üsyançının imperiya qoşunlarını məğlub etməsi və gizli silahı məhv etmək planlarına girişi təmin edəcək açarı əldə etməsidir.

Bu açar 4 rəngdən ibarətdir və onu deşifr etmək üçün 10 cəhdiniz var. Yalnız dörd qayda var:

  1. Rənglər təkrarlana bilər
  2. Ağ işıq, doğru rəngə və mövqeyə çatdığınızı göstərir
  3. Bənövşəyi işıq, rəngi vurduğunuzu, ancaq mövqeyini vurmadığınızı göstərir
  4. İşıq yoxdursa, rəngi və ya yerini təxmin etməmisiniz.

Tələsməlisiniz, çünki digər həddindən artıq pis Darth Ballmer açarı sizdən əvvəl almağa çalışacaq. Bu halda, bunun nə olduğunu öyrənə bilməyəcəksiniz və gizli silahın planlarına daxil ola bilməyəcəksiniz. Missiyanız uğursuz olacaq.

Balaca Padavan, açarı deşifr etməyiniz və Galaxy -ni xilas edə biləcəyiniz qüvvə sizi müşayiət etsin.

Addım 1: Material

Material
Material

Arduino ilə Mastermind Star Wars etmək üçün lazım olan material üç hissəyə bölünür.

  • Mənzilin həyata keçirilməsi üçün dülgərlik və dəftərxana ləvazimatları
  • Bütün elektronika üçün komponentlər, kabellər və Arduino
  • Alətlər

Dülgərlikdən başlayaq. Aşağıdakı material lazımdır:

  • 90x60 ölçüdə 2 x MDF lövhə
  • 1 x tərəvəz kağız vərəqi

Elektron hissədə aşağıdakı materiallara ehtiyac var:

  • 1 x NeoPixel Strip 5 metr
  • 1 x Arduino MEGA
  • 1 x 100 μF kondansatör
  • 4 x müqavimət 470 Ω
  • 5 x qara düymə
  • 5 x ağ düymə
  • 1 x güc 5V-5A
  • 1 x güc 5V-2A

Nəhayət, alət hissəsində aşağıdakılardan istifadə etdik:

  • Silikon Tabancası İsti
  • Lazer CNC de MxN
  • Elektrik qaynaqçısı
  • Qaynaqçı qalay

Addım 2: Dizayn

Dizayn
Dizayn
Dizayn
Dizayn
Dizayn
Dizayn

Bu layihənin ən vacib hissələrindən biri mənzilin dizaynıdır. Lazer kəsici ilə kəsilmiş 3 hissədən ibarətdir.

Baza MDF -də 90x60 ölçüdə alınmışdır. Materialın ölçülərini nəzərə alın, çünki kifayət qədər böyük bir lazer kəsiciyə ehtiyacınız olacaq.

Bu addımın sonunda SVG faylını tapa bilərsiniz.

Üst qapaq, Ulduz Döyüşlərinin tematik rəsmlərini, həm də düymələr və piksellər üçün deşikləri ehtiva edir.

Baza ilə eyni formaya malikdir.

Yan divarlar kerf adlanan lazer kəsmə texnikası ilə hazırlanmışdır. Bu, materialın elastik olmasına imkan verir. Divarları yerləşdirmək üçün bəzi parçalar bir bələdçi olaraq xidmət etmək üçün hazırlanmışdır.

Nəhayət, hər bir NeoPixel matrisinin bir tərəfində NeoPixelin sabit olduğu, digər tərəfdən NeoPixelin işığını yaymaq üçün bitki mənşəli bir kağızın bərkidildiyi bir ızgara var. Burada bütün SVG faylları var ki, onları özünüz kəsib istehsal edə biləsiniz.

Addım 3: Elektron Quraşdırma

Elektron montaj
Elektron montaj
Elektron montaj
Elektron montaj
Elektron montaj
Elektron montaj
Elektron montaj
Elektron montaj

Elektronikanın montajının ilk mərhələsi 5 metrlik NeoPixel şeridini 10 piksellik 8 zolaqda və hər bir oyunçu üçün 4 ayrı pikseldə kəsmək idi. Oyunçu başına cəmi 84 piksel. Bir tərəfdən 10 zolaq bir -birinin ardınca yığılır və hər bir şeridi bir neçə millimetrə paralel qoymaq üçün kifayət qədər kabel buraxılır. Bu piksel matrisi hər oyunu və nəticəni göstərməyə xidmət edəcək. 4 piksel açarın dörd rəngini, digər dörd piksel isə nəticəni göstərir. Xatırladıram ki, nəticədə aşağıdakıları etməliyik:

  • Piksel ağdırsa, uğurlu bir mövqe və rəng əldə etdi.
  • Piksel bənövşəyi olarsa, rəng düzgündür, lakin mövqe deyil.
  • Piksel söndürüldükdə nə rəng, nə də mövqe düzgün deyil.

Etdiyimiz səhvlərdən biri də elektrik naqilləri və GND -dir. Daha sadə ola bilərdi, amma sonra başa düşdük. Piksellərin nömrələnməsi aşağıdan yuxarıya doğru getdiyindən, məlumat kabeli bir əmrə tabe olmalıdır.

Digər tərəfdən aralarında bağlanmalı olan 4 ayrı pikselimiz var. Bu piksellər bizə düymələrlə seçdiyimiz rəngi göstərəcək.

Verilənləri qorumaq üçün hər bir zolağa 470Ω rezistor bağlanır. Hər bir piksel zolağının məlumat kabeli rəqəmsal bir pinlə bağlıdır. Arduino MEGA -da seçilmiş sancaqlar 6, 7, 8 və 9 -dur.

Məsələn, 6 və 7 oyunçu 1, 8 və 9 oyunçu 2 üçün.

İstifadə etdiyimiz düymələr arcade maşınlarının tipik düymələridir. Gözəl görünəcəklərini düşündük və belə də oldu.

Digər düymələr istifadə edilə bilər, lakin nəzərə alınmalıdır ki, onlar daha kiçik və ya daha böyükdürsə, lazer CNC ilə kəsmədən əvvəl DXF faylının dəyişdirilməsi lazımdır.

Oyunçuları fərqləndirmək üçün bəzi düymələr ağ, digərləri qara rəngdədir.

Hər oyunçunun 4 düyməsi yuxarı və 1 düyməsi aşağıdır. Yuxarıdakı 4 düymə düymənin hər mövqeyinin rəngini seçməyə xidmət edir.

Alt düymə doğrulamaq üçün istifadə olunur, yəni rəng və mövqeyin uğurlu olub -olmamasının müvafiq yoxlanılması ilə açarı piksel matrisində göndərir.

Hər şeyi yığmadan əvvəl bütün kabelləri lehimlədik. Beləliklə, bir çox kabelə ehtiyacınız olacaq. Oyunun ölçüsündən asılı olacaq. Bizim vəziyyətimizdə olduqca böyükdür.

Məsələn, açmaq və daxili kabelləri götürmək üçün bir Ethernet kabeli istifadə edə bilərsiniz. Yaxşı bir həlldir. Onları mümkün qədər nizamlı olmağa çalışın, çünki elektrik diaqramında gördüyünüz kimi Arduino MEGA ilə əlaqələr qurmaq lazım olacaq.

Montajdan əvvəl hamınız əsgər olduqdan sonra sınamalısınız. Test edilir, çünki korpusa quraşdırıldıqda, isti silikonla yapışdırılacaq və uğursuz olarsa, çətinləşəcək, sonra çıxarın. Piksel matrisləri yerləşdirmək üçün, bir tərəfində piksellərin yapışdırıldığı, digər tərəfində isə bitkisel bir kağız olan qapağın ızgarası ilə eyni ölçüdə bir ızgara dizayn edilmişdir.

Bu kağız hər bir pikselin işığını yayaraq daha gözəl bir effekt verir. Sonra, bu quruluş içərinin üst hissəsinə yapışır. Bir az mürəkkəbdir, amma diqqətlə yaxşı bir nəticə əldə edilir.

Qidalanma bir qədər çətinləşdi. Prinsipcə və sxemə baxanda yalnız bir şarj cihazından istifadə edəcəkdik. Ancaq ilk testlərdən və NeoPixel istehlakından sonra iki şarj cihazı alacağını gördük.

Hər piksel maksimum 60 mA istehlak edə bilər. 168 piksellə çarpsaq, təxminən 10 A istehlak edərik.

Baxmayaraq ki, bu ən pis vəziyyətdə olardı. Proqramlaşdırmada NeoPixelin intensivliyini maksimuma çıxarmamağı artıq nəzərə almışıq.

50% -ə çatmırıq, buna görə 5V və 5A şarj cihazı kifayət qədərdir.

Digər tərəfdən, Arduino MEGA -nın ayrı bir şarj cihazı var ki, bu da jak konnektoru və ya USB portu vasitəsilə bağlana bilər. Mümkün bir təkmilləşdirmə, bütün sistem üçün tək bir şarj cihazının olmasıdır.

Addım 4: Oyunun Proqramlaşdırılması

Oyun Proqramlaşdırılması
Oyun Proqramlaşdırılması
Oyun Proqramlaşdırılması
Oyun Proqramlaşdırılması

Proqramlaşdırma iki kitabxana ilə həyata keçirilmişdir: OneButton və Adafruit_NeoPixel.

OneButton kitabxanası düymələri fasilələrlə sadə bir şəkildə idarə etməyə imkan verir.

Adafruit_NeoPixel kitabxanası, NeoPixel zolağını çox sadə bir şəkildə idarə etməyə imkan verdi.

Proqramlaşdırma, proqram proqramının ola biləcəyi fərqli vəziyyətlərə əsaslanır:

Oyuna başlamaq. Vəziyyət = 0

Bu vəziyyətdə, oyun başlayır və hər iki oyunçunun oyunun başlayacağını bildirən bir sıra işıqlar var. Bu vəziyyətdə düymələr cavab vermir.

İlkin vəziyyət. Vəziyyət = 1

İlkin vəziyyətdə, iki oyunçudan birinin təsdiq düyməsini (beşinci düymə) iki dəfə vurmasını gözləyin. Bu hərəkət oyuna başlamağa imkan verəcəkdir.

Oyunun hazırlanması. Vəziyyət = 2

Oyunun hazırlıq vəziyyətində bütün dəyişənlər sıfırlanır və açar üçün rənglərin təsadüfi seçilməsinə başlanılır.

Play State = 3

3 -cü vəziyyətdə oyun başlayır. Hər bir oyunçu düymələri olan bir açar seçir və təsdiq düyməsini basaraq təsdiq edir. Bu vəziyyət iki şəkildə sona çata bilər: bir oyunçu açarı tapdıqda və ya iki oyunçu sahib olduqları 10 cəhddən istifadə etdikdə.

Bir qalib dövlət = 4

Bir oyunçu qalib gələrsə, lövhəsində yaşıl bir çek göstəriləcək və uduşda qalibiyyət kombinasiyası və qırmızı xaç göstəriləcək.

Bağlı oyun. Vəziyyət = 5

Bərabərlik halında, hər hansı bir lövhədə heç bir şey göstərilmir və hər iki oyunçunun lövhələrində qalibiyyət birləşməsi göstərilir.

Oyunda qalib və ya bərabərlik olub -olmamasından asılı olmayaraq, növbəti vəziyyət ikiqat klik gözləyən ilkin vəziyyət olacaq.

Bütün kodu aşağıda tapa bilərsiniz. İspan dilində olan tək şey:)

Addım 5: Testlər və təkmilləşdirmələr

Oyun oynamaqla yoxlanılır. Yuxarıdakı videoda tam bir oyun görə bilərsiniz.

Buradan, Arduino ilə Mastermind Star Wars -a əlavə edilə biləcək bir neçə təkmilləşdirmə düşünə bilərik.

Sonra onları sadalayıram.

  • İki oyunçu üçün cəmi 10 cəhdlə növbə ilə oynaya bilmək. Bir oyunçu bir düyməni sınayanda digər oyunçu oyunu görəcək.
  • Fərdi oyun rejimi, belə ki, yalnız bir nəfər oynaya bilər.
  • Hər birini öz açarı ilə tənzimləyin.
  • OLED ekranı daxil edin.
  • Hər şey üçün tək bir şarj cihazı istifadə edin.
  • NodeMCU ESP8266 -ya qoşulun

Əminəm ki, bir çox insan bir çox təkmilləşdirmə ilə qarşılaşacaq. Aşağıdakı şərhləri gözləyirəm.

Və güc səninlə olsun.

Tövsiyə: