Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:abirlica:jumping_game [2021/05/30 16:22]
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 26: Line 26:
 ===== Software Design ===== ===== Software Design =====
  
-{{:​pm:​prj2021:​abirlica:​af336cb_diagrama.png?​850|}}+{{:​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 =====
Line 34: Line 72:
 {{:​pm:​prj2021:​abirlica:​af336cb_2.jpg?​700|}} {{:​pm:​prj2021:​abirlica:​af336cb_2.jpg?​700|}}
  
-{{:​pm:​prj2021:​abirlica:​af336cb_3.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 48: 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 54: 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/​uc?​id=1SpAPNw4tsWV1nPU8E8Q5Rzsbfdf5SOkT&​export=download|Cod Sursa]]\\+[[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]]\\ [[https://​drive.google.com/​u/​0/​uc?​id=1__pgUor1Ck_TUFlaa3WC_G3eeOCxiyGu&​export=download|Biblioteca LCD I2C]]\\
  
  
  
pm/prj2021/abirlica/jumping_game.1622380961.txt.gz · Last modified: 2021/05/30 16:22 by adrian.florea2502
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