Bogdan-Mihai ŞTEFAN (25181) - Snake pe LED-uri

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Prezentarea pe scurt a proiectului:

Ce face?

Permite utliziatorului sa joace clasicul joc de Snake pe o matrice de LED-uri.

Care este scopul lui?

Implementarea jocului Snake pe matrice de LED-uri.

Care a fost ideea de la care am pornit?

Jocul Snake implementat pe telefon a fost o adevarata sursa de recreere pentru mine in copilarie.

De ce cred că este util pentru alţii şi pentru mine?

Este un joc distractiv, perfect pentru umplerea timpului liber. :-D

Descriere generală

Utilizatorul foloseste butoanele pentru a controla sarpele. Microcontrollerul primeste semnalul de la butoane si schimba directia de deplasare pe LED-uri a sarpelui.

Hardware Design

Lista piese

Pe langa componentele de baza am folosit:

Componente:

  • Modul cu matrice de LED-uri MAX7219
  • Push-button x5
  • Rezistenta de pull-up 470Ω x5
  • Mufe mama-mama x11
  • Placuta de test 180mm x 120mm
  • Bareta pini x6

Software Design

Am folosit uneltele de la laborator pentru a scrie codul: Programmer's Notepad, Win-AVR pentru compilator. Pentru interfatarea cu matricea de LED-uri MAX7219 am folosit o biblioteca scrisa de Davide Gironi. Ea imi furnizeaza functii pentru a seta intensitatea LED-urilor, si pentru a schimba starea tuturor LED-urilor.

Partea algortimica este formata din:

Sarpele este reprezentat de un vector de coordonate, dintre care unul este capul si unul este coada.

La fiecare “ciclu”, capul sarpelui se misca in directia curenta de miscare, iar coada devine penultima parte din sarpe.

La o apasare a unui buton directional, se genereaza o intrerupere ce modifica directia sarpelui. Se poate modifica directia numai intr-una perpendiculara pe directia existenta.

Suprafata de joc este reprezentata de o matrice 8×8, cu valorile EMPTY, SNAKE, sau FOOD.

Nu a fost posibila implementarea de inamici sau ziduri, intrucat matricea de LED-uri este monocolora.

Am implementat si sunet cu un buzzer. Buzzer-ul scoate un sunet inalt atunci cand sarpele atinge mancarea si unul jos atunci cand sarpele se loveste de propria coada.

La inceputul jocului, se poate alege viteza sarpelui (nivel de dificultate), de la 1 la 6.

Rezultate Obţinute

Aspect placuta:

Functionare joc:

Concluzii

Rezultatul este un joc Snake complet functional, cu 6 niveluri de dificultate (viteza) si sunet. Am avut cateva probleme cu butoanele si buzzer-ul, dar le-am rezolvat pana la urma. As vrea sa aranjez placuta mai frumos, pentru a da si o nota estetica proiectului.

Download

Arhiva cu surse si Makefile:

surse_lsnake.zip

Bibliografie/Resurse

pm/prj2016/drugescu/snake_led_bstefan.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