Differences

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

Link to this comparison view

pm:prj2022:rtilimpea:pingponggame [2022/05/30 17:46]
eduard.petre [Software Design]
pm:prj2022:rtilimpea:pingponggame [2022/05/30 22:04] (current)
eduard.petre [Rezultate Obţinute]
Line 1: Line 1:
 ====== Ping Pong Game ====== ====== Ping Pong Game ======
 PETRE-ANTICA Eduard-Dominic PETRE-ANTICA Eduard-Dominic
-335 CBa+335CBa
 ===== Introducere ===== ===== Introducere =====
  
Line 43: Line 43:
 ===== Hardware Design ===== ===== Hardware Design =====
  
 +Schema TINKERCAD:
 {{ :​pm:​prj2022:​rtilimpea:​schema_tinkercad.jpg?​700 |}} {{ :​pm:​prj2022:​rtilimpea:​schema_tinkercad.jpg?​700 |}}
  
Line 52: Line 53:
 Intrucat am dorit ca jucatorii sa aiba suficient spatiu pentru a controla mini-breadboard-urile,​ am folosit fire tata-tata legate la fire mama-tata. Intrucat am dorit ca jucatorii sa aiba suficient spatiu pentru a controla mini-breadboard-urile,​ am folosit fire tata-tata legate la fire mama-tata.
 </​note>​ </​note>​
 +
  
 Componente hardware utilizate: Componente hardware utilizate:
Line 66: Line 68:
 | Fire mama-tata |  6  | | Fire mama-tata |  6  |
  
 +
 +
 +
 +Schema electrica:
 {{ :​pm:​prj2022:​rtilimpea:​simulare_pm_page-0001_-_copy.jpg?​700 |}} {{ :​pm:​prj2022:​rtilimpea:​simulare_pm_page-0001_-_copy.jpg?​700 |}}
 ===== Software Design ===== ===== Software Design =====
Line 80: Line 86:
 Pentru a afla distantele la care se deplaseaza obiectele de pe display (minge si placi), am folosit o implementare ce se foloseste de timpul dintre 2 rulari consecutive ca un framerate dupa care sa se afle distantele. Astfel, chiar daca intre 2 rulari consecutive framerate-ul difera cu cateva milisecunde,​ piesele vor fi percepute ca miscandu-se cu aceeasi viteza. Pentru a afla distantele la care se deplaseaza obiectele de pe display (minge si placi), am folosit o implementare ce se foloseste de timpul dintre 2 rulari consecutive ca un framerate dupa care sa se afle distantele. Astfel, chiar daca intre 2 rulari consecutive framerate-ul difera cu cateva milisecunde,​ piesele vor fi percepute ca miscandu-se cu aceeasi viteza.
  
 +
 +Pentru a afla cum se deplaseaza obiectele de pe display, trebuie sa aflam
 +pozitia lor relativa fata de cea curenta pentru urmatorul "​frame";​ astfel, pentru deplasarea pe axa Ox avem:
 +
 +                     ​new_pos_x = pos_x + a * delta_x
 +
 +                     ​delta_x = cos(angle) * delta * velocity
 {{ :​pm:​prj2022:​rtilimpea:​formula.jpg?​800 |}} {{ :​pm:​prj2022:​rtilimpea:​formula.jpg?​800 |}}
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +{{ :​pm:​prj2022:​rtilimpea:​whatsapp_image_2022-05-30_at_21.58.16.jpeg?​600 |}}
  
-<note tip> +{{ :​pm:​prj2022:​rtilimpea:​whatsapp_image_2022-05-30_at_21.58.17_1_.jpeg?​600 |}}
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
 +{{ :​pm:​prj2022:​rtilimpea:​whatsapp_image_2022-05-30_at_21.58.19.jpeg?​600 |}}
 ===== Concluzii ===== ===== Concluzii =====
 +Folosind notiunile invatate la laborator, precum si datasheet-urile echipamentului hardware folosit, am reusit sa creez un joc simplu, dar care ofera toate functionalitatile pe care mi le-am propus sa le aiba.
  
 +
 +Imbunatatiri ce ar putea fi aduse proiectului:​
 +  * folosirea unui display mai mare, care sa permita jucatorilor sa vada mai bine ceea ce se intampla
 +  * lipirea componentelor pe placi de prototipare cablaj, nu pe un breadboard, pentru a asigura faptul ca firele si butoanele nu se vor desprinde in timp ce sunt folosite
 ===== Download ===== ===== Download =====
  
-<​note ​warning+<​note ​important
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +Arhiva ce contine fisierul sursa pentru rulare.
- +
-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**. +
-</​note>​+
  
-===== Jurnal =====+OBS: Pentru rularea cu succes a programului,​ trebuie ca local sa se instaleze bibliotecile:​ 
 +  * **Adafruit_GFX.h** 
 +  * **Adafruit_SSD1306.h**
  
-<note tip> +{{:​pm:​prj2022:​rtilimpea:​ping_pong.zip|}}
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+
 </​note>​ </​note>​
 +
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** ​şi **Resurse Hardware**.+Resurse Hardware (datasheets):​ 
 +  * [[https://​www.vishay.com/​docs/​37902/​oled128o064dbpp3n00000.pdf|DISPLAY ​OLED 128x64 I2C/TWI ]] 
 +  ​[[https://​www.tme.eu/​Document/​f21095d16ba59bdbd6f5bf5f2f188c94/​ld-bzen-1205.pdf|PIEZO BUZZER - LOUDITY LD-BZEN-1205]] 
 +  ​[[https://​ocw.cs.pub.ro/​courses/​_media/​pm/​doc8272.pdf|ATmega328p]] 
 + 
 +Resurse Software
 +  ​[[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab0-2022|Laborator 0 PM - GPIO]] 
 +  ​[[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab1-2022|laborator 1 PM - USART]] 
 +  ​[[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab6-2022|Laborator 6 PM - I2C]] 
 +  ​[[https://​github.com/​adafruit/​Adafruit-GFX-Library|Biblioteca Adafruit_GFX]] 
 +  ​[[https://​github.com/​adafruit/​Adafruit_SSD1306|Biblioteca Adafruit_SSD1306]] 
 +  ​[[https://​learn.adafruit.com/​adafruit-gfx-graphics-library/​overview|Introducere in Adafruit_GFX]]
 </​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/rtilimpea/pingponggame.1653921994.txt.gz · Last modified: 2022/05/30 17:46 by eduard.petre
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