This is an old revision of the document!
Sistemul oferă feedback vizual prin LED-uri (verde pentru succes, roșu pentru eșec) și feedback sonor prin buzzer. Jocul include mai multe niveluri de dificultate (Ușor, Mediu, Greu) și permite jucătorului să facă maximum 6 greșeli înainte de a pierde.
Scopul proiectului este să combine concepte esențiale de programare embedded: interfațarea cu LCD prin I2C, gestionarea input-urilor prin butoane, feedback vizual/audio și implementarea unei logici de joc interactive.
Sistemul se bazează pe microcontrollerul Arduino UNO (ATmega328P) care acționează ca unitate de control principală. Comunicarea cu LCD-ul se realizează prin protocolul I2C la adresa 0x27, reducând numărul de pini necesari.
La pornire, jucătorul selectează categoria de cuvinte și nivelul de dificultate folosind butoanele LEFT/RIGHT pentru navigare și SELECT pentru confirmare. Sistemul alege aleator un cuvânt din categoria selectată și afișează numărul de litere.
În timpul jocului, jucătorul navighează prin alfabetul A-Z cu butoanele LEFT/RIGHT și selectează litere cu butonul SELECT. Fiecare literă ghicită corect este afișată pe pozițiile corespunzătoare, iar greșelile sunt contorizate și vizualizate prin desenarea progresivă a spânzurătorii pe LCD.
Jocul se termină prin victorie (toate literele ghicite) sau înfrângere (6 greșeli), cu posibilitatea de restart automată.
Nume Componentă | Cantitate | Descriere |
— | — | — |
Arduino UNO R3 | 1 | Microcontroller ATmega328P |
LCD 16×2 cu I2C | 1 | Display cu interfață I2C (adresa 0x27) |
Butoane tactile | 3 | LEFT, SELECT, RIGHT |
LED Verde | 1 | Feedback pozitiv |
LED Roșu | 1 | Feedback negativ |
Buzzer Pasiv | 1 | Feedback audio |
Rezistențe 220Ω | 2 | Pentru LED-uri |
Rezistențe 10kΩ | 3 | Pull-down pentru butoane |
Breadboard | 1 | Montaj circuit |
Fire de conectare | Diverse | Conexiuni |
Arduino IDE
Librărie LiquidCrystal_I2C pentru LCD
TimerOne pentru contorizarea timpului
EEPROM sau SD.h dacă se implementează salvare scoruri
Funcționalități software planificate:
Interfață de navigare alfabet (cu accelerare la apăsare lungă)
Afișare progres pe LCD (cu actualizări dinamice)
Semnalizare stări cu LED RGB
Cronometru integrat cu întreruperi
Niveluri de dificultate (opțional: număr de greșeli permise, lungimea cuvântului)
Introducere nume utilizator pentru highscore (opțional)
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.