Cristina-Elena ALEXANDRU (25481) - LED Snake
Autorul poate fi contactat la adresa:   Login pentru adresa
 
Introducere
Proiectul consta in implementarea jocului SNAKE. Insa este o varianta putin mai speciala, avand in vedere ca proiectarea jocului nu se va face pe LCD, ci pe o matrice de LED-uri. Interactiunea se va face prin intermediul a 4 butoane care vor dirija snake-ul in patru directii posibile (stanga, dreapta, sus, jos).
Inceputul si sfarsitul jocului vor fi semnalizate prin anumite pattern-uri ale aprinderii matricei de led-uri.
 
Descriere generală
Pentru a interactiona cu “personajul” jocului se folosesc cele 4 butoane, care reprezinta directiile de deplasare. Start-ul jocului va fi in momentul in care utilizatorul apasa oricare buton.
Schema Bloc
 
 
Hardware Design
LISTA DE PIESE:
→ Componentele placii de baza:
-  2 Condensatoare 10uF 
-  2 LED-uri 
-  1 Microcontroller 
-  1 Soclu 
-  2 Rezistente 4k7 
-  2 Rezistente 10k 
-  1 Rezistenta 15k 
-  2 Rezistente 1k 
-  2 Diode 
-  2 Push Buttons 
-  1 Header Pini (40p) 
→ Componente extra:
-  Modul cu Matrice de LED-uri MAX7219 
-  Buzzer Activ de 5V 
-  Header de pini (40p) 
-  Fire Colorate 
-  Push Buttons 
Schema electrica:
 
 
Software Design
Ca si mediu de dezvoltare am folosit WinAVR. rd
Comunicatia cu modului matricei de led-uri (MAX7219) se realizeaza prin SPI.
Algoritmul jocului l-am realizat dupa urmatoarea logica:
-  makeApple() genereaza punctul random care trebuie sa fie atins de catre snake. 
-  pozitia snake-ului o retin cu ajutorul unui vector care contine toate ledurile aprinse. 
-  cand snake-ul se misca, practic, aprind urmatorul led, si il sting pe ultimul ( shiftez elementele din vector, si adaug unul nou) 
-  la fiecare pas, exista un sens de mers al sarpelui, sensul opus fiind dezactivat ( daca sarpele merge spre dreapta, si user-ul apasa stanga, acesta nu va face nimic) 
-  dupa ce s-au “mancat” un numar de puncte, jocul trece la nivelul urmator, marind viteza. 
Reguli de joc:
-  jocul porneste si avertizeaza start-ul prin afisajul “GO” 
-  interactiunea cu snake-ul se realizeaza prin cele 4 butoane: - 
-  stanga 
-  dreapta 
-  sus 
-  jos 
 
-  de retinut faptul ca, daca sarpele se deplaseaza spre dreapta, apasarea butonului stanga nu are niciun efect. 
-  sarpele poate trece prin pereti, similar jocului original snake. 
-  cu cat aduna mai multe puncte, snake-ul va avea o lungime mai mare. 
-  trecerea la nivelul urmator, se realizeaza in momentul in care snake-ul a mancat N puncte (in implementare am setat la 5) 
-  un nivel nou, presupune si resetarea lungimii sarpelui la cea initiala 
-  GameOver se realizeaza in momentul in care sarpele se loveste de el insusi. 
 
Rezultate Obţinute
Concluzii
Mi-a placut foarte mult proiectul pe care mi l-am ales. Am lucrat destul de mult la el, dar chiar a iesit un lucru super.
proiect_pm.zip
 
Jurnal
Cumparare placa de baza
Lipire componente pe placa de baza
Cumparare componente extra
Lipire componente extra
Realizare soft
 
Bibliografie/Resurse