Tetris

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

  1. placa de baza
  2. lcd tft st7735 1.8'
  3. 4 butoane
  4. difuzor
  5. amplificator lm386
  6. modul sd
  7. card sd

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

proiect_gengiu_robert.zip

Bibliografie

ST7735.pdf

atmel-atmega324pa.html