Costin-Bogdan MARIA (78315) - X si 0

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul meu consta in implementarea jocului X si 0 pe LCD. Scopul lui este sa ma distreze :). Ideea a pornit de la faptul ca acest joc este unul din cele mai indragite, si m-am gandit ca ar fi interesant sa joc acest joc pe lcd, si nu pe foaie cum eram obisnuit.

Descriere generală

Proiectul va contine 4 butoane, pentru a putea selecta una din cele 9 casute si un buton pentru a putea completa una dintre casute cu x sau 0.Jocul se termina cand un jucator completeaza o linie, coloana sau diagonala cu acelasi simbol.Proiectul va avea atat o varianta de 1v1 cat si o varianta 1vcomputer.

Schema bloc:

Hardware Design

Lista de piese:

  Ecran LCD Nokia
  Stabilizator de tensiune
  5 butoane
  Fire mama-mama
  Placa de test

Schema electrica:

Software Design

Mediu de dezvoltare: AVR Studio Functii LCD:

  • void lcd_int(void): Initializeaza lcd-ul
  • void lcd_str(char *str): Printeaza un string pe ecran
  • void lcd_chr(char chr): Printeaza un caracter pe ecran
  • void lcd_contrast(unsigned char contrast): seteaza contrastul
  • void lcd_goto_xy(int x, int y): salt la linia x coloana y

Functii joc:

  • int main: Functia principala in care se face initializarea lcd-ului si se seteaza contrastul
  • main_menu: Panoul principal care este deschis in momentul in care se deschide aplicatia
  • main_screen: Aici se afiseaza variantele pe care le putem alege(1v1, 1vc)
  • lcd_dispay_playground: In aceasta functie se afiseaza casutele si scorul
  • verify_square: Aici verific daca o casuta a fost deja selectata
  • verify_won: Aceasta functie verifica daca jocul s-a terminat
  • verify_selected: Aceasta functie verifica daca o casuta a fost deja selectata
  • init_buttons: Initializeaza butoanele
  • lcd_display_0: Afiseaza 0
  • lcd_display_x: Afiseaza x
  • display_map: Afiseaza x sau 0 pe ecran
  • random_pick: alege o casuta random pt jocul 1vc

Rezultate Obţinute

Am avut probleme in lipirea butoanelor si ecranului deoarece pinii sunt foarte apropiati si trebuia sa am foarte mare grija.Dupa ceva timp am reusit sa le lipesc cum trebuie si sa le fac sa functioneze. Pentru alimentarea LCD-ului este necesara o tensiune de 3.3 V. Cum microcontrollerul scoate 5V, aceasta tensiune a trebuit limitata. Pentru aceasta am folosit un stabilizator de tensiune.

Dupa cum se poate observa in pozele de mai sus utilizatorul poate alege sa joaca impotriva unui prieten sau impotriva calculatorului. Jocul afiseaza si un scor in partea dreapta si jucatorul care a castigat runda curenta.

Concluzii

Sunt foarte multumit de rezultatul obtinut si de faptul ca am pornit de la placa de baza si am ajuns sa interactionez cu jocul X si 0 prin LCD.

Download

Bibliografie/Resurse

pm/prj2018/ddragomir/mbogdan.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