This shows you the differences between two versions of the page.
|
pm:prj2026:alexandru.jipa2803:eusebiu.burtescu [2026/05/23 19:14] eusebiu.burtescu [Download] |
pm:prj2026:alexandru.jipa2803:eusebiu.burtescu [2026/05/25 07:58] (current) eusebiu.burtescu [Download] |
||
|---|---|---|---|
| Line 44: | Line 44: | ||
| | **D13** | PB5 (SCK) | Ecran TFT **SCL** / **SCK** | Semnalul de ceas (Clock) pentru sincronizarea SPI | | | **D13** | PB5 (SCK) | Ecran TFT **SCL** / **SCK** | Semnalul de ceas (Clock) pentru sincronizarea SPI | | ||
| | **A5** | PC5 | **Buzzer Pasiv** | Generare audio low-level pentru efecte si alerte | | | **A5** | PC5 | **Buzzer Pasiv** | Generare audio low-level pentru efecte si alerte | | ||
| - | | **5V / VCC** | VCC | Ecran TFT **VCC** | Alimentarea cu energie a ecranului | | + | | **5V / VCC** | VCC | Ecran TFT **VCC** | Alimentarea cu energie a ecranului (Unde e conectat si suportul de baterii)| |
| | **GND** | GND | Ecran / Buzzer / Butoane | Masa comuna a intregului circuit electric | | | **GND** | GND | Ecran / Buzzer / Butoane | Masa comuna a intregului circuit electric | | ||
| Line 51: | Line 51: | ||
| ==== Mediu de dezvoltare, librarii si surse ==== | ==== Mediu de dezvoltare, librarii si surse ==== | ||
| - | Proiectul este scris in **PlatformIO (in VS Code)** cu compilerul standard *avr-gcc*. Singura librarie din exterior pe care am folosit-o este **Adafruit_ST7735** (impreuna cu *Adafruit_GFX*), strict ca sa ne ajute sa desenam chestii pe ecran. | + | Proiectul este scris in **PlatformIO (in VS Code)** cu compilerul standard *avr-gcc*. Singura librarie din exterior pe care am folosit-o este **Adafruit_ST7735** (impreuna cu *Adafruit_GFX*), strict pentru a desena pe ecran. |
| Restul functiilor (partea de SPI, citirea butoanelor, debouncing-ul, sunetele si timpii) sunt facute de noi de la zero, **fara librarii**, umbland direct in registrii de pe ATmega328P. | Restul functiilor (partea de SPI, citirea butoanelor, debouncing-ul, sunetele si timpii) sunt facute de noi de la zero, **fara librarii**, umbland direct in registrii de pe ATmega328P. | ||
| Line 94: | Line 94: | ||
| * **Timere:** **Timer0** este folosit pentru delay-uri precise prin polling (numara pasi de 4 microsecunde pentru buzzer si debouncing), iar **Timer2** genereaza baza de timp pentru cronometrul jocului. | * **Timere:** **Timer0** este folosit pentru delay-uri precise prin polling (numara pasi de 4 microsecunde pentru buzzer si debouncing), iar **Timer2** genereaza baza de timp pentru cronometrul jocului. | ||
| * **Intreruperi:** Am activat intreruperea de overflow pe **Timer2** (''TIMER2_OVF_vect'') pentru a scadea timpul la fiecare 1ms. Am facut asta ca sa nu avem operatii blocante in loop-ul principal, eliminand complet micro-lag-urile in timpul jocului. | * **Intreruperi:** Am activat intreruperea de overflow pe **Timer2** (''TIMER2_OVF_vect'') pentru a scadea timpul la fiecare 1ms. Am facut asta ca sa nu avem operatii blocante in loop-ul principal, eliminand complet micro-lag-urile in timpul jocului. | ||
| - | ===== Rezultate Obţinute ===== | + | ===== Rezultate Obtinute ===== |
| - | <note tip> | + | In urma testarii pe hardware, proiectul este 100% functional, aspect demonstrat si in clipul video (.mp4) atasat in arhiva. |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | |
| + | Performantele obtinute: | ||
| + | * **Grafica fluida:** Ecranul se randeaza instant datorita SPI-ului. | ||
| + | * **Control fara lag:** Cursorul si meniurile raspund imediat la butoane, iar debouncing-ul elimina apasarile duble. | ||
| + | * **Audio stabil:** Buzzerul scoate sunete clare pentru mutari, selectii, victorii sau erori. | ||
| + | * **Timp precis:** Bara de 10 secunde scade uniform prin Timer2, schimband automat jucatorul la expirare fara sa inghete jocul. | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | In urma multor teste si incercari, proiectul a fost implementat cu succes, respectand toate functionalitatile din planul initial. Pe partea de dezvoltare am intampinat si probleme hardware specifice: am ars controllerul USB al unei placi de test si am reusit sa rup pinii unui buton de pe board (cel configurat initial pentru Start). Totusi in final am reusit sa ajung la ce mi-am propus. | ||
| + | |||
| ===== Download ===== | ===== Download ===== | ||
| {{:pm:prj2026:alexandru.jipa2803:archive.zip|}} | {{:pm:prj2026:alexandru.jipa2803:archive.zip|}} | ||
| - | https://github.com/BurtescuEusebiu/TicTacToe- | + | https://github.com/BurtescuEusebiu/TicTacToePM |
| ===== Jurnal ===== | ===== Jurnal ===== | ||