Arduino - Jeu de mémoire: 4 étapes

Arduino - Jeu de mémoire: 4 étapes

Table des matières:

Anonim

Un simple jeu de mémoire utilisant l'Arduino Uno.

Provisions:

Étape 1: Étape 1: Pièces et outils

4 boutons

4 LED

1 registre à décalage 74HC595

1 piézo

2 (peut-être une plus grande) planche à pain

1 Arduino Uno

1 220 Ω Rés.

Étape 2: Étape 2: Conseils

Essayez de mettre l’arduino et la (les) planche (s) à la main très tôt. C'est beaucoup plus facile de travailler avec.

J'ai utilisé un peu de catron que j'ai collé sur les planches à pain et utilisé deux écrans et vis-écrous pour attacher l'arduino.

Lorsque vous transportez votre projet (peut-être dans un mauvais état), assurez-vous que l'arduino est bien protégé. Les cordes peuvent facilement être foiré.

Étape 3: Étape 3: le code

// Broche connectée à 12 (ST_CP) du registre à décalage 74HC595

int latchPin = 8; // clockPin connecté à 11 (SH_CP) sur le registre à décalage 74HC595 int clockPin = 12; //// Broche connectée à DS du registre à décalage 74HC595 int dataPin = 11;

// Variabel si le jeu est terminé booléen gameover = false;

// Tableau pour shiftregister int ledarray 8 = {1,2,4,8,16,32,64,128}; // Variabel pour le niveau actuel int level = 4; // Tableau réservé des LED correctes à chaque niveau int randarray1 8; // Nombre de LED disponibles int min = 0; int max = 4; // Variable pour lequel un des boutons est enfoncé int buttpr; // Variable pour toutes les broches de LED int boutonnières 8 = {2,3,4,5,6,7, A0, A1};

void setup () {// Ställ in pinnarna till shift registret pinMode (latchPin, OUTPUT); pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT);

// Définit toutes les LED en mode PULLUP pour (int buttpin = 0; buttpin <8; buttpin ++) {pinMode (boutonnières boutonnière, INPUT_PULLUP); } // Arduino prêt pour la communication sérielle Serial.begin (9600); }

void loop () {// Augmente le niveau de jeu si (niveau <8) {niveau ++; } // Faites le niveau tant qu'il n'y a pas de Gameover si (! Gameover) {// Génère une nouvelle combinaison de LED pour le niveau de (int i = 0; i <niveau; i ++) {randarray1 i = random (max); } // Boucle pour allumer toutes les LED du niveau actuel pour (int numberToDisplay = 0; numberToDisplay <niveau; numberToDisplay ++) {Serial.println (ledarray randarray1 numberToDisplay); // Coupez l'alimentation de shiftregister readingPin avant de choisir la nouvelle broche digitalWrite (latchPin, LOW); // Marque la LED suivante avec shiftregister shiftOut (dataPin, clockPin, MSBFIRST, ledarray randarray1 numberToDisplay); // Allume la LED marquée en une demi-seconde. DigitalWrite (latchPin, HIGH); retard (500); // Supprime à nouveau la lumière digitalWrite (latchPin, LOW); // Marque la première LED shiftOut (dataPin, clockPin, MSBFIRST, 0); // Allume la première LED digitalWrite (latchPin, HIGH); // Pause une seconde avant la prochaine DEL delay (1000); }

// Boucle à lire buttonpressed for (int lednr = 0; lednr <level; lednr ++) {// Ecrivez lequel est le prochain voyant correct Serial.print ("Next led:"); Serial.println (lednr); // Attend une seconde avant la prochaine lecture délai (1000); // Lire les boutons jusqu'à ce que l'un d'eux soit pressé do {buttpr = whichbuttonpressed (); } while (buttpr == 9); // écrit le bouton sur lequel vous avez appuyé et le bouton correct. Serial.print (buttpr); Serial.println (randarray1 lednr); // Reproduction du son sur ton bouton (13 660 200); // Si c'est le mauvais bouton, sa Gameover if (buttpr! = Randarray1 lednr) {gameover = true; // Joue la sonorité de Gameover (13 440,1000); Serial.println ("Gameover"); // Annuler la boucle pour la lecture des boutons break; }} Serial.println ("Niveau terminé"); }}

int whichbuttonpressed () {// Répéter tous les boutons et lire pour (int buttpin = 0; buttpin <8; buttpin ++) {// Si le bouton est enfoncé, renvoie la valeur du bouton if (digitalRead (buttonpins buttpin) == 0) {return (épingler); Pause; }} // Si aucun bouton n'est enfoncé, retournez 9 pour continuer à lire les boutons de la boucle. Return 9; }

Étape 4: Étape 4: Fonction du jeu

Ce petit jeu est facile à faire. Je suis sûr que vous, les passionnés, en aurez probablement terminé en moins d’une heure.

Mais le jeu est en fait assez amusant et très utile en gymnastique cérébrale.

Les quatre voyants du jeu clignotent de manière aléatoire. Lorsque la combinaison est terminée, vous appuyez dans l'ordre à l'aide des quatre boutons. Chaque fois que vous appuyez sur un bouton, vous pouvez entendre un son. En appuyant sur le mauvais bouton, vous obtenez un son clair qui indique que c'est GAME OVER! Mais si vous réussissez à appuyer sur la bonne combinaison, vous atteignez un nouveau niveau. Cette fois, la combinaison est cinq clignotements. Niveau suivant six et ainsi de suite.

Personnellement, je pense que ce genre de jeux est utile pour les personnes âgées. Peut-être des personnes atteintes d'une maladie qui affectent leur mémoire?