Differences

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

Link to this comparison view

pm:prj2021:avaduva:jumpgame [2021/05/02 18:37]
andrei.jelea
pm:prj2021:avaduva:jumpgame [2021/06/03 10:08] (current)
andrei.jelea
Line 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
-    ​Proiectul consta in crearea unui joc in care scopul este evitarea obstacolelor prin salt pentru obtinerea unui punctaj cat mai mare. Interactiunea jucatorului are loc prin intermediul unui buton, iar reprezentarea jocului se face cu ajutorul unui ecran LCD.+Proiectul consta in crearea unui joc in care scopul este evitarea obstacolelor prin salt pentru obtinerea unui punctaj cat mai mare. Interactiunea jucatorului are loc prin intermediul unui buton, iar reprezentarea jocului se face cu ajutorul unui ecran LCD.
  
 ===== Descriere generală ===== ===== Descriere generală =====
  
-    ​Jucatorul trebuie sa sara peste diversele obstacole ​ce vor aparea din fata si va primi puncte ​pentru fiecare obstacol evitat. Pe masura ce acesta ​inainteaza, obstacolele ​vin din ce in ce mai repedeJocul se termina cand jucatorul obtine 1000 de puncte.+Jucatorul trebuie sa sara peste obstacolele ​ce vor aparea din fata si va primi puncte ​pe masura ce inainteaza. Obstacolele ​vin din partea dreapta, iar scorul este afisat ​in coltul din dreapta sus. 
 + 
 + 
 +===== Schema bloc ===== 
 + 
 +{{ :​pm:​prj2021:​avaduva:​jumpgame.png |}} 
 + 
 +===== Hardware Design ​ ===== 
 + 
 +==== Lista de componente ====
  
-===== Componente ===== 
  
   * Arduino UNO   * Arduino UNO
-  * Adafruit RGB Backlight ​LCD+  * LCD 20x4
   * Breadbord   * Breadbord
   * Rezistor 220ohm   * Rezistor 220ohm
Line 20: Line 28:
   * Fire   * Fire
  
-===== Schema bloc =====+==== Schema ​electrica ==== 
 + 
 +{{ :​pm:​prj2021:​avaduva:​webp.net-resizeimage.png |}} 
 + 
 +===== Software Design ===== 
 + 
 +Descriere software: 
 +  * Mediul de dezvoltare: Arduino IDE 
 +  * Biblioteca folosita: LiquidCrystal.h 
 +  * Logica implementarii:​ 
 + 
 +Actiunea jocului are loc doar pe primele 2 linii si primele 16 coloane ale LCD-ului. Jucatorul se va afla mereu pe coloana 1 si pe liniile 1 sau 2(daca alearga este pe linia 2, iar daca se afla in saritura este pe linia 1). La un moment de timp, fiecare ​bloc(care are 5x8 = 40 biti) din cele 2 x 16 = 32 va avea o configuratie anume din urmatoarele:​ 
 +  * Bloc obstacol complet 
 +  * Bloc obstacol inceput 
 +  * Bloc obstacol sfarsit 
 +  * Bloc gol 
 +  * Bloc jucator in alergare 
 +  * Bloc jucator in saritura completa(linia1) 
 +  * Bloc jucator la jumatatea sariturii, partea de jos(linia2) 
 +  * Bloc jucator la jumatatea sariturii, partea de sus(linia1) 
 +Inregistrarile tuturor configuratiilor se realizeaza prin functia createChar, din biblioteca LiquidCrystal.h,​ care asociaza un index fiecarei configuratii de 5x8 biti si astfel, afisarea se va face cu functia print, folosind ca argument doar indexul respectiv. 
 +Functiile folosite sunt: 
 +  * init_graphics:​ se initializeaza configuratiile posibile si se memoreaza cu functia createChar; se configureaza blocurile initiale, toate fiind de tipul "Bloc gol"​. 
 +  * slide_blocks:​ functie pentru deplasarea in stanga a obstacolelor 
 +  * draw_hero: functie ce determina configuratia blocurilor de pe coloana eroului pe baza actiunii acestuia si printeaza toate blocurile; de asemenea, se verifica si daca are loc coliziunea jucatorului cu obstacolele. 
 +  * setup: se initializeaza pinii si tipurile de configuratii 
 +  * loop: este implementata logica jocului - la fiecare frame se apeleaza functiile descrise de mai sus 
 + 
 +===== Rezultate obtinute ===== 
 + 
 +{{ :​pm:​prj2021:​avaduva:​webp.net-resizeimage.jpg |}} 
 + 
 +{{ :​pm:​prj2021:​avaduva:​webp.net-resizeimage_1_.jpg |}} 
 + 
 +===== Concluzii ===== 
 + 
 +Consider ca a fost un proiect foarte interesant, din care am avut multe de invatat, atat pe partea de hardware cat si pe cea de software si rezultatul este unul satisfacator. 
 + 
 +===== Jurnal ===== 
 + 
 +  * Etapa1 
 + 
 +Alegerea temei proiectului 
 + 
 +  * Etapa2 
 + 
 +Achizitionarea pieselor necesare si a ustensilelor utilizate pentru lipirea pinilor LCD-ului 
 + 
 +  * Etapa3 
 + 
 +Asamblarea efectiva a partii hardware si scrierea codului 
 + 
 +===== Download ===== 
 + 
 +{{:​pm:​prj2021:​avaduva:​andrei_jelea_333cc_proiectpm.zip|}} 
 + 
 +===== Demo ===== 
 + 
 +https://​drive.google.com/​file/​d/​1D_baxJYIpgqKhzp0HHltPS_vNCKCK_yl/​view?​usp=sharing 
 + 
 +===== Bibliografie si Resurse ===== 
 + 
 +[[https://​www.youtube.com/​watch?​v=JTL3vzvTZac]] 
 + 
 +[[https://​www.arduino.cc/​en/​Reference/​LiquidCrystal]] 
 + 
 +[[https://​www.arduino.cc/​en/​Reference/​LiquidCrystalCreateChar]] 
 + 
 + 
 + 
 + 
 + 
  
-{{ :​pm:​prj2021:​avaduva:​jumpgame.png |}} 
  
  
  
pm/prj2021/avaduva/jumpgame.1619969865.txt.gz · Last modified: 2021/05/02 18:37 by andrei.jelea
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