Differences

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

Link to this comparison view

pm:prj2025:rnedelcu:alexandru.lintmaier [2025/05/24 12:52]
alexandru.lintmaier [Hardware Design]
pm:prj2025:rnedelcu:alexandru.lintmaier [2025/05/28 12:33] (current)
alexandru.lintmaier [Download]
Line 43: Line 43:
 | Fire de conectare | Diverse | Conexiuni | | Fire de conectare | Diverse | Conexiuni |
  
-Funcționalitate hardware & conexiuni+ 
 +**Funcționalitate hardware & conexiuni**
  
 1. Arduino UNO 1. Arduino UNO
Line 68: Line 69:
  
  
-Tabel cu alocarea pinilor+ 
 +**Tabel cu alocarea pinilor**
  
 | Pin Arduino | Funcție | Nume Reg. MCU | Direcție | Motiv alegere | | Pin Arduino | Funcție | Nume Reg. MCU | Direcție | Motiv alegere |
Line 85: Line 87:
 {{:​pm:​prj2025:​rnedelcu:​tinkercad4.png?​200|}} {{:​pm:​prj2025:​rnedelcu:​tinkercad4.png?​200|}}
  
-{{:​pm:​prj2025:​rnedelcu:​poza_proiect.jpg?200|}}+{{:​pm:​prj2025:​rnedelcu:​pozaa.jpg?200|}}
  
  
Line 94: Line 96:
  
 <note tip> <note tip>
-Medii și librării: 
  
-Arduino IDE+**Biblioteci utilizate**
  
-Librărie ​LiquidCrystal_I2C ​pentru ​LCD+  - LiquidCrystal_I2C.h: control ​LCD 16x2 prin I2C la adresa 0x27
  
-TimerOne pentru contorizarea timpului 
  
-EEPROM sau SD.h dacă se implementează salvare scoruri+**Structura software** 
 +Programul este organizat în următoarele module functionale:​
  
-Funcționalități software planificate:​+1. Inițializare (setup()) 
 +  - Configurare LCD și pini 
 +  - Crearea caracterelor personalizate pentru spânzurătoare 
 +  - Afișare mesaj de bun venit
  
-Interfață de navigare alfabet ​(cu accelerare la apăsare lungă)+2. Selecția configurației ​(start()) 
 +  - Navigare prin categorii: Animale, Fructe, Țări, Aleator 
 +  - Selectare dificultate:​ Ușor, Mediu, Greu 
 +  - Alegerea aleatoare a cuvântului din setul corespunzător
  
-Afișare progres pe LCD (cu actualizări dinamice)+3. Bucla principală (loop()
 +  - Gestionarea input-urilor de la butoane 
 +  - Navigarea prin alfabet (A-Z) 
 +  - Procesarea selecției de litere 
 +  - Actualizarea stării jocului
  
-Semnalizare stări cu LED RGB+4. Afișare și feedback (drawGame(),​ drawHangman()) 
 +  - Desenarea progresului cuvântului 
 +  - Afișarea spânzurătorii progresive 
 +  - Feedback vizual/​audio pentru acțiuni
  
-Cronometru integrat cu întreruperi+5. Logica de joc (hasWon(), gameOver()) 
 +  - Verificarea condițiilor de victorie/​înfrângere 
 +  - Gestionarea sfârșitului de joc și restart
  
-Niveluri de dificultate (opțional: număr de greșeli permise, lungimea cuvântului)+**Funcționalități implementate**
  
-Introducere nume utilizator ​pentru ​highscore ​(opțional)+  - 4 categorii de cuvinte cu câte 6 cuvinte fiecare 
 +  - 3 niveluri de dificultate (2 cuvinte per nivel per categorie) 
 +  - Navigare prin alfabet cu butoane LEFT/​RIGHT 
 +  - Selecție litere cu feedback audio/​vizual 
 +  - Afișare progresivă a spânzurătorii (8 caractere personalizate) 
 +  - Contorizare greșeli (maximum 6) 
 +  - Detectare automată victorie/​înfrângere 
 +  - Sistem de restart automat 
 +  - Debouncing software ​pentru ​butoane 
 + 
 +**Algoritmi principali** 
 + 
 +1. Algoritm de navigare: 
 +  - Incrementare/​decrementare ciclică prin alfabet ​(A-Z) 
 +  - Limitare la capetele intervalului 
 + 
 +2. Algoritm de verificare literă: 
 +  - Căutare în cuvântul ​țintă cu indexOf() 
 +  - Marcare literă ca ghicită în array boolean 
 +  - Actualizare progres și contorizare greșeli 
 + 
 +3. Algoritm de verificare victorie: 
 +  - Iterare prin toate literele cuvântului 
 +  - Verificare dacă toate sunt marcate ca ghicite 
 + 
 +4. Algoritm de afișare spânzurătoare:​ 
 +  - Afișare progresivă a 8 caractere personalizate 
 +  - Mapare numărul greșelilor la părțile corpului
 </​note>​ </​note>​
  
Line 122: Line 165:
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Proiectul a fost implementat cu succes, oferind o experiență de joc interactivă și intuitivă. Sistemul funcționează stabil, cu timp de răspuns rapid la input-uri și feedback clar pentru utilizator. 
 + 
 +Caracteristici finale: 
 +- 24 de cuvinte organizate în 4 categorii 
 +- 3 niveluri de dificultate funcționale 
 +- Interface LCD clar și responsive 
 +- Feedback audio/​vizual consistent 
 +- Sistem de restart automat functional 
 + 
 +Îmbunătățiri posibile: 
 +- Adăugarea unui card SD pentru cuvinte suplimentare 
 +- Implementarea unui sistem de scoruri 
 +- Timer pentru limitarea timpului de joc 
 +- Mai multe categorii de cuvinte
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +Proiectul a demonstrat cu succes implementarea unui joc interactiv pe platformă Arduino, combinând multiple concepte de programare embedded: interfațarea I2C, gestionarea input-urilor,​ generarea de sunete și crearea unei interfețe utilizator intuitive.
 +
 +Aspectele cele mai valoroase ale implementării:​
 +- Utilizarea eficientă a caracterelor personalizate LCD pentru grafică
 +- Organizarea modulară a codului pentru ușurință în dezvoltare
 +- Implementarea unui sistem de feedback multi-modal (vizual/​audio)
 +- Gestionarea corectă a stărilor de joc și tranziților
 +
 +Proiectul oferă o bază solidă pentru dezvoltarea ulterioară și poate fi extins cu funcționalități suplimentare cum ar fi conectivitate,​ scoruri online sau AI pentru generarea dinamică de cuvinte.
 ===== 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ă ;-). 
  
-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**.+Arhiva 
 +{{:pm:prj2025:rnedelcu:spanzuratoarea.zip|}}  
 </​note>​ </​note>​
  
pm/prj2025/rnedelcu/alexandru.lintmaier.1748080338.txt.gz · Last modified: 2025/05/24 12:52 by alexandru.lintmaier
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