This is an old revision of the document!
Tetris
Introducere
Proiectul va consta in implementarea jocului clasic de Tetris pe un ecran LCD SPI.
Jocul consta in pozitionarea pieselor in asemenea mod incat spatiile libere sa fie umplute si sa se genereze astfel linii complete. Liniile complete sunt automat eliminate si se acorda puncte bonus. Piesele apar din partea de sus a ecranului si coboara pana la contactul cu podeaua sau cu alte piese deja asezate.
Jocul se incheie in momentul in care piesele asezate au ajuns in partea de sus a zonei de joc, iar alte piese nu mai au loc pentru a fi generate.
Scopul jocului este de a acumula cat mai multe puncte si de a supravietui cat mai mult timp.
Descriere generala
Ecranul va fi impartit in doua portiuni: Portiunea in care trebuie pozitionate piesele si portiunea in care este afisat scorul si in care apare urmatoarea piesa generata.
Jucatorul poate folosi butoanele pentru a deplasa stanga-dreapta piesele si pentru a le roti.
Exista si un buton de pauza / de incepere a unui joc nou.
Jocul are si o componenta de sunet. Se vor produce sunete specifice pentru fiecare actiune din joc.
(Rotatii, mutari ale pieselor, completare de linii de patrate, incheiere joc).
Schema bloc
Arduino
Buzzer
Butoane
LCD
Componente
Nume | Numar |
Arduino Uno | 1 |
Breadboard | 1 |
Modul LCD SPI 128×160 | 1 |
Push button | 5 |
Fire mama-tata | 10 |
Fire tata-tata | 18 |
Buzzer | 1 |
Hardware Design
Conectarea LCD-ului a presupus conectarea celor 8 pini ai LCD-ului la pinii Arduino.
Pinii LCD-ului au fost conectati la cei ai placii Arduino in felul urmator:
VCC la pinul 5V
GND la GND
CS la pinul digital 10
RESET la pinul digital 9
A0 la pinul digital 8
SDA la pinul digital 11
SCK la pinul digital 13
LED la 3.3V
Pinii puteau fi configurati si in alte moduri, aceasta a fost insa configuratia aleasa de mine.
Initializarea display-ului a fost facuta cu definirea pinilor astfel: ucg(8,10,9)
Pentru conectarea butoanelor s-au folosit rezistente de PULLUP.
Fiecare buton este conectat cu un pin la GND si cu celalalt la pinii placii in felul urmator:
Butonul de START → Pin 12
Buton miscare stanga → Pin 4
Buton miscare dreapta → Pin 3
Buton rotatie stanga → Pin 7
Buton rotatie dreapta → Pin 6
Buzzerul s-a conectat cu un pin la GND si cu un pin la pinul 5 al placii Arduino.
Conectarea componentelor a fost usurata de utilizarea unui Breadboard, Astfel, semnalul GND a fost adus aproape de componentele de input output pentru compactarea si reducerea numarului de fire utilizate.
Software Design
Rezultate obtinute
Concluzii
Download
Jurnal
Bibliografie/Resurse