Jeux de reflexe

800px reflexgame

Difficulté:

Bonjour à tous! Grâce à ce tutoriel vous allez pouvoir voir une idée de ce que l'on peut faire avec une carte Arduino. Voici ci-dessous les règles.

 Chaque joueur qui appuie le premier sur son bouton après un signal (sonore ou lumineux) gagne 1 point. Les joueurs doit enfoncer en moins de 5 secondes. 

  •  Un joueur appuyant avant le signal est pénalisé des 2 points (-2 pts). Un signal lumineux ou sonore indique la fin du tour et marque le début du tour suivant. 
  •  La partie est terminée quand un joueur atteint 10 points. 
  •  Au reset, les joueurs recommencent une partie (prévoir un bouton pour le reset) 
  •  Les points de chaque joueur peuvent s'afficher sur une afficheur 7 segments et être envoyé par le port série à une application Processing pour affichage.

Etape 1 : Matériel necessaire

Matériel : boutons (1 par joueur), LED, afficheur 7 segments (1 par joueur), bouton de reset 


Etape 2 : Fonction de tirage pseudo aléatoire sur Arduino

Voici ci-dessous le code qui va nous permettre de génerer des nombres aléatoires et de les afficher:


long randNumber;

void setup(){
  Serial.begin(9600);

  // if analog input pin 0 is unconnected, random analog
  // noise will cause the call to randomSeed() to generate
  // different seed numbers each time the sketch runs.
  // randomSeed() will then shuffle the random function.
  randomSeed(analogRead(0));
}

void loop() {
  // print a random number from 0 to 299
  randNumber = random(300);
  Serial.println(randNumber);

  // print a random number from 10 to 19
  randNumber = random(10, 20);
  Serial.println(randNumber);

  delay(50);
}

Etape 3 : Allumage de LED

void setup() {
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, INPUT);
  pinMode(10, INPUT);
}

void loop() {
  digitalWrite(12, LOW);    // set the LED off
  digitalWrite(13, LOW);    // set the LED off
  int t = random(1,9);
  delay(t*1500);
  digitalWrite(12, HIGH);   // set the LED on

  int s1 = 0;
  int s2 = 0;
  while (!s1 && !s2) {
  s1=digitalRead(11);  //
  s2=digitalRead(10);  //
  }

  if(s1 && !s2) {
    digitalWrite(13, HIGH);   // set the LED on
    digitalWrite(12, LOW);   // set the LED off
  }
  else if(!s1 && s2) {
    digitalWrite(13, LOW);   // set the LED off
    digitalWrite(12, HIGH);   // set the LED on
  }else {
    digitalWrite(13, HIGH);   // set the LED on
    digitalWrite(12, HIGH);   // set the LED on
  }
  delay(2000);              // wait for a second
}

Sources:


Vous aimez ce tutoriel ?


Soyez le premier à poster un commentaire pour Jeux de reflexe


Recevez une fois par mois les meilleurs tutoriels Art & Craft dans votre boîte mail




S'inscrire:


  • Vues: 29
  • J'aime: 0