This is an old revision of the document!


Tetris

Introducere

  • Tetris este un joc de puzzle în care piese cad din partea de sus a ecranului și trebuie plasate strategic pentru a forma linii complete, care se elimină. Scopul este evitarea acumulării pieselor până sus în ecran.
  • Scopul proiectului este de a implementa acest joc în format fizic folosind o matrice de LED-uri, un display LCD, și un joystick și un buton pentru a interacționa cu ele.
  • Am pornit de la dorința de a recrea clasicul joc, Tetris, într-un mod cat mai simplu folosind un microcontroller Arduino.
  • Acest proiect este util pentru mine, deoarece mă ajută să pun în practică notiuni de hardware dar și de software învățate la programare și electronică.

Descriere generală

  • Ca input, voi avea un joystick pentru a muta piesele de tetris în spațiul de joc, iar butonul încorporat în joystick va fi folosit pentru a reseta jocul. Adițional, voi avea un buton folosit pentru a schimba orientarea piesei.
  • Ca output, voi avea o matrice de LED-uri pe care se va desfășura jocul și un display LCD unde va fi afișat scorul curent.

Hardware Design

Piesa Poza Descriere Pini
Arduino Uno R4 Minima Plăcuța cu ajutorul căreia implementez jocul
Display LCD 1602  Display pe care este afișat scorul jocului curent GND ↔ GND
VCC ↔ 5V
SDA ↔ SDA
SCL ↔ SCL
Adaptor I2C Adaptor pentru Display pentru interfața I2C
Modul 4 matrice MAX7219 Modul de 4 matrice LED pe care este afișat jocul de Tetris VCC ↔ 5V
GND ↔ GND
DIN ↔ D11
CS ↔ D10
CLK ↔ D13
Joystick Joystick cu care controlez piesele de joc VCC ↔ 5V
GND ↔ GND
VRX ↔ A0
VRY ↔ A1
SW ↔ D4
Push Button Buton cu care rotesc piesa curentă P1 ↔ D2/GND
P2 ↔ 5V
Rezistenta de 220Ω Rezistor pentru buna funcționare a butonului

  • Poza 1: În urma apăsării butonului se afișează text pe display.
  • Poza 2: În urma apăsării butonului din joystick se afișează litere pe matrice.

Software Design

  • Mediul de dezvoltare folosit este ArduinoIDE. Limbajul folosit este C++, iar codul este destinat rulării pe o placuță Arduino.
  • Bibliotecile folosite sunt: MD_MAX72xx.h pentru matricele LED și Wire.h și LiquidCrystal_I2C.h pentru display-ul LCD.
  • Algoritmi şi structuri implementate:

Rezultate Obţinute

În urma realizării proiectului am obținut o implementare simplificată a jocului Tetris. Mai jos sunt atașate poze cu varianta finală a proiectului, dar și un videoclip în care este demonstrată funcționalitatea jocului.

Concluzii

Proiectul a pornit de la dorința de a implementa un joc simplu pe componenete hardware diferite față de un PC unde toată implementarea unui joc se bazează pe software. Deși nu am reușit să implementez functionalități mai avansate așa cum mi-aș fi dorit, cum ar fi interschimbarea între piesa curentă și următoarea sau reținerea scorurilor pe un card SD, am invățat multe lucruri despre dezvoltarea aplicațiilor utilizand microcontrollere dar și alte componente.

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

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

Export to PDF

pm/prj2024/tdicu/luca.patrascu.1716783888.txt.gz · Last modified: 2024/05/27 07:24 by luca.patrascu
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