This shows you the differences between two versions of the page.
|
pm:prj2026:ciprian.popescu0411:andrei.burlacu0807 [2026/05/06 13:26] andrei.burlacu0807 [Descriere generală] |
pm:prj2026:ciprian.popescu0411:andrei.burlacu0807 [2026/05/15 14:48] (current) andrei.burlacu0807 [Jurnal] |
||
|---|---|---|---|
| Line 9: | Line 9: | ||
| **De ce este util:** Sistemul este util pentru aplicații educaționale și experimente practice (ex. măsurarea vitezei mașinilor de jucărie, a roboților sau a persoanelor care aleargă), demonstrând concepte fizice într-un mod interactiv. | **De ce este util:** Sistemul este util pentru aplicații educaționale și experimente practice (ex. măsurarea vitezei mașinilor de jucărie, a roboților sau a persoanelor care aleargă), demonstrând concepte fizice într-un mod interactiv. | ||
| + | |||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| Sistemul funcționează pe principiul măsurării succesive a distanței față de un obiect. Folosind timer-ul intern al microcontrolerului, se măsoară cu precizie intervalul de timp dintre două măsurători consecutive de distanță furnizate de senzorul VL53L1X. Viteza este apoi calculată și afișată pe un ecran OLED. | Sistemul funcționează pe principiul măsurării succesive a distanței față de un obiect. Folosind timer-ul intern al microcontrolerului, se măsoară cu precizie intervalul de timp dintre două măsurători consecutive de distanță furnizate de senzorul VL53L1X. Viteza este apoi calculată și afișată pe un ecran OLED. | ||
| Line 15: | Line 16: | ||
| Microcontrolerul ATmega328P este unitatea centrală care comunică prin interfața I2C atât cu senzorul de distanță (VL53L1X), cât și cu ecranul OLED. Un buton cu rol de "trăgaci" este conectat la un pin digital al microcontrolerului pentru a iniția măsurătoarea. Alimentarea se face printr-o baterie. | Microcontrolerul ATmega328P este unitatea centrală care comunică prin interfața I2C atât cu senzorul de distanță (VL53L1X), cât și cu ecranul OLED. Un buton cu rol de "trăgaci" este conectat la un pin digital al microcontrolerului pentru a iniția măsurătoarea. Alimentarea se face printr-o baterie. | ||
| - | {{ :pm:prj2026:ciprian.popescu0411:screenshot_2026-05-06_132222.png?300 |}} | + | {{ :pm:prj2026:ciprian.popescu0411:screenshot_2026-05-06_132711.png |}} |
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| **Lista de piese:** | **Lista de piese:** | ||
| - | * Microcontroler: ATmega328P (pe o placă de dezvoltare Arduino Nano/Uno). | + | |
| - | * Senzor de distanță: Modul senzor laser VL53L1X (Time-of-Flight, distanță până la 4m). | + | Microcontroler: ATmega328P (pe o placă de dezvoltare Arduino Nano/Uno). |
| - | * Display: Ecran OLED 0.96" sau 1.3" (I2C, SSD1306 sau SH1106). | + | |
| - | * Buton: Push-button pentru acționarea "trăgaciului". | + | Senzor de distanță: Modul senzor laser VL53L1X (Time-of-Flight, distanță până la 4m). |
| - | * Alimentare: Baterie 9V sau acumulator Li-Ion 3.7V cu step-up la 5V. | + | |
| - | * Componente pasive: Rezistențe de pull-up/pull-down, fire de conexiune. | + | Display: Ecran OLED 0.96" sau 1.3" (I2C, SSD1306 sau SH1106). |
| + | |||
| + | Buton: Push-button pentru acționarea "trăgaciului". | ||
| + | |||
| + | Alimentare: Baterie 9V sau acumulator Li-Ion 3.7V cu step-up la 5V. | ||
| + | |||
| + | Componente pasive: Rezistențe de pull-up/pull-down, fire de conexiune. | ||
| **Conexiuni (Interfațare):** | **Conexiuni (Interfațare):** | ||
| Line 51: | Line 58: | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | *(Urmează să fie completat după implementarea practică a proiectului. Se vor detalia precizia măsurătorilor, stabilitatea sistemului și calitatea afișării.)* | + | |
| + | Functionare Hardware: Sistemul a fost asamblat cu succes pe breadboard, realizand un prototip functional de Pistol Radar. Comunica perfect simultan cu ecranul OLED (5V) si senzorul laser VL53L1X (3.3V) pe aceeasi magistrala I2C (pinii PC4/PC5), fara conflicte de tensiune. | ||
| + | |||
| + | Procesare Software: Radarul citeste la intervale de 50ms si afiseaza datele pe ecran fara intarziere perceptibila. | ||
| + | |||
| + | Acuratete si Filtrare: S-a implementat cu succes un dublu filtru software. Primul ignora zgomotul de fond (fluctuatii de sub 25mm in stare statica), iar al doilea forteaza valoarea vitezei la 0.0 km/h pentru miscari de sub 2 km/h, oferind o afisare extrem de stabila, asemanatoare instrumentelor de bord reale. | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| - | *(Urmează să fie completat la finalizarea proiectului. Va conține o evaluare a succesului și posibile îmbunătățiri pe viitor.)* | ||
| + | Dezvoltarea acestui proiect a demonstrat cat de importanta este intelegerea arhitecturii hardware din spatele framework-urilor de tip "black-box" precum Arduino. Provocarea principala a fost scrierea logicii de calcul a vitezei pe baza citirilor extrem de rapide de distante, ceea ce a generat erori initiale de calcul din cauza zgomotului optic ("sensor jitter"). | ||
| + | |||
| + | Tranzitia catre o arhitectura hibrida, folosind manipularea directa a registrelor (DDRD, PORTD, PIND) pentru pinii de I/O, a oferit o perspectiva mult mai clara asupra functionarii reale a unui microcontroler ATmega328P. Am invatat ca in proiectele complexe, compromisul ingineresc intre utilizarea librariilor pentru periferice foarte complexe (senzorul ToF cu propriul sau firmware intern) si codul "bare-metal" pentru optimizarea resurselor placii este o abordare standard si eficienta. Sistemul final este stabil, interactiv si raspunde excelent in timp real. | ||
| ===== Download ===== | ===== Download ===== | ||
| - | *(Arhiva cu fișierele codului sursă, schemele electrice și scriptul de compilare urmează să fie încărcată)* | ||
| + | {{:pm:prj2026:ciprian.popescu0411:radar_viteza.zip|}} | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| - | * **06 Mai 2026:** Elaborarea specificațiilor proiectului și a documentației inițiale bazate pe componentele hardware alese. | + | |
| + | Saptamana 1 (Hardware si Setup): Analiza componentelor si a datasheet-urilor (VL53L1X si SSD1306). Realizarea schemei electrice si asamblarea ansamblului pe breadboard. Gestionarea corecta a alimentarilor mixte (5V si 3.3V) si testarea magistralei I2C. | ||
| + | |||
| + | Saptamana 2 (Functionalitate de Baza): Scrierea codului initial pentru comunicarea cu perifericele folosind librariile specifice. Initializarea senzorului laser si a ecranului OLED. Obtinerea primelor masuratori statice de distanta in timp real si afisarea acestora pe display. | ||
| + | |||
| + | Saptamana 3 (Algoritmul Radar): Dezvoltarea logicii matematice pentru calculul vitezei de deplasare. Utilizarea functiilor de timp pentru derivarea vitezei din diferenta de distanta si implementarea filtrelor software ("deadband" si anti-jitter) pentru stabilizarea valorilor afisate. | ||
| + | |||
| + | Saptamana 4 (Refactorizare si Finalizare): Migrarea codului spre o arhitectura de tip "bare-metal" (inlocuirea rutinelor de baza cu main(), utilizarea registrelor DDRD, PORTD, PIND pentru citirea butonului hardware). Integrarea functiei de Power Saving, testarea finala a sistemului si redactarea documentatiei pentru wiki. | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||