Table of Contents

Radar de Parcare (Asistent de proximitate)

1. Introducere

Descrierea proiectului: Proiectul constă în implementarea unui sistem de asistență la parcare (radar de proximitate) la scară redusă, având la bază microcontrolerul ATmega328P. Sistemul emite unde ultrasonice pentru a detecta distanța până la cel mai apropiat obstacol și oferă utilizatorului un feedback dublu: vizual (printr-un LED RGB), sonor (printr-un buzzer pasiv) și de date (prin consolă serială).

Scopul proiectului: Scopul principal este de a crea un sistem de avertizare în timp real, capabil să proceseze date de la un senzor extern și să avertizeze șoferul/utilizatorul proporțional cu gradul de pericol (distanța până la obstacol). Proiectul demonstrează interfațarea microcontrolerului cu periferice externe folosind concepte fundamentale precum GPIO, Timere hardware, USART și Întreruperi (ISR).

Ideea de la care a pornit: Inspirația provine din industria auto (sistemele Parktronic / Acoustic Parking System). Am dorit să reproduc această funcționalitate esențială pentru siguranța rutieră într-un format simplificat (Proof of Concept), folosind componente discrete pentru a înțelege exact fluxul de semnal de la detecția fizică a obstacolului până la declanșarea alarmelor umane.

2. Descriere Generală

Sistemul funcționează într-o buclă continuă de măsurare și decizie. Microcontrolerul trimite un impuls scurt către senzorul HC-SR04, care emite un tren de unde ultrasonice. Când undele se întorc (ecou), microcontrolerul măsoară timpul scurs și calculează distanța fizică folosind formula: $d = \frac{t \cdot v_{sunet}}{2}$

În funcție de pragurile predefinite în cod, sistemul de decizie hardware acționează pinii asociați culorilor LED-ului RGB (Verde = Sigur, Galben = Atenție, Roșu = Pericol) și ajustează frecvența semnalului PWM trimis către buzzer (de la bipuri rare la un sunet continuu). Suplimentar, utilizatorul poate interacționa cu sistemul în mod asincron via consolă serială.

3. Hardware Design

Lista de piese (Bill of Materials):

Maparea pinilor (Planificarea conexiunilor): Pinii aleși pe ATmega328P sunt următorii:

 Schema Electrică KiCad - Radar de Parcare Schema Electrică KiCad - Radar de Parcare PDF

Diagrame de semnal: Pentru a calcula distanța, sistemul comunică cu senzorul HC-SR04 respectând diagrama de timp de mai jos (conform datasheet-ului oficial):

  1. Microcontrolerul trimite un puls HIGH de minim 10 µs pe pinul Trig.
  2. Senzorul emite intern un burst de 8 impulsuri sonore la 40 kHz.
  3. Senzorul ridică pinul Echo pe HIGH. Lățimea acestui puls este direct proporțională cu timpul de propagare a sunetului până la obstacol și înapoi.

Formula de conversie utilizată în cod pe baza acestui semnal este: $Distanța (cm) = \frac{Timpul (\mu s)}{58}$.

Rezultatele simulării (TinkerCAD): Înainte de asamblarea fizică, hardware-ul și logica mașinii de stări au fost modelate și validate în mediul de simulare TinkerCAD. Sistemul reacționează în timp real la apropierea obstacolului virtual, modificând starea:

Note privind simularea hardware: Din cauza unor limitări cunoscute ale motorului de simulare web TinkerCAD la sincronizarea timerelor hardware interne din AVR cu modelele fizice virtuale (fenomenul de Echo Lock-up), codul rulat în simulator a necesitat o adaptare. Pentru a valida vizual efectul de Software PWM pe LED și sincronizarea buzzer-ului, s-a utilizat un “Software Counter” pentru citirea distanței. Pe implementarea hardware fizică (varianta finală a proiectului), acest workaround este eliminat, sistemul folosind strict Timer-ul 1 Hardware (16-bit) pentru a măsura cu precizie absolută pulsul de pe pinul Echo.

🌐 Apasă aici pentru a deschide și testa simularea interactivă direct în TinkerCAD

4. Software Design

Mediul de dezvoltare: Proiectul va fi dezvoltat folosind mediul Visual Studio Code (VS Code), având instalată extensia PlatformIO. Se va folosi framework-ul nativ Atmel AVR (fără framework-ul Arduino), compilatorul folosit fiind avr-gcc. Încărcarea codului (upload) se va face nativ prin portul USB, folosind interfața mEDBG integrată pe plăcuța ATmega328P Xplained Mini. Simularea inițială a circuitului și a registrilor se va face în TinkerCAD.

Biblioteci și surse 3rd-party folosite: Fiind un proiect de tip “bare-metal”, nu se vor utiliza biblioteci externe de nivel înalt. Se vor folosi exclusiv bibliotecile standard din suita AVR Libc:

Algoritmi și structuri de date planificate: Logica principală a programului este implementată sub forma unui Finite State Machine (Mașină de Stări - FSM) cu multiple stări principale, corespunzătoare distanței și evenimentelor:

Surse și funcții implementate: Aplicația este modularizată, având funcții dedicate pentru fiecare periferic:

Laboratoare acoperite / Concepte utilizate: Proiectul bifează practic și demonstrează înțelegerea următoarelor concepte din programa laboratorului:

5. Rezultate

Implementarea practică a proiectului s-a desfășurat în două etape principale, reflectând procesul iterativ de dezvoltare și validare hardware:

Etapa 1: Prototiparea și Simularea Logică În prima fază, au fost asamblate componentele de ieșire (microcontrolerul, LED-ul RGB și buzzer-ul). Pentru a valida logica de avertizare a sistemului înainte de conectarea senzorului, a fost scris un cod de test care a simulat software apropierea treptată a unui vehicul. Această etapă a confirmat funcționarea corectă a generării semnalelor PWM software pentru efectul de “respirație” al LED-ului și a temporizărilor pentru buzzer.

Demonstrație Video - Simulare Inițială: 📺 Click aici pentru demonstrația video

Etapa 2: Integrarea Senzorului și Finalizarea Odată cu instalarea senzorului ultrasonic HC-SR04, proiectul a atins forma sa finală. Codul a fost rescris pentru a citi distanțele reale în mediu fizic, utilizând Timer-ul 1 hardware al microcontrolerului pentru interceptarea exactă a ecoului. Pe lângă funcționalitatea de bază de avertizare (Verde → Galben → Roșu), varianta finală a integrat următoarele rafinamente software:

Materiale Media Finale

6. Jurnal