Differences

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

Link to this comparison view

pm:prj2024:alucaci:teodora.baluta2107 [2024/05/05 22:10]
teodora.baluta2107 [Descriere generală]
pm:prj2024:alucaci:teodora.baluta2107 [2024/05/23 13:01] (current)
teodora.baluta2107 [Bibliografie/Resurse]
Line 2: Line 2:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip>+
 **Memory Game** este o reinterpretare digitală a clasicului joc de memorie Simon Says. **Memory Game** este o reinterpretare digitală a clasicului joc de memorie Simon Says.
  
Line 13: Line 13:
 Este util pentru alții deoarece oferă o modalitate distractivă și educativă de petrecere a timpului liber, stimulând memoria și atenția jucătorilor de toate vârstele. Este util pentru alții deoarece oferă o modalitate distractivă și educativă de petrecere a timpului liber, stimulând memoria și atenția jucătorilor de toate vârstele.
 Acest proiect reprezintă o oportunitate de a îmi dezvolta abilitățile în ingineria hardware și software, experimentând cu tehnologii noi și obținând satisfacție din rezultatele muncii depuse. Acest proiect reprezintă o oportunitate de a îmi dezvolta abilitățile în ingineria hardware și software, experimentând cu tehnologii noi și obținând satisfacție din rezultatele muncii depuse.
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip>+ 
 +Proiectul constă într-un joc de memorie bazat pe conceptul popular Simon Says. Jucătorul interacționează cu dispozitivul folosind butoanele pentru a reproduce secvențele luminoase generate aleatoriu. Arduino Uno servește ca unitate centrală de procesare, primind intrările de la butoane și generând ieșiri corespunzătoare pentru buzzer, display-ul LCD I2C și LED-uri. Scopul jocului este de a ajunge cât mai departe prin memorarea și reproducerea corectă a secvențelor în creștere de semnale. 
 + 
 {{:​pm:​prj2024:​alucaci:​mem.png?​600|}} {{:​pm:​prj2024:​alucaci:​mem.png?​600|}}
-</​note>​ 
  
-===== Hardware Design =====+Componentele utilizate în proiect sunt următoarele:​
  
-<note tip> +  * Arduino Uno 
-Aici puneţi tot ce ţine de hardware design: +  * Display LCD 16×2 
-  * listă de piese +  * Modul LCD I2C 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +  * Buton de apăsare 
-  * diagrame ​de semnal ​ +  * Rezistor 100R 
-  * rezultatele simulării +  * LED-uri 
-</​note>​+  * Buzzer 
 +  * Fire de conexiune 
 +  * Breadboard 
 +  * Fire jumper tată-tată 
 +  * Fire jumper tată-mamă 
 +{{:​pm:​prj2024:​alucaci:​img_6964.jpeg?​400|}}
  
 +Schema electrică:
 +
 +{{:​pm:​prj2024:​alucaci:​image_2024-05-20_153747575.png?​700|}}
 ===== Software Design ===== ===== Software Design =====
  
  
-<note tip> + 
-Descrierea codului aplicaţiei (firmware): +**1. Descrierea codului aplicaţiei (firmware)** 
-  * mediu de dezvoltare (if any(e.gAVR StudioCodeVisionAVR) + 
-  librării şi surse 3rd-party ​(e.gProcyon AVRlib) +**Mediu de dezvoltare** 
-  algoritmi şi structuri pe care plănuiţsă le implementaţ+ 
-  * (etapa 3surse şfuncţii implementate +Pentru dezvoltarea acestui proiect am utilizat PlatformIO, un mediu de dezvoltare ​integrat ​(IDEbazat pe Visual Studio CodePlatformIO oferă suport pentru o gamă largă de plăci de dezvoltare și microcontrolere,​ inclusiv Arduino Uno, pe care l-am folosit în acest proiectDe asemeneaoferă instrumente avansate pentru depanare, gestionarea bibliotecilor și integrare continuă, ceea ce facilitează dezvoltarea și testarea firmware-ului. 
-</​note>​+ 
 + 
 +**2. Librării şi surse 3rd-party** 
 + 
 +În cadrul acestui proiect am folosit următoarele librării externe: 
 + 
 +**LiquidCrystal_I2C** - Pentru a facilita interacțiunea cu afișajul LCD folosind protocolul I2C. 
 + 
 +**Wire** - O bibliotecă standard Arduino pentru comunicarea I2C, necesară pentru funcționarea bibliotecii LiquidCrystal_I2C
 + 
 +**Arduino.h** - Biblioteca de bază a platformei Arduino, care oferă funcții esențiale pentru manipularea pinii, temporizări și comunicare serială. 
 + 
 + 
 +**3. Algoritmi și structuri ​implementate** 
 + 
 +**Algoritmul jocului de memorare:​** 
 +  * Generarea secvențelor de LED-uri într-un mod aleator. 
 +  * Afișarea secvențelor ​pe LED-uri și LCD. 
 +  * Verificarea secvenței introduse de utilizator pentru a determina dacă este corectă sau greșită. 
 + 
 +**Vectori (array):​** 
 +  * buttons[] șleds[] pentru a stoca pinii butoanelor și LED-urilor. 
 +  * bt_simonSaid[] și led_simonSaid[] pentru a stoca secvențele generate și secvențele introduse de utilizator. 
 + 
 +**Variabile booleene:​** 
 +  * lost pentru a determina dacă utilizatorul a pierdut jocul. 
 + 
 +**4. Funcții principale:​** 
 + 
 +**setup():​** 
 +  * Inițializează comunicația serială. 
 +  * Configurează pinii butoanelor ca intrări cu rezistență de pull-up. 
 +  * Configurează pinii LED-urilor șbuzzerului ca ieșiri. 
 +  * Inițializează LCD-ul și afișează mesajul de bun venit. 
 +  * Setează o valoare inițială pentru generatorul de numere aleatorii. 
 + 
 +**loop():** 
 +  * Gestionează stadiile jocului folosind un switch statement:​ 
 +          * Stadiul 0: Așteaptă ca utilizatorul să apese butonul roșu pentru a începe jocul. 
 +          * Stadiul 1: Afișează nivelul curent șgenerează o secvență nouă. 
 +          * Stadiul 2: Așteaptă ca utilizatorul să introducă secvența. 
 +          * Stadiul 3: Verifică secvența introdusă de utilizator. 
 +          * Stadiul 4: Afișează mesajul de pierdere și resetează jocul. 
 +          * Stadiul 5: Afișează mesajul de câștig și trece la următorul nivel. 
 + 
 +**playBuzzer(int x):** 
 +  * Redă un sunet pe buzzer pentru a indica apăsarea unui buton.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
  
-===== Concluzii =====+**Funcționalitatea jocului:​** 
 +Implementarea inițială a jocului de memorare a întâmpinat dificultăți în ceea ce privește generarea și verificarea secvențelor de LED-uri. Afișajul LCD nu a fost corect, ​ multe informații nefiind vizibile din cauza firelor de calitate slabă.
  
 +**Depanarea și testarea:**
 +Testarea și depanarea codului au evidențiat probleme de inițializare și configurare a componentelor hardware. Integrarea componentelor hardware (butoane, LED-uri, buzzer, LCD) nu a fost realizată complet cu succes, ceea ce a dus la nefuncționarea corectă a jocului.
 +
 +
 +===== Concluzii =====
 +Proiectul a întâmpinat diverse probleme care au afectat funcționarea sa corectă. Dificultățile principale au fost legate de inițializarea și configurarea corectă a componentelor hardware și de afișarea adecvată a informațiilor pe LCD. Deși proiectul nu a funcționat conform așteptărilor inițiale, procesul de dezvoltare a fost educativ. Am învățat lecții valoroase despre necesitatea unei structuri clare a codului, importanța testării riguroase și a depanării continue. Această experiențe va fi de mare ajutor în realizarea viitoarelor proiecte.
 ===== Download ===== ===== Download =====
  
-<note warning> 
-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**+{{:pm:prj2024:alucaci:baluta_teodora.zip|}} 
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +**25 aprilie:** Selectarea temei proiectului 
-Putețavea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. + 
-</​note>​+**2 mai:** Crearea paginii de wiki șelaborarea schemei bloc 
 + 
 +**9 mai:** Plasarea comenzilor pentru piesele necesare 
 + 
 +**16 mai:** Implementarea componentelor hardware 
 + 
 +**22 mai:** Dezvoltarea ​și implementarea software-ului 
 + 
  
 ===== 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>+https://​www.youtube.com/​watch?​v=BJ93XCcD858 
 + 
 +https://​www.handsontec.com/​dataspecs/​module/​I2C_1602_LCD.pdf 
 + 
 +https://​www.youtube.com/​watch?v=gj-H_agfd6U&​t=3s 
 + 
 +https://​projecthub.arduino.cc/Jerepondumie/make-an-arduino-memory-game-c9c093
  
 +https://​www.instructables.com/​Arduino-Simple-Memory-Game/​
pm/prj2024/alucaci/teodora.baluta2107.1714936232.txt.gz · Last modified: 2024/05/05 22:10 by teodora.baluta2107
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