This shows you the differences between two versions of the page.
|
pm:prj2026:victor.stoica0203:andrei.popa0810 [2026/05/24 18:14] andrei.popa0810 [Software Design] |
pm:prj2026:victor.stoica0203:andrei.popa0810 [2026/05/24 18:56] (current) andrei.popa0810 [Software Design] |
||
|---|---|---|---|
| Line 89: | Line 89: | ||
| * **Întreruperi Hardware Pin Change**: activate prin regiștrii PCICR și PCMSK2 pe Pinul 2 -> permit citirea asincronă a butoanelor din matrice. | * **Întreruperi Hardware Pin Change**: activate prin regiștrii PCICR și PCMSK2 pe Pinul 2 -> permit citirea asincronă a butoanelor din matrice. | ||
| - | * **Modul SPI**: comunicarea cu display-ul se face prin SPI | + | * **Modulul SPI**: comunicarea cu display-ul se face prin SPI |
| - | * **Modul USART**: comunicarea între plăcuțe se face prin UART. | + | * **Modulul USART**: comunicarea între plăcuțe se face prin UART. |
| **Scheletul proiectului și interacțiunea funcționalităților** | **Scheletul proiectului și interacțiunea funcționalităților** | ||
| Line 117: | Line 117: | ||
| * **Canal imperfect de comunicație**: Deoarece modulul USART este setat la un baud-rate ridicat(115k), pot apărea erori în transmisia unui cadru, asta induce într-o posibilă pierdere a informației. (Problema cea mai mare este trimiterea greșită sau trimiterea parțială a unei fețe, totuși asta se întâmple foarte rar). | * **Canal imperfect de comunicație**: Deoarece modulul USART este setat la un baud-rate ridicat(115k), pot apărea erori în transmisia unui cadru, asta induce într-o posibilă pierdere a informației. (Problema cea mai mare este trimiterea greșită sau trimiterea parțială a unei fețe, totuși asta se întâmple foarte rar). | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| + | [[https://youtu.be/r_Rg994yKR0|Demo]] | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | Proiectul demonstrează că o implementare a unui engine 3D este posibilă, chiar și într-un mediu cu resurse foarte limitate, însă compromisurile tehnice nu permit existența unor funcționalități de bază (ex: double buffering), esențiale pentru un engine modern. | ||
| + | De asemenea, am învățat să fac debugging aproape orb, întrucât, comunicarea dintre CPU și GPU este realizată prin USART, nu puteam comunica cu plăcuțele prin intermediul interfeței seriale (nu aveam acces la "debug prin printf"). Singurul instrument de debug pe care îl aveam la dispoziție era ecranul SPI: fie schimbam complet culoarea fundalului, fie "desenam numere" (într-un mod rudimentar). Cea mai importantă parte a fost să implementez modul prin care CPU-ul trimite comenzi către GPU, fără să "înece" canalul de comunicație (și să piardă comenzi importante în proces). | ||
| ===== Download ===== | ===== Download ===== | ||
| https://github.com/andarkrc/Basic-Arduino-Game | https://github.com/andarkrc/Basic-Arduino-Game | ||
| + | |||
| + | {{:pm:prj2026:victor.stoica0203:popaandrei333cacod.zip|}} | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| Line 127: | Line 131: | ||
| * 7.04.2026 - Alegere tema proiect si confirmare. | * 7.04.2026 - Alegere tema proiect si confirmare. | ||
| * 7.05.2026 - Creare pagină ocw pentru proiect. | * 7.05.2026 - Creare pagină ocw pentru proiect. | ||
| + | * 18.05.2026 - Finalizarea parțială a codului pentru a prezenta în cadrul milestone-ului software. | ||
| + | * 23.05.2026 - Finalizarea codului. | ||
| + | * 24.05.2026 - Update final la pagina de proiect. | ||