Differences

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

Link to this comparison view

pm:prj2025:avaduva:stefania.tunaru [2025/05/25 14:47]
stefania.tunaru [Jurnal]
pm:prj2025:avaduva:stefania.tunaru [2025/05/25 16:24] (current)
stefania.tunaru [Bibliografie/Resurse]
Line 91: Line 91:
 Proiectul este dezvoltat în Arduino IDE, care oferă un mediu ușor de utilizat pentru programarea și încărcarea codului pe placa Arduino. Tot codul este scris în C++, folosind bibliotecile standard Arduino și logică personalizată pentru implementarea scopului proiectului. Proiectul este dezvoltat în Arduino IDE, care oferă un mediu ușor de utilizat pentru programarea și încărcarea codului pe placa Arduino. Tot codul este scris în C++, folosind bibliotecile standard Arduino și logică personalizată pentru implementarea scopului proiectului.
  
-Stadiul din punctul de vedere al software-ului este aproape de final, funcționalitățile ​principale sunt integrate complet ​în codul proiectului și urmează să adaug câteva feature-uri ce țin de stilizare.+Proiectul a fost finalizatiar toate funcționalitățile ​sale au fost prezentate ​în filmulețul de demo atașat acestei pagini.
  
 ==== Elementul de noutate al proiectului ==== ==== Elementul de noutate al proiectului ====
Line 102: Line 102:
  
 Am folosit această bibliotecă pentru a controla display-ul LCD care comunică prin interfața I2C și care permite afișarea textului ce oferă informații la numele proiectului,​ moduri de joc, modul de joc selectat, scor, ecranul de sfărșit de joc, etc. Pentru afișare am folosit comenzi simple precum: **lcd.init()** - inițializează comunicarea cu ecranul LCD, **lcd.backlit()** - activează lumina de fundal a ecranului, **lcd.print()** - afișează textul specificat pe ecranul LCD, **lcd.setCursor()** - setează poziția cursorului unde va fi scris textul și **lcd.clear()** - șterge tot ce e afișat pe ecranul LCD și resetează cursorul la poziția (0, 0). Am folosit această bibliotecă pentru a controla display-ul LCD care comunică prin interfața I2C și care permite afișarea textului ce oferă informații la numele proiectului,​ moduri de joc, modul de joc selectat, scor, ecranul de sfărșit de joc, etc. Pentru afișare am folosit comenzi simple precum: **lcd.init()** - inițializează comunicarea cu ecranul LCD, **lcd.backlit()** - activează lumina de fundal a ecranului, **lcd.print()** - afișează textul specificat pe ecranul LCD, **lcd.setCursor()** - setează poziția cursorului unde va fi scris textul și **lcd.clear()** - șterge tot ce e afișat pe ecranul LCD și resetează cursorul la poziția (0, 0).
- 
-  * **Biblioteca Wire.h** 
- 
-Am utilizat biblioteca aceasta pentru a activa comunicația I2C între plăcuța Arduino și ecranul LCD. 
 ==== Algoritmi și Structuri ==== ==== Algoritmi și Structuri ====
 Software-ul este organizat ca o mașină cu state finite (FSM) cu două stări principale: Software-ul este organizat ca o mașină cu state finite (FSM) cu două stări principale:
Line 158: Line 154:
   * Structurare modulară a codului – am separat funcționalitățile în funcții distincte pentru claritate, mentenanță și ușurință în extindere.   * Structurare modulară a codului – am separat funcționalitățile în funcții distincte pentru claritate, mentenanță și ușurință în extindere.
 ===== Rezultate ====== ===== Rezultate ======
 +
 +Am reușit devoltarea unui proiect care prezintă cele două funcționalități. Proiectul nu numai că asistă jucătorul în antrenament pentru a-și corecta greșelile realizate prin mesaje sonore și vizuale, dar poate juca pe cont propriu Piano Tiles, stabilind chiar și recorduri în joc. Pentru partea de asistență,​ jucătorul are dreptul la 5 greșeli și este monitorizat timpul de joc în care a reușit să nu întrecă numărul maxim impus de greșeli, stabilindu-se așa noi recorduri pe baza antrenamentului. Pentru funcționalitatea autonomă, proiectul reușește să se adapteze rapidității jocului și să rezolve singur diverse melodii.
 +
 +[[https://​youtube.com/​shorts/​AFzEK7ByMOg]]
 ===== Conclusions ====== ===== Conclusions ======
 +
 +Proiectul a fost unul foarte interesant, care m-a ajutat foarte mult să înțeleg conceptele predate în cadrul laboratorului. Pot spune ca a fost o experiență distractivă în același timp datorită faptului că am avut parte de prima experiență practică pentru dezvoltarea unui proiect, un lucru pe care mi l-am dorit mult timp în timpul facultății. Am avut parte de câteva dificultăți pe care am reușit să le depășesc după ce am urmărit mai multe tutoriale pe internet, însă acestea m-au ajutat să înțeleg cu adevărat funcționalitatea șu utilitatea componentelor utilizate.
  
 ===== Cod Sursă ====== ===== Cod Sursă ======
  
 +[[https://​github.com/​stefaniaemiliatunaru/​Piano-Tiles-Gameplay-Assistant/​blob/​main/​code.cpp]]
 ===== Jurnal ====== ===== Jurnal ======
 05.05.2025 - Am decis tema proiectului și am realizat descrierea inițială a acestuia. 05.05.2025 - Am decis tema proiectului și am realizat descrierea inițială a acestuia.
Line 182: Line 185:
  
 ===== Bibliografie/​Resurse ====== ===== Bibliografie/​Resurse ======
 +
 +  * [[https://​www.arduino.cc/​en/​Guide/​]]
 +  * [[https://​github.com/​johnrickman/​LiquidCrystal_I2C]]
 +  * [[https://​docs.arduino.cc/​built-in-examples/​basics/​AnalogReadSerial/​]]
 +  * [[https://​randomnerdtutorials.com/​guide-for-relay-module-with-arduino/​]]
 +  * [[https://​www.instructables.com/​Arduino-Plays-Piano-Tiles/​]]
 +
pm/prj2025/avaduva/stefania.tunaru.1748173654.txt.gz · Last modified: 2025/05/25 14:47 by stefania.tunaru
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