Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:imacovei:memorygame [2022/04/21 20:22]
mihaela.pana2211 [Bibliografie/Resurse]
pm:prj2022:imacovei:memorygame [2022/05/27 23:22] (current)
mihaela.pana2211 [Jurnal]
Line 11: Line 11:
   * Hard - Secventa este redata doar prin sunet, led-urile ramanand stinse atunci cand aceasta este transmisa utilizatorului.   * Hard - Secventa este redata doar prin sunet, led-urile ramanand stinse atunci cand aceasta este transmisa utilizatorului.
  
-Utilizatorul va apasa butonul corespunzator led-ului pentru a il activa. Acesta trebuie sa respecte secventa primita la inceputul rundei. In cazul in care utilizatorul greseste jocul ia sfarsit iar led-urile vor cicla pentru a anunta acest lucru.+Utilizatorul va apasa butonul corespunzator led-ului pentru a il activa. Acesta trebuie sa respecte secventa primita la inceputul rundei. In cazul in care utilizatorul greseste jocul ia sfarsit iar led-urile vor ramane aprinse ​pentru a anunta acest lucru.
  
-{{:​pm:​prj2022:​imacovei:​memorygame-schema-bloc.png?800|}}+Scorul, inceperea jocului, cat si finalizarea jocului sunt afisate si in Serial monitor, in IDE-ul Arduino. 
 + 
 +{{:​pm:​prj2022:​imacovei:​schema_bloc_memorygame.jpg?direct&​600|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 24: Line 26:
   * Butoane de tip push   * Butoane de tip push
   * Fire   * Fire
-  * Display+  * Breadboard
  
 +{{:​pm:​prj2022:​imacovei:​memorygame_design_hardware.jpeg?​nolink&​600|}}
 +
 +{{:​pm:​prj2022:​imacovei:​memorygame_design_tinkercad.jpeg?​nolink&​600|}}
 ===== Software Design ===== ===== Software Design =====
  
 +Am folosit 4 LED-uri, prin intermediul pinilor 11, 10, 9 si 8.
 +
 +Cele 4 butoane de tip push sunt conectate la pinii 7, 6, 5, 4 si, in acelasi timp, la pin-ul 2 (comun tuturor) prin care sunt activate intreruperile. AStfel, comanda ''​attachInterrupt(digitalPinToInterrupt(commonPin),​ pressInterrupt,​ FALLING);''​ ataseaza functia pressInterrupt ce beneficiaza de un debounce de 200 de milisecunde pentru a evita apasarea concomitenta a doua butoane. Pentru a nu utiliza delay-uri in cadrul intreruperilor,​ vom pastra index-ul butonului apasat in ''​interruptIndex'',​ urmand a fi procesat in cadrul functiei loop.
 +
 +Modul de joc (dificil sau usor) este pastrat in prin intermediul variabilei ''​easyMode'',​ a carei valori este 1 pentru nivelul usor (se aprind si led-urile si este emis si sunetul) sau 0 pentru nivelul dificil (led-urile raman stinse si este redat doar sunetul).
 +
 +Secventa este generata prin intermediul functiei ''​random()''​ iar ordinea elementelor este pastrata in array-ul ''​ledseq''​. Variabila ''​isPlaying''​ controleaza daca se asteapta input de la jucator (in cazul in care variabila este setata la 1) sau daca este redata secventa de culori si sunete (in cazul in care este setata la 0).
 +
 +Verificarea input-ului este realizata la fiecare apasare de buton. In cazul in care a fost selectata ordinea corecta va fi generat un nou element ce se va adauga la secventa. In caz contrar, cele patru becuri se vor aprinde pentru a semnala utilizatorul ca jocul a luat sfarsit.
 +
 +Atat nivelul curent cat si semnalizarea inceperii si finalizarii jocului sunt redate in serial monitor.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +**Poze**
 +
 +{{:​pm:​prj2022:​imacovei:​memorygame_demopic1.jpeg?​nolink&​600|}}
 +
 +{{:​pm:​prj2022:​imacovei:​memorygame_demopic2.jpeg?​nolink&​600|}}
 +
 +**Demo**
 +
 +Demo - nivel dificultate usor
 +
 +https://​www.youtube.com/​watch?​v=oi-Eb4Q0WPc
 +
 +Demo - nivel dificultate greu 
 +
 +https://​www.youtube.com/​watch?​v=GlC9icotdHo
 ===== Concluzii ===== ===== Concluzii =====
  
 +In concluzie, proiectul a fost unul din care am invatat multe lucruri noi: de la configurarea a mai multe butoane, folosind intreruperi,​ prin intermediul unuia din cei doi pini ce ofera intreruperi pe Arduino UNO (Pinii 2 si 3), la cum un LED asezat invers poate duce la o ora de debugging. Astfel, proiectul a reusit sa imi aduca o experienta frumoasa cand vine vorba de lucrul cu microprocesoare si ma provoaca sa incerc noi lucruri in viitor, folosind bazele deja acumulate. Din punct de vedere al problemelor intampinate,​ numarul de pini disponibili pe un Arduino UNO nu a permis atasarea unui display ce necesita un numar mare de pini pentru a functiona.
 ===== Download ===== ===== Download =====
  
 +{{:​pm:​prj2022:​imacovei:​memorygame_pana_mihaela_iuliana.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
 +
 +Alegerea temei proiectului:​ 18 aprilie 2022
 +
 +Analiza schemei bloc: 21 aprilie 2022
 +
 +Alegerea componentelor:​ 21 aprilie 2022
 +
 +Inceperea implementarii:​ 24 aprilie 2022
 +
 +Finalizarea proiectului:​ 21 mai 2022
 +
 +Finalizarea documentatiei:​ 27 mai 2022
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-{{:​pm:​prj2022:​imacovei:​memorygame_-_pana_mihaela_iuliana_-_336ca.pdf|}}+ 
 +{{:​pm:​prj2022:​imacovei:​memory_game_pana_mihaela_iuliana_336ca.pdf|}}
pm/prj2022/imacovei/memorygame.1650561720.txt.gz · Last modified: 2022/04/21 20:22 by mihaela.pana2211
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