Sommario:

Mastermind Star Wars con Arduino MEGA: 5 passaggi (con immagini)
Mastermind Star Wars con Arduino MEGA: 5 passaggi (con immagini)

Video: Mastermind Star Wars con Arduino MEGA: 5 passaggi (con immagini)

Video: Mastermind Star Wars con Arduino MEGA: 5 passaggi (con immagini)
Video: Amazing arduino project 2024, Dicembre
Anonim
Mastermind Star Wars con Arduino MEGA
Mastermind Star Wars con Arduino MEGA
Mastermind Star Wars con Arduino MEGA
Mastermind Star Wars con Arduino MEGA
Mastermind Star Wars con Arduino MEGA
Mastermind Star Wars con Arduino MEGA

Questi sono tempi avversi per la ribellione. Sebbene la Morte Nera sia stata distrutta, le truppe imperiali utilizzano hardware gratuito e Arduino come arma segreta.

Questo è il vantaggio delle tecnologie gratuite, qualsiasi persona (buona o cattiva) può usarle.

In una base nascosta situata sul pianeta Anoat, stanno costruendo una stampante 3D in grado di replicare l'Imperial Destroyer.

L'unica soluzione per sconfiggere l'Impero è che un gruppo di ribelli comandati da Luke Skycuartielles e Obi-Wan Banzi, sconfiggano le truppe imperiali e ottengano la chiave che darà accesso ai piani per distruggere l'arma segreta.

Questa chiave è composta da 4 colori e hai 10 tentativi per decifrarla. Ci sono solo quattro regole:

  1. I colori si possono ripetere
  2. Una luce bianca indica che hai raggiunto il colore e la posizione giusti
  3. Una luce viola indica che hai colpito il colore ma non la posizione
  4. Se non c'è luce non hai indovinato il colore o la posizione.

Devi sbrigarti poiché all'altro estremo, il malvagio Darth Ballmer cercherà di ottenere la chiave prima di te. In tal caso, non sarai in grado di scoprire di cosa si tratta e non avrai accesso ai piani dell'arma segreta. La tua missione sarà fallita.

Piccolo Padawan, che la forza ti accompagni per decifrare la chiave e poter così salvare la Galassia.

Passaggio 1: materiale

Materiale
Materiale

Il materiale necessario per realizzare il Mastermind Star Wars con Arduino è diviso in tre parti.

  • Falegnameria e cancelleria per la realizzazione degli alloggi
  • Componenti, cavi e Arduino per tutta l'elettronica
  • Utensili

Cominciamo con la falegnameria. È necessario il seguente materiale:

  • 2 x pannelli MDF da 90x60
  • 1 x foglio di carta vegetale

Nella parte elettronica è necessario il seguente materiale:

  • 1 x striscia NeoPixel da 5 metri
  • 1 x Arduino MEGA
  • 1 x condensatore 100 µF
  • 4 x resistenza 470 Ω
  • 5 x pulsante nero
  • 5 x pulsante bianco
  • 1 x potenza 5V-5A
  • 1 x alimentazione 5V-2A

Infine, nella parte dello strumento abbiamo utilizzato quanto segue:

  • Pistola in silicone calda
  • Laser CNC di MxN
  • Saldatore elettrico
  • Stagno saldatore

Passaggio 2: progettazione

Design
Design
Design
Design
Design
Design

Una delle parti più importanti di questo progetto è il design dell'alloggiamento. Si compone di 3 pezzi tagliati con taglio laser.

La base è ricavata da un pezzo 90x60 in MDF. Prendi in considerazione le dimensioni del materiale poiché avrai bisogno di un laser cutter abbastanza grande.

Puoi trovare il file SVG alla fine di questo passaggio.

La cover superiore è quella che contiene i disegni tematici di Star Wars oltre ai fori sia per i pulsanti che per i pixel.

Ha la stessa forma della base.

Le pareti laterali sono state realizzate utilizzando una tecnica di taglio laser chiamata kerf. Ciò consente al materiale di essere flessibile. Per posizionare le pareti, alcuni pezzi sono stati progettati per fungere da guida.

Infine, ogni matrice NeoPixel ha una griglia dove da un lato sono fissati i NeoPixel e dall'altro è fissata una carta vegetale per diffondere la luce dei NeoPixel. Qui hai tutti i file SVG in modo che tu possa tagliarli e produrli da solo.

Passaggio 3: assemblaggio elettronico

Assemblaggio elettronico
Assemblaggio elettronico
Assemblaggio elettronico
Assemblaggio elettronico
Assemblaggio elettronico
Assemblaggio elettronico
Assemblaggio elettronico
Assemblaggio elettronico

La prima fase dell'assemblaggio dell'elettronica è stata quella di tagliare la striscia di 5 metri di NeoPixel in 8 strisce di 10 pixel e 4 pixel separati per ogni giocatore. In totale 84 pixel per giocatore. Da un lato si montano le 10 strisce una di seguito all'altra lasciando abbastanza cavo per mettere ogni striscia parallela di pochi millimetri. Questa matrice di pixel servirà per mostrare ogni gioco e il risultato. 4 pixel mostrano i quattro colori della chiave e gli altri quattro pixel mostrano il risultato. Vi ricordo che di conseguenza dobbiamo:

  • Se il pixel è bianco, la posizione e il colore sono stati corretti.
  • Se il pixel è viola, il colore è corretto ma non la posizione.
  • Se il pixel è spento, né il colore né la posizione sono corretti.

Uno degli errori che abbiamo commesso è il cablaggio di alimentazione e GND. Poteva essere più semplice, ma ci siamo resi conto dopo. Il cavo dati deve seguire un ordine poiché la numerazione dei pixel va dal basso verso l'alto.

D'altra parte abbiamo 4 pixel separati che devono essere collegati tra loro. Questi pixel ci mostreranno il colore che stiamo selezionando con i pulsanti.

Collegato in serie a ciascuna striscia è un resistore da 470Ω per proteggere i dati. Il cavo dati di ogni striscia di pixel è collegato a un pin digitale. I pin selezionati in Arduino MEGA sono 6, 7, 8 e 9.

Ad esempio, 6 e 7 sono per il giocatore 1 e 8 e 9 per il giocatore 2.

I pulsanti che abbiamo utilizzato sono i pulsanti tipici delle macchine arcade. Pensavamo che sarebbero andati bene e così è stato.

Si possono utilizzare altri pulsanti ma bisogna tenere in considerazione che se sono più piccoli o più grandi, il file DXF deve essere modificato prima di tagliare con il CNC laser.

Per distinguere i giocatori, alcuni pulsanti sono bianchi e altri neri.

Ogni giocatore ha 4 pulsanti su e 1 pulsante giù. I 4 pulsanti superiori servono per selezionare il colore di ogni posizione della chiave.

Il pulsante in basso serve per validare, cioè invia la chiave a comparire nella matrice di pixel con la relativa verifica se il colore e la posizione sono andati a buon fine.

Prima di assemblare il tutto abbiamo saldato tutti i cavi. Quindi avrai bisogno di molto cavo. Dipenderà dalle dimensioni del gioco. Nel nostro caso è stato abbastanza grande.

Ad esempio, puoi usare un cavo ethernet per aprirlo e prendere i cavi interni. È una buona soluzione. Cerca di averli il più ordinati possibile perché poi sarà necessario fare i collegamenti con l'Arduino MEGA come vedi nello schema elettrico.

Una volta che siete tutti soldati prima di montarlo, dovete provarlo. È testato perché quando viene installato nell'alloggiamento, sarà bloccato con silicone caldo e se fallisce sarà complicato rimuoverlo. Per posizionare le matrici di pixel è stata disegnata una griglia delle stesse dimensioni della griglia del coperchio dove da un lato sono incollati i pixel e dall'altro una carta vegetale.

Questa carta diffonde la luce di ogni pixel dando un effetto molto più bello. Quindi, quella struttura si attacca alla parte superiore all'interno. È un po' complicato ma con attenzione si ottiene un buon risultato.

L'alimentazione è stata alquanto complicata. In linea di principio e guardando lo schema, avremmo usato un solo caricabatterie. Tuttavia, dopo i primi test e il consumo di NeoPixel abbiamo visto che servirebbero due caricabatterie.

Ogni pixel può consumare un massimo di 60 mA. Se moltiplichiamo per 168 pixel, otteniamo un consumo di circa 10 A.

Anche se questo sarebbe nel peggiore dei casi. Nella programmazione abbiamo già tenuto conto di non massimizzare l'intensità del NeoPixel.

Non raggiungiamo nemmeno il 50% quindi, con un caricabatterie da 5V e 5A è più che sufficiente.

L'Arduino MEGA ha invece un caricatore separato che può essere collegato tramite il connettore jack o tramite la porta USB. Un possibile miglioramento sarebbe avere un singolo caricabatterie per l'intero sistema.

Passaggio 4: Programmazione del gioco

Programmazione del gioco
Programmazione del gioco
Programmazione del gioco
Programmazione del gioco

La programmazione è stata effettuata utilizzando due librerie: OneButton e Adafruit_NeoPixel.

La libreria OneButton permette di controllare i pulsanti in modo semplice con interruzioni.

La libreria Adafruit_NeoPixel ci ha permesso di controllare la striscia NeoPixel in modo molto semplice.

La programmazione si basa su diversi stati in cui il programma software può essere:

Avvio del gioco. Stato = 0

In questo stato, il gioco è iniziato e c'è una sequenza di luci in entrambi i giocatori che indicano che il gioco sta per iniziare. Durante questo stato i pulsanti non rispondono.

Stato iniziale. Stato = 1

Nello stato iniziale, attendi che uno dei due giocatori faccia doppio clic sul pulsante di conferma (il quinto pulsante). Questa azione consentirà di avviare il gioco.

Preparazione del gioco. Stato = 2

Nello stato di preparazione del gioco tutte le variabili vengono azzerate e viene lanciata la selezione casuale dei colori per la chiave.

Stato di gioco = 3

Nello stato 3 inizia il gioco. Ogni giocatore seleziona una chiave con i pulsanti e la convalida facendo clic sul pulsante di conferma. Questo stato può terminare in due modi: quando un giocatore scopre la chiave o quando i due giocatori consumano i 10 tentativi che hanno.

Uno Stato vincitore = 4

Se un giocatore vince, verrà mostrato un assegno verde sulla sua tavola e la combinazione vincente e una croce rossa sul perdente.

Gioco legato. Stato = 5

In caso di parità, non viene mostrato nulla su nessuna plancia e la combinazione vincente su entrambe le plance dei giocatori.

Che ci sia un vincitore o un pareggio nel gioco, lo stato successivo sarà quello iniziale in attesa di un doppio clic.

Puoi trovare tutto il codice qui sotto. L'unica cosa che è in spagnolo:)

Passaggio 5: test e miglioramenti

Il gioco viene testato giocando. Nel video qui sopra potete vedere un gioco completo.

Da qui possiamo pensare a diversi miglioramenti che possono essere aggiunti al Mastermind Star Wars con Arduino.

Poi li elenco.

  • Per poter giocare a turno con un totale di 10 tentativi per i due giocatori. Quando un giocatore prova una chiave, l'altro giocatore vedrà il gioco.
  • Una modalità di gioco individuale in modo che solo una persona possa giocare.
  • Mode ciascuno con la sua chiave.
  • Includere uno schermo OLED.
  • Usa un unico caricabatterie per tutto.
  • Connettiti a un NodeMCU ESP8266

Sono sicuro che molte persone troveranno molti miglioramenti. Attendo i commenti qui sotto.

E che la forza sia con te.

Consigliato: