This shows you the differences between two versions of the page.
pm:prj2021:abirlica:jumping_game [2021/05/28 13:37] adrian.florea2502 |
pm:prj2021:abirlica:jumping_game [2021/05/30 18:17] (current) adrian.florea2502 |
||
---|---|---|---|
Line 7: | Line 7: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Proiectul consta in implementarea unui simplu joc, folosind un ecran LCD, butoane si un buzzer. | + | Proiectul consta in implementarea unui simplu joc, folosind un ecran LCD, butoane si un buzzer. Ecranul LCD este conectat la microcontroller printr-un modul I2C. Jucatorul poate alege dificultatea jocului, care se refera la viteza de deplasare a personajului. La apasarea de butoane sau la diverse evenimente ale jocului, buzzerul este setat cu anumite melodii/sunete. |
{{:pm:prj2021:abirlica:block_design_af336cb.png?700|}} | {{:pm:prj2021:abirlica:block_design_af336cb.png?700|}} | ||
Line 25: | Line 25: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | **//TODO Schema UML//** | + | |
+ | {{:pm:prj2021:abirlica:af336cb_diagrama.png?800|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:af336cb_diagrama2.png?500|}} | ||
+ | |||
+ | void setup() | ||
+ | - seteaza pinii pentru buzzer, selectare dificultate, saritura (JUMP button); | ||
+ | - creaza obiectele pentru scena folosind initializeGraphics() | ||
+ | - loop in functia menu() pana cand utilizatorul alege o dificultate, dupa care programul trece in loop() | ||
+ | - porneste lcd-ul declarat global | ||
+ | |||
+ | void loop() | ||
+ | - in functie de dificultatea aleasa apeleaza functia principala draw_func(int delay_time) | ||
+ | - delay_time se refera la viteza cu care se actualizeaza scena | ||
+ | |||
+ | void menu() | ||
+ | - parseaza prin setarile de dificultate pana cand se foloseste butonul de jump pentru a incepe jocul | ||
+ | |||
+ | void beginning() | ||
+ | - printeaza mesajul de inceput al jocului, inainte de selectarea dificultatii | ||
+ | |||
+ | void draw_func(int delay_time) | ||
+ | - daca jucatorul nu a avut o coliziune, primeste input de la butonul de jump | ||
+ | - daca s-a intamplat o coliziune, jocul se blocheaza si asteapta input pe jump | ||
+ | - altfel scena se shifteaza la stanga constant folosind functia advanceTerrain() | ||
+ | |||
+ | bool drawHero(byte position, char* terrainUpper, char* terrainLower, unsigned int score) | ||
+ | - verificarea coliziunii dintre personaj si scena | ||
+ | - afiseaza personajul si animatiile sale | ||
+ | |||
+ | void advanceTerrain(char* terrain, byte newTerrain) | ||
+ | - afiseaza piese in scena si genereaza parti noi | ||
+ | |||
+ | |||
+ | PIN 4: select\\ | ||
+ | PIN 3: buzzer\\ | ||
+ | PIN 2: jump\\ | ||
+ | <note> | ||
+ | Biblioteca folosita pentru comunicarea I2C este atasata in sectiunea [[:pm:prj2021:abirlica:jumping_game#Bibliografie/Resurse]]. | ||
+ | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
{{:pm:prj2021:abirlica:af336cb_1.jpg?700|}} | {{:pm:prj2021:abirlica:af336cb_1.jpg?700|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:af336cb_2.jpg?700|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:af336cb_4.jpg?700|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:af336cb_5.jpg?700|}} | ||
<note tip> | <note tip> | ||
- | {{https://youtu.be/vlh2DuX1jmI|DEMO}} | + | {{https://youtu.be/vlh2DuX1jmI| < < DEMO > > }} |
</note> | </note> | ||
Line 43: | Line 88: | ||
2021/05/11 [[:pm:prj2021:abirlica:jumping_game]] Schema electrica\\ | 2021/05/11 [[:pm:prj2021:abirlica:jumping_game]] Schema electrica\\ | ||
2021/05/28 [[:pm:prj2021:abirlica:jumping_game]] Demo\\ | 2021/05/28 [[:pm:prj2021:abirlica:jumping_game]] Demo\\ | ||
+ | 2021/05/30 [[:pm:prj2021:abirlica:jumping_game]] Finalizare pagina\\ | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 49: | Line 94: | ||
[[https://www.plusivo.jo/avr-boards/9-plusivo-uno-r3-development-board-atmega328p-and-ch340-cable.html|Driver Plusivo]]\\ | [[https://www.plusivo.jo/avr-boards/9-plusivo-uno-r3-development-board-atmega328p-and-ch340-cable.html|Driver Plusivo]]\\ | ||
[[https://www.youtube.com/watch?v=q9YC_GVHy5A&ab_channel=Robojax|Tutorial LCD 1602 I2C]]\\ | [[https://www.youtube.com/watch?v=q9YC_GVHy5A&ab_channel=Robojax|Tutorial LCD 1602 I2C]]\\ | ||
+ | [[https://drive.google.com/u/0/uc?id=1rUyuZsRFcasB5L9waRnIXrl9UVhgJ46Q&export=download|Cod Sursa]]\\ | ||
+ | [[https://drive.google.com/u/0/uc?id=1__pgUor1Ck_TUFlaa3WC_G3eeOCxiyGu&export=download|Biblioteca LCD I2C]]\\ | ||