CONTENUTO ►
Il gioco da tavolo “Reaction” è un semplice progetto per Arduino, per il quale sono necessari solo LED, resistenze per i pulsanti e breadboard. In questo articolo abbiamo inserito lo schema dell’assemblaggio del gioco con il microcontrollore Arduino e il programma di funzionamento con commenti dettagliati. Nei parametri è possibile cambiare la modalità di funzionamento – modificare gli intervalli di tempo, il numero di tentativi e il numero di pulsanti.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Micro
- LED e resistenze
- pulsanti
- breadboard
- cavi di collegamento
Gioco di reazione con Arduino Uno / Nano
Il principio del gioco è piuttosto semplice: dopo aver acceso i LED (che si accendono in modo casuale), è necessario premere il pulsante corrispondente il più rapidamente possibile. L’intervallo di tempo di accensione dei LED e altre impostazioni possono essere modificate nello schizzo. Dopo aver effettuato tutti i tentativi, il numero di tentativi corretti, la media e il miglior tempo di reazione vengono visualizzati sul monitor seriale dell’IDE Arduino.
Schema per la costruzione di un gioco di reazione
Lo schema mostra il collegamento di tre coppie di LED e pulsanti al microcontrollore, ma è possibile collegare fino a sei coppie modificando le impostazioni appropriate nello sketch. Importante: collegare i LED in serie a partire dal pin 4 e i pulsanti dal pin A0 ad A5. Il gioco si avvia quando tutti i LED sono brevemente accesi. Se si desidera, è possibile collegare un altoparlante piezoelettrico ad Arduino per ottenere un segnale sonoro per avviare il gioco.
Programma Arduino per gioco di reazione (Reaction game)
/* parametri che possono essere modificati */ int d1 = 1000; // d1 e d2 sono l'intervallo in mlsec dell'illuminazione a LED int d2 = 2000; int d3 = 3000; // dopo quanti mlsec l'errore viene cancellato byte tarrgr = 5; // numero di tentativi byte knp = 3; // numero di coppie LED / pulsanti /* parametri che possono essere modificati */ byte pinD = 4 + knp; byte pinA = 14 + knp; byte ext = 9; byte hit; byte err; byte tarrgn; boolean finich = true; unsigned long timing; unsigned long setreakt; unsigned long bestreakt = 99999; unsigned long medreakt; void setup() { Serial.begin(9600); for (byte i = 4; i < pinD; i++) { pinMode(i, OUTPUT); digitalWrite(i, HIGH); } delay(500); for (byte i = 4; i < pinD; i++) { digitalWrite(i, LOW); } for (byte i = 14; i < pinA; i++) { pinMode(i, INPUT); } for (byte i = 14; i < pinA; i++) { analogWrite(i, LOW); } } void loop() { while (tarrgn < tarrgr) { int LED = random(4, 4 + knp); int BTN = LED + 10; int DEL = random(d1, d2); delay(DEL); digitalWrite(LED, HIGH); timing = millis(); ext = 9; while (ext < 10 && tarrgn < tarrgr) { if (digitalRead(BTN) == HIGH) { digitalWrite(LED, LOW); setreakt = millis() - timing; delay(300); hit++; tarrgn++; ext = 11; } if (millis() - timing > d3) { digitalWrite(LED, LOW); delay(300); setreakt = 0; err++; tarrgn++; ext = 11; } } if (setreakt < bestreakt && setreakt > 100) { bestreakt = setreakt; } medreakt = medreakt + setreakt; } if (tarrgn == tarrgr && finich == true) { medreakt = medreakt / hit; if (medreakt > 99998) { medreakt = 0; } if (bestreakt > 99998) { bestreakt = 0; } Serial.println(); Serial.println("--- End of Raund ---"); Serial.println(); Serial.println("Coups - " + String(hit)); Serial.println("Errors - " + String(err)); Serial.println("The best reaction - " + String(bestreakt)); Serial.println("The average reaction - " + String(medreakt)); Serial.println(); Serial.println("Please reboot for restart"); finich = false; } }
Spiegazione del codice per gioco di reazione (Reaction game Arduino):
- tutte le impostazioni del gioco possono essere modificate all’inizio del programma;
- un ordine errato di collegamento dei LED e dei pulsanti influisce sul funzionamento del programma. È possibile collegare un massimo di sei coppie di LED e pulsanti.
Conclusione. È inoltre possibile collegare il display LCD di Arduino al microcontrollore e visualizzare i risultati del gioco sullo schermo. Inoltre, è possibile pensare a diverse opzioni per l’accensione dei LED, ad esempio accendere contemporaneamente due LED. Se avete domande, potete lasciarle nei commenti a questo post – cerchiamo sempre di risolvere i problemi e di rispondere a tutti i commenti dei nostri cari utenti.
Lascia un commento