Cuprins:

Mastermind Star Wars cu Arduino MEGA: 5 pași (cu imagini)
Mastermind Star Wars cu Arduino MEGA: 5 pași (cu imagini)

Video: Mastermind Star Wars cu Arduino MEGA: 5 pași (cu imagini)

Video: Mastermind Star Wars cu Arduino MEGA: 5 pași (cu imagini)
Video: stamped. 2024, Iulie
Anonim
Mastermind Star Wars Cu Arduino MEGA
Mastermind Star Wars Cu Arduino MEGA
Mastermind Star Wars Cu Arduino MEGA
Mastermind Star Wars Cu Arduino MEGA
Mastermind Star Wars Cu Arduino MEGA
Mastermind Star Wars Cu Arduino MEGA

Acestea sunt vremuri nefaste pentru rebeliune. Deși Steaua Morții a fost distrusă, trupele imperiale folosesc hardware-ul gratuit și Arduino ca armă secretă.

Acesta este avantajul tehnologiilor libere, orice persoană (fie bună, fie rea) le poate folosi.

Într-o bază ascunsă situată pe planeta Anoat, construiesc o imprimantă 3D capabilă să reproducă Imperial Destroyer.

Singura soluție pentru înfrângerea Imperiului este că un grup de rebeli comandați de Luke Skycuartielles și Obi-Wan Banzi, învinge trupele imperiale și obțin cheia care va da acces la planurile de distrugere a armei secrete.

Această cheie este formată din 4 culori și aveți 10 încercări de a o descifra. Există doar patru reguli:

  1. Culorile pot fi repetate
  2. O lumină albă indică faptul că ați atins culoarea și poziția potrivite
  3. O lumină violetă indică faptul că ați lovit culoarea, dar nu poziția
  4. Dacă nu există lumină, nu ați ghicit culoarea sau poziția.

Trebuie să vă grăbiți, deoarece în cealaltă extremă, maleficul Darth Ballmer va încerca să obțină cheia în fața voastră. În acest caz, nu veți putea afla ce este și nu veți avea acces la planurile armei secrete. Misiunea ta va fi eșuat.

Micul Padawan, să te însoțească forța pentru a descifra cheia și astfel să poți salva Galaxia.

Pasul 1: Material

Material
Material

Materialul necesar pentru a face Mastermind Star Wars cu Arduino este împărțit în trei părți.

  • Tamplarie si papetarie pentru realizarea locuintei
  • Componente, cabluri și Arduino pentru toate componentele electronice
  • Instrumente

Să începem cu tâmplăria. Este necesar următorul material:

  • 2 x plăci MDF de la 90x60
  • 1 x foaie de hârtie vegetală

În partea electronică este necesar următorul material:

  • 1 x bandă NeoPixel de 5 metri
  • 1 x Arduino MEGA
  • 1 x condensator 100 µF
  • 4 x rezistență 470 Ω
  • 5 x buton negru
  • 5 x buton alb
  • 1 x putere 5V-5A
  • 1 x putere 5V-2A

În cele din urmă, în partea de instrument am folosit următoarele:

  • Silicon Gun Hot
  • Laser CNC de MxN
  • Sudor electric
  • Tinut sudor

Pasul 2: Proiectare

Proiecta
Proiecta
Proiecta
Proiecta
Proiecta
Proiecta

Una dintre cele mai importante părți ale acestui proiect este proiectarea carcasei. Se compune din 3 bucăți tăiate cu tăietorul laser.

Baza este preluată dintr-o piesă din MDF de 90x60. Luați în considerare dimensiunile materialului, deoarece veți avea nevoie de un dispozitiv de tăiat cu laser suficient de mare.

Puteți găsi fișierul SVG la sfârșitul acestui pas.

Coperta superioară este cea care conține desenele tematice ale Războiului Stelelor, precum și găurile atât pentru butoane, cât și pentru pixeli.

Are aceeași formă ca și baza.

Pereții laterali au fost realizați utilizând o tehnică de tăiere cu laser numită kerf. Acest lucru permite materialului să fie flexibil. Pentru a amplasa pereții, unele piese au fost proiectate pentru a servi drept ghid.

În cele din urmă, fiecare matrice NeoPixel are o grilă unde pe o parte NeoPixel sunt fixe și pe de altă parte o hârtie vegetală este fixată pentru a difuza lumina NeoPixel. Aici aveți toate fișierele SVG, astfel încât să le puteți tăia și fabrica singur.

Pasul 3: Asamblare electronică

Asamblare electronică
Asamblare electronică
Asamblare electronică
Asamblare electronică
Asamblare electronică
Asamblare electronică
Asamblare electronică
Asamblare electronică

Prima fază a asamblării dispozitivelor electronice a fost tăierea benzii de 5 metri NeoPixel în 8 benzi de 10 pixeli și 4 pixeli separați pentru fiecare jucător. În total 84 pixeli pentru fiecare jucător. Pe de o parte, cele 10 benzi sunt asamblate una urmată de alta, lăsând suficient cablu pentru a pune fiecare bandă paralelă la câțiva milimetri. Această matrice de pixeli va servi pentru a arăta fiecare redare și rezultatul. 4 pixeli arată cele patru culori ale tastei, iar ceilalți patru pixeli arată rezultatul. Vă reamintesc că, ca rezultat, trebuie să:

  • Dacă pixelul este alb, poziția și culoarea au avut succes.
  • Dacă pixelul este violet, culoarea este corectă, dar nu poziția.
  • Dacă pixelul este dezactivat, nici culoarea, nici poziția nu sunt corecte.

Una dintre greșelile pe care le-am făcut este cablarea de alimentare și GND. Ar fi putut fi mai simplu, dar ne-am dat seama mai târziu. Cablul de date trebuie să urmeze o comandă, deoarece numerotarea pixelilor merge de jos în sus.

Pe de altă parte, avem 4 pixeli separați care trebuie conectați între ei. Acești pixeli ne vor arăta culoarea pe care o selectăm cu butoanele.

Conectat în serie la fiecare bandă este un rezistor de 470Ω pentru a proteja datele. Cablul de date al fiecărei benzi de pixeli este conectat la un pin digital. Pinii selectați în Arduino MEGA sunt 6, 7, 8 și 9.

De exemplu, 6 și 7 sunt pentru jucătorul 1 și 8 și 9 pentru jucătorul 2.

Butoanele pe care le-am folosit sunt butoanele tipice ale mașinilor arcade. Am crezut că vor arăta bine și așa a fost.

Se pot utiliza alte butoane, dar trebuie să se țină seama de faptul că, dacă sunt mai mici sau mai mari, fișierul DXF trebuie modificat înainte de tăiere cu ajutorul laserului CNC.

Pentru a distinge jucătorii, unele butoane sunt albe, iar altele sunt negre.

Fiecare jucător are 4 butoane în sus și 1 buton în jos. Cele 4 butoane superioare servesc la selectarea culorii fiecărei poziții a tastei.

Butonul de jos este utilizat pentru validare, adică trimite cheia pentru a apărea în matricea pixelilor cu verificarea relevantă a faptului dacă culoarea și poziția au avut succes.

Înainte de a asambla totul am lipit toate cablurile. Deci, veți avea nevoie de mult cablu. Va depinde de mărimea jocului. În cazul nostru a fost destul de mare.

De exemplu, puteți utiliza un cablu Ethernet pentru a-l deschide și a lua cablurile interne. Este o soluție bună. Încercați să le aveți cât mai ordonate posibil pentru că atunci va fi necesar să faceți conexiunile cu Arduino MEGA așa cum vedeți în schema electrică.

Odată ce sunteți soldați înainte de a-l monta, trebuie să-l încercați. Este testat deoarece atunci când este instalat în carcasă, acesta va fi lipit cu silicon fierbinte și dacă nu reușește, va fi complicat, apoi scoateți-l. Pentru a plasa matricile de pixeli, a fost proiectată o grilă cu aceleași dimensiuni ca grila capacului în care pe o parte pixelii sunt blocați și pe cealaltă parte o hârtie vegetală.

Această lucrare difuzează lumina fiecărui pixel dând un efect mult mai frumos. Apoi, acea structură se lipeste de partea superioară din interior. Este un pic complicat, dar cu grijă se obține un rezultat bun.

Hrănirea a fost oarecum complicată. În principiu și analizând schema, vom folosi doar un singur încărcător. Cu toate acestea, după primele teste și consumul NeoPixel am văzut că va fi nevoie de două încărcătoare.

Fiecare pixel poate consuma maximum 60 mA. Dacă înmulțim cu 168 pixeli, veți obține un consum de aproximativ 10 A.

Deși acest lucru ar fi în cel mai rău caz. În programare am avut deja în vedere să nu maximizăm intensitatea NeoPixel.

Prin urmare, nici măcar nu ajungem la 50%, cu un încărcător de 5V și 5A este mai mult decât suficient.

Pe de altă parte, Arduino MEGA are un încărcător separat care poate fi conectat prin conectorul jack sau prin portul USB. O posibilă îmbunătățire ar fi să ai un singur încărcător pentru întregul sistem.

Pasul 4: Programarea jocului

Programare joc
Programare joc
Programare joc
Programare joc

Programarea a fost realizată folosind două biblioteci: OneButton și Adafruit_NeoPixel.

Biblioteca OneButton permite controlul butoanelor într-un mod simplu cu întreruperi.

Biblioteca Adafruit_NeoPixel ne-a permis să controlăm banda NeoPixel într-un mod foarte simplu.

Programarea se bazează pe diferite stări în care programul software poate fi:

Începând jocul. Stare = 0

În această stare, jocul este început și există o secvență de lumini la ambii jucători care indică faptul că jocul va începe. În această stare, butoanele nu răspund.

Stare initiala. State = 1

În starea inițială, așteptați ca unul dintre cei doi jucători să facă dublu clic pe butonul de confirmare (al cincilea buton). Această acțiune vă va permite să începeți jocul.

Pregătirea jocului. Stat = 2

În starea de pregătire a jocului, toate variabilele sunt resetate și se lansează selectarea aleatorie a culorilor pentru cheie.

Starea jocului = 3

În starea 3 începe jocul. Fiecare jucător selectează o tastă cu butoanele și o validează făcând clic pe butonul de confirmare. Această stare se poate termina în două moduri: atunci când un jucător descoperă cheia sau când cei doi jucători consumă cele 10 încercări pe care le au.

Un stat câștigător = 4

Dacă un jucător câștigă, un cec verde va fi afișat pe tabloul său și combinația câștigătoare și o cruce roșie pe învins.

Joc legat. Stat = 5

În cazul unei egalități, nimic nu este afișat pe nicio tablă și combinația câștigătoare pe tablele ambilor jucători.

Fie că există un câștigător sau o egalitate în joc, următoarea stare va fi cea inițială care așteaptă un dublu clic.

Puteți găsi tot codul mai jos. Singurul lucru care este în spaniolă:)

Pasul 5: Testare și îmbunătățiri

Jocul este testat jucând. În videoclipul de mai sus puteți vedea un joc complet.

De aici ne putem gândi la câteva îmbunătățiri care pot fi adăugate la Mastermind Star Wars cu Arduino.

În continuare le enumer.

  • Pentru a putea juca pe rânduri cu un total de 10 încercări pentru cei doi jucători. Când un jucător încearcă o tastă, celălalt jucător va vedea jocul.
  • Un mod de joc individual, astfel încât o singură persoană să poată juca.
  • Modificați fiecare cu cheia sa.
  • Includeți un ecran OLED.
  • Folosiți un singur încărcător pentru orice.
  • Conectați-vă la un NodeMCU ESP8266

Sunt sigur că mulți oameni vor veni cu multe îmbunătățiri. Aștept comentariile de mai jos.

Și să vă fie forța.

Recomandat: