This is an old revision of the document!
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.
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
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
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.