This shows you the differences between two versions of the page.
pm:prj2025:avaduva:razvan_gabriel.serb [2025/05/26 00:06] razvan_gabriel.serb [Software Design] |
pm:prj2025:avaduva:razvan_gabriel.serb [2025/05/28 13:36] (current) razvan_gabriel.serb [Utilizarea laboratoarelor în cadrul proiectului] |
||
---|---|---|---|
Line 108: | Line 108: | ||
Mediu de Dezvolate: Arduino IDE | Mediu de Dezvolate: Arduino IDE | ||
- | Software-ul este disponibil aici: https://github.com/RazvanSerb/RetroPixel-Game-Hub | + | ==== Elemente de noutate al proiectului ==== |
- | + | ||
- | ==== Element de noutate al proiectului ==== | + | |
Proiectul RetroPixel Game Hub se remarcă prin realizarea unei unități modulare de tip consolă retro, care oferă o experiență completă de joc într-un format compact și extensibil. | Proiectul RetroPixel Game Hub se remarcă prin realizarea unei unități modulare de tip consolă retro, care oferă o experiență completă de joc într-un format compact și extensibil. | ||
Principalele puncte de interes ale proiectului meu sunt: | Principalele puncte de interes ale proiectului meu sunt: | ||
- | - integrarea coerentă a mai multor componente hardware într-un sistem unitar: ecran LCD pentru meniu și scor, matrice LED pentru gameplay, butoane și joystick pentru control, buzzer pentru sunete | + | • integrarea coerentă a mai multor componente hardware într-un sistem unitar: ecran LCD pentru meniu și scor, matrice LED pentru gameplay, butoane și joystick pentru control, buzzer pentru sunete |
- | - separarea clară a funcționalităților între interfața informativă (meniul) și mediul de joc, pentru o experiență fluentă și intuitivă | + | • separarea clară a funcționalităților între interfața informativă - meniul (LCD) și mediul de joc (matrice LED), pentru o experiență fluentă și intuitivă |
- | - suită de 3 jocuri, dintre care jucătorul alege pe care dorește să îl joace | + | • suită de 3 jocuri, dintre care jucătorul alege pe care dorește să îl joace |
- | - arhitectură software modulară, ce permite adăugarea rapidă de jocuri și funcționalități suplimentare fără a modifica structura de bază | + | • arhitectură software modulară, ce permite adăugarea rapidă de jocuri și funcționalități suplimentare fără a modifica structura de bază |
- | - combinație de stil retro și funcționalități moderne | + | • combinație de stil retro și funcționalități moderne |
- | ===== Rezultate Obţinute ===== | + | |
- | <note tip> | + | ==== Bibliotecile folosite în cadrul proiectului ==== |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | În cadrul proiectului meu, am folosit următoarele biblioteci: |
- | </note> | + | • #include <LiquidCrystal_I2C.h> - oferă o interfață ușor de folosit pentru controlul unui ecran LCD cu interfață I2C (folosită pentru a realiza interfața informativă - meniul) |
+ | • #include <LedControl.h> - oferă o interfață ușor de folosit pentru controlul matricei LED 8x8 bazată pe MAX7219, permițând chiar controlul individual al fiecărui LED din matrice (folosită pentru a realiza mediul de joc) | ||
+ | • #include <SPI.h> - oferă utilitate pentru comunicare prin protocolul SPI (folosită în comunicarea cu SD card) | ||
+ | • #include <SD.h> - oferă utilitate în manipularea fișierelor de pe SD card (folosită pentru salvarea de date pe SD card) | ||
- | ===== Concluzii ===== | + | ==== Utilizarea laboratoarelor în cadrul proiectului ==== |
+ | * Laboratorul 0 | ||
+ | • am folosit Serial.begin(9600) pentru a inițializa comunicarea serială | ||
+ | • am utilizat Serial.print() pentru a verifica inițializarea componentelor externe (LCD, matrice LED, SD card), și pentru a testa valorile de la butoane și joystick | ||
+ | * Laboratorul 1 | ||
+ | • am configurat pinii butoanelor (inclusiv cel al joystick-ului) și buzzer-ului cu pinMode() (INPUT / OUTPUT) | ||
+ | • am citit stările pinilor butoanelor (inclusiv cel al joystick-ului) cu digitalRead() pentru navigarea prin meniu și controlul în jocuri | ||
+ | * Laboratorul 3 | ||
+ | • am folosit tone(pin, frecvență) pentru a genera sunete în meniu și în timpul jocurilor | ||
+ | * Laboratorul 4 | ||
+ | • am citit pozițiile joystick-ului cu analogRead() pe axe X și Y, apoi am comparat valorile cu praguri pentru a detecta direcția mișcării în timpul jocurilor | ||
+ | * Laboratorul 5 | ||
+ | • am folosit un SD card pentru salvarea highscore-ului pentru fiecare joc | ||
+ | * Laboratorul 6 | ||
+ | • am utilizat biblioteca LiquidCrystal_I2C.h pentru controlul ecranului LCD 16x2 cu modul I2C | ||
+ | • am realizat afișările pentru meniu și scor cu lcd.setCursor() și lcd.print() | ||
- | ===== Download ===== | + | ==== Scheletul proiectului ==== |
+ | Proiectul RetroPixel Game Hub este structurat modular, pentru a integra toate funcționalitățile specifice unei mini-console retro: | ||
+ | • interfața informativă (meniul), afișată pe LCD 16x2 I2C - permite alegerea între 3 jocuri (Snake Game, Avoid Falling Lines Game, Memory Game) | ||
+ | • controlul în cadrul interfeței informative, realizat prin 4 butoane - permite deplasarea printre jocurile disponibile, selectarea unui joc, și întoarcerea la meniu (în cazul în care am pornit un joc) | ||
+ | • mediul de joc, afișat pe o matrice LED MAX7219 8x8 | ||
+ | • controlul în cadrul mediului de joc, realizat prin joystick - permite mișcările acceptate în funcție de joc | ||
+ | • feedback sonor, realizat cu ajutorul buzzer-ului | ||
+ | • mediu de stocare, SD card - permite salvarea highscore-urilor pentru fiecare joc disponibil | ||
- | <note warning> | + | Testarea validității interacțiunilor dintre componente s-a realizat pe parcursul dezvoltării software-ului, prin diverse simulări simple de test. |
- | 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ă ;-). | + | ===== Rezultate Obţinute ===== |
+ | {{:pm:prj2025:avaduva:razvan_gabriel.serb_rezultat_1.jpeg?400|}} | ||
+ | {{:pm:prj2025:avaduva:razvan_gabriel.serb_rezultat_2.jpeg?400|}} | ||
+ | {{:pm:prj2025:avaduva:razvan_gabriel.serb_rezultat_3.jpeg?400|}} | ||
- | 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**. | + | Demo: https://youtube.com/shorts/lH3rP6JLWTo?feature=share |
- | </note> | + | ===== Concluzii ===== |
+ | Dezvoltarea proiectului RetroPixel Game Hub a fost o experiență foarte distractivă și educativă. Mi-a plăcut să combin joaca cu învățarea și să văd cum prind viață ideile mele, pas cu pas. Am învățat multe lucruri noi și m-am bucurat de fiecare etapă — de la conectarea componentelor până la scrierea codului și testarea jocurilor. | ||
+ | A fost o provocare plăcută care mi-a arătat cât de mult se poate realiza cu răbdare, creativitate și puțină pasiune pentru tehnologie. | ||
+ | ===== Download ===== | ||
+ | |||
+ | Software-ul este disponibil aici: https://github.com/RazvanSerb/RetroPixel-Game-Hub | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 146: | Line 176: | ||
12.05.2025 - am comandat piesele care necesitau înlocuire | 12.05.2025 - am comandat piesele care necesitau înlocuire | ||
+ | |||
+ | 16.05.2025 - am început dezvoltarea software-ului | ||
+ | |||
+ | 20.05.2025 - am obținut un software valid | ||
+ | |||
+ | 24.05.2025 - am stilizat hardware-ul și am integrat software-ul, obținând un produs finit | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||