Introducere
Acest proiect consta in implementarea celebrului joc, Tetris, pe un LCD, iar partea de input e preluata de la 4 butoane. Scopul proiectului este sa reproduca nostalgia jocului, facut celebru de telefoanele Nokia, alb-negru. Am plecat de la ideea ca este amuzant si ca este printre puntinele motive pentru care as mai deschide un telefon din anii 90'-2000. Spre deosebire de batranul 3310, care folosea un ecran cu o rezolutie de 84×48 monochrome, eu am ales un ecran de 160×128 rgb pe 18 biti.
Descriere generală
Cuburile se vor misca prin intermediul celor 2 taste din dreapta, cele 2 butoane ramase se folosesc pentru selectia dintre start si help. Modulul de card este folosit pentru a reda muzica si care ruleaza pana cand se apasa pe vreun buton si atunci apare o intrerupere.
Lista de piese
Schema electrica
Software Design
Surse si functii implementate
Implementarea jocului se afla in fisierul main.c, alaturi de player-ul audio. Jocul nu este o reproducere fidela si i-am aplicat cateva constrangeri ce tin de tipul de caramizi si culori. Stivele de caramizi sunt tinute intr-o matrice unde marchez daca e ocupata, libera sau se poate aseza o caramida. De fiecare data cand o caramida se aseaza cea de deasupra devine ocupabila. Matricea are dimensiunile de 19×13, iar cand oricare dintre stive depaseste inaltimea de 17 jocul se termina. In STT7735.c se afla comunicatia cu controller-ul display-ul, unde am adaptat pinii la nevoile mele fata de codul de laborator. In pff.c se gaseste biblioteca ce tine de sistemul de fisiere folosit pentru a citi date de pe card. Sursa spi.c am modificat-o ca sa suporte display-ul si cardul pe rand.
Rezultate obtinute
Proiectul in discutie si-a atins succesul cu cateva modificari fata de planul initial, cum ar fi updatarea doar zonelor ce se schimba si nu a intregii imagini pe care o afiseaza display-ul pentru a face jocul sa se miste smooth.
Concluzii
In incheiere pot sa adaug ca aceasta experienta mi-a adus cunostinte noi pe ambele parti, atat hardware, cat si software.
Download
Bibliografie