This shows you the differences between two versions of the page.
|
pm:prj2026:ciprian.popescu0411:vlad_mihai.enea [2026/05/13 16:02] vlad_mihai.enea [Software Design] |
pm:prj2026:ciprian.popescu0411:vlad_mihai.enea [2026/05/13 16:42] (current) vlad_mihai.enea [Software Design] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| * Proiectul consta in implementarea unui joc de tip Pong pentru doi jucatori utilizand o placa de dezvoltare ATmega328P Xplained Mini, un display OLED 128x64 si module LED pentru feedback vizual. Fiecare jucator controleaza o paleta prin intermediul a doua butoane, unul pentru deplasarea in sus si unul pentru deplasarea in jos. Scopul jocului este de a lovi mingea si de a inscrie puncte impotriva adversarului. | * Proiectul consta in implementarea unui joc de tip Pong pentru doi jucatori utilizand o placa de dezvoltare ATmega328P Xplained Mini, un display OLED 128x64 si module LED pentru feedback vizual. Fiecare jucator controleaza o paleta prin intermediul a doua butoane, unul pentru deplasarea in sus si unul pentru deplasarea in jos. Scopul jocului este de a lovi mingea si de a inscrie puncte impotriva adversarului. | ||
| - | ===== Descriere generală ===== | + | ===== Descriere generala ===== |
| Line 54: | Line 54: | ||
| | Breadboard | GND microcontroller -> bara GND breadboard | | | Breadboard | GND microcontroller -> bara GND breadboard | | ||
| - | *Breadboard-ul este folosit pentru distribuirea conexiunii de masa catre butoane, buzzer si modulele LED. Display-ul OLED este conectat direct la microcontroller deoarece foloseste interfata I2C, prin pinii PC4 si PC5. Butoanele sunt configurate in cod cu INPUT_PULLUP, motiv pentru care pinul de mijloc al modulelor KY-004 ramane neconectat, iar apasarea butonului conecteaza pinul de semnal la GND. | + | Breadboard-ul este folosit pentru distribuirea conexiunii de masa catre butoane, buzzer si modulele LED. Display-ul OLED este conectat direct la microcontroller deoarece foloseste interfata I2C, prin pinii PC4 si PC5. Butoanele sunt configurate in cod cu INPUT_PULLUP, motiv pentru care pinul de mijloc al modulelor KY-004 ramane neconectat, iar apasarea butonului conecteaza pinul de semnal la GND. |
| - | {{:pm:prj2026:ciprian.popescu0411:milestone_hardware_vlad.jpeg?500|}} | + | {{:pm:prj2026:ciprian.popescu0411:milestone_hardware_vlad.jpeg?300|}} |
| ===== Software Design ===== | ===== Software Design ===== | ||
| - | Proiectul a fost dezvoltat in PlatformIO, folosind framework-ul Arduino pentru placa ATmega328P Xplained Mini. Codul este scris in C/C++ si foloseste functii specifice Arduino pentru citirea butoanelor, controlul LED-urilor, controlul buzzerului, comunicatia I2C cu display-ul OLED si comunicatia UART prin Serial Monitor. | + | * Demo joc: https://youtu.be/aooiB0Amov8?feature=shared |
| + | * github: https://github.com/vled04/PONG-GAME-PM | ||
| + | |||
| + | Proiectul a fost dezvoltat in PlatformIO, folosind framework-ul Arduino pentru placa ATmega328P Xplained Mini. Codul este scris in C++ si foloseste functii specifice Arduino pentru citirea butoanelor, controlul LED-urilor, controlul buzzerului, comunicatia I2C cu display-ul OLED si comunicatia UART prin Serial Monitor. | ||
| Functii principale implementate: | Functii principale implementate: | ||
| Line 92: | Line 95: | ||
| | Adafruit_SSD1306.h | Controlul display-ului OLED SSD1306 | | | Adafruit_SSD1306.h | Controlul display-ului OLED SSD1306 | | ||
| | math.h | Functii matematice pentru calculul directiei bilei | | | math.h | Functii matematice pentru calculul directiei bilei | | ||
| - | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | ||
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
| - | </note> | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| - | ===== Download ===== | + | *Pentru PM FAIR o sa cumpar o cutie din plastic si o sa aranjez frumos toate componentele pentru a fi si frumos vizual |
| - | + | ||
| - | <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**. | + | |
| - | </note> | + | |
| - | + | ||
| - | ===== Jurnal ===== | + | |
| - | <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 ===== | ||