Differences

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

Link to this comparison view

pm:prj2022:agmocanu:fastestbutton [2022/05/25 23:19]
florin.oprisan [Descriere generală]
pm:prj2022:agmocanu:fastestbutton [2022/06/01 17:39] (current)
florin.oprisan [Concluzii]
Line 27: Line 27:
  
  
-{{pm:​prj2022:​agmocanu:​oleddisplay_oprisan.jpg}} 
  
  
  
-{{pm:​prj2022:​agmocanu:​arduinouno_oprisan.jpg}}+ 
 +{{pm:​prj2022:​agmocanu:​oleddisplay_oprisan.jpg?​500|}} 
 + 
 + 
 + 
 +{{pm:​prj2022:​agmocanu:​arduinouno_oprisan.jpg?400|}} 
 + 
 +{{:​pm:​prj2022:​agmocanu:​frits_electrical_oprisan.png?​400|}} 
 + 
 + 
 +{{:​pm:​prj2022:​agmocanu:​schema_electrica.jpg?​500|}} 
 + 
  
  
Line 37: Line 48:
 ===== 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:
 +
 +Adafruit_GFX - implementarea functiilor de afisare pe ecran
 +
 +Adafruit_SSD1306.h - comunicarea intre arduino si ecran
 +
 +SPI - comunicarea prin SPI
 +Wire
 +Ca variabile globale am:
 +SCREEN_WIDTH 128
 +SCREEN_HEIGHT 64
 +
 +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
 +
 +
 +running - variabila booleana care spune daca jocul ruleaza la momentul curent de timp
 +
 +Functiile implementate sunt:
 +
 +setup() - initializarea pinilor si a ecranului
 +
 +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 
 + ​scorul se actualizeaza, ​ programul o ia de la inceput.
 +
 +display_score() - afiseaza pe ecran scorul curent al jocului
 +game_over() - afiseaza ecranul de game over atunci cand un jucator ajunge la 3 puncte
 +reset() - functie folosita pentru a reseta scorul
 +
 +Functionare generala:
 +
 +In setup() se initializeaza pinii si ecranul OLED.
 +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
 +
 +
 +In ecranul de “Game Over” este resetat ​ scorul
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
  
  
 +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|}}
  
  
pm/prj2022/agmocanu/fastestbutton.1653509982.txt.gz · Last modified: 2022/05/25 23:19 by florin.oprisan
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