Differences

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

Link to this comparison view

pm:prj2025:atoader:andrei_silviu.voicu [2025/05/26 21:27]
andrei_silviu.voicu [Software Design]
pm:prj2025:atoader:andrei_silviu.voicu [2025/05/28 14:04] (current)
andrei_silviu.voicu [Software Design]
Line 24: Line 24:
 **Schemă bloc:** **Schemă bloc:**
  
-{{:​pm:​prj2025:​atoader:​schema-bloc-voicu.jpeg?300|}} +{{:​pm:​prj2025:​atoader:​schema-voicu.jpg?300|}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 59: Line 58:
  
 **Algoritmi și structuri implementate:​** **Algoritmi și structuri implementate:​**
-  ​* **Structuri personalizate:​** Game, Snake, Point, ScoreEntry, Settings, pentru stocarea stării interne+  * Structuri personalizate:​ Game, Snake, Point, ScoreEntry, Settings, pentru stocarea stării interne
   * Meniu interactiv scrollabil cu selecție și confirmare   * Meniu interactiv scrollabil cu selecție și confirmare
   * Gestionare a scorurilor cu salvare persistentă în fișier binar pe card SD   * Gestionare a scorurilor cu salvare persistentă în fișier binar pe card SD
   * Cronometru de joc bazat pe millis() pentru măsurarea duratei rundei   * Cronometru de joc bazat pe millis() pentru măsurarea duratei rundei
-  ​* **Logica jocului Snake:** detecție coliziuni, extindere șarpe, generare pseudo-random a punctelor+  * Logica jocului Snake: detecție coliziuni, extindere șarpe, generare pseudo-random a punctelor
   * Debounce software pentru butoane (prin verificarea valorii lui millis())   * Debounce software pentru butoane (prin verificarea valorii lui millis())
   * Temporizare afișare ecrane (e.g. "Game Over", "You Win") cu delay()   * Temporizare afișare ecrane (e.g. "Game Over", "You Win") cu delay()
Line 83: Line 82:
 Funcțiile implementate sunt separate clar pe module, urmărind o arhitectură clară și reutilizabilă. Funcțiile implementate sunt separate clar pe module, urmărind o arhitectură clară și reutilizabilă.
  
-**Link GitHub:** https://​github.com/​andreiv03/​snake-game+**Link GitHub:** 
 + 
 +https://​github.com/​andreiv03/​snake-game
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +**Video demonstrativ:​** 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. + 
-</note>+https://​www.youtube.com/​shorts/aLnb0Cn6LsI
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download ===== +Proiectul "Snake Game pe Arduino"​ demonstrează modul în care conceptele fundamentale de interfațare hardware pot fi aplicate într-un context practic și intuitiv. Prin îmbinarea I2CSPIPWM și timere hardwaream reușit să dezvolt ​un sistem embedded interactivmodular șextensibil, ​care combină logica jocului clasic Snake cu funcționalități moderne precum salvarea scorurilorafișaj grafic și feedback vizual.
- +
-<note warning>​ +
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surseschemeetc. Un fişier README, un ChangeLogun script de compilare ş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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​note>​ +
- +
-===== Jurnal =====+
  
-<note tip> +În urma realizării acestui ​proiect:
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect ​progresul proiectului. +
-</​note>​+
  
-===== Bibliografie/​Resurse =====+  * Am aprofundat lucrul cu magistralele I2C și SPI, învățând cum să integrez mai multe module pe aceleași magistrale fără conflicte. 
 +  * Am utilizat eficient timerul hardware millis() pentru controlul timpului de joc și pentru debounce-ul butoanelor. 
 +  * Am structurat codul pe module independente,​ ceea ce facilitează mentenanța și extinderea proiectului. 
 +  * Am înțeles limitările resurselor hardware (RAM, pini, conflicte de biblioteci) și am luat decizii tehnice pentru optimizarea funcționării sistemului.
  
-<​note>​ +Pe viitor, proiectul poate fi extins ​cu:
-Listă ​cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +
-</​note>​+
  
-<​html><​class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​+  * Implementarea unui sistem de scoruri bazat pe nume introduse de utilizator. 
 +  * Integrarea unui buzzer pentru feedback sonor. 
 +  * Posibilitatea de selecta mai multe niveluri de dificultate. 
 +  * Migrarea către un microcontroler cu mai multă memorie pentru suport extins de funcționalități.
  
 +În concluzie, acest proiect nu este doar un joc recreativ, ci și un cadru educațional valoros pentru învățarea dezvoltării sistemelor embedded. A oferit o platformă ideală pentru consolidarea cunoștințelor teoretice prin practică, dovedindu-se util atât pentru începători,​ cât și pentru cei care doresc să experimenteze interacțiunea complexă dintre software și hardware.
pm/prj2025/atoader/andrei_silviu.voicu.1748284048.txt.gz · Last modified: 2025/05/26 21:27 by andrei_silviu.voicu
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