Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul constă în realizarea jocului Snake pe un ecran LCD(Nokia) folosind plăcuța ATMEGA 324.
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.
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.
Listă de piese:
DENUMIRE |
---|
Microcontroller |
Cristal 16 MHz |
Display Nokia |
Buzzer |
Butoane |
LED-uri |
Rezistențe |
Condensatoare |
Diode Zener |
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.
A fost un proiect intersant din care am învățat multe lucruri ce țin de partea hardware.