Differences

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

Link to this comparison view

pm:prj2024:ccontasel:andreea.alexandru02 [2024/05/26 23:31]
andreea.alexandru02 [Rezultate Obţinute]
pm:prj2024:ccontasel:andreea.alexandru02 [2024/05/27 14:09] (current)
andreea.alexandru02 [Software Design]
Line 20: Line 20:
 == Descriere sumară mod de funcționare == == Descriere sumară mod de funcționare ==
 <note tip> <note tip>
-Jocul implementat „Pong ​Revolition” funcționează după următorul mecanism de bază: jucătorii controlează fiecare o paletă pe tabla de joc și trebuie să lovească pucul pentru a-l trimite către adversar, scopul fiind marcarea punctelor prin trecerea pucului pe cealaltă parte a tablei de joc fără ca adversarul să-l returneze. Pe măsură ce jocul progresează,​ power-up-uri aleatorii apar pe tabla de joc. Acestea oferă avantaje sau dezavantaje temporare, modificând dinamica jocului. Pentru a captura un power-up jucătorul trebuie să își coordoneze mișcările astfel încât pucul sa intre în contact cu simbolul acestuia, activându-se automat. Mișcările vor fi ghidate prin utilizarea unui joystick care permite mișcări sus/jos, stânga/​dreapta pe un anumit perimetru.\\+Jocul implementat „Pong ​Revolution” funcționează după următorul mecanism de bază: jucătorii controlează fiecare o paletă pe tabla de joc și trebuie să lovească pucul pentru a-l trimite către adversar, scopul fiind marcarea punctelor prin trecerea pucului pe cealaltă parte a tablei de joc fără ca adversarul să-l returneze. Pe măsură ce jocul progresează,​ power-up-uri aleatorii apar pe tabla de joc. Acestea oferă avantaje sau dezavantaje temporare, modificând dinamica jocului. Pentru a captura un power-up jucătorul trebuie să își coordoneze mișcările astfel încât pucul sa intre în contact cu simbolul acestuia, activându-se automat. Mișcările vor fi ghidate prin utilizarea unui joystick care permite mișcări sus/jos, stânga/​dreapta pe un anumit perimetru.\\
 Jocul se va încheia fie când un jucător atinge un anumit număr de puncte, fie când timer-ul expiră.\\ Jocul se va încheia fie când un jucător atinge un anumit număr de puncte, fie când timer-ul expiră.\\
 De asemenea, jocul va interacționa în mod activ cu jucătorii prin lumini, sunete de victorie/​înfrângere,​ intervenții sonore redate de pe un card SD. De asemenea, jocul va interacționa în mod activ cu jucătorii prin lumini, sunete de victorie/​înfrângere,​ intervenții sonore redate de pe un card SD.
Line 126: Line 126:
 </​note>​ </​note>​
  
-===== Rezultate Obţinute ===== 
  
 <note tip> <note tip>
-În urma realizării proiectului,​ am obținut următoarele rezultate:\\ +**Concepte Software folosite:**\\ 
--> Funcționarea JoculuiAm reușit implementez o variantă a jocului Pong pe display-ul TFT controlat ​de Arduino ​UNO.\\+**-> ADC (Analog-to-Digital Converter)**:\\ 
 +Citirea joystick-urilor: Valorile analogice ​de la joystick-uri sunt citite folosind pinii ADC ai Arduino ​(PLAYER1_X, PLAYER1_Y, PLAYER2_X, PLAYER2_Y). Aceste valori sunt convertite în semnale digitale pentru a controla mișcarea paletelor.\\
  
--> Interfața UtilizatorAm dezvoltat o interfață grafică intuitivă pe display-ul TFT, utilizând bibliotecile Adafruit GFX și ST7735. Ecranul afișează clar mișcarea paletelor, mingii ​și scorul curentDe asemeneaam inclus mesaje de start și final de joc pentru ​o experiență utilizator îmbunătățită.+**-> SPI (Serial Peripheral Interface)**:\\ 
 +Controlul ​display-ului TFT: Display-ul TFT este controlat prin protocolul SPI folosind librăriile Adafruit_GFX ​și Adafruit_ST7735Pinii TFT_CS, TFT_DC, și TFT_RST sunt folosiți ​pentru ​comunicarea SPI cu display-ul.\\
  
--> Controlul ​Joystick-uluiAm dezvoltat algoritmi pentru citirea valorilor analogice de la joystick-uri și controlul paletelor, oferind o reacție rapidă șprecisă la mișcările jucătorilor.+**-> GPIO (General Purpose Input/​Output)**:​\\ 
 +Controlul ​LED-urilorLED-urile sunt controlate folosind pini GPIO. De exemplu, pinul LED_PIN, LED_GREEN_PIN ​și LED_RED_PIN sunt definiți și utilizați pentru a indica diferite stări ale jocului.\\
  
--> Feedback Audio și VizualImplementarea buzzer-ului pentru ​semnalizarea evenimentelor de joc (cum ar fi coliziunea mingii sau punctarea unui gol) și a LED-urilor ​pentru indicarea stării jocului au adăugat un nivel suplimentar de interactivitate ​și feedback în timp real pentru jucători.\\+**-> Timere:**\\ 
 +Gestionarea pickup-urilor: Timer-ele sunt utilizate ​pentru ​a gestiona apariția ​și dispariția pickup-urilor ​pe ecran (PICKUP_APPEAR_INTERVAL,​ PICKUP_TIMEDOUT). Funcția millis() este folosită pentru a măsura timpul scurs și a declanșa evenimente la intervale regulate.\\
  
--> Gestionarea Pickup-urilorAm adăugat o funcționalitate de "​pickup-uri" care apar aleator pe ecran, oferind bonusuri sau penalizări jucătorilor.\\+**-> PWM (Pulse Width Modulation):​**\\ 
 +Controlul Buzzer-uluiFuncția tone() folosită pentru controlul buzzer-ului utilizează PWM pentru a genera sunetele necesare în timpul jocului. 
 +</​note>​
  
 +
 +===== Rezultate Obţinute =====
 +
 +<note tip>
 +În urma realizării proiectului,​ am obținut următoarele rezultate:​\\
 +-> Funcționarea Jocului: Am reușit implementez o variantă a jocului Pong pe display-ul TFT controlat de Arduino UNO.\\
 +-> Interfața Utilizator: Am dezvoltat o interfață grafică intuitivă pe display-ul TFT, utilizând bibliotecile Adafruit GFX și ST7735. Ecranul afișează clar mișcarea paletelor, mingii și scorul curent. De asemenea, am inclus mesaje de start și final de joc pentru o experiență utilizator îmbunătățită.\\
 +-> Controlul Joystick-ului:​ Am dezvoltat algoritmi pentru citirea valorilor analogice de la joystick-uri și controlul paletelor, oferind o reacție rapidă și precisă la mișcările jucătorilor.\\
 +-> Feedback Audio și Vizual: Implementarea buzzer-ului pentru semnalizarea evenimentelor de joc (cum ar fi coliziunea mingii sau punctarea unui gol) și a LED-urilor pentru indicarea stării jocului au adăugat un nivel suplimentar de interactivitate și feedback în timp real pentru jucători.\\
 +-> Gestionarea Pickup-urilor:​ Am adăugat o funcționalitate de "​pickup-uri"​ care apar aleator pe ecran, oferind bonusuri sau penalizări jucătorilor.\\
 -> Documentare și Modularitate:​ Codul a fost bine documentat, iar funcțiile implementate au fost structurate modular, facilitând astfel înțelegerea și posibilele îmbunătățiri viitoare ale proiectului.\\ -> Documentare și Modularitate:​ Codul a fost bine documentat, iar funcțiile implementate au fost structurate modular, facilitând astfel înțelegerea și posibilele îmbunătățiri viitoare ale proiectului.\\
  
-În concluzie, proiectul ​nostru ​a atins obiectivele propuse, oferind o experiență de joc atractivă.\\ \\+În concluzie, proiectul a atins obiectivele propuse, oferind o experiență de joc atractivă.\\ \\
  
 **Demo** -> {{:​pm:​prj2024:​ccontasel:​pong_revolution_demo.zip|}} **Demo** -> {{:​pm:​prj2024:​ccontasel:​pong_revolution_demo.zip|}}
pm/prj2024/ccontasel/andreea.alexandru02.1716755487.txt.gz · Last modified: 2024/05/26 23:31 by andreea.alexandru02
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