Differences

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

Link to this comparison view

pm:prj2021:agrigore:pong [2021/06/02 12:33]
liviu.enache0211 [Download]
pm:prj2021:agrigore:pong [2021/06/02 22:22] (current)
liviu.enache0211
Line 7: Line 7:
   * La pornirea programului,​ se va afisa un ecran de "​welcome",​ iar jocul incepe cand se detecteaza input.   * La pornirea programului,​ se va afisa un ecran de "​welcome",​ iar jocul incepe cand se detecteaza input.
  
-==== Descriere generala ====+===== Descriere generala ​=====
  
 === Functionalitate === === Functionalitate ===
Line 18: Line 18:
  
  
-==== Hardware Design ====+===== Hardware Design ​=====
  
 === Componente === === Componente ===
Line 35: Line 35:
 === Conectare fizica === === Conectare fizica ===
 {{:​pm:​prj2021:​agrigore:​conectare_pong.jpeg?​600|}} {{:​pm:​prj2021:​agrigore:​conectare_pong.jpeg?​600|}}
-==== Software Design ====+ 
 +===== Software Design ​=====
  
 === Mediu de dezvoltare === === Mediu de dezvoltare ===
Line 42: Line 43:
  
 === Biblioteci === === Biblioteci ===
-[[https://​github.com/​adafruit/​Adafruit_SSD1306|Adafruit_SSD1306]] --- Biblioteca driver pentru display-uri OLED monocromate de tipul SSD1306+[[https://​github.com/​adafruit/​Adafruit_SSD1306|Adafruit_SSD1306]] --- Biblioteca driver pentru display-uri OLED monocromate de tipul SSD1306.
  
-[[https://​github.com/​adafruit/​Adafruit-GFX-Library|Adafruit GFX]] --- Contine o multitudine de functii pentru manipularea pixelilor display-urilor+[[https://​github.com/​adafruit/​Adafruit-GFX-Library|Adafruit GFX]] --- Contine o multitudine de functii pentru manipularea pixelilor display-urilor.
  
 === Functii === === Functii ===
  
 **setup()** **setup()**
-  * Seteaza pinii LED-urilor ca OUTPUT +  * Seteaza pinii LED-urilor ca OUTPUT. 
-  * Initializeaza display-ul OLED +  * Initializeaza display-ul OLED. 
-  * Afiseaza ecranul de splash+  * Afiseaza ecranul de splash.
  
 **splash()** **splash()**
-  * Afiseaza ecranul de splash folosind functii din biblioteca Adafruit GFX +  * Afiseaza ecranul de splash folosind functii din biblioteca Adafruit GFX. 
-  * Asteapta input din partea potentiometrelor pentru a incepe jocul +  * Asteapta input din partea potentiometrelor pentru a incepe jocul. 
-  * Porneste un sunet de start odata ce a primit input+  * Porneste un sunet de start odata ce a primit input.
  
 **centerPrint()** **centerPrint()**
-  * Functie ce face mai usoara afisarea de text pe centrul ecranului+  * Functie ce face mai usoara afisarea de text pe centrul ecranului.
  
 **printText()** **printText()**
-  * Functie ce face mai usoara afiseara de text la o anumita pozitie+  * Functie ce face mai usoara afiseara de text la o anumita pozitie.
  
 **calculateMovement()** **calculateMovement()**
-  * Calculeaza pozitia mingii si a paletelor (in functie de inputul oferit de potentiometre) +  * Calculeaza pozitia mingii si a paletelor (in functie de inputul oferit de potentiometre). 
-  * Verifica coliziunea mingii cu paletele, caz in care inverseaza sensul acesteia +  * Verifica coliziunea mingii cu paletele, caz in care inverseaza sensul acesteia. 
-  * Verifica daca mingea a trecut de una din palete, caz in care adauga un punct jucatorului respectiv +  * Verifica daca mingea a trecut de una din palete, caz in care adauga un punct jucatorului respectiv. 
-  * Verifica daca jocul a castigat de vreun jucator, apeland functia hasWon(CULOARE) daca este cazul+  * Verifica daca jocul a fost castigat de vreun jucator, apeland functia hasWon(CULOARE) daca este cazul.
  
 **hasWon()** **hasWon()**
-  * Afiseaza un ecran ce anunta jucatorul care a castigat +  * Afiseaza un ecran ce anunta jucatorul care a castigat. 
-  * Aprinde si stinge incontinuu LED-ul acestuia, asteptand input de la potentiometre pentru a incepe un nou joc+  * Aprinde si stinge incontinuu LED-ul acestuia, asteptand input de la potentiometre pentru a incepe un nou joc.
  
 **draw()** **draw()**
-  * Afiseaza fiecare element al jocului pe ecran +  * Afiseaza fiecare element al jocului pe ecran. 
-  * Aceste elemente sunt: terenul (format dintr un chenar dreptunghiular,​ o linie verticala punctata aflata la mijloc, scorurile jucatorilor) si paletele+  * Aceste elemente sunt: terenul (format dintr un chenar dreptunghiular,​ o linie verticala punctata aflata la mijloc, scorurile jucatorilor) si paletele.
  
 **addEffect()** **addEffect()**
-  * Aceasta functie adauga "​efect"​ mingii daca aceasta este lovita de o paleta in miscare +  * Aceasta functie adauga "​efect"​ mingii daca aceasta este lovita de o paleta in miscare. 
-  * Acest efect reprezinta marirea sau micsorarea vitezei pe axa Y a mingii, in functie de cum a fost lovita de paleta+  * Acest efect reprezinta marirea sau micsorarea vitezei pe axa Y a mingii, in functie de cum a fost lovita de paleta.
  
-==== Rezultate obtinute ====+===== Rezultate obtinute ​=====
  
   * In final, am obtinut clasicul joc de Pong cu o interfata similara cu cea regasita pe consola de jocuri Atari, complet functional si cu cateva feature-uri in plus.   * In final, am obtinut clasicul joc de Pong cu o interfata similara cu cea regasita pe consola de jocuri Atari, complet functional si cu cateva feature-uri in plus.
   * Este de asemenea foarte compact, putand fi usor pus intr-o cutie alaturi de o baterie si folosit ca si joc handheld.   * Este de asemenea foarte compact, putand fi usor pus intr-o cutie alaturi de o baterie si folosit ca si joc handheld.
 +
 +[[https://​youtu.be/​nmD0pKptaec|Demo]]
  
 === Derularea jocului === === Derularea jocului ===
Line 93: Line 96:
 {{:​pm:​prj2021:​agrigore:​won_pong.jpeg?​500|}} {{:​pm:​prj2021:​agrigore:​won_pong.jpeg?​500|}}
  
-==== Concluzii ====+===== Concluzii ​=====
  
   * Proiectul functioneaza si obtine rezultatele asteptate.   * Proiectul functioneaza si obtine rezultatele asteptate.
Line 102: Line 105:
   * Datorita folosirii Arduino Nano, acesta este compact si portabil.   * Datorita folosirii Arduino Nano, acesta este compact si portabil.
  
-==== Download ====+===== Download ​=====
   * {{:​pm:​prj2021:​agrigore:​pong.zip|Arhiva sursa}}   * {{:​pm:​prj2021:​agrigore:​pong.zip|Arhiva sursa}}
  
-==== Jurnal ====+===== Jurnal ​=====
   * 25/4: crearea paginii Wiki, descriere, diagrama bloc.   * 25/4: crearea paginii Wiki, descriere, diagrama bloc.
   * 7/5: achizitionarea componentelor.   * 7/5: achizitionarea componentelor.
Line 115: Line 118:
   * 2/6: finalizarea paginii Wiki.   * 2/6: finalizarea paginii Wiki.
  
-==== Bibliografie/​Resurse ====+===== Bibliografie/​Resurse ​=====
   * [[https://​randomnerdtutorials.com/​guide-for-oled-display-with-arduino/​|Utilizare display OLED]]   * [[https://​randomnerdtutorials.com/​guide-for-oled-display-with-arduino/​|Utilizare display OLED]]
   * {{:​pm:​prj2021:​agrigore:​plusivo_nano_starter_kit_guide.pdf|}}   * {{:​pm:​prj2021:​agrigore:​plusivo_nano_starter_kit_guide.pdf|}}
pm/prj2021/agrigore/pong.1622626407.txt.gz · Last modified: 2021/06/02 12:33 by liviu.enache0211
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