This is an old revision of the document!


Hangman (Spânzurătoarea)

Introducere

Proiectul meu constă în realizarea unui joc de tip Spânzurătoarea, implementat pe o platformă cu microcontroler (ex: Arduino UNO). Utilizatorul are la dispoziție X de secunde pentru a ghici un cuvânt ales aleator dintr-o bază de date predefinită. Jocul este controlat cu ajutorul a două butoane: unul pentru navigarea prin literele alfabetului ('A'-'Z') și unul pentru selectarea literei curente. Dacă litera selectată se regăsește în cuvânt, se completează spațiile corespunzătoare și se aprinde un LED galben. La final, dacă jucătorul reușește să ghicească cuvântul, LED-ul devine verde; dacă timpul expiră, se aprinde LED-ul roșu.

De asemenea, proiectul are si urmatoarele optiuni:

- sa pot tine apasat pe unul din butoate pentru a trece mai repede prin literele de la A la Z

- jucatorul isi poate introduce numele la inceputul jocului. Astfel, se salveaza numele si highscore-ul pe un card SD sau in memoria interna

- mai multe nivele de dificultate din care se pote alege la inceput

Am ales acest proiect pentru a îmbina concepte esențiale în lucrul cu microcontrolere: maparea butoanelor, utilizarea temporizatorului, afisarea pe LCD și interacțiunea utilizator-hardware. Proiectul este distractiv, ușor de extins și oferă o bază solidă pentru învățarea noțiunilor embedded.

Descriere generală

Proiectul este alcătuit din următoarele module:

Control input (butoane) – pentru navigarea prin alfabet și selectarea literelor.

Display LCD – pentru afișarea cuvântului parțial ghicit și a timpului rămas.

LED RGB – pentru semnalizarea stării jocului: progres (galben), câștig (verde), pierdere (roșu).

Timer – pentru contorizarea timpului limită de joc (90 secunde).

Memorie statică – cuvinte prestabilite (hardcoded în cod sau extrase din EEPROM/SD).

Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html

Hardware Design

Componente folosite:

Microcontroler: Arduino UNO / ATmega328P

2 butoane (Select / Navigare)

LED RGB

LCD 16×2 (I2C sau paralel)

(Opțional) Card SD pentru salvare scoruri/nume

Rezistențe de pull-down pentru butoane

Sursă alimentare 5V

Scheme electrice și semnale:

Butoanele conectate la pini digitali cu întreruperi externe

PWM pentru controlul culorii LED-ului RGB

LCD conectat prin interfață I2C pentru economie de pini

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.1748020695.txt.gz · Last modified: 2025/05/23 20:18 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