Arduino - Gra pamięciowa: 4 kroki

Arduino - Gra pamięciowa: 4 kroki

Spisu treści:

Anonim

Gra pamięciowa typu simpel z użyciem Arduino Uno.

Kieszonkowe dzieci:

Krok 1: Krok 1: Części i narzędzia

4 przyciski

4 diody LED

1 Rejestr zmian 74HC595

1 Piezo

2 (może jeden większy) Breadboard

1 Arduino Uno

1 220 Ω Res.

Krok 2: Krok 2: Wskazówki

Spróbuj połączyć arduino i breadboard (y) na samym początku. Dużo łatwiej jest pracować.

Użyłem trochę catronu, na który przykleiłem deski do pieczenia chleba i użyłem dwóch scewów i nakrętek do mocowania arduino.

Kiedy transportujesz swój projekt (może w złym), upewnij się, że arduino jest dobrze chronione. Sznury można łatwo zepsuć.

Krok 3: Krok 3: Kod

// Pin podłączony do 12 (ST_CP) 74HC595 Shift Register

int latchPin = 8; // clockPin podłączony do 11 (SH_CP) na 74HC595 Shift Register int clockPin = 12; //// Pin podłączony do DS 74HC595 Shift Register int dataPin = 11;

// Zmienna, jeśli gra jest ponad boolean gameover = false;

// Tablica dla shiftregister int ledarray 8 = {1,2,4,8,16,32,64,128}; // Zmienna dla bieżącego poziomu int level = 4; // Zarezerwowana tablica poprawnych diod LED na każdym poziomie int randarray1 8; // Liczba dostępnych diod LED int min = 0; int max = 4; // Zmienna, której naciśnięto jeden z przycisków int buttpr; // Variabel dla wszystkich pinów LED w pinezkach 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);

// Ustaw wszystkie diody LED w trybie PULLUP dla (int buttpin = 0; buttpin <8; buttpin ++) {pinMode (buttonpins buttpin, INPUT_PULLUP); } // Arduino gotowy na seriell comunication Serial.begin (9600); }

void loop () {// Zwiększ poziom gry, jeśli (poziom <8) {poziom ++; } // Wykonaj poziom tak długo, jak nie ma Gameover if (! Gameover) {// Wygeneruj nową kombinację diod LED dla poziomu dla (int i = 0; i <poziom; i ++) {randarray1 i = losowo (max); } // Pętla, aby zapalić wszystkie diody LED na bieżącym poziomie dla (int numberToDisplay = 0; numberToDisplay <level; numberToDisplay ++) {Serial.println (ledarray randarray1 numberToDisplay); // Wyłącz zasilanie do odczytu rejestru przesuwnegoPin przed wybraniem nowego pinów digitalWrite (latchPin, LOW); // Oznacz następną diodę za pomocą shiftregister shiftOut (dataPin, clockPin, MSBFIRST, ledarray randarray1 numberToDisplay); // Zapal zaznaczoną diodę w połowie drugiego digitalWrite (zatrzask PIN, HIGH); opóźnienie (500); // Ponownie zabij światło digitalWrite (latchPin, LOW); // Oznacz pierwszą diodę shiftOut (dataPin, clockPin, MSBFIRST, 0); // Włącz pierwszą diodę LED digitalWrite (zatrzask, HIGH); // Paus sekunda przed następnym opóźnieniem LED (1000); }

// Pętla do odczytu buttonpressed for (int lednr = 0; lednr <level; lednr ++) {// Napisz, która z nich jest kolejną poprawną diodą Serial.print („Next led:”); Serial.println (lednr); // Zaczekaj jedną sekundę przed następnym opóźnieniem odczytu (1000); // Czytaj przyciski, dopóki nie zostanie wciśnięty do {buttpr = whichbuttonpressed (); } while (buttpr == 9); // Wypisz aktualny wciśnięty przycisk i który przycisk jest poprawny Serial.print (buttpr); Serial.println (randarray1 lednr); // Odtwarzaj dźwięk dla tonacji wciśniętej (13 660 200); // Jeśli jest to niewłaściwy przycisk, jego Gameover if (buttpr! = Randarray1 lednr) {gameover = true; // Odtwórz dźwięk w Gameover (13,440,1000); Serial.println („Gameover”); // Anuluj pętlę do odczytu przerwania przycisków; }} Serial.println („Poziom zakończony”); }}

int whichbuttonpressed () {// Powtórz wszystkie przyciski i odczytaj (int buttpin = 0; buttpin <8; buttpin ++) {// Jeśli przycisk zostanie naciśnięty, zwróć wartość przycisku if (digitalRead (buttonpins buttpin) == 0) {return (buttpin); złamać; }} // Jeśli nie zostanie naciśnięty żaden przycisk, powróć 9, aby kontynuować czytanie przycisków w pętli return 9; }

Krok 4: Krok 4: Funkcja gry

Ta mała gra jest łatwa do wykonania. Jestem pewien, że entuzjaści tego zrobią prawdopodobnie za mniej niż godzinę.

Ale gra jest całkiem zabawna i jest to bardzo przydatna gra w gimnastyce mózgu.

Cztery diody LED w grze migają w losowej kombinacji. Gdy kombinacja się kończy, naciskasz ją w kolejności za pomocą czterech przycisków. Za każdym naciśnięciem przycisku słychać dźwięk. Naciśnięcie niewłaściwego przycisku i uzyskanie wyraźnego dźwięku, który wskazuje, że jest to GRA OVER! Ale jeśli uda Ci się nacisnąć odpowiednią kombinację, dojdziesz do nowego poziomu. Tym razem kombinacja to pięć błysków. Następny poziom szósty i tak dalej.

Osobiście uważam, że tego rodzaju gry są przydatne dla osób starszych. Może ludzie z chorobą, która wpływa na ich pamięć?