ENIB 2022 - groupe A : Leds Spotting

De Les Fabriques du Ponant
Aller à : navigation, rechercher

Que fait ce projet ?

Led Spotting est un jeu de comptage en 1 VS 1.

Déroulement du jeu

Pendant un temps déterminé (30 secondes), plusieurs led s'allumeront simultanément toutes les 1.5 secondes. Les deux joueurs devront compter les leds en appuyant sur un bouton devant eux. Le gagnant est le joueur ayant le mieux compté les leds. Si les joueurs ont le même écart par rapport à la réponse, il y a égalité, si les deux joueurs ont bien compté également.

Avancée du projet

Nous avons partagé dans le groupe les tâches suivantes : - Design de la borne d'arcade - Codage du jeu sous Arduino - Codage de l'afficheur LCD sous Arduino - Branchement et test du bon fonctionnement des leds, des boutons poussoirs

Pour le moment, il n'y a pas vraiment de code fonctionnel. Nous avions prévu d'utiliser plusieurs leds RGB mais il est possible que nous changions cela pour une bande RGB, par laquelle nous pourrions contrôler les différentes lumières.

Voici une photo du montage en cours de la boite de notre jeu et de notre banc de test avec nos leds.

Banc de tests avec les leds
La boite de jeu prévue pour notre Led Spotting


Finalité du projet et problèmes rencontrés

Le design de la borne d'arcade est réussit et s'est terminé dans les temps. Nous avons donc utilisé une boîte en carton recouverte d'autocollants de couleurs flashy. La boîte attire l'œil (voir photo ci-dessous), et, pour nous, elle convient vraiment au style forain.

Borne arcade.jpg


Borne arcade1.jpg


En ce qui concerne la partie codage, nous avons rencontré de nombreux problèmes pour configurer le jeu et les boutons poussoirs. En effet, la carte détecte aléatoirement les appuis. Il nous aurait fallu plus de temps pour pouvoir tester notre code, car aucune ressources sur Internet n'étaient disponibles.

Liste des composants

  • Bande RGB
  • Boutons poussoir
  • Ecran LCD
  • Carte Arduino Nano

Code

//CECI N'EST PAS UN CODE FONCTIONNEL

boolean finished = false;
boolean started = false;

void setup()    // début de la fonction setup()
{
    setupLeds();
    Serial.begin(9600);  // Ouvre le port série à 9600 bauds

    
    
}   // fin de la fonction setup()

//***** FONCTION LOOP = Boucle sans fin = cœur du programme *****
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop()     // début de la fonction loop()
{
    if (!started){
      waiting();
    } else {
      //faire afficher un truc sur le LCD
      if (!finished){
    
        int total = random(30,45);
        int i = total;

        while (!finished){
          int j = random(1,7);
          allumerRandom(j);
          i = i-j;
          if ( i == 0){
            finished = true;
          }
        }
      } else {
         //afficher le bon résultat
         //afficher le gagnant
      }
  
        while(1){
          digitalWrite(10, HIGH);  // Met la broche 13 au niveau haut = allume la LED
          delay(500);              // Pause de 500 ms
          digitalWrite(10, LOW);   // Met la broche 13 au niveau bas = éteint la LED
          delay(500);              // Pause 500 ms
        }
      }
    }
    
}               // fin de la fonction loop()

void waiting (){
  while(!started){
    Serial.print("waiting...\n");
    if (digitalRead(13)==1){       //bouton start détecté
      started = true; 
    }
  }
}

void setupLeds(){
  pinMode(12, OUTPUT);  // Initialise la broche 12 comme sortie
    pinMode(11, OUTPUT);  // Initialise la broche 11 comme sortie

    pinMode(10, OUTPUT);  // Initialise la broche 10 comme sortie
    pinMode(9, OUTPUT);  // Initialise la broche 9 comme sortie

    pinMode(8, OUTPUT);  // Initialise la broche 8 comme sortie
    pinMode(7, OUTPUT);  // Initialise la broche 7 comme sortie

    pinMode(6, OUTPUT);  // Initialise la broche 6 comme sortie
    pinMode(5, OUTPUT);  // Initialise la broche 5 comme sortie

    pinMode(4, OUTPUT);  // Initialise la broche 4 comme sortie
    pinMode(3, OUTPUT);  // Initialise la broche 3 comme sortie

    pinMode(1, OUTPUT);  // Initialise la broche 1 comme sortie
    pinMode(0, OUTPUT);  // Initialise la broche 0 comme sortie


    pinMode(14, OUTPUT);  // Initialise la broche 14 comme sortie
    pinMode(15, OUTPUT);  // Initialise la broche 15 comme sortie

    pinMode(16, OUTPUT);  // Initialise la broche 16 comme sortie
    pinMode(17, OUTPUT);  // Initialise la broche 17 comme sortie

    pinMode(18, OUTPUT);  // Initialise la broche 18 comme sortie
    pinMode(19, OUTPUT);  // Initialise la broche 19 comme sortie

    pinMode(20, OUTPUT);  // Initialise la broche 20 comme sortie
    pinMode(21, OUTPUT);  // Initialise la broche 21 comme sortie

    pinMode(13, INPUT);  // Initialise la broche 13 comme entrée
    pinMode(2, INPUT);  // Initialise la broche 12 comme entrée

   for (int i = 0; i <22; i++){
    if (i != 2 && i != 13){
      digitalWrite(i, HIGH);
    }
   }
}

void allumerRandom(int i){
  
}

Catégories