George-Eduard ZAHARIA (78366) - Tetris pe LCD

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul implementeaza un joc de Tetris. Piesele vor fi controlate atat prin intermediul unor butoane, cat si cu ajutorul unui giroscop ce le va deplasa stanga-dreapta pe ecranul lcd. Pe timpul rularii jocului, un difuzor va reda muzica de fundal (ce poate fi oprita), dar si unele sunete sugestive in momentul in care are loc un eveniment. De asemenea, o tabela de high-score va fi pastrata in memoria non-volatila.

Descriere generală

Schema bloc:

Hardware Design

Piesa Cantitate
Placa de baza, ATMega324 1
Componente de baza 1
Modul LCD ST7735 1
Accelerometru/giroscop MPU6050 1
Difuzor 1
Fire mama-mama 20
Fire tata-mama 8
Placa de test 2
Butoane 6x6x6 4

Schema electrica:

Software Design

  • Mediul de dezvoltare folosit este Atmel Studio 7.0, bazat pe Visual Studio. Ofera optiunea de “Build project”, care genereaza un fisier .hex ce poate fi incarcat direct pe placuta (Atmel Studio 7.0)
  • Jocul genereaza random piese de Tetris de 4 forme diferite. Scopul este a a aduna cat mai multe puncte. In momentul in care este atins un numar de puncte, ecranul este curatat de piesele prezente, astfel fiind posibila continuarea jocului;
  • De asemenea, la sfarsit, este afisata o tabela de high-scores, pentru ca, dupa cateva secunde, sa se revina la ecranul de start unde poate fi reinceput jocul;
  • Pentru implementare am folosit o structura, square, care contine informatii despre un patrat care ajuta la formarea unei figuri. Totodata, am folosit si o structura form, care stocheaza atat date despre pozitionare figurii, cat si cele patru patrate din care aceasta este formata;
  • Initializarea pieselor se realizeaza cu ajutorul init_pieces;
  • Daca se doreste rotirea figurii, se schimba pozitia celor patru patrate care constituie figura, in functie forma ei. Acest lucru este indeplinit de suita de functii change_form_x;
  • Functia speaker_reda se ocupa de atat de readarea sunetelor, cat si a muzicii specifice Tetris, la startul jocului;
  • draw_piece are functia de a desena pe ecran o piesa si de a-i schimba pozitia in functie de cat de mult a inaintat pe “tabla de joc”;
  • show_start, show_lost afiseaza ecranul de start, respectiv cel de final, care contine tabela de highscore.

Rezultate Obţinute

Proiectul este complet functional, piesele pot fi controlate atat prin butoane, cat si cu ajutorul giroscopului MPU6050. De asemenea, difuzorul scoate sunete sugestive in momentul in care are loc un eveniment.

1) Conectare ecran LCD

2) Cablaj

S-a folosit modul de conectare prezentat in schema electrica din Hardware Design

3) Rezultat final - Hardware

4) Rezultat final - Software

Concluzii

Realizarea unui proiect de genul a fost o experienta placuta, chiar daca, initial, parea ca modul de a conecta piesele este usor neintuitiv. In cele din urma, dupa cateva cercetari, totul a devenit clar, finalizarea proiectului devenind astfel doar o chestiune de timp.

Download

Jurnal

Saptamana 1: Inceperea lipirii componentelor pe placa

Saptamana 2: Finalizarea lipirii componentelor pe placa + incarcare bootloader

Saptamana 3: Achizitionarea componentelor specifice proiectului

Saptamana 4: Inceperea asamblarii proiectului final

Saptamana 5: Finalizarea asamblarii proiectului + software

Bibliografie/Resurse

pm/prj2018/astratulat/36244.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