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:43]
darius.ignatescu
pm:prj2025:avaduva:darius.ignatescu [2025/05/25 08:13] (current)
darius.ignatescu [Demo video proiect cu explicatii]
Line 142: Line 142:
  
     * Pentru pozitia de minim a potentiometrului(maxim stanga, 0V), conform maparii facute prin program, am obtinut frecventa cea mai mare de aparitie a viermelui(1 / 0.5s = 2Hz), iar pentru pozitia de maxim a potentiometrului(5V,​ maxim dreapta) am obtinut frecventa cea mai mica de aparitie(0.5 Hz = 1 / 2s)     * Pentru pozitia de minim a potentiometrului(maxim stanga, 0V), conform maparii facute prin program, am obtinut frecventa cea mai mare de aparitie a viermelui(1 / 0.5s = 2Hz), iar pentru pozitia de maxim a potentiometrului(5V,​ maxim dreapta) am obtinut frecventa cea mai mica de aparitie(0.5 Hz = 1 / 2s)
-  
  
 +=====Explicare schelet si interactiune intre functionalitati=====
  
-===== Software Design =====+    * 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:​ 
 +      * 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 
-<note tip> +      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 249pentru 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 minuttimp dupa care trebuie sa opresc jocul.  
-Descrierea codului aplicaţiei (firmware):​ +
-  ​mediu de dezvoltare ​(if any(e.gAVR StudioCodeVisionAVR) +
-  * 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.1748108598.txt.gz · Last modified: 2025/05/24 20:43 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