This is an old revision of the document!


Hangman (Spânzurătoarea)

Introducere

Proiectul este o implementare fizică a celebrului joc de ghicit cuvinte „Spânzurătoarea”, realizat cu microcontrollerul Arduino UNO și afișat pe un ecran LCD 16×2. Jucătorul navighează prin alfabet cu ajutorul a trei butoane și selectează litere pentru a ghici un cuvânt din categorii predefinite (Animale, Fructe, Țări, sau Aleator).

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.

Descriere generală

Schema bloc:

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ă.

Hardware Design

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Ω 3 Pentru LED-uri si Buzzer
Rezistențe 10kΩ 3 Pull-down pentru butoane
Breadboard 1 Montaj circuit
Fire de conectare Diverse Conexiuni

Software Design

Medii și librării:

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)

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/rnedelcu/alexandru.lintmaier.1748080223.txt.gz · Last modified: 2025/05/24 12:50 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