This shows you the differences between two versions of the page.
pm:prj2021:abasoc:reversedsnake [2021/04/25 22:20] marian.burcea [Hardware Design] |
pm:prj2021:abasoc:reversedsnake [2021/06/03 00:42] (current) marian.burcea [Bibliografie/Resurse] |
||
---|---|---|---|
Line 21: | Line 21: | ||
* buzzer pasiv | * buzzer pasiv | ||
+ | \\ | ||
+ | **Schema electrica:** \\ | ||
+ | {{ :pm:prj2021:abasoc:schema_electrica_marian.png?700 }} \\ | ||
+ | \\ | ||
====== Software Design ====== | ====== Software Design ====== | ||
- | TODO | + | 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 ====== | ====== Rezultate obtinute ====== | ||
- | TODO | + | \\ |
+ | **Asamblare circuit:** \\ | ||
+ | {{ :pm:prj2021:abasoc:rezultatemarianburcea.jpg?700 }} \\ | ||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | **Demo:** \\ | ||
+ | [[https://www.youtube.com/watch?v=Vco3kbgJUho|Demo proiect]] \\ | ||
+ | \\ | ||
====== Concluzii ====== | ====== Concluzii ====== | ||
- | TODO | + | 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 ====== | ====== Download ====== | ||
- | TODO | + | **Cod sursa:**\\ |
+ | {{:pm:prj2021:abasoc:snake_game.zip| snake_game.zip}} | ||
+ | \\ | ||
====== Jurnal ====== | ====== Jurnal ====== | ||
- | TODO | + | |
+ | * **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 ====== | ====== Bibliografie/Resurse ====== | ||
- | TODO | + | * 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/ | ||