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:

  1. 2 Condensatoare 10uF
  2. 2 LED-uri
  3. 1 Microcontroller
  4. 1 Soclu
  5. 2 Rezistente 4k7
  6. 2 Rezistente 10k
  7. 1 Rezistenta 15k
  8. 2 Rezistente 1k
  9. 2 Diode
  10. 2 Push Buttons
  11. 1 Header Pini (40p)

→ Componente extra:

  1. Modul cu Matrice de LED-uri MAX7219
  2. Buzzer Activ de 5V
  3. Header de pini (40p)
  4. Fire Colorate
  5. 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:

  1. makeApple() genereaza punctul random care trebuie sa fie atins de catre snake.
  2. pozitia snake-ului o retin cu ajutorul unui vector care contine toate ledurile aprinse.
  3. cand snake-ul se misca, practic, aprind urmatorul led, si il sting pe ultimul ( shiftez elementele din vector, si adaug unul nou)
  4. 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)
  5. dupa ce s-au “mancat” un numar de puncte, jocul trece la nivelul urmator, marind viteza.

Reguli de joc:

  1. jocul porneste si avertizeaza start-ul prin afisajul “GO”
  2. interactiunea cu snake-ul se realizeaza prin cele 4 butoane:
    1. stanga
    2. dreapta
    3. sus
    4. jos
  3. de retinut faptul ca, daca sarpele se deplaseaza spre dreapta, apasarea butonului stanga nu are niciun efect.
  4. sarpele poate trece prin pereti, similar jocului original snake.
  5. cu cat aduna mai multe puncte, snake-ul va avea o lungime mai mare.
  6. trecerea la nivelul urmator, se realizeaza in momentul in care snake-ul a mancat N puncte (in implementare am setat la 5)
  7. un nivel nou, presupune si resetarea lungimii sarpelui la cea initiala
  8. 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

pm/prj2016/mandrei/snake_led_matrix.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