Gabriel-Cristian IVAŞCU (24859) - Tetris

Autorul poate fi contactat la adresa:

Introducere

  • Proiectul presupune implementarea unui joc simplu de Tetris pe un LCD Nokia 5110.
  • Ideea provine de la jocurile pe care obișnuiam să le joc în copilărie pe telefoanele părinților.
  • Jocul constă într-o secvență random de piese, numite tetriminos, care pică din cer spre tabla de joc.
  • Obiectivul jocului este de a manipula aceste piese, prin mutarea lor stânga-dreapta și rotirea la 90 grade, astfel încât să fie create linii orizontale continue, fără spații.
  • Când o astfel de linie este creată, ea va dispărea, și toate blocurile de deasupra ei vor cădea.
  • Când un anumit număr de linii au fost distruse, jocul va trece la un nivel superior, crescând viteza de cădere a pieselor.
  • Jocul se încheie când stiva de blocuri ajunge la capătul de sus al tablei de joc, nemaipermițând intrarea noilor piese.

Schema Bloc










Lista de Componente

Componentă Cod producător Cantitate
ATMEGA324PA-PU ATMEGA324PA-PU 1
Soclu Microcontroller LC40 1
USB-B USB B-PCB-R 1
Quartz 16MHz Q16.000 MHz HC-49S 1
Diodă Zener BZX55C3V3 2
LED 3mm roșu CLL-50221 2
Push button TS-06E (TS-3) 8
Rezistență 100R RW25CF 100R 3
Rezistență 470R RW25CF 470R 3
Rezistență 1K5 RW25CF 1K5 1
Rezistență 10K RW25CF 10K 1
Rezistență 1K RW25CF 1K 5
Rezistență 2K RW25CF 2K 5
Condensator 100nF CML 100nF 50V NP0 3
Condensator 15pF CML 15pF 50V NP0 2
Jumper - 1
Female Headers PRT-00115 1
Male Headers HN1X40 1
LCD Nokia 5110 LCD-10168 1

Hardware Design: Schema Electrică EAGLE

  • LCD-ul este legat la portul A al microcontroller-ului.
  • Butoanele sunt legate la portul C al microcontroller-ului.
  • Rezistențele de 1K și 2K sunt folosite ca divizoare de tensiune pentru a reduce tensiunea de la 5V la 3.3V pentru pinii LCD-ului.

Software Design

  • Pentru compilare am folosit WinAVR 20100110.
  • Pentru încărcarea programului pe Microcontroller am folosit Bootloader HID din tutorialul de aici.
  • Driver-ul pentru LCD folosit este cel de la Quantum Torque pentru Nokia 3310, acesta fiind compatibil și cu Nokia 5110.
  • Jocul implementează toate cele 7 piese clasice de Tetris: I, J, L, O, S, T, Z.
  • Se contorizează atât scorul cât și numărul de linii distruse.
  • Există 5 nivele de viteză în joc, proporționale cu numărul de linii distruse.
  • Formula după care se calculează scorul este: score = score + LC * (LC + 1) / 2, unde LC = Lines Cleared.
  • După cum se observă din formulă, pentru a maximiza scorul, este recomandat a se distruge cât mai multe linii simultan.
  • Controale:
    1. Buton stânga - Move Left
    2. Buton dreapta - Move Right
    3. Buton sus - Rotate
    4. Buton jos - Hard Drop
  • Codul sursă conține comentarii referitor la detaliile de implementare.

Rezultate Obţinute






































Concluzii

  • Consider că întreg proiectul a fost o experiență interesantă care m-a ajutat să înțeleg mai bine cum funcționează lucrurile pe partea de hardware.
  • A fost destul de provocator să construiesc ceva de la zero, în condițiile în care a fost prima oară când am avut de-a face cu lucruri de acest gen.
  • Sunt foarte mulțumit de ceea ce am obținut în final, în special de funcționalitatea jocului, dar și faptul că am reușit interconectarea plăcuței de bază, a plăcuței de test și a LCD-ului doar prin barete mamă-tată, fără fire de legătură.
  • Plănuiesc ca în viitorul apropriat să adaug o carcasă plăcuței și să o alimentez de la baterie.

Download

Bibliografie/Resurse

pm/prj2016/astratulat/2220.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