Table of Contents

Simon Says

Autor: Niculaie Ionut-Lucian
Grupa: 335CB

Introducere si descriere generala

Proiectul reprezinta un joc de memorie in cadrul caruia utilizatorului i se vor testa atat memoria vizuala, cat si cea auditiva. Exista 4 LED-uri de culori diferite si 4 butoane care actioneaza aprinderea acestora. Se vor aprinde secvential LED-urile intr-o ordine aleatoare, cu numarul egal cu numarul nivelului, iar jucatorul va trebui sa recreeze aceasta ordine apasand butoanele pe care le are la dispozitie in ordinea corecta.

La fiecare avansare de nivel, se va aprinde cu un LED mai mult, adaugandu-se la ordinea de la nivelul anterior. Jocul are un numar maxim de 30 de nivele. Daca jucatorul reuseste sa treaca de toate cele 30 de nivele va castiga si va avea parte de un cantec al victoriei.

Ideea de la care am pornit este pasiunea mea pentru mici joculete care te pot relaxa, dar si atractia catre challenge-uri sau provocari. Eu consider ca proiectul este util deoarece testeaza memoria si poate reprezenta un mod distractiv de a petrece niste timp liber.

Schema Bloc

Input:

Output:

Hardware Design

Lista de piese:

Rezistentele de 330 Ohm le-am folosit pentru LED-uri, pentru a limita curentul care trece prin acestea. Rezistentele de 3.3K Ohm le-am folosit pentru butoane.

Software Design

Ca si mediu de dezvoltare s-a folosit Arduino IDE
Pentru implementarea proiectului s-au folosit urmatoarele biblioteci:

Ordinea in care se vor aprinde LED-urile va fi salvata si actualizata intr-un array. Randomizarea se face prin alegerea unui seed aleator la inceputul programului. Am folosit functia analogRead pe un pin neconectat pentru a realiza acest lucru.

In cadrul proiectului, functia level() constituie modul prin care un nivel este prezentat catre utilizator, led-urile aprinzandu-se in ordinea stabilita nivelului respectiv, dar si emitand sunete prin intermediul buzzer-ului.

Functia wait_input() va astepta ca jucatorul sa apese butoanele in ordinea corecta. Daca toate butoanele au fost apasate in ordinea cea buna, atunci se va pregati nivelul urmator prin adaugarea unui nou LED in array.

Ca element bonus, am adaugat melodii, atat atunci cand utilizatorul castiga, cat si atunci cand pierde. Aceste bucati de cod au fost preluate de pe internet, iar sursele sunt mentionate in bibliografie.

Rezultate Obţinute

Concluzii

Ca si concluzii, am reusit sa finalizez proiectul cu toate functiile pe care mi le-am propus, ba chiar la final am reusit sa reusesc sa-mi dau frau liber imaginatiei, adaugand anumite elemente care pot crea amuzament sau un zambet celui care joaca jocul(anumite melodii care se redau atunci cand jocul se castiga sau se pierde).

Fiind primul proiect in Arduino, mi-a fost putin mai greu la inceput sa reusesc sa conectez toate componentele in mod corect. Pe partea de software nu am intampinat mari dificultati(thank god), iar in final a iesit un proiect dragut si pe placul meu.

Download

Pentru ca programul sa ruleze va trebui sa se instaleze biblioteca pentru OLED.

Tools → Manage Libraries → Adafruit SSD1306

simonsays.zip

Jurnal

Bibliografie/Resurse

Resurse Software

Export to PDF