Andrei BACHEȘ (67096) - Minesweeper
Autorul poate fi contactat la adresa: Login pentru adresa
Introducere
Proiectul are ca scop implementarea jocului Minesweeper pe un display LCD. Deplasarea intre pozitiile jocului si actiunile asupra lor se vor face de catre jucator prin intermediul unor butoane.
Implementarea jocului imi este utila pentru dezvoltarea cunostintelor de proiectare si progamare cu microprocesoare.
Descriere generală
Prin intermediul a 4 butoane, jucatorul va putea parcurge grila de joc, iar prin intermediul altor 2 va putea realiza actiunile mark si uncover asupra pozitiilor de joc.
Microcontrollerul va procesa inputul primit de la utilizator si va afisa starea curenta a jocului pe display-ul LCD.
Hardware Design
Lista pieselor necesare:
Placa de baza PM2017
Butoane
Display LCD
Fire mama-mama
Pachet alimentare 3.3v
Schema electrica:
In plus fata de modulele standard necesare functionarii placii am adaugat modulul optional de alimentare a placii la 3.3v. Acest lucru este necesar pentru ca o parte din pinii LCD-ului necesita aceasta tensiune de alimentare.
Conectarea butoanelor de control a jocului si conectarea LCD-ului la microcontroller se realizeaza conform schemei urmatoare:
Software Design
Mediul de dezvoltare este AVR Studio
Implementarea proiectului se bazeaza pe libraria neoficiala a LCD-ului. In plus fata de comunicarea cu microcontrollerul, ea are implementate functii de desenare a caracterelor sau a unor figuri geometrice simple ce sunt folosite pentru afisarea starii jocului
Jucatorul va fi intampinat cu un mesaj, iar la apasarea butonului va incepe jocul.
Starea jocului este pastrata in memorie sub forma unei matrici de dimensiuni 8×8, iar pozitia cursorului este pastrata in coordonate x si y ce pot fi modificate prin apasarea butoanelor.
Rezultate Obţinute
Concluzii
E unul din cele mai interesante proiecte la care am lucrat in cadrul facultatii.
Ar fi fost mult mai bine daca realizam implementarea hardware mai rapid. Problemele aparute mi-au scurtat destul de mult timpul alocat programarii microcontroller-ului.
LCD-urile no-name sunt destul de greu de folosit pentru ca exista putina documentatie despre ele.
Download
Jurnal
15 mai 2017: Am terminat de lipit LCD si butoane pe placuta auxiliara.
19 mai 2017: Ars LCD din cauza jumper-ilor de alimentare pusi prost.
22 mai 2017: Am schimbat LCD si am inceput implementarea codului.
Bibliografie/Resurse
Documentația în format
PDF