Liviu-Adrian GHEORGHE (25054) - Brick puzzle pe LED-uri

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in implementarea unui joc de tip puzzle, bazat pe forme, folosind ca suprafata de afisare una sau mai multe matrici de LED-uri. La inceputul fiecarei runde apar 2 randuri(unul sus si unul jos) de cate 3 forme random.

Treptat randul de sus se apropie de randul de jos.

Misiunea jucatorului este sa modifice formele de jos astfel incat sa fie la fel cu cele de sus,prin intermediul unor butoane aferente fiecarei forme, inainte ca cele doua randuri sa se ciocneasca.

Jocul se termina daca cele doua seturi de forme nu sunt identice cand se intalnesc. Va exista posibilitatea cresterii vitezei de coborare a pieselor de sus pentru trecerea mai rapida la runda urmatoare.

Scopul proiectului este unul de divertisment.

Descriere generală

O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.

Hardware Design

Lista piese:

  • <fc #800000>Matrice LED 8×8</fc>
  • <fc #800000>Placa test</fc>
  • <fc #800000>4 Butoane</fc>
  • <fc #800000>Cablu UTP</fc>
  • <fc #800000>Cablu mama-mama</fc>
  • <fc #800000>2 Siri pini</fc>
  • <fc #800000>10 Rezistent 220</fc>
  • <fc #800000>uln2804apg</fc>

Schema electrica

Schema Matrice

Software Design

Software Design

Mediu de dezvoltare:

  1. -editor Atom
  2. -compilator win-avr

Afisarea formelor se foloseste de fenomenul persistence of vision.Led-urile sunt stinse si aprinse la o frecventa suficient de mare insesizabila ochiului uman. Am ales aceasta abordare deoarece matricea are liniile si coloanele comune.

Pentru deplasarea figurilor de sus am folosit un timer caruia i-am activat intreruperea de comparare.In rutina de tratare a intreruperii schimb pozitia randului de sus, verific coliziunea cu randul de jos si maresc dificultate jocului, daca este necesar, prin micsorarea pragului de comparare.

Tipul formelor de la inceputul jocului sunt complet random - lucru asigurat prin schimbarea seed-ului de la rulare la rulare (seed-ul este scris/citit din EEPROM)

Functii importante:

void make_bot_form(int type, int poz)		      //afisarea forme de jos in functie de tip si pozitie
void make_top_form(int type, int poz, int height)    //afisare forme de jos in functie de tip pozitie si distanta fata de linia de sus
void get_random_data(void)		             //generarea date random
void make_end_life(void)                             //animatie de sfarsit

Concluzii

Proiectul a fost unul interesant si nu foarte complicat. O dificultate a constituit-o realizarea hardu-lui in special numarul de mare de fire care au trebuit lipite si gasirea de piese.

In mare am realizat ceea ce mi-am propus.

Download

Jurnal

6 Aprilie - am primit placa de baza;

13 Aprilie - am luat piesele de baza si am inceput lipirea lor

20 Aprilie - am ales tema si am facut schema bloc

27 Aprilie - am terminat de facut placa de baza; am testat-o;

29 Aprilie - am determinat lista de piese si le-am comandat;

11 Mai - am inceput sa lipesc piesele pe placa de test;

15 Mai - am terminat de lipit placa de test si am verificat ca functioneaza;

20 Mai - dezvoltare soft;

23 Mai - terminat proiect;

Bibliografie/Resurse

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

pm/prj2016/drugescu/livv.txt · Last modified: 2021/04/14 17:07 (external edit)
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