Differences

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

Link to this comparison view

pm:prj2022:cristip:ponggame [2022/05/23 17:23]
robert.coconu [Software Design]
pm:prj2022:cristip:ponggame [2022/05/24 03:29] (current)
robert.coconu [Download]
Line 49: Line 49:
 U8glib este o biblioteca de functii grafice folosita pentru ecrane monocrome de tip TFT sau OLED. Aceasta ofera si suport pentru comunicarea I2C intre Arduino si ecran. U8glib este o biblioteca de functii grafice folosita pentru ecrane monocrome de tip TFT sau OLED. Aceasta ofera si suport pentru comunicarea I2C intre Arduino si ecran.
  
 +=== Algoritmi si Structuri Folosite ===
  
 +Aplicatia dispune de optiunile urmatoare: SOUND, PAD_SPEED, BALL_SPEED, SKEW, PAD_SIZE, MULTIPLAYER. Aceste optiuni sunt integrate intr-o `struct` ce contine numele, valoarea minima, valoarea maxima, valoarea prin care incrementam si valoarea curenta a optiunii respective. De exemplu, un element al acestei structuri este de forma: `{"​Ball-Speed", ​  1, 19,  1,  4}`.
  
-===== Rezultate Obţinute =====+Pentru ciclarea prin meniul de optiuni folosim apasarea joystick-ului,​ pentru a previne fenomenul de debouncing tinem cont de timpul de la ultima apasare.
  
-<note tip> +Pentru a verifica rezultatul jocului ( daca mingea gaseste un obstacol sau nu ) verificam pozitia acesteia in ecran. Pentru lovirea peretilor de sus si de jos vom inmulti cu -1 factorul cu care incrementam pozitia bilei pe Oy. Pentru lovirea cu paleta jucatorului vom schimba inversa directia pe Ox iar pe Oy vom decide directia in functie de pozitia bilei fata de mijlocul paletei.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+=== Functii implementate ​=== 
 +Functiile prezente sunt folosite pentru emiterea sunetelor, schimbarea setarilor si verificarea pozitiei mingii.
  
-===== Download =====+Sunt folosite functii pentru emiterea sunetelor pentru lovirea peretilor, paletei sau pentru pierderea mingii.
  
-<note warning>​ +In functia pentru schimbarea setarilor se verifica in care setare se aflam in acel moment ​de timp si in functie de inputul de la joystick vom incrementa sau decrementa valoarea setarii respective.
-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**. +Functiile pentru verificarea pozitiei mingii au scopul ​de a printa aceste informatii in Serial Monitor cu scopul verificarii rularii corecte a aplicatiei.
-</​note>​+
  
-===== Jurnal ===== 
  
-<note tip> +===== Rezultate Obţinute ===== 
-Puteți avea și secțiune ​de jurnal în care să poată urmări asistentul ​de proiect ​progresul proiectului+ 
-</​note>​+Rezultatul obtinut este aplicatie a jocului Pong folosind un ecran 128x64 ce comunica cu o placuta Arduino.  
 +Scorul obtinut pentru Singleplayer este afisat pe partea dreapta a ecranului, primul contor este incrementat cu fiecare pierdere iar cel de-al doilea este incrementat de fiecare data cand jucatorul loveste mingea. Pentru modul Multiplayer impotriva AI-ului, scorul fiecaruia este afisat in dreptul paletei fiecaruia.  
 + 
 +===== Concluzii ===== 
 + 
 +Aplicatia Pong implementata este complexa in felul in care utilizatorul poate sa modifice modul de functionare prin meniul pus la dispozitie. Acest proiect ​reprezinta o modalitate buna pentru familiarizarea cu comunicarea I2C, folosirea intrerperilor si a ecranelor OLED in aplicatii interactive
 +===== Download ===== 
  
 +{{:​pm:​prj2022:​cristip:​pong_game.zip|}}
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+  * https://​learn.adafruit.com/​adafruit-gfx-graphics-library 
 +  ​https://​www.arduino.cc/​reference/​en/​libraries/​adafruit-ssd1306/​ 
 +  ​https://​www.arduino.cc/​reference/​en/​libraries/​u8glib/​ 
 +  ​https://​docs.arduino.cc/​learn/​communication/​wire
 </​note>​ </​note>​
  
 <​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/ponggame.1653315789.txt.gz · Last modified: 2022/05/23 17:23 by robert.coconu
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