Differences

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

Link to this comparison view

pm:prj2022:cristip:pong_game_2 [2022/05/29 14:06]
elena.calcan
pm:prj2022:cristip:pong_game_2 [2022/05/29 21:39] (current)
elena.calcan
Line 19: Line 19:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> 
 **Lista piese:​** ​ **Lista piese:​** ​
  
Line 27: Line 26:
   * OLED Display 0.96" 128x64 SPI   * OLED Display 0.96" 128x64 SPI
   * Fire   * Fire
-</​note>​+ 
 +**Schema electrica:​**  
 + 
 +{{ schematic_pong2.png?​800x600 }}
  
 ===== Software Design ===== ===== Software Design =====
  
 +Mediul de dezvoltare folosit: Arduino IDE.
  
-<note tip> +Biblioteci folosite:  
-Descrierea codului aplicaţiei (firmware)+  * Wire.h 
-  * mediu de dezvoltare (if any) (e.gAVR StudioCodeVisionAVR) +  * SPI.h - folosit pentru comunicare SPI 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) +  * Adafruit_GFX.h - se foloseste pentru functiile ​de afisare pe ecran 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +  * Adafruit_SSD1306.h - folosit pentru comunicarea intre arduino si display 
-  * (etapa 3) surse şi funcţii implementate + 
-</​note>​+=== Implementare === 
 + 
 +  * Inainte de de incepera jocului este afisat un meniu ce contiune optiunile joculuiOptiunile reprezinta punctajul pana la care se poate jucaacestea fiind: 3, 5 sau 7 puncte. 
 +  * Navigarea prin meniu si alegerea optiunii se realizeaza prin intermediul butoanelor celui de al doilea jucator. 
 +  * Dupa ce optiunea este selectata, jucatorii se pot pregati de joc in timp ce bara de loading se incarca pana la 100%
 +  * Jucatorii sunt reprezentati de cate o bara verticala, mingea de un pixel, obstacolele de patrulatere de diferite dimensiuni, iar elementul de pick-up de un cerc. 
 +  * Jucatorii se deplaseaza doar pe axa OY, iar mingea pe XOY. 
 + 
 +== Desfasurarea jocului ==   
 +   La inceputul fiecarei runde se alege random in ce directie porneste bila. 
 +   * Jucatorii trebuie sa isi apere peretele din spatele fiecaruia, astfel daca mingea o loveste se pune punct pentru adversar. 
 +   * Pe parcursul jocului se afiseaza scorul curent si cate elemente de pick-up au colectat jucatorii. De asemenea, ​ apar obstacole si elemente de pick-up, pe pozitii random din ecran. 
 +   * Elementul de pick-up apare pe teren dupa o anumita perioada de timp dupa colectarea acestuia. Atunci cand un jucator ia un element de pick-up, atunci el are posibilitatea de a schimba directia de mers a bilei atunci cand vrea. Elementul este luat de un jucator daca bila a fost lovita de acesta inainte. 
 +   * Obstacolul isi schimba pozitia si dimensiunea dupa ce este lovit de minge sau la inceperea unei noi runde. Atunci cand bila loveste obstacolul, acesta ricoseaza. 
 +   * Jocul se termina atunci cand unul dintre jucatori ajunge la numarul maxim de puncte, selectat din meniu. 
 +   * La sfarsit se afiseaza pe display castigatorul si se sarbatoresete castigul lui prin redearea unei piese la buzzer. Pe urma se trece din nou la pagina de meniu.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip+{{ rezultat_pongv2.jpg?​664 x 546 }} 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</note>+** Reprezentare imagini ** 
 + 
 +1. Stanga sus -circuit electric  ​ 
 + 
 +2Dreapta sus -> pagina de meniu in care se doreste selectarea cifrei 5  ​ 
 + 
 +3. Stanga jos -bara de loading  
 + 
 +4. Dreapta jos -> desfasurare joc 
 + 
 + 
 +Aici se poate gasi un [[https://​drive.google.com/​drive/​folders/​1hT7z8P12vtGG49nF-HN9FSsSU9aWy-ET?​usp=sharing| Demo]].
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Proiectul a fost util pentru a intelege legatura dintre hardware si software si cum sa le combin rezultand astfel un produs palpabil.
  
-<note warning>​ +===== 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**. +Codul sursa este valabil ​pe [[https://github.com/​elenacalcan26/​PongGame-v2.0 | GitHub]]
-</​note>​+
  
-===== Jurnal =====+Arhiva: {{ponggamev2.zip}}
  
-<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 =====+===== Resurse =====
  
-<​note>​ +   * https://​learn.adafruit.com/​monochrome-oled-breakouts/​arduino-library-and-examples 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +   * https://​lastminuteengineers.com/​oled-display-arduino-tutorial/​ 
-</note>+   https://​www.youtube.com/​watch?​v=u5drIsmr6UM&​ab_channel=%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD 
 +   https://​create.arduino.cc/​projecthub/​ronfrtek/​arduino-oled-display-menu-with-option-to-select-e85f04 
 +   https://​create.arduino.cc/​projecthub/​GeneralSpud/​passive-buzzer-song-take-on-me-by-a-ha-0f04a8 
 +   * https://​gist.github.com/​mikeputnam/2820675
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2022/cristip/pong_game_2.1653822408.txt.gz · Last modified: 2022/05/29 14:06 by elena.calcan
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