Turinys:

„Mastermind Star Wars“su „Arduino MEGA“: 5 žingsniai (su nuotraukomis)
„Mastermind Star Wars“su „Arduino MEGA“: 5 žingsniai (su nuotraukomis)

Video: „Mastermind Star Wars“su „Arduino MEGA“: 5 žingsniai (su nuotraukomis)

Video: „Mastermind Star Wars“su „Arduino MEGA“: 5 žingsniai (su nuotraukomis)
Video: Собираем игровую консоль Ардуино на ATMEGA32U4 2024, Lapkritis
Anonim
„Žvaigždžių karai“su „Arduino MEGA“
„Žvaigždžių karai“su „Arduino MEGA“
„Žvaigždžių karai“su „Arduino MEGA“
„Žvaigždžių karai“su „Arduino MEGA“
„Žvaigždžių karai“su „Arduino MEGA“
„Žvaigždžių karai“su „Arduino MEGA“

Tai nepalankus metas maištui. Nors mirties žvaigždė buvo sunaikinta, imperijos kariai naudoja nemokamą techninę įrangą ir „Arduino“kaip slaptą ginklą.

Tai yra nemokamų technologijų privalumas, bet kuris asmuo (geras ar blogas) gali jomis naudotis.

Paslėptoje bazėje, esančioje Anoat planetoje, jie kuria 3D spausdintuvą, galintį atkartoti Imperial Destroyer.

Vienintelis sprendimas nugalėti imperiją yra tas, kad Luko Skycuartielleso ir Obi-Wan Banzi vadovaujama sukilėlių grupė nugali imperijos karius ir gauna raktą, kuris suteiks prieigą prie planų sunaikinti slaptą ginklą.

Šį raktą sudaro 4 spalvos ir jūs turite 10 bandymų jį iššifruoti. Yra tik keturios taisyklės:

  1. Spalvos gali būti kartojamos
  2. Balta lemputė rodo, kad pasirinkote tinkamą spalvą ir padėtį
  3. Violetinė lemputė rodo, kad pataikėte į spalvą, bet ne į padėtį
  4. Jei nėra šviesos, neatspėjote spalvos ar padėties.

Turite skubėti, nes kitu kraštutinumu piktasis Darthas Ballmeris bandys gauti raktą prieš jus. Tokiu atveju jūs negalėsite sužinoti, kas tai yra, ir neturėsite prieigos prie slapto ginklo planų. Jūsų misija bus nesėkminga.

Mažasis Padawanai, tegul jėga lydi tave iššifruoti raktą ir taip sugebėti išsaugoti galaktiką.

1 žingsnis: medžiaga

Medžiaga
Medžiaga

Medžiaga, reikalinga „Mastermind Star Wars“su „Arduino“gamybai, yra padalinta į tris dalis.

  • Dailidžių ir raštinės reikmenys būstui realizuoti
  • Visos elektronikos komponentai, kabeliai ir „Arduino“
  • Įrankiai

Pradėkime nuo dailidės. Reikalinga ši medžiaga:

  • 2 x MDF plokštės nuo 90x60
  • 1 x daržovių popieriaus lapas

Elektroninėje dalyje reikalinga ši medžiaga:

  • 1 x NeoPixel juostelė 5 metrai
  • 1 x „Arduino MEGA“
  • 1 x 100 µF kondensatorius
  • 4 x varža 470 Ω
  • 5 x juodas mygtukas
  • 5 x baltas mygtukas
  • 1 x galia 5V-5A
  • 1 x galia 5V-2A

Galiausiai įrankių dalyje mes panaudojome šiuos dalykus:

  • Silikono pistoletas karštas
  • Lazerinis CNC de MxN
  • Elektrinis suvirintojas
  • Suvirintojo skarda

2 žingsnis: dizainas

Dizainas
Dizainas
Dizainas
Dizainas
Dizainas
Dizainas

Viena iš svarbiausių šio projekto dalių yra būsto dizainas. Jį sudaro 3 dalys, supjaustytos lazeriniu pjaustytuvu.

Pagrindas paimtas iš 90x60 gabalo MDF. Atsižvelkite į medžiagos matmenis, nes jums reikės pakankamai didelio lazerinio pjaustytuvo.

Šio veiksmo pabaigoje galite rasti SVG failą.

Viršutiniame viršelyje yra teminis „Žvaigždžių karų“brėžinys, taip pat mygtukų ir pikselių skylės.

Jis turi tokią pačią formą kaip ir pagrindas.

Šoninės sienos buvo pagamintos naudojant pjovimo lazeriu metodą, vadinamą skylė. Tai leidžia medžiagai būti lanksčiai. Norėdami pastatyti sienas, kai kurios dalys buvo sukurtos kaip vadovas.

Galiausiai kiekviena „NeoPixel“matrica turi tinklelį, kuriame vienoje pusėje yra pritvirtintas „NeoPixel“, o iš kitos pusės - augalinis popierius, skleidžiantis „NeoPixel“šviesą. Čia turite visus SVG failus, kad galėtumėte juos iškirpti ir gaminti patys.

3 žingsnis: elektroninis surinkimas

Elektroninis surinkimas
Elektroninis surinkimas
Elektroninis surinkimas
Elektroninis surinkimas
Elektroninis surinkimas
Elektroninis surinkimas
Elektroninis surinkimas
Elektroninis surinkimas

Pirmasis elektronikos surinkimo etapas buvo supjaustyti 5 metrų „NeoPixel“juostelę į 8 juostas po 10 pikselių ir 4 atskirus pikselius kiekvienam žaidėjui. Iš viso 84 pikseliai vienam žaidėjui. Viena vertus, 10 juostelių yra surenkamos viena po kitos, paliekant pakankamai kabelio, kad kiekviena juostelė būtų lygiagreti keliems milimetrams. Ši pikselių matrica padės parodyti kiekvieną žaidimą ir rezultatą. 4 pikseliai rodo keturias klavišo spalvas, o kiti keturi pikseliai - rezultatą. Primenu, kad dėl to turime:

  • Jei pikselis yra baltas, jo padėtis ir spalva buvo sėkmingi.
  • Jei pikselis yra violetinis, spalva yra teisinga, bet ne padėtis.
  • Jei pikselis išjungtas, nei spalva, nei padėtis nėra teisinga.

Viena iš mūsų padarytų klaidų yra maitinimo laidai ir GND. Tai galėjo būti paprasčiau, bet mes supratome vėliau. Duomenų kabelis turi būti vykdomas tam tikra tvarka, nes pikselių numeracija eina iš apačios į viršų.

Kita vertus, mes turime 4 atskirus pikselius, kurie turi būti sujungti tarp jų. Šie pikseliai parodys spalvą, kurią pasirenkame mygtukais.

Prie kiekvienos juostos nuosekliai prijungtas 470Ω rezistorius, apsaugantis duomenis. Kiekvienos pikselių juostos duomenų kabelis yra prijungtas prie skaitmeninio kaiščio. „Arduino MEGA“pasirinkti kaiščiai yra 6, 7, 8 ir 9.

Pavyzdžiui, 6 ir 7 yra skirti 1 žaidėjui ir 8, o 9 - 2 žaidėjui.

Mūsų naudojami mygtukai yra tipiški arkadinių mašinų mygtukai. Manėme, kad jie atrodys gerai ir taip buvo.

Galima naudoti kitus mygtukus, tačiau reikia atsižvelgti į tai, kad jei jie yra mažesni ar didesni, prieš pjaustant lazeriniu CNC, DXF rinkmeną reikia pakeisti.

Norėdami atskirti žaidėjus, kai kurie mygtukai yra balti, o kiti - juodi.

Kiekvienas žaidėjas turi 4 mygtukus aukštyn ir 1 mygtuką žemyn. 4 viršutiniai mygtukai naudojami kiekvienos klavišo padėties spalvai pasirinkti.

Apatinis mygtukas naudojamas patvirtinti, tai yra, jis siunčia raktą, kad jis būtų rodomas pikselių matricoje, atitinkamai patikrinus, ar spalva ir padėtis buvo sėkmingi.

Prieš surinkdami viską, litavome visus kabelius. Taigi jums reikės daug kabelių. Tai priklausys nuo žaidimo dydžio. Mūsų atveju jis buvo gana didelis.

Pavyzdžiui, galite atidaryti eterneto kabelį ir paimti vidinius kabelius. Tai geras sprendimas. Stenkitės, kad jie būtų kuo tvarkingesni, nes tada reikės sujungti „Arduino MEGA“, kaip matote elektros schemoje.

Kai būsite visi kareiviai prieš montuodami, turite tai išbandyti. Jis yra išbandytas, nes kai jis bus sumontuotas korpuse, jis bus įstrigęs karštu silikonu, o jei nepavyks, tai bus sudėtinga, tada nuimkite. Norėdami įdėti pikselių matricas, suprojektuotas tinklelis, kurio matmenys tokie patys kaip ir dangčio tinklelio, kur vienoje pusėje yra įstrigę taškai, o kitoje - augalinis popierius.

Šis popierius išsklaido kiekvieno pikselio šviesą ir suteikia daug gražesnį efektą. Tada ši struktūra prilimpa prie viršutinės dalies viduje. Tai šiek tiek sudėtinga, tačiau kruopščiai pasiekiamas geras rezultatas.

Maitinimas buvo šiek tiek sudėtingas. Iš esmės ir žiūrėdami į schemą ketinome naudoti tik vieną įkroviklį. Tačiau po pirmųjų bandymų ir „NeoPixel“vartojimo pamatėme, kad reikės dviejų įkroviklių.

Kiekvienas pikselis gali sunaudoti ne daugiau kaip 60 mA. Jei padauginsime iš 168 pikselių, gausite apie 10 A.

Nors tai būtų blogiausiu atveju. Programuodami mes jau atsižvelgėme į tai, kad „NeoPixel“intensyvumas nebūtų maksimalus.

Mes net nepasiekiame 50%, todėl pakanka 5V ir 5A įkroviklio.

Kita vertus, „Arduino MEGA“turi atskirą įkroviklį, kurį galima prijungti per lizdo jungtį arba per USB prievadą. Vienas iš galimų patobulinimų būtų turėti vieną visos sistemos įkroviklį.

4 žingsnis: žaidimo programavimas

Žaidimo programavimas
Žaidimo programavimas
Žaidimo programavimas
Žaidimo programavimas

Programavimas buvo atliktas naudojant dvi bibliotekas: „OneButton“ir „Adafruit_NeoPixel“.

„OneButton“biblioteka leidžia lengvai valdyti mygtukus su pertraukomis.

„Adafruit_NeoPixel“biblioteka leido mums labai paprastai valdyti „NeoPixel“juostelę.

Programavimas grindžiamas skirtingomis būsenomis, kuriose programinė įranga gali būti:

Žaidimo pradžia. Būsena = 0

Esant tokiai būsenai, žaidimas pradedamas ir abiejuose žaidimuose yra žibintų seka, rodanti, kad žaidimas prasidės. Šios būsenos metu mygtukai nereaguoja.

Pradinė būsena. Valstybė = 1

Pradinėje būsenoje palaukite, kol vienas iš dviejų žaidėjų dukart spustelės patvirtinimo mygtuką (penktasis mygtukas). Šis veiksmas leis pradėti žaidimą.

Žaidimo paruošimas. Valstybė = 2

Ruošiantis žaidimui visi kintamieji nustatomi iš naujo ir pradedamas atsitiktinis rakto spalvų pasirinkimas.

Žaidimo būsena = 3

3 būsenoje žaidimas prasideda. Kiekvienas žaidėjas mygtukais pasirenka raktą ir patvirtina jį spustelėdamas patvirtinimo mygtuką. Ši būsena gali baigtis dviem būdais: kai žaidėjas atranda raktą arba kai abu žaidėjai sunaudoja 10 turimų bandymų.

Viena laimėtojų valstybė = 4

Jei žaidėjas laimi žalią čekį, jo lenta bus rodoma, o laimėjęs derinys ir pralaimėtojas - raudoną kryžių.

Rišamasis žaidimas. Valstybė = 5

Esant lygiam rezultatui, niekas nerodomas jokioje lentoje, o abiejų žaidėjų lentose - laimėjusi kombinacija.

Nesvarbu, ar žaidime yra nugalėtojas, ar lygiosios, kita būsena bus pradinė, laukianti dvigubo paspaudimo.

Visą kodą galite rasti žemiau. Vienintelis dalykas ispaniškai:)

5 žingsnis: bandymai ir patobulinimai

Žaidimas išbandomas žaidžiant. Aukščiau esančiame vaizdo įraše galite pamatyti visą žaidimą.

Iš čia galime galvoti apie kelis patobulinimus, kuriuos galima pridėti prie „Mastermind Star Wars“su „Arduino“.

Toliau juos išvardinu.

  • Kad galėtumėte žaisti paeiliui, iš viso 10 bandymų dviem žaidėjams. Kai žaidėjas išbando raktą, kitas žaidėjas pamatys žaidimą.
  • Individualus žaidimo režimas, kad žaisti galėtų tik vienas žmogus.
  • Režimas kiekvienas su savo raktu.
  • Įtraukite OLED ekraną.
  • Viskam naudokite vieną įkroviklį.
  • Prisijunkite prie „NodeMCU ESP8266“

Esu tikras, kad daugelis žmonių sugalvos daug patobulinimų. Laukiu komentarų žemiau.

Ir tegul jėga yra su jumis.

Rekomenduojamas: