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/ | ||