Ana-Maria ILIE (78352) - Snake LCD

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul constă în realizarea jocului Snake pe un ecran LCD(Nokia) folosind plăcuța ATMEGA 324.

Descriere generală

Jocul va fi single-player și va avea mai multe nivele de dificultate și vieți disponibile. Se vor folosi butoane pentru schimbarea direcției și a nivelului de joc. De asemenea, voi folosi un buzzer pentru a reda diferite sunete în funcție de parcursul jocului. În prealabil, voi folosi și LED-uri tot în scopul de a semnaliza diferite etape.

Game screen:

Schema bloc:

Jucătorul va da comenzi prin butoane, care vor fi procesate prin intermediul plăcuței, iar rezultatele vor fi afișate pe LCD, sunetele redate de buzzer și avertizările luminoase de LED-uri.

Hardware Design

Listă de piese:

DENUMIRE
Microcontroller
Cristal 16 MHz
Display Nokia
Buzzer
Butoane
LED-uri
Rezistențe
Condensatoare
Diode Zener

Schema electrică:

Software Design

Pentru realizarea părții software a proiectului am folosit Atmel Studio 7.0, din care am generat un fisier .hex pe care l-am încărcat pe plăcuță cu ajutorul aplicației puse la dispoziție: HIDBootFlash. Pentru display am folosit o bibliotecă pentru ecran LCD Nokia 33106-nokia-3310-lcd-driver, ce oferă funcții precum:

   lcd_init, lcd_contrast, lcd_clear, lcd_putchr, lcd_str, lcd_gotoXY, lcd_update, lcd_setpixel;

Pentru crearea șarpelui și a “mâncării” de pe hartă am declarat o structură de tip pixel(cu două elemente) Sarpele este reprezentat ca un vector de 100 de astfel de structuri(dimensiunea maximă), iar “mâncarea” de una singura. În main inițializez lcd-ul cu ajutorul funcțiilor din blibliotecă. Setez pinii la care se conectează butoanele ca fiind de intrare(ca în laborator), apoi afișez ecranul pentru selectarea modului (tot cu ajutorul funcțiilor din biblioteca(lcd_str)). După selectarea modului, se desenează harta de joc și începe jocul efectiv. Pentru modul “easy” nu există pereți, iar singurul mod în care se poate termina jocul este atunci când capul șarpelui lovește un bloc din corp(și nu mai are vieți) sau dacă utilizatorul apasă butonul de selectare a modului. Pentru modul “hard” am introdus pereții, iar la atingerea lor jocul se termina.

Rezultate Obţinute

Concluzii

A fost un proiect intersant din care am învățat multe lucruri ce țin de partea hardware.

Download

Jurnal

  1. Am lipit componentele de bază pe plăcuță.
  2. Am lipit butoanele pe plăcuța de test.
  3. Am conectat LCD-ul.
  4. Am încărcat bootloaderul.
  5. Am scris codul.

Bibliografie/Resurse

pm/prj2018/cbirsan/78336.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