09.G Hra „REACTION LED“ (meranie reakčného času)
Základný nápad
- LED je zhasnutá
- Arduino čaká náhodný čas
- LED sa rozsvieti
- Žiak čo najrýchlejšie stlačí ENTER v Serial Monitor
- Arduino vypočíta reakčný čas a vypíše ho v milisekundách
Výhody:
- žiadny nový hardware
- žiaci sú vťahnutí do hry
- učí ich myslenie s časom (millis)
- pracuje s klávesnicou (Serial.available)
- dá sa súťažiť v triede
Zapojenie
Presne ako doteraz:
- LED anóda → rezistor → Pin ~9
- LED katóda → GND
Kód programu
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("Hra REACTION LED");
Serial.println("Po rozsvieteni LED stlac ENTER!");
}
void loop() {
digitalWrite(ledPin, LOW);
long cakaj = random(2000, 7000); // 2–7 sekund
delay(cakaj);
digitalWrite(ledPin, HIGH);
unsigned long start = millis();
// cakanie na ENTER
while (!Serial.available()) {
// caka kym hrac stlaci ENTER
}
unsigned long koniec = millis();
unsigned long cas = koniec - start;
Serial.read(); // vymaz buffer
Serial.print("Reakcia: ");
Serial.print(cas);
Serial.println(" ms");
delay(2000); // pauza medzi kolami
}
Ako sa to hrá
- Spusti Serial Monitor
- Nastav 9600 baud
- Nechaj žiakov kliknúť myšou do vstupu Serial Monitor
- LED sa po náhodnom čase rozsvieti
- Žiak stlačí ENTER
- Arduino vypíše čas v ms
Príklad výstupu:
Hra REACTION LED
Po rozsvieteni LED stlac ENTER!
Reakcia: 228 ms
Reakcia: 421 ms
Reakcia: 178 ms
Prečo je to zábavné
- žiaci súťažia o najlepší čas
- do hry sa primieša stres, reflexy a šťastie
- dá sa rozšíriť na reálne tlačidlo (neskôr)
- učí ich chápať časovanie a eventy
Úlohy pre žiakov (Game Dev štýl)
Ľahšie:
- zväčšiť rozpätie random času
- pridať výpis „Pripraviť sa… Pozor… TERAZ!“
Stredné:
- miesto Serial Monitor použiť tlačidlo
- pridaj tzv. false start detekciu (ak stlačí skôr)
Ťažšie:
- uložiť najlepší čas (high score)
- robiť priemer 5 pokusov
- vyhlásiť „WINNER / LOSER“
Bonus – simulácia reality
Pridáš falošné spustenie (svetlo sa rozsvieti ale neplatí), žiak musí ignorovať.
Prečo je to výborná pedagogická lekcia
Žiak sa naučí pracovať s:
random()millis()Serial.available()- reakčným časom
- cycle control
- debug panelom
A hlavne:
- je to hravé
- je v tom psychológia
- dá sa to rozvíjať do projektov


