Jeu de mémoire

De troyesGEII
Révision datée du 10 octobre 2014 à 08:26 par Troyesgeii (discussion | contributions) (Tests sur cartes Arduino)
Aller à : navigation, rechercher


Fabrication d'un jeu de mémoire en quantité indutrielle

Cahier des charges

  • Présentation du projet


L'objectif du projet est de réaliser un jeu de mémoire en quantité industrielle (une centaine). Ce jeu est simple : une série de leds s'allume dans un ordre particulier, le joueur doit reproduire parfaitement cette séquence.


  • Objectifs

Bête à cornes.png

  • Public ciblé
    • Dimension des cartes : le plus compact possible
    • Disposition des leds, boutons et microcontrôleur : leds et boutons organisés en 4 (comme un dé), position du microcontrôleur à définir
    • Différents niveaux possibles : la difficulté des niveaux augmente avec des séries à reproduire qui deviennent de plus en plus longues et rapides


  • Description du fonctionnement

Les leds de ce jeu sont contrôlées par un microcontrôleur AT Tiny qui permet de faire allumer aléatoirement les leds dans un ordre précis.


Tests sur carte Arduino

On fait d'abord clignoter une led sans bouton :

void setup()
{
  pinMode(13,OUTPUT); // on précise ici que la patte 13 est une sortie
}

void loop()
{
  digitalWrite(13,0); // extinction de la led 13 de la carte Arduino
  delay(100);
  digitalWrite(13,1); // éclairement de la led 13 de la carte Arduino
  delay(100);
}

On fait ensuite clignoter la led avec un bouton sur le principe suivant : si le bouton est appuyé, la led est allumée, sinon elle est éteinte. On code le programme suivant :

unsigned char ledPin = 13; // on positionne la led
unsigned char bpPin = 2;   // le bouton est sur la patte 2
unsigned char etatBp;      // on récupère l'état du bouton

void setup()
{
  pinMode(bpPin,INPUT);
  pinMode(ledPin,OUTPUT); // on configure les e/s
}

void loop()
{
  etatBp = digitalRead(bpPin); // on "lit" l'état de l'entrée
  if (etatBp==1)
       digitalWrite(ledPin,0); // on "écrit" l'état de la sortie 
  else
       digitalWrite(ledPin,1);
}

On veut savoir s'il est possible d'avoir un signal d'entrée et un signal de sortie sur la même patte du microcontrôleur. L'objectif est simple : si le bouton est appuyé, on allume la led sur la carte Arduino et la led externe, sinon on les éteint.