This is an old revision of the document!


Simon Says

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.

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:

  • Butoane

Output:

  • OLED
  • LED-uri
  • Buzzer

Hardware Design

Lista de piese:

  • Arduino UNO
  • 4 x Butoane
  • 4 x LED 5mm
  • 1 x OLED 0.91' I2C
  • 4 x Rezistente 330 Ohm
  • 4 x Rezistente 3.3K Ohm
  • 1 x Buzzer
  • Fire Tata-Tata si Mama-Mama

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:

  • SPI.h
  • Wire.h
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h

Ordinea in care se vor aprinde LED-urile va fi salvate si actualizate intr-un array.

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.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

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

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

  • 08.05.2022: Alegerea temei pentru proiect
  • 15.05.2022: Comandarea resurelor hardware
  • 20.05.2022: Finalizarea unei variante initiale
  • 24.05.2022: Adaugarea ecranului in cadrul proiectului
  • 26.05.2022: Mici ajustari ale codului
  • 27.06.2022: Finalizarea documentatiei

Bibliografie/Resurse

pm/prj2022/rtilimpea/simonsays.1654121213.txt.gz · Last modified: 2022/06/02 01:06 by ionut.niculaie
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0