This shows you the differences between two versions of the page.
pm:prj2021:abasoc:reversedsnake [2021/04/23 23:38] marian.burcea created |
pm:prj2021:abasoc:reversedsnake [2021/06/03 00:42] (current) marian.burcea [Bibliografie/Resurse] |
||
---|---|---|---|
Line 5: | Line 5: | ||
====== Introducere ====== | ====== Introducere ====== | ||
- | TODO | + | Reversed Snake reprezinta o varianta modificata a jocului clasic Snake (telefon, PC etc.) si se diferentiaza prin faptul ca nu sarpele trebuie controlat de jucator, ci mancarea. Scopul jocului este sa nu fii prins de sarpe, care, pe masura ce timpul trece, devine din ce in ce mai lung, ingreunand astfel jocul. |
====== Descriere generală ====== | ====== Descriere generală ====== | ||
- | TODO | + | Jocul se bazeaza pe utilizarea unui joystick spre a controla sarpele, miscandu-l in 4 directii posibile. Afisarea se va face prin intermediul unei matrice cu leduri, deci plansa jocului va fi implicit de 8x8. Prin intermediul unui buzzer pasiv se va informa jucatorul cand sarpele creste sau cand jocul s-a terminat (jucatorul este prins). Potentiometrul are rolul de a schimba viteza de joc, atat pentru sarpe, cat si pentru mancare. |
+ | |||
+ | ====== Hardware Design ====== | ||
+ | Componente folosite: | ||
+ | * placa Arduino UNO | ||
+ | * breadboard | ||
+ | * joystick | ||
+ | * matrice cu leduri | ||
+ | * potentiometru | ||
+ | * fire mama-tata | ||
+ | * fire tata-tata | ||
+ | * buzzer pasiv | ||
+ | |||
+ | \\ | ||
+ | **Schema electrica:** \\ | ||
+ | {{ :pm:prj2021:abasoc:schema_electrica_marian.png?700 }} \\ | ||
+ | \\ | ||
+ | ====== Software Design ====== | ||
+ | Programul este constituit din 4 functii majore, detaliate in randurile urmatoare. | ||
+ | |||
+ | ***generateFood()*** va genera mancarea (personajul principal) dupa ce a verificat ca nu se afla pe harta. Verificarea se face prin intermediul coordonatelor mancarii (row, col != -1). | ||
+ | |||
+ | ***scanJoystick()*** scaneaza informatia primta de la joystick (sus, jos, stanga, dreapta) si modifica, daca e cazul, directia in care se deplaseaza mancarea. Tot aici este implementata si inteligenta artificiala a sarpelui, care se va deplasa intotdeauna spre mancare. | ||
+ | |||
+ | ***calculateSnake()*** modifica si afiseaza noua matrice dupa ce obiectele s-au miscat. Tot aici se verifica si daca jocul a luat sfarsit. | ||
+ | |||
+ | ***handleGameStates()*** verifica daca s-a terminat jocul si il reporneste in caz afirmativ, resetand pozitia sarpelui si cea a mancarii. | ||
+ | |||
+ | Pentru utilizarea matricii de leduri am folosit biblioteca LedControl.h. Variabila ***snakeSpeed*** este cea care decide cat de repede se vor misca personajele pe mapa si este afectata in mod direct de petentiometru in functia scanJoystick(). | ||
+ | ====== Rezultate obtinute ====== | ||
+ | \\ | ||
+ | **Asamblare circuit:** \\ | ||
+ | {{ :pm:prj2021:abasoc:rezultatemarianburcea.jpg?700 }} \\ | ||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | **Demo:** \\ | ||
+ | [[https://www.youtube.com/watch?v=Vco3kbgJUho|Demo proiect]] \\ | ||
+ | \\ | ||
+ | |||
+ | ====== Concluzii ====== | ||
+ | Proiectul m-a ajutat sa inteleg mai bine conceptele invatate la laborator intrucat am putut interactiona fizic cu componentele cu care am lucrat in timpul semestrului in Tinkercad. Obstacolele pe care le-am intampinat m-au ajutat sa-mi insusesc mai bine cunostintele legate de Proiectarea cu Microprocesoare. | ||
+ | |||
+ | PS: Am ars buzzer-ul, de aia nu apare in prezentare :) | ||
+ | |||
+ | ====== Download ====== | ||
+ | **Cod sursa:**\\ | ||
+ | {{:pm:prj2021:abasoc:snake_game.zip| snake_game.zip}} | ||
+ | \\ | ||
+ | |||
+ | ====== Jurnal ====== | ||
+ | |||
+ | * **23/04/2021** - Realizare schema electrica | ||
+ | * **25/04/2021** - Publicare pagina | ||
+ | * **21/05/2021** - Realizare schema fizica si rezolvare bug-uri | ||
+ | * **03/06/2021** - Publicare varianta finala | ||
+ | |||
+ | ====== Bibliografie/Resurse ====== | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab2-2021 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab3-2021 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab4-2021 | ||
+ | * https://www.arduino.cc/ | ||
- | ====== Schemă hardware ====== | ||
- | TODO | ||