Differences

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

Link to this comparison view

pm:prj2025:avaduva:darius.ignatescu [2025/05/24 20:51]
darius.ignatescu
pm:prj2025:avaduva:darius.ignatescu [2025/05/25 08:13] (current)
darius.ignatescu [Demo video proiect cu explicatii]
Line 147: Line 147:
     * In partea de set-up configuram butoanele in stare de pull-up si initializam afisajul pe display-ul SPI si timer 2 pentru a cauza mai tarziu terminarea jocului dupa 60 de secunde printr-o intrerupere.     * In partea de set-up configuram butoanele in stare de pull-up si initializam afisajul pe display-ul SPI si timer 2 pentru a cauza mai tarziu terminarea jocului dupa 60 de secunde printr-o intrerupere.
     * Din punct de vedere logic, jocul este gandit la nivel de 6 stari, avand urmatoarele semnificatii:​     * Din punct de vedere logic, jocul este gandit la nivel de 6 stari, avand urmatoarele semnificatii:​
-      * dddd +      * START_GAME = starea initiala; e responsabila doar de contorizarea momentului in care a inceput propriu-zis jocul, dupa care trecem in starea CHOOSE_MOLE 
 +      * CHOOSE_MOLE = se asteapta alegerea unui numar aleator care va desemna "​Mole-ul"​ care iese la suprafata. Mai intai se verifica daca jucatorul a ales sa reseteze jocul(a apasat pe B5) sau nu. Daca se continua jocul curent, alegem un "​Mole"​ aleator (diferit intre iteratii consecutive pentru un joc mai interesant),​ ridicam steguletul corespunzator acestuia, crestem numarul de aparitii si tranzitionam in starea SURFACE_MOLE 
 +      * SURFACE_MOLE = un "​Mole"​ este la suprafata si trebuie sa fie lovit pentru a obtine puncte(trebuie ca butonul corespunzator sa fie apasat in tr-un timp mai mic decat cel de reactie). Cand apasam pe buton sau expira timpul, "​Mole-ul"​ intra in vizuina si mergem in starea de actualizare a tabelei(REFRESH_SCORE). 
 +      * REFRESH_SCORE = aici actualizam statisticile,​ dupa care ne intoarcem in CHOOSE_MOLE 
 +      * RESET_WAIT = ajungem in aceasta stare daca se apasa pe B5(RESET_BUTTON de la pin 8); se reseteaza jocul dupa ce tin apasat macar jumatate de secunda, dupa care eliberez 
 +      * GAME_OVER = stare finala; ajung aici dupa ce expira timpul  
 + 
 +    * Explicare setare durata la 60 de secunde 
 +      * Frecventa pe Arduino Uno este 16MHz = 16 000 000 Hz. Prin setarea prescaler-ului la 1024 rezulta 16000000 / 1024 = 15625 de tick-uri pe secunda. Prin setarea registrului OCR2A la 249, programul va itera prin 250 de valori(de la 0 la 249) pentru a produce a intrerupere ==> o intrerupere are loc periodic la 250 / 15625 = 0.016s ==> este nevoie de 60s / 0.016s = 3750 de intreruperi ca sa pot sti ca a trecut un minut, timp dupa care trebuie sa opresc jocul. ​
   
- 
- 
-===== Software Design ===== 
- 
- 
-<note tip> 
-Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi 
-  * (etapa 3) surse şi funcţii implementate 
-</​note>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +    * Un joc interactiv pe care o sa il mai joc in viitor.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii ​=====+=====Demo video proiect cu explicatii=====
  
-===== Download =====+    * https://​www.youtube.com/​watch?​v=UiAcehrmnwM
  
-<note warning>​ +=====Link Github=====
-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**. +    ​https://​github.com/​dariuusss/​software-pm-milestone-3
-</​note>​+
  
-===== Jurnal ===== 
  
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2025/avaduva/darius.ignatescu.1748109061.txt.gz · Last modified: 2025/05/24 20:51 by darius.ignatescu
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