Differences

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

Link to this comparison view

pm:prj2022:agmocanu:fastestbutton [2022/05/06 19:59]
florin.oprisan [Descriere generală]
pm:prj2022:agmocanu:fastestbutton [2022/06/01 17:39] (current)
florin.oprisan [Concluzii]
Line 14: Line 14:
  
  
-{{pm:​prj2022:​agmocanu:​diagrama.jpg}}+{{pm:​prj2022:​agmocanu:​oprisan_fastest.png?500|}}
  
-<note tip> 
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. 
  
- 
-</​note>​ 
  
 ===== Hardware Design ===== ===== Hardware Design =====
--Arduino UNO +  * Arduino UNO R3 
--Breadboard +  * Resistors 
--6 LEDs +  ​* ​LEDs 
--2 buttons +  * Capacitive touch buttons 
--LCD display +  * OLED Display 
--Switch +  * Breadboard 
--Wires and rezistors+ 
 + 
 + 
 + 
 + 
 + 
 +{{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|}} 
 + 
  
  
-<note tip> 
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
-</​note>​ 
  
 ===== Software Design ===== ===== Software Design =====
-<note tip> 
-Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi 
-  * (etapa 3) surse şi funcţii implementate 
-</​note>​ 
  
 +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 =====
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
  
 +
 +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 =====
  
-<note warning>​ +{{:pm:​prj2022:​agmocanu:​main2.rar|}}
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. 
-</​note>​ 
  
 ===== Jurnal ===== ===== Jurnal =====
 22.04.2022 -Decis tema si concept, realizat primul draft de site. 22.04.2022 -Decis tema si concept, realizat primul draft de site.
-<note tip> +
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +
-</​note>​+
  
 <​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/prj2022/agmocanu/fastestbutton.1651856378.txt.gz · Last modified: 2022/05/06 19:59 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