This shows you the differences between two versions of the page.
pm:prj2022:agmocanu:fastestbutton [2022/05/25 23:44] florin.oprisan [Software Design] |
pm:prj2022:agmocanu:fastestbutton [2022/06/01 17:39] (current) florin.oprisan [Concluzii] |
||
---|---|---|---|
Line 25: | Line 25: | ||
* OLED Display | * OLED Display | ||
* Breadboard | * Breadboard | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 32: | Line 36: | ||
{{pm:prj2022:agmocanu:arduinouno_oprisan.jpg?400|}} | {{pm:prj2022:agmocanu:arduinouno_oprisan.jpg?400|}} | ||
+ | |||
+ | {{:pm:prj2022:agmocanu:frits_electrical_oprisan.png?400|}} | ||
+ | |||
+ | |||
+ | {{:pm:prj2022:agmocanu:schema_electrica.jpg?500|}} | ||
+ | |||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
+ | |||
+ | https://github.com/Tsunami36/Ma-Project2022/blob/main/Main | ||
Am scris codul in mediul de dezvoltare: Arduino IDE. Am folosit urmatoarele biblioteci: | Am scris codul in mediul de dezvoltare: Arduino IDE. Am folosit urmatoarele biblioteci: | ||
Line 48: | Line 61: | ||
SCREEN_WIDTH 128 | SCREEN_WIDTH 128 | ||
SCREEN_HEIGHT 64 | SCREEN_HEIGHT 64 | ||
- | randomNumber | ||
- | player1_score, player2_score - scorul fiecarui jucator | + | randomNumber1 -numarul ledurilor care se va aprinde |
+ | randomNumber2 -tipul pana cand se vor aprinde ledurile | ||
+ | |||
pushes_p1,pushes_p2-nr de apasari al fiecare jucator | pushes_p1,pushes_p2-nr de apasari al fiecare jucator | ||
+ | |||
running - variabila booleana care spune daca jocul ruleaza la momentul curent de timp | running - variabila booleana care spune daca jocul ruleaza la momentul curent de timp | ||
Line 61: | Line 77: | ||
loop() -se aprind un random numar de leduri(1-3) dupa un interval random de timp | loop() -se aprind un random numar de leduri(1-3) dupa un interval random de timp | ||
se detecteaza apasarile de butoane, primul player care apasa de un numar corespunzatori de ori castiga runda | se detecteaza apasarile de butoane, primul player care apasa de un numar corespunzatori de ori castiga runda | ||
- | scorul se actualizeaza, programul o ia de la inceput | + | scorul se actualizeaza, programul o ia de la inceput. |
display_score() - afiseaza pe ecran scorul curent al jocului | display_score() - afiseaza pe ecran scorul curent al jocului | ||
Line 72: | Line 88: | ||
Jocul incepe cand ambii jucatori sunt pregtiti. Timerul intern random incepe si cand se termina un numar de leduri se va aprinde. | Jocul incepe cand ambii jucatori sunt pregtiti. Timerul intern random incepe si cand se termina un numar de leduri se va aprinde. | ||
Primul jucator care apasa butonul de numarul corespunzator de ori primeste un punct | Primul jucator care apasa butonul de numarul corespunzator de ori primeste un punct | ||
- | Cand un jucator ajunge la 3 puncte se sfarseste jocul. | + | |
In ecranul de “Game Over” este resetat scorul | In ecranul de “Game Over” este resetat scorul | ||
Line 79: | Line 95: | ||
+ | Start of the game | ||
+ | |||
+ | {{:pm:prj2022:agmocanu:startgame.jpeg?300|}} | ||
+ | |||
+ | |||
+ | Middle of the game | ||
+ | |||
+ | {{:pm:prj2022:agmocanu:midgame.jpeg?300|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Proiectul a fost unul interesant, cea mai grea parte a proiectului a fost sa conectez in mod corect ecranul OLED la Arduino deoarece majoritatea documentatiei este pe I2C. De asemenea, am avut dificultati in a gasi o biblioteca pentru a controla afisarea pe ecran din cod. Intr-un final am obtinut ce mi-am dorit, jocul este functional chiar daca poate fi imbunatatit. | ||
===== Download ===== | ===== Download ===== | ||
+ | {{:pm:prj2022:agmocanu:main2.rar|}} | ||