This is an old revision of the document!


Tetris

Autor: Datcu Diana-Cristina

Introducere

Proiectul constă în implementarea jocului de Tetris pe un ecran LCD, în care se vor obține puncte de fiecare dată când se va umple o linie. Jocul este pierdut când nu va mai exista spațiu. În implementare sunt utilizate 7 butoane ca input, microcontroller-ul, iar LCD-ul, un LED și un difuzor ca output.

Descriere generală

Plăcuța Arduino va prelua datele de intrare de la butoane. Jucătorul va folosi 2 butoane pentru mișcarea stânga/dreapta a piesei, două butoane pentru rotirea stânga/dreapta a piesei, un buton va fi folosit pentru selectare, un buton pentru restart si unul pentru pauză.

Piese necesare

  • Modul LCD cu Touchscreen - Controller ILI9341
  • Arduino Uno
  • Difuzor
  • Breadboard
  • Fire
  • Butoane
  • LED RGB

SOFTWARE DESIGN

Mediu de dezvoltare: ARDUINO IDE

Biblioteci folosite: https://github.com/prenticedavid/MCUFRIEND_kbv https://github.com/PaulStoffregen/ILI9341_t3 https://github.com/PaulStoffregen/XPT2046_Touchscreen https://github.com/olikraus/ucglib https://github.com/adafruit/Adafruit-GFX-Library

In realizarea codului (care nu stiu daca functioneaza cum ar trebui), m-am inspirat din mai multe surse mentionate in rubrica BIBLIOGRAFIE/RESURSE. In prima parte a codului sunt preponderent functii pentru buzzer. Am ales sa imi fac singura melodia care va acompania jocul prin utilizarea mai multor note definite la inceputul programului. Apoi imi construiesc piesele de Tetris. Implementarea propriu-zisa a jocului se afla in funcia loop. Dupa un anumit timp, o piesa coboara cate un rand, verificandu-se de ffiecare data coliziunea cu alta piesa. Piesa coboara pana cand acest lucru nu mai este posibil, caz in care o noua piesa va aparea pe ecran. In cazul in care un rand este deja plin, se va sterge randul respectiv, urmand ca piesele care se afla deasupra randului sters sa coboare cu o pozitie. In cazul in care se doreste rotirea piesei, se va apasa pe un buton iar piesa se va roti la stanga. Jocul se termina in momentul in care o piesa noua nu mai poate cobori nicaieri pe ecran.

REZULTATE OBTINUTE

NU MERGE! PLIZ HELP

CONLCUZII

Proietul a fost destul de fun de realizat, insa frustranta partea cu LCD-ul. Daca nu m-as fi apucat atat de tarziu de proiect (cu 4 zile inainte de data la care ar fi trebuit sa il prezint) as fi schimbat LCD-ul sau as mai fi incercat si legarea unor rezistente astfel incat sa LCD-ul sa primeasca 3.3V in loc de 5 V. Am invatat insa sa programez in Arduino ceea ce mi se pare un plus.

JURNAL

24.04 Alegere proiect 01.05 Realizare pagina wiki proiect 07.05 Comanda primul set de piese 10.05 Livrare primul set de piese 12.05 Comanda al doilea set de piese 15.05 Livrare al doilea set de piese 17.05 Tentativa de a ma apuca de proiect, am vazut ca am nevoie de translatoare logice pentru LCD 19.05 Comanda al treilea set de piese 23.05 Livrare al treilea set de piese 28.05 Discutie cu laborantul pentru niste clarificari suplimentare 31.05 Documentatie proiect 01.06 - 04.06 Chin cu legatul LCD 03.06 - 04.06 Implementare cod 04.06 - “Finalizare” proiect si pagina de wiki

DOWNLOAD

Link download: Download pdf

BIBLIOGRAFIE/RESURSE

pm/prj2021/apredescu/joc_tetris.1622809469.txt.gz · Last modified: 2021/06/04 15:24 by diana.datcu
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