0

Progetto Arduino: Test di Riflessi AI.

Share

Introduzione al Progetto

Il progetto Arduino con prompt: test di riflessi è un’ottima occasione per esplorare le capacità di programmazione e di interazione hardware. Grazie ad Arduino, possiamo creare strumenti interattivi che non solo divertono, ma educano anche sull’importanza della risposta ai vari stimoli visivi.

Componenti Necessari

Per realizzare questo progetto, avrai bisogno di alcuni componenti fondamentali: una scheda Arduino, dei LED, un pulsante e varie resistenze. Questi materiali possono essere facilmente reperibili in negozi di elettronica. Assicurati di avere anche un computer con l’IDE di Arduino installato, che ti permetterà di scrivere e caricare il codice necessario sul tuo dispositivo.

Funzionamento del Test di Riflessi

Il test di riflessi consiste nel misurare il tempo di reazione degli utenti a stimoli luminosi. Quando il LED si accende, l’utente deve premere il pulsante il più rapidamente possibile. Il tempo impiegato viene quindi registrato e confrontato con test precedenti per valutare i miglioramenti. Questo progetto non solo fornisce un feedback immediato, ma permette anche di personalizzare diversi aspetti, come la velocità di accensione del LED e il numero di tentativi.

In conclusione, il progetto Arduino con prompt: test di riflessi è un modo entusiasmante per approfondire le conoscenze in elettronica e programmazione, rendendo l’apprendimento un’attività divertente e coinvolgente.

Componenti necessari:

1x Arduino (Uno/Nano)
1x LED (meglio rosso o verde)
1x Resistenza 220Ω
1x Pulsante
1x Resistenza 10kΩ (pull-down)
Breadboard + cavetti


Collegamenti:

LED
Anodo (+) → Pin 9
Catodo (–) → Resistenza 220Ω → GND
Pulsante
Un lato → 5V
Altro lato → Pin 2
Resistenza 10kΩ tra Pin 2 e GND (pull-down)

Come funziona:

Arduino aspetta un tempo casuale (2–5 secondi)
Si accende il LED
Devi premere il pulsante il più veloce possibile
Arduino calcola il tempo di reazione
Mostra il risultato nel Monitor Seriale

const int ledPin = 9;
const int buttonPin = 2;

unsigned long startTime;
unsigned long reactionTime;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);

  Serial.begin(9600);
  randomSeed(analogRead(0));

  Serial.println("=== TEST DI RIFLESSI ===");
}

void loop() {

  // Attesa casuale tra 2 e 5 secondi
  int waitTime = random(2000, 5000);
  delay(waitTime);

  Serial.println("PREPARATI...");

  // Accende il LED
  digitalWrite(ledPin, HIGH);
  startTime = millis();

  // Attende pressione pulsante
  while (digitalRead(buttonPin) == LOW) {
    // loop vuoto
  }

  reactionTime = millis() - startTime;

  digitalWrite(ledPin, LOW);

  Serial.print("Tempo di reazione: ");
  Serial.print(reactionTime);
  Serial.println(" ms");

  // Feedback
  if (reactionTime < 200) {
    Serial.println("⚡ Fulmine!");
  } else if (reactionTime < 400) {
    Serial.println("👍 Buono!");
  } else {
    Serial.println("🐢 Lento!");
  }

  Serial.println("---------------------");

  delay(3000); // pausa prima del prossimo test
}