Differences

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

Link to this comparison view

pm:prj2022:ionuto:ponggame [2022/05/16 03:28]
raluca_elena.aldea [Download]
pm:prj2022:ionuto:ponggame [2022/05/16 14:18] (current)
raluca_elena.aldea [Download]
Line 9: Line 9:
 Scopul jocului este de lovi mingea si a-l face pe oponent sa rateze. Scopul jocului este de lovi mingea si a-l face pe oponent sa rateze.
  
-Exista modul de joc player vs player +Exista modul de joc player vs playerFiecare jucator va avea un joystick prin care isi poate controla paleta. La atingerea paletei, mingea ricoseaza si isi schimba directia de mers.
-  +
-Fiecare jucator va avea un joystick prin care isi poate controla paleta. La atingerea paletei, mingea ricoseaza si isi schimba directia de mers.+
  
-Pe parcursul jocului, in fiecare runda, va aparea pe ecran o putere (care va mari lungimea paletei), iar jucatorul care a atins ultimul mingea este cel care o colecteaza.+Pe parcursul jocului, in fiecare runda, va aparea pe ecran o putere (care va mari lungimea paletei), iar jucatorul care a atins ultimul mingea este cel care o colecteaza. Efectul bonusului inceteaza la sfarsitul rundei.
  
-Un player primeste un punct in momentul in care adversarul rateaza mingea. ​La acumularea a 3 puncte, jocul se termina si se poate incepe o noua runda.+Un player primeste un punct in momentul in care adversarul rateaza mingea. ​Atunci cand unul dintre jucatori acumuleaza ​3 puncte, jocul se termina si se poate incepe o noua runda.
  
-Am ales implementarea acestui joc pentru ca este probabil printre primele jocuri pe care l-am jucat in copilarie si s-a potrivit perfect cu dorinta mea de a face un proiect ce implica un ecran LCD.+Am ales implementarea acestui joc pentru ca este probabil printre primele jocuri pe care l-am jucat in copilarie si s-a potrivit perfect cu dorinta mea de a lucra la un proiect ce implica un ecran LCD.
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 23: Line 21:
 {{ :​pm:​prj2022:​ionuto:​pong_schematic_1.png?​nolink |}} \\ {{ :​pm:​prj2022:​ionuto:​pong_schematic_1.png?​nolink |}} \\
  
-Fiecare jucator va avea propriul modul joystick prin care controleaza paleta ​sus sau josMiscarile joystick-ului sunt procesate ​prin placuta Arduino Uno R3 ATmega328P si afisate pe ecranul LCD.+Fiecare jucator va avea propriul modul joystick prin care controleaza paleta. ​Asadar, sistemul are ca input comenzile jucatorilor,​ iar efectele acestora se regasesc in output, adica prin afisarea jocului pe display-ul atasat. In plus, terminarea unei runde si a jocului ​sunt anuntate ​prin sunete emise de buzzer.
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 32: Line 30:
   * Ecran LCD 1.8" SPI (LCD TFT de 1,8 ", cu rezolutia de 128 x 160 pixeli si 262k de culori)   * Ecran LCD 1.8" SPI (LCD TFT de 1,8 ", cu rezolutia de 128 x 160 pixeli si 262k de culori)
   * Modul Buzzer pasiv   * Modul Buzzer pasiv
-  * Modul Joystick PS2+  * 2 Module ​Joystick PS2
   * Rezistente   * Rezistente
   * Fire de legatura   * Fire de legatura
Line 40: Line 38:
   * Breadboard   * Breadboard
  
-Am inceput proiectul prin conectarea ecranului la placuta Arduino. Dupa ce am invatat sa lucrez cu el, am desenat paletele si mingea. Urmatorul pas a fost sa conectez joystick-urile si sa fac paletele sa se miste. Dupa ce am reusit sa fac jocul functional, am conectat butonul ce reseteaza runda de joc si buzzer-ul care face zgomot la fiecare "​gol"​ dat de oricare dintre jucatori, iar la finalul rundei am implementat coloana sonora de la jocul Pac Man. Proiectul fiind pe final, am ales sa il conectez la baterii si un switch pentru ​o portabilitate mai mare.+Am inceput proiectul prin conectarea ecranului la placuta Arduino. Dupa ce am invatat sa lucrez cu el, am desenat paletele si mingea. Urmatorul pas a fost sa conectez joystick-urile si sa fac paletele sa se miste. Dupa ce am reusit sa fac jocul functional, am conectat butonul ce reseteaza runda de joc si buzzer-ul care face zgomot la fiecare "​gol"​ dat de oricare dintre jucatori, iar la finalul rundei am implementat coloana sonora de la jocul Pac Man. Proiectul fiind pe final, am ales sa il conectez la baterii si un switch pentru ​a nu fi dependent de calculator.
  
 Schema proiectului: ​ Schema proiectului: ​
  
-{{ :​pm:​prj2022:​ionuto:​screenshot_2022-05-16_at_02.48.47.png?​nolink&​800 |}}+{{ :​pm:​prj2022:​ionuto:​screenshot_2022-05-16_at_11.07.32.png?​nolink&​800 |}}
  
-Schema detaliata a conexiunii ecranului: ​+Schema detaliata a conexiunii ecranului ​(sursa: https://​mschoeffler.com/​2019/​06/​20/​arduino-tutorial-making-the-kmr-1-8-spi-tft-display-work/​)
  
 {{ :​pm:​prj2022:​ionuto:​screenshot_2022-05-15_at_23.00.16.png?​nolink&​800 |}} {{ :​pm:​prj2022:​ionuto:​screenshot_2022-05-15_at_23.00.16.png?​nolink&​800 |}}
Line 54: Line 52:
 {{ :​pm:​prj2022:​ionuto:​img_8862.jpg?​nolink&​600 |}} {{ :​pm:​prj2022:​ionuto:​img_8862.jpg?​nolink&​600 |}}
  
-Schema electrica: ​TODO!!!!!!!!!!!!+Schema electrica: ​ 
 + 
 +{{ :​pm:​prj2022:​ionuto:​pong_se-2.png?​nolink&​600 |}}
  
 ===== Software Design ===== ===== Software Design =====
Line 64: Line 64:
   * colors.h, ce contine codurile de culoare folosite pe parcursul proectului   * colors.h, ce contine codurile de culoare folosite pe parcursul proectului
   * constants.h,​ unde am definit diverse valori sau texte   * constants.h,​ unde am definit diverse valori sau texte
-  * song.h, ce contine codul sursa pentru coloana sonora a jocului Pac Man+  * song.h, ce contine codul sursa pentru coloana sonora a jocului Pac Man (sursa: https://​github.com/​robsoncouto/​arduino-songs/​blob/​master/​pacman/​pacman.ino)
   * lcd.cpp, ce contine implementarea metodelor ce tin de ecran (desenarea paletelor, a mingii, a puterii si a marginii ecranului)   * lcd.cpp, ce contine implementarea metodelor ce tin de ecran (desenarea paletelor, a mingii, a puterii si a marginii ecranului)
-  * lcd.h+  * lcd.h, header-ul fisierului lcd.cpp; contine semnaturile functilor
   * main.ino, ce contine toata logica jocului   * main.ino, ce contine toata logica jocului
  
Line 85: Line 85:
 A fost un proiect foarte distractiv de realizat. Am invatat sa lucrez cu o placuta arduino, sa folosesc un letcon, sa fiu atenta la conectarea firelor si mi-am indeplinit dorinta de a lucra cu un ecran LCD. Consider ca a fost de o dificultate medie si a ajutat la consolidarea cunostintelor acumulate la laborator. ​ A fost un proiect foarte distractiv de realizat. Am invatat sa lucrez cu o placuta arduino, sa folosesc un letcon, sa fiu atenta la conectarea firelor si mi-am indeplinit dorinta de a lucra cu un ecran LCD. Consider ca a fost de o dificultate medie si a ajutat la consolidarea cunostintelor acumulate la laborator. ​
  
-Cele mai mari dificultati  +Cele mai mare dificultate a fost realizarea coliziunilor cu paleta.
- +
- ​TODO +
 ===== Download ===== ===== Download =====
  
 Arhiva codului sursa: Arhiva codului sursa:
  
-{{:​pm:​prj2022:​ionuto:​ponggame_aldearaluca.zip|}}+{{:​pm:​prj2022:​ionuto:​ponggame_aldearalucae.zip|}} 
 + 
 +Galerie imagini si scheme: ​
  
 +{{:​pm:​prj2022:​ionuto:​galerieimagini_scheme.zip|}}
  
  
Line 100: Line 100:
  
   * Alegerea proiectului si gandirea functionalitatilor   * Alegerea proiectului si gandirea functionalitatilor
 +  * Realizare documentatie Milestone 1
   * Conectarea ecranului LCD si invatarea modului de functionare   * Conectarea ecranului LCD si invatarea modului de functionare
   * Desenarea paletelor, a mingii si realizarea functionalitatii de miscare   * Desenarea paletelor, a mingii si realizarea functionalitatii de miscare
Line 108: Line 109:
   * Implementarea logicii butonului de reset si a switch-ului legat la baterii   * Implementarea logicii butonului de reset si a switch-ului legat la baterii
   * Lipirea componentelor   * Lipirea componentelor
 +  * Realizare documentatie Milestone 2
  
  
pm/prj2022/ionuto/ponggame.1652660884.txt.gz · Last modified: 2022/05/16 03:28 by raluca_elena.aldea
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