This shows you the differences between two versions of the page.
pm:prj2023:ndrogeanu:forza4 [2023/05/29 00:34] nicolae.cornea0612 [Bibliografie/Resurse] |
pm:prj2023:ndrogeanu:forza4 [2023/05/29 10:50] (current) nicolae.cornea0612 [Software Design] |
||
---|---|---|---|
Line 52: | Line 52: | ||
Biblioteci: LedControl.h (pentru matricea de LED-uri), LiquidCrystal_I2C.h (pentru ecranul LCD)\\ | Biblioteci: LedControl.h (pentru matricea de LED-uri), LiquidCrystal_I2C.h (pentru ecranul LCD)\\ | ||
Implementare:\\ | 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 ===== | ||
Line 68: | Line 71: | ||
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> | ||