Differences

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

Link to this comparison view

pm:prj2023:ndrogeanu:forza4 [2023/05/21 19:27]
nicolae.cornea0612 [Hardware Design]
pm:prj2023:ndrogeanu:forza4 [2023/05/29 10:50] (current)
nicolae.cornea0612 [Software Design]
Line 15: Line 15:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Fiecare jucator va avea cate un joystick prin care alege pe ce coloana sa puna jetonul. ​Cand ales va apasa pe buton pentru a confirma selectia. +Fiecare jucator va avea cate un joystick prin care alege pe ce coloana sa puna jetonul ​(ce led sa se aprinda)Pentru ​selecta coloana ​va misca joystickul in stanga si in dreapta, iar cand se hotaraste va misca joystickul in jos pentru a confirma selectia. Led-urile (din matricea de led-uri) de pe aceeasi coloana se vor aprinde si stinge in cascada pana la ultimul led neaprins anterior. Pe ecranul LCD va aparea al carui jucator ii este randul, iar la final, cand se termina jocul, va aparea castigatorul.
-Led-urile (din matricea de led-uri) de pe aceeasi coloana se vor aprinde si stinge in cascada pana la ultimul led neaprins anterior. Pe ecranul LCD va aparea al carui jucator ii este randul, iar la final, cand se termina jocul, va aparea castigatorul.+
  
 {{:​pm:​prj2023:​ndrogeanu:​schema_pm_cnc.png?​500|}} {{:​pm:​prj2023:​ndrogeanu:​schema_pm_cnc.png?​500|}}
Line 30: Line 29:
   * Fire Mama-Tata   * Fire Mama-Tata
   * Suport baterii   * Suport baterii
 +\\
 Mai jos sunt pozele cu circuitul fizic: Mai jos sunt pozele cu circuitul fizic:
  
 {{:​pm:​prj2023:​ndrogeanu:​circuit2_forza4.jpg?​500|}} {{:​pm:​prj2023:​ndrogeanu:​circuit2_forza4.jpg?​500|}}
  
-{{:​pm:​prj2023:​ndrogeanu:​circuit1_forz4.jpg?​500|}} +{{:​pm:​prj2023:​ndrogeanu:​circuit1_forz4.jpg?​500|}}\\ 
 +\\
  
 Mai jos sunt pozele cu circuitul realizat in fritzing si schema electrica: Mai jos sunt pozele cu circuitul realizat in fritzing si schema electrica:
- 
  
 {{:​pm:​prj2023:​ndrogeanu:​schema2_forza4.jpg?​600|}} {{:​pm:​prj2023:​ndrogeanu:​schema2_forza4.jpg?​600|}}
  
-{{:​pm:​prj2023:​ndrogeanu:​schema1_forza4.jpg?​600|}}+{{:​pm:​prj2023:​ndrogeanu:​schema1_forza4.jpg?​600|}}\\ 
 +\\
  
 Am atasat si un zip cu un video pentru a demonstra ca am realizat legaturile corect, iar componentele functioneaza:​ Am atasat si un zip cu un video pentru a demonstra ca am realizat legaturile corect, iar componentele functioneaza:​
Line 50: Line 49:
 ===== Software Design ===== ===== Software Design =====
  
 +Mediu de dezvoltare: Arduino IDE\\ 
 +Biblioteci: LedControl.h (pentru matricea de LED-uri), LiquidCrystal_I2C.h (pentru ecranul LCD)\\ 
 +Implementare:​\\ 
 +Mai intai am inclus bibliotecile de care aveam nevoie, am definit pinii pentru joystickuri si am facut initializarile necesare. In functia 
 +checkConsecutive am verificat daca un jucator are 4 "​jetoane"​ (LED-uri proprii aprinse) consecutive pe linie, coloana sau diagonala. Apoi in setup am am facut initializarile necesare pentru ecranul lcd si matricea de LED-uri si am afisat pentru inceput randul primului jucator. In functia changeTurn se schimba afisarea de pe ecranul lcd, unde se anunta al cui jucator ii este randul. Declar apoi intervalul de timp la care sa faca blink LED-urile destinate celui de-al doilea jucator. Pentru a diferentia jucatorii, avand o matrice monocolora, LED-urile primului jucator raman aprinse mereu, iar cele ale celui de-al doilea fac blink la un interval de timp. In functia loop mai intai verific sa schimb starea LED-urilor, dupa intervalul de timp, destinate jucatorului 2 pentru a face blink constant. Apoi in functie de al carui jucator este randul efectuez urmatoarele operatii: citesc pozitia joystickului pentru a vedea ce comanda trebuie efectuata, fie mut LED-ul la stanga sau la dreapta, fie daca este orientat in jos inseamna ca s-a confirmat selectia coloanei pe care se plaseaza "​jetonul"​. Daca s-a ajuns la modul de selectie caut care e ultima pozitie de pe coloana disponibila pana jos. Prin aceasta verificare aprind LED-urile de pe coloana in cascada pentru a face animatia de cadere a "​jetonului"​. Apoi restabilesc pozitia LED-ului la inceput pentru urmatorul jucator si schimb randul jucatorului. Ultimul pas pentru acest mod e de a verifica daca un jucator a castigat, iar daca primesc valoarea true atunci reinitializez toate variabilele pentru un joc nou, afisez castigatorul,​ dar si scorul si ma intorc la joc in faza initiala. 
 +   
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-===== Concluzii =====+Aici am atasat un video in care sunt demonstrate functionalitatile proiectului meu: {{:​pm:​prj2023:​ndrogeanu:​videofunctionalitateforza4.zip|}}.  
  
 ===== Download ===== ===== Download =====
  
 +Aici am atasat codul in Arduino pentru proiectul meu: {{:​pm:​prj2023:​ndrogeanu:​proiectpmcod.zip|}}.
  
-===== Jurnal ===== 
  
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- 
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
 https://​www.projecthub.in/​how-to-use-16x2-i2c-lcd-with-arduino/​ \\ https://​www.projecthub.in/​how-to-use-16x2-i2c-lcd-with-arduino/​ \\
 https://​starthardware.org/​en/​arduino-matrix-display-8-x-8-pixels-and-lots-of-fun/​ \\ https://​starthardware.org/​en/​arduino-matrix-display-8-x-8-pixels-and-lots-of-fun/​ \\
 http://​exploreembedded.com/​wiki/​Analog_JoyStick_with_Arduino \\ http://​exploreembedded.com/​wiki/​Analog_JoyStick_with_Arduino \\
 +https://​lastminuteengineers.com/​joystick-interfacing-arduino-processing/​ \\
 +https://​wayoda.github.io/​LedControl/​pages/​software \\
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/ndrogeanu/forza4.1684686448.txt.gz · Last modified: 2023/05/21 19:27 by nicolae.cornea0612
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