Gioco prova riflessi fai da te
Ciao ragazzi, ho voluto realizzare un gioco prova riflessi utilizzando arduino mega come motore di controllo per gestire 4 pulsanti luminosi che si accenderanno in successione. Il gico consiste nel premere il piu velocemente possibile i pulsanti quando si accenderanno. Ho realizzato il tutto dentro una scatola elettrica di derivazione, 4 pulsanti lunimosi colorati, arduino mega e un modulo a 4 relè.
Lo schema elettrico
Schema utilizzato nel video tutorial
Schema veramente semplice, i quattro pulsanti, se premuti, porteranno il gnd ad arduino quindi, per questa configurazione, utilizzeremo le resistenze interne pull up di arduino per non aggiungerle esternamente. Ho inserito anche un buzzer piezoelettrico che nel video non è stato inserito, potrebbe tornare utile per effetti sonori speciali.
Variante utilizzando Arduino uno
Lo schema è identico a quello proposto sopra, con la sola differenza che non ci sarà arduino nano, ma arduino uno. La logica è identica, ma siccome mi chiedete spesso se il nano è sostituibile con arduino uno, ecco la dimostrazione che è possibile.
Variante senza l' utilizzo del modulo a relè
Questo schema invece è più semplificativo perché è stato rimosso il modulo da 4 relè. In effetti non è fondamentale, ma per quelli che non hanno dimestichezza con resistenze, transistor ecc, mi sembrava una soluzione più sicura per non richiare di bruciare i pin del nano. Questa versione richiede una modifica da parte dei pulsanti luminosi perchè al' interno hanno un led con resistenza da 1000 ohm. Per alimentare i led direttamente dai pin di arduino, dovete accertarvi che il singolo led abbia una corrente di assorbimento inferiore ai 25mA perchè oltre bisognerà utilizzare un transistor tipo bc 547. Altro accorgimento, la resistenza dovrà essere sostituita con un valore inferire tipo 680 ohm per essere alimentato dalla 5 volt
La logica del gioco
La logica è molto semplice...
Appena alimenterete la console, si entrerà nella modalità demo dove si accenderanno in sequenza le luci dei pulsanti.
Alla pressione del tasto start, partirà un big counter dove, raggiunto lo zero, inizierà il gioco vero e proprio. Partirà un tempo formato da una progress barr e si accenderà una luce casuale e rimarrà accesa fino a che non andiamo a premere il relativo pulsante. Più si attende, e meno punti possiamo cumulare. Se si preme in modo coretto, si accumulano 150 punti e si accenderà immediatamente un' altra lampada. se si preme in modo errato, si accendono tutte e 4 per un tempo penalità di un secondo e verranno sottratti -150 punti. Raggiunto il tempo finale, si potrà vedere se abbiamo superato il punteggio record oppure quello totalizzato.
IL SORGENTE PER ARDUINO
Codice disponibile al Download
Se volete poterte cambiare i valori ad inizio Sketch per modificare tempi e alcuni parametri del gioco:
int PUNTEGGIOstep = 150; // Assegna il punteggio per pressione corretta/errata
int TEMPOpenalita = 1000; // Assegna il tempo in secondi per la penalità pressione errata
int TEMPOrilancio = 100; // Assegna il tempo di rilancio a pressione corretta
int TIMERgiocoCOUNTdown = 50; // Assegna il tempo per il contatore COUNTDOWN durante il gioco (Minore valore, velocità maggiore)
int PunteggioRecord = 1500; // Imposta il punteggio record iniziale
int velocitaBarra = 10; // Inserire la velocità del tempo
IMPORTANTE
Dovete scaricare la libreria LiquidCrystal_I2C.h per compilare correttamente il codice su arduino Uno
Lista componeneti
Ormai sono le due di notte, metterò tutti i componenti utilizzati domani, adesso sono molto stanco.