Differences

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

Link to this comparison view

pm:prj2025:rnedelcu:catalin.aldobritei [2025/05/24 18:41]
catalin.aldobritei [Rezultate Obţinute]
pm:prj2025:rnedelcu:catalin.aldobritei [2025/05/28 12:38] (current)
catalin.aldobritei [Software Design]
Line 104: Line 104:
 Mediu de dezvoltare: Arduino IDE Mediu de dezvoltare: Arduino IDE
  
-Librării:+LibrariiLiquidCrystal_I2C.h
  
-- Wire.h (pentru comunicația I2C cu LCD-ul) 
  
-- LiquidCrystal_I2C.h (pentru controlul display-ului LCD I2C)+Structuri si algoritmi:
  
-Structuri și algoritmi:+State machine cu staridiffSelect, gameOver, selectMode pentru controlul fluxului de executie
  
-Stări precum SELECTIE_DIFICULTATE,​ JOC_ACTIV, VERIFICARE_GHICIRE,​ JOC_TERMINAT,​ RESTART+Timer non-blocking bazat pe millis() pentru countdown-ul in timp real
  
-- Timer non-blocking bazat pe millis() ​pentru ​countdown-ul în timp real+Debouncing software cu interval de 300ms pentru ​stabilitatea butoanelor si prevenirea apasarilor multiple
  
-- Debouncing software cu interval ​de 300ms pentru stabilitatea butoanelor+Algoritm ​de construire progresiva a numarului (cifra cu cifra) adaptat pe dificultate:​
  
-- Algoritm de construire progresivă a numărului ​(cifră cu cifrăadaptat pe dificultate+Easy (1-10): doar unitati
  
-Generator aleator pentru randomizare+Medium (1-100): zeci + unitati
  
-Sistem de feedback audio adaptat cu frecvențe variabile bazate pe proximitatea ghicirii+Hard (1-1000): sute + zeci + unitati
  
-- PWM pentru controlul buzzer-ului și generarea tonurilor 
  
-- Algoritm de verificare ​cu feedback directional (prea mic/prea mare)+Generator aleator pentru randomizare ​cu randomSeed
  
-Funcții implementate:​+Sistem de feedback audio adaptat cu frecvente variabile bazate pe proximitatea ghicirii
  
-- `setup()` – inițializare hardware și configurare pin-uri+PWM si tone() pentru controlul buzzer-ului si generarea tonurilor
  
-- `loop()` – bucla principală+Algoritm de verificare cu feedback directional ​(prea mic/prea mare)
  
-- `gestionareSelectieDificultate()` – gestionează selecția și confirmarea nivelului+Sistem de proximitate inteligent cu praguri adaptive in functie de dificultate
  
-- `initializeazaJoc()` – setează parametrii specifici dificultății+Functii implementate:​
  
-- `verificaTimp()– monitorizează timer-ul și actualizează display-ul în timp real+setup() – initializare hardware si configurare pin-uri
  
-- `verificaGhicire()– compară numărul introdus ​cu cel ales random și oferă feedback+loop() – bucla principala ​cu gestionarea starilor
  
-- `sunetApropiere()– calculează și reproduce feedback audio bazat pe distanța până la răspuns+handleDiffSelect() – gestioneaza selectia si confirmarea nivelului de dificultate
  
-- `resetareGhicireCurenta()– resetează starea pentru o nouă încercare fără restart complet+initGame() – seteaza parametrii specifici dificultatii (limite, timp, pozitii cifre)
  
-- `timpExpirat()– gestionează sfârșitul jocului când timpul expiră+checkTime() – monitorizeaza timer-ul si actualizeaza display-ul in timp real
  
-- `melodieVictorie()`, `sunetEsec()`,​ `tonScurt()` ​– funcții audio pentru ​feedback ​contextual+checkGuess() – compara numarul introdus cu cel ales random si ofera feedback
  
-- `afisareMeniuDificultate()``afisareDificultate()– gestionarea interfeței ​utilizator+resetGuess() – reseteaza starea pentru o noua incercare fara restart complet 
 + 
 +timeUp() – gestioneaza sfarsitul jocului cand timpul expira 
 + 
 +showDiffMenu() – afiseaza meniul principal de selectare dificultate 
 + 
 +showDiff() – afiseaza dificultatea curenta selectata 
 + 
 +proximitySound() – calculeaza si reproduce feedback audio bazat pe distanta pana la raspuns 
 + 
 +winSound() – melodie de victorie cu tonuri crescatoare 
 + 
 +failSound() – sunet de esec cu tonuri descrescatoare 
 + 
 +quickBeep(),​ shortBeep(), confirmBeep() – feedback audio pentru actiuni ​utilizator
 </​note>​ </​note>​
  
Line 174: Line 186:
 Ce mai poate fi adaugat: Ce mai poate fi adaugat:
  
-LED RGB pentru efecte vizuale mai complexe în loc de LED-urile simple+-LED RGB pentru efecte vizuale mai complexe în loc de LED-urile simple
  
-Card SD pentru salvarea scorurilor și statisticilor de joc+-Card SD pentru salvarea scorurilor și statisticilor de joc
  
-Mod Multiplayer - doi jucători alternează+-Mod Multiplayer - doi jucători alternează
  
-Mod Sprint - ghicește cât mai multe numere în timp limitat+-Mod Sprint - ghicește cât mai multe numere în timp limitat
  
 </​note>​ </​note>​
Line 186: Line 198:
 ===== Concluzii ===== ===== Concluzii =====
  
 +Proiectul a fost finalizat cu succes, demonstrând funcționarea stabilă a tuturor componentelor și modulelor implementate. Experiența de dezvoltare a oferit cunoștințe practice în programarea Arduino și integrarea sistemelor embedded.
 +Rezultatele obținute confirmă eficiența soluțiilor adoptate pentru realizarea jocului. ​
 ===== 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ă ;-). +Arhiva {{:pm:prj2025:rnedelcu:guessthenumber.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>​
  
pm/prj2025/rnedelcu/catalin.aldobritei.1748101261.txt.gz · Last modified: 2025/05/24 18:41 by catalin.aldobritei
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