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/15 12:39]
elena.calcan created
pm:prj2022:cristip:pong_game_2 [2022/05/29 21:39] (current)
elena.calcan
Line 4: Line 4:
  
 ===== Introducere ===== ===== Introducere =====
-<note tip> 
 Joc interactiv de pong 1v1 in care jucatorii se deplaseaza folosind butoane. Fata de jocul clasic, jucatorii Joc interactiv de pong 1v1 in care jucatorii se deplaseaza folosind butoane. Fata de jocul clasic, jucatorii
 au posibilitatea de a controla directia bilei prin colectarea unui element de pick-up aparut in timpul jocului. au posibilitatea de a controla directia bilei prin colectarea unui element de pick-up aparut in timpul jocului.
 De asemenea, in timpul jocului pot aparea obstacole astfel incat sa ii incurce pe cei doi jucatori. De asemenea, in timpul jocului pot aparea obstacole astfel incat sa ii incurce pe cei doi jucatori.
-</​note>​ 
  
 ===== Descriere generală ===== ===== Descriere generală =====
-<​note>​ 
 **Schema Bloc:​** ​ **Schema Bloc:​** ​
  
 {{ pongv2_schema_bloc.jpg }} {{ pongv2_schema_bloc.jpg }}
  
-</​note>​+ 
 +Jocul este implementat pe o placuta Arduino Uno, afisarea realizandu-se pe un display. Controlul jucatorilor se face prin intermediul butoanelor, existand si un buton special pentru schimbarea directiei bilei. Exista si un buzzer pentru a semnala coliziunile bilei cu terenul si obstacolele si cand atunci cand un jucator inscrie. 
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> 
 **Lista piese:​** ​ **Lista piese:​** ​
  
Line 28: 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.1652607588.txt.gz · Last modified: 2022/05/15 12:39 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