Differences

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

Link to this comparison view

pm:prj2024:mdinica:gabriela.petrache [2024/05/04 14:16]
gabriela.petrache [Descriere generală]
pm:prj2024:mdinica:gabriela.petrache [2024/05/26 21:59] (current)
gabriela.petrache [Download]
Line 9: Line 9:
  
 Jocul se va juca cu ajutorul unui joystick, care va fi conectat la placa de dezvoltare. Există butoane pentru resetarea jocului și pentru oprirea/​pornirea muzicii de fundal, care iese din buzzer. Jocul va fi afișat pe un display LCD de 1.3 inch. \\ Jocul se va juca cu ajutorul unui joystick, care va fi conectat la placa de dezvoltare. Există butoane pentru resetarea jocului și pentru oprirea/​pornirea muzicii de fundal, care iese din buzzer. Jocul va fi afișat pe un display LCD de 1.3 inch. \\
 +\\
 {{ :​pm:​prj2024:​mdinica:​diagrama.png?​600 |}} {{ :​pm:​prj2024:​mdinica:​diagrama.png?​600 |}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
 <note tip> <note tip>
-Aici puneţi tot ce ţine de hardware design+Listă ​de piese
-  * listă de piese +  * Modul microcontroler universal Arduino Uno R3 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +  * Afișaj grafic 128x160px 
-  * diagrame de semnal ​ +  * Modul Joystick 
-  * rezultatele simulării+  * Modul cu buton 
 +  * Buzzer pasiv 
 + 
 + 
 + 
 </​note>​ </​note>​
 +**Schematica proiectului**
 +
 +{{:​pm:​prj2024:​mdinica:​2048_sch.png?​700|}}
  
 +{{:​pm:​prj2024:​mdinica:​2048_hww.png?​500|}}
 ===== Software Design ===== ===== Software Design =====
  
Line 25: Line 35:
 <note tip> <note tip>
 Descrierea codului aplicaţiei (firmware): Descrierea codului aplicaţiei (firmware):
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +  * mediu de dezvoltare: platform.io 
-  * librării şi surse 3rd-party ​(e.g. Procyon AVRlib) +  * librării şi surse 3rd-party: Bibliotecile Adafruit_GFX,​ Adafruit_ST7735
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
  
 +** Descrierea functiilor implementate **
 +  * **setup()**:​ Funcție specială în Arduino care este apelată o singură dată la pornirea plăcii pentru a inițializa ecranul și matricea de joc.
 +
 +  * **loop()**: Funcție specială în Arduino care este apelată în mod repetat după ce setup() se termină, este folosită pentru a gestiona logica jocului și a actualiza ecranul.
 +
 +  * **initializeGrid()**:​ Funcție care inițializează matricea de joc.
 +
 +  * **addRandomTile()**:​ Funcție care adaugă o nouă "​plăcuță"​ într-o poziție aleatoare pe tabla de joc. O nouă plăcuță cu valoarea 2 sau 4 este adăugată într-o poziție aleatoare după fiecare mutare, cu probabilitate de 90%, respectiv 10%.
 +
 +  * **drawGrid()**:​ Funcție care desenează grila de joc pe ecranul TFT.
 +
 +  * **drawTile(int x, int y, int value)**: Funcție care desenează o "​plăcuță"​ cu o anumită valoare într-o anumită poziție pe grila de joc.
 +
 +  * **moveLeft()/​moveRight()/​moveUp()/​moveDown()**:​ Funcții care mută toate "​plăcuțele"​ de pe grila de joc la direcția specificată,​ conform regulilor jocului.
 +  * **bool isGameOver()**:​ Funcție care verifică dacă s-a terminat jocul, adică dacă nu mai sunt mutări posibile.
 +  * **void drawGameOverScreen()**:​ Funcție care desenează ecranul de game over și face buzzer-ul să scoată un sunet.
 + 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+[[https://​youtu.be/​jBrJPpIRGsY|Videoclip Demo]] 
 + 
 +[[https://​github.com/​gabrielapetrache/​Jocul-2048/​tree/​main | Repository Github]]
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 +În concluzie, acest proiect a fost o modalitate excelentă de a învăța și de a aplica cunoștințele despre programare, hardware și interacțiunea utilizatorului într-un mediu practic și distractiv.
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-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ă ;-). +{{:pm:prj2024:mdinica:2048_game.zip|}}
- +
-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>​ </​note>​
  
Line 50: Line 75:
  
 <note tip> <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 ===== +    * - **4 mai** - introducere + componente 
- +  ​* ​  - **16 mai** - hardware design 
-<​note>​ +  ​**26 mai** - finalizare proiect
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+
 </​note>​ </​note>​
- 
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
  
pm/prj2024/mdinica/gabriela.petrache.1714821394.txt.gz · Last modified: 2024/05/04 14:16 by gabriela.petrache
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