Differences

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

Link to this comparison view

pm:prj2024:alucaci:teodora.baluta2107 [2024/05/20 15:39]
teodora.baluta2107 [Hardware Design]
pm:prj2024:alucaci:teodora.baluta2107 [2024/05/23 13:01] (current)
teodora.baluta2107 [Bibliografie/Resurse]
Line 38: Line 38:
  
 Schema electrică: Schema electrică:
 +
 {{:​pm:​prj2024:​alucaci:​image_2024-05-20_153747575.png?​700|}} {{:​pm:​prj2024:​alucaci:​image_2024-05-20_153747575.png?​700|}}
 ===== Software Design ===== ===== Software Design =====
Line 43: Line 44:
  
  
-Descrierea codului aplicaţiei (firmware)+**1. 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+
  
 +**Mediu de dezvoltare**
 +
 +Pentru dezvoltarea acestui proiect am utilizat PlatformIO, un mediu de dezvoltare integrat (IDE) bazat pe Visual Studio Code. PlatformIO oferă suport pentru o gamă largă de plăci de dezvoltare și microcontrolere,​ inclusiv Arduino Uno, pe care l-am folosit în acest proiect. De asemenea, oferă instrumente avansate pentru depanare, gestionarea bibliotecilor și integrare continuă, ceea ce facilitează dezvoltarea și testarea firmware-ului.
 +
 +
 +**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[] și 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 și 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 și 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 =====
  
  
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru.+**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 ===== 
  
 +===== 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 =====
  
-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|}}
  
  
 ===== Jurnal ===== ===== Jurnal =====
  
 +**25 aprilie:** Selectarea temei proiectului
 +
 +**2 mai:** Crearea paginii de wiki și elaborarea schemei bloc
 +
 +**9 mai:** Plasarea comenzilor pentru piesele necesare
 +
 +**16 mai:** Implementarea componentelor hardware
 +
 +**22 mai:** Dezvoltarea și implementarea software-ului
  
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
  
  
Line 74: Line 132:
  
  
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+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
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html>+https://projecthub.arduino.cc/​Jerepondumie/​make-an-arduino-memory-game-c9c093
  
 +https://​www.instructables.com/​Arduino-Simple-Memory-Game/​
pm/prj2024/alucaci/teodora.baluta2107.1716208788.txt.gz · Last modified: 2024/05/20 15:39 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