This shows you the differences between two versions of the page.
|
pm:prj2026:victor.stoica0203:degeratu_razvan [2026/05/24 21:04] razvan.degeratu [Hardware Design] |
pm:prj2026:victor.stoica0203:degeratu_razvan [2026/05/24 22:55] (current) razvan.degeratu [Download] |
||
|---|---|---|---|
| Line 38: | Line 38: | ||
| {{ :pm:prj2026:victor.stoica0203:degeraturazvanproiectpm.png | }} | {{ :pm:prj2026:victor.stoica0203:degeraturazvanproiectpm.png | }} | ||
| - | //Poze montaj | + | // Videoclip demonstrativ |
| + | https://www.youtube.com/watch?v=PE-LNIbtaL8 | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 55: | Line 56: | ||
| * **Resetare Hardware din Software (EEPROM Wipe):** Am implementat o functie ascunsa de curatare a istoricului vechi. Daca utilizatorul tine potentiometrul rotit complet la dreapta (valoare ADC > 1010) continuu timp de 10 secunde, se declanseaza automat o rutina ce suprascrie zona de memorie EEPROM alocata cu valoarea `0xFF` si reseteaza statisticile, cu un mesaj de feedback vizual ("RECORDS RESET!"). | * **Resetare Hardware din Software (EEPROM Wipe):** Am implementat o functie ascunsa de curatare a istoricului vechi. Daca utilizatorul tine potentiometrul rotit complet la dreapta (valoare ADC > 1010) continuu timp de 10 secunde, se declanseaza automat o rutina ce suprascrie zona de memorie EEPROM alocata cu valoarea `0xFF` si reseteaza statisticile, cu un mesaj de feedback vizual ("RECORDS RESET!"). | ||
| - | ===== Metrici, Profilare si Evaluare ===== | + | ===== Metrici si Evaluare ===== |
| **Metrici de performanță stabilite și îndeplinite:** | **Metrici de performanță stabilite și îndeplinite:** | ||
| 1. **Amprenta de memorie:** Obiectiv: sub 20% ocupare RAM. Prin scrierea la nivel de registre și renunțarea la framebuffer, utilizarea SRAM a scăzut drastic, lăsând spațiu liber pentru array-urile istorice. | 1. **Amprenta de memorie:** Obiectiv: sub 20% ocupare RAM. Prin scrierea la nivel de registre și renunțarea la framebuffer, utilizarea SRAM a scăzut drastic, lăsând spațiu liber pentru array-urile istorice. | ||
| Line 62: | Line 63: | ||
| **Profilarea Codului:** | **Profilarea Codului:** | ||
| - | Evaluarea codului s-a realizat prin testare unitară. Inițial, am validat transmisia I2C izolată către OLED trimițând octeți individuali din datasheet-ul SSD1306. Apoi am integrat rutinele complexe (formulele de calibrare Bosch pentru BME280 pe int32_t). Corectitudinea memoriei a fost validată prin întreruperea repetată a alimentării și verificarea citirii corecte din registrele EEPROM la repornire. Siguranța execuției (fără memory leaks) a fost testată rulând stația non-stop timp de >12h. | + | Evaluarea codului s-a realizat prin testare unitară. Inițial, am validat transmisia I2C izolată către OLED trimițând octeți individuali din datasheet-ul SSD1306. Apoi am integrat rutinele complexe (formulele de calibrare Bosch pentru BME280 pe int32_t). Corectitudinea memoriei a fost validată prin întreruperea repetată a alimentării și verificarea citirii corecte din registrele EEPROM la repornire. Siguranța execuției a fost testată rulând stația non-stop timp de >12h. |
| ===== Planificare si Jurnal ===== | ===== Planificare si Jurnal ===== | ||
| Line 80: | Line 81: | ||
| ===== Download ===== | ===== Download ===== | ||
| - | * Codul sursă complet al proiectului: [[https://github.com/razvandegeratu/StatieMeteo|Repository GitHub - Statie Meteo (Bare-Metal AVR C)]] | + | * Codul sursă complet al proiectului: [[https://github.com/razvandegeratu/StatieMeteo|Repository GitHub]] |
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||