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

  • coordonatorul aplicatiei
  • primeste semnalele de input de la butoane
  • transmite semnale de output catre LCD si buzzer

Buzzer

  • produce semnale audio / cantece in diverse stagii ale jocului

Butoane

  • reprezinta modul prin care utilizatorul interactioneaza cu aplicatia

LCD

  • reprezinta compomenta vizuala a aplicatiei
  • afiseaza toate ecranele jocului

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

  • Este planificata folosirea unor algoritmi de generare random a pieselor, de crestere graduala a dificultatii (viteza cu care apar piesele / cu care se deplaseaza acestea).

Rezultate obtinute

  • TBD

Concluzii

  • TBD

Download

  • TBD

Jurnal

  • 25.04: Realizare diagrama bloc, realizare pagina wiki

Bibliografie/Resurse

pm/prj2021/agrigore/tetris.1621811376.txt.gz · Last modified: 2021/05/24 02:09 by sergiu.toader
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