Differences

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

Link to this comparison view

pm:prj2025:rnedelcu:alexandra.londraliu [2025/05/27 15:39]
alexandra.londraliu [Hardware Design]
pm:prj2025:rnedelcu:alexandra.londraliu [2025/05/27 16:15] (current)
alexandra.londraliu [Download]
Line 30: Line 30:
  
 ===== Software Design ===== ===== Software Design =====
- 
- 
 <note tip> <note tip>
 Descrierea codului aplicaţiei (firmware): Descrierea codului aplicaţiei (firmware):
Line 54: Line 52:
       -- Interacțiune hardware: Utilizează un buton fizic pentru hrănirea animalului       -- Interacțiune hardware: Utilizează un buton fizic pentru hrănirea animalului
       -- Interacțiune software: Acceptă comenzi prin interfața serială pentru activarea diverselor animații și funcții       -- Interacțiune software: Acceptă comenzi prin interfața serială pentru activarea diverselor animații și funcții
 +  -  Mini-joc "​Prinde Șoriceii":​
 +      -- Algoritm de control al jocului: Sistem de stare pentru gestionarea fazelor de joc (în desfășurare,​ câștigat, pierdut)
 +      -- Algoritm de mișcare a șoricelului:​ Deplasare pe axa Y cu viteză progresivă crescândă
 +      -- Algoritm de detecție a coliziunilor:​ Verifică distanța relativă între pisică și șoricel pentru determinarea prinderii
 +      -- Sistem de punctaj: Acordă puncte pentru fiecare șoricel prins și monitorizează progresul
 +      -- Control dual cu butoane: Folosește 2 butoane fizice pentru mișcarea pisicii pe axa X în timpul jocului
   * funcţii implementate:​   * funcţii implementate:​
   -  Funcții principale   -  Funcții principale
-      -- setup(): Inițializează componentele hardware, afișează mesaje de bun venit, configurează pinii pentru LED-uri și buton +      -- setup(): Inițializează componentele hardware, afișează mesaje de bun venit, configurează pinii pentru LED-uri și butoane 
-      -- loop(): Buclă principală care verifică comenzile, ​butonul, actualizează nivelul de foame și starea LED-urilor+      -- loop(): Buclă principală care verifică comenzile, ​butoanele, actualizează nivelul de foame și gestionează modul de joc
   -  Funcții de verificare și procesare   -  Funcții de verificare și procesare
       -- checkCommands():​ Verifică și procesează comenzile primite prin interfața serială       -- checkCommands():​ Verifică și procesează comenzile primite prin interfața serială
Line 63: Line 67:
       -- checkHungry():​ Actualizează nivelul de foame și generează mesaje de avertizare       -- checkHungry():​ Actualizează nivelul de foame și generează mesaje de avertizare
       -- updateLedStatus():​ Controlează starea LED-urilor în funcție de nivelul de foame       -- updateLedStatus():​ Controlează starea LED-urilor în funcție de nivelul de foame
 +  -  Funcții de joc
 +      -- startGame():​ Inițializează variabilele de joc și pornește mini-jocul "​Prinde Șoricii"​
 +      -- runMouseGame():​ Gestionează logica principală a jocului (mișcarea șoricelului,​ verificarea coliziunilor)
 +      -- checkGameButtons():​ Procesează input-ul de la butoanele de control ale jocului cu debounce
 +      -- spawnNewMouse():​ Generează un nou șoricel pe o poziție aleatorie și crește progresiv viteza
 +      -- checkCollision():​ Verifică dacă pisica a prins șoricelul bazat pe pozițiile relative
 +      -- handleGameWon()/​handleGameLost():​ Gestionează stările de sfârșit de joc
 +      -- endGame(): Închide jocul și oferă recompense pisicii bazate pe performanță
 +      -- updateGameDisplay():​ Actualizează afișajul specific pentru modul de joc
   - Funcții de afișare   - Funcții de afișare
       -- drawCat(): Desenează sprite-ul pisicii și informațiile de stare pe ecran       -- drawCat(): Desenează sprite-ul pisicii și informațiile de stare pe ecran
       -- drawHearts():​ Desenează inimi decorative animate (opțional)       -- drawHearts():​ Desenează inimi decorative animate (opțional)
       -- drawFood(): Desenează obiectul "​mâncare"​ în timpul procesului de hrănire       -- drawFood(): Desenează obiectul "​mâncare"​ în timpul procesului de hrănire
-      -- updateDisplay():​ Actualizează întregul conținut al afișajului+      -- updateDisplay():​ Actualizează întregul conținut al afișajului ​în modul normal 
 +      -- handleAnimations():​ Gestionează toate tipurile de animații (dans, alergare, hrănire)
 </​note>​ </​note>​
- 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +Rezultate Obținute
-</​note>​+ 
 +Funcționalități Implementate:​ 
 +  * Animal virtual complet: pisică interactivă cu sistem de foame 
 +  * Hrănire prin buton: reduce foamea cu 20% 
 +  * Animații multiple - dans, alergare, hrănire 
 +  * Mini-joc "​Prinde Șoarecii"​ - cu 2 butoane de control 
 +  * Feedback vizual - LED verde/roșu + afișaj Nokia 5110 
 +  * Control dual - comenzi seriale + butoane fizice 
 + 
 +Performanță Tehnică: 
 +  * Memorie optimizată - funcționează pe Arduino Uno 
 +  * Interfață responsivă - debouncing 50ms pentru butoane ​  
 +  * Update automat - foame +5% la 30 secunde 
 +  * Sistem de recompense - jocul reduce foamea cu 40% 
 + 
 +Rezultat Final: 
 +Tamagotchi funcțional cu 7 comenzi, 3 butoane, mini-joc interactiv și gestionare completă a stării animalului virtual!</​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download ===== 
  
 <note warning> <note warning>
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+{{:pm:​prj2025:​rnedelcu:​alexandra_londraliu.zip|}}===== Download =====
  
-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 94: Line 121:
    * 18.05: am facut rost de alt lcd    * 18.05: am facut rost de alt lcd
    * 20.05: gata o parte din software    * 20.05: gata o parte din software
 +   * 22.05: gata software & hardware
 +   * 25.05: am infrumusetat aspectul vizual al proiectului
  
 </​note>​ </​note>​
pm/prj2025/rnedelcu/alexandra.londraliu.1748349551.txt.gz · Last modified: 2025/05/27 15:39 by alexandra.londraliu
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