Mihai-Robert VOICA (24804) - Snake folosind LED-uri

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Prezentarea pe scurt a proiectului: Doresc sa implementez jocul Snake a carei interfata cu utilizatorul se va face prin intermediul a 64 de leduri si 4 butoane. Se va putea selecta daca sarpele poate trece sau nu prin “peretii” plansei. De asemenea la fiecare punct mancat va creste viteza si marimea sarpelui. Scopul proiectului este de a realiza un joc care imi place, iar prin aceasta experienta sa aprofundez cunostintele invatate la laborator. Ideea a pornit de la faptul ca am vrut sa lucrez cu LED-uri, iar jocul snake cred ca se potriveste dorintelor mele.

Descriere generală

Hardware Design

Componente auxiliare inafara de cele de pe placa principala:

- 1 buc placa de test 100×100

- 1 buc matrice LED 8×8 LM-88UE19-CC

- 6 buc mufe mama 8 pini

- 1 metru cablu panglica 16 fire

- 8 buc tranzistoare BC547

- 8 buc rezistente 1k2 ohm

- 8 buc rezistente 330 ohm

- 1 buc conector 1×36 pini

- 5 buc butoane

- 1 buc LED 5mm

- 1 buc rezistenta 470 ohm

Scheme electrica placa auxiliara:

Software Design

Mediu de dezvoltare: Programmer's Notepad + WinAVR

Am declarat un array2D in care memorez care led-uri sunt aprinse si aprind matricea de led-uri in functie de acest array2D. Retin pixelul care reprezinta capul sarpelui si directia in care se indreapta. De asemenea retin coada sarpelui si in ce directie este penultimul punct, pentru a sti care va fi viitorul ultim punct.

Jocul se incheie cand sarpele se loveste de el, sau de margine daca aceasta este activata. La incheierea jocului daca sarpele are o lungime >= 20 se va afisa 'OK' pe matricea de led-uri. In caz contrar sarpele va licari in forma in care a murit, pentru a semnifica pierderea jocului

'bomboanele' se genereaza folosind functia rand().

Rezultate Obţinute

Placa auxiliara:

Startul jocului:

Sarpele a murit pentru ca s-a lovit de corpul lui Licare pana sa da restart la joc

Sarpele a murit pentru ca s-a lovit de margine. Se observa ledul din stanga de jos ca este aprins. Asta indica faptul ca marginea este activa

in timpul jocului:

Joc castigat(sarpele a avut la final o lungime >= 20):

Concluzii

Am invazat sa lipesc si sa dezlipesc. De dezlipit am invatat deoarece pini nu coincid pe linii si coloane ca in documentatie si am verificat manual care de unde este. Apoi a trebuit sa refac lipiturile corespunzator.

Am invatat cum sa lucrez cu matricea de leduri si sa multiplexez in timp.

Consider ca am lucrat curat si proiectul a iesit exact cum mi-am propus.

Download

Jurnal

Lipire placa de baza : 20.04 (2 ore)

Am cumparat piesele auxiliare

Lipire placa auxiliara : 27.04 (2 ore) + 11.05(2 ore) + 21.05(4 ore)

Realizare software : 22.05(5 ore)

Bibliografie/Resurse

Laboratoare

Documentatie matrice de leduri:

lm-88ue19-cc.pdf

pm/prj2016/avoinescu/joc-snake-pe-led-uri.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