This shows you the differences between two versions of the page.
pm:prj2022:agmocanu:fastestbutton [2022/05/12 16:56] florin.oprisan |
pm:prj2022:agmocanu:fastestbutton [2022/06/01 17:39] (current) florin.oprisan [Concluzii] |
||
---|---|---|---|
Line 14: | Line 14: | ||
- | {{pm:prj2022:agmocanu:oprisan_fastest.png?400|}} | + | {{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 ===== | ||
Line 31: | Line 27: | ||
- | {{pm:prj2022:agmocanu:oleddisplay_oprisan.jpg}} | ||
- | {{pm:prj2022:agmocanu:arduinouno_oprisan.jpg}} | ||
- | <note tip> | + | {{pm:prj2022:agmocanu:oleddisplay_oprisan.jpg?500|}} |
- | 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 | + | {{pm:prj2022:agmocanu:arduinouno_oprisan.jpg?400|}} |
- | * rezultatele simulării | + | |
- | </note> | + | {{:pm:prj2022:agmocanu:frits_electrical_oprisan.png?400|}} |
+ | |||
+ | |||
+ | {{:pm:prj2022:agmocanu:schema_electrica.jpg?500|}} | ||
+ | |||
+ | |||
+ | |||
===== 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 proiectului: surse, 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> | ||