This is an old revision of the document!


Sistem de Asistenta la Parcare

Introducere

Proiectul constă într-un sistem electronic capabil să detecteze obiecte în apropierea unui vehicul și să alerteze utilizatorul prin semnale vizuale și sonore. Scopul proiectului este de a simula funcționarea senzorilor de parcare reali pentru a ajuta la prevenirea lovirii obstacolelor în timpul manevrelor. Ideea de la care am pornit a fost dorința de a implementa un sistem de siguranță auto folosind componente accesibile și un microcontroler de tip ATmega328P. Acest proiect este util deoarece oferă o soluție de asistență în condiții de vizibilitate redusă sau spații înguste și reprezintă un exercițiu excelent pentru înțelegerea modului în care senzorii de proximitate interacționează cu un microcontroler prin intermediul timerelor.

Descriere generală

Sistemul este compus din următoarele componente principale:

Blocul de achiziție date: Senzorul ultrasonic HC SR04 emite impulsuri sonore și măsoară timpul până la recepția ecoului reflectat de obiecte. Aceste date sunt trimise sub formă de semnal digital către microcontroler pentru a fi procesate.

Unitatea centrală de procesare: Placa ATmega328P XMINI primește semnalul de la senzor și calculează distanța exactă până la cel mai apropiat obiect. Aceasta folosește un timer intern pentru a măsura durata pulsului primit și convertește acest timp în centimetri. În funcție de valoarea obținută, unitatea decide ce avertizări să activeze.

Blocul de avertizare vizuală: Trei LED-uri de culori diferite indică gradul de apropiere față de obstacol. LED-ul verde rămâne aprins când distanța este sigură, cel galben se activează la o distanță medie, iar cel roșu se aprinde pentru a indica necesitatea opririi imediate.

Blocul de avertizare sonoră: Buzzerul emite semnale acustice intermitente a căror frecvență variază în funcție de distanța măsurată. Pe măsură ce obiectul este mai aproape, pauza dintre bipuri devine mai scurtă, oferind un feedback sonor intuitiv pentru utilizator.

Hardware Design

Listă de piese

  • Placă de dezvoltare: ATmega328P Xplained Mini (XMINI) - unitatea centrală de procesare.
  • Senzor de distanță: Modul ultrasonic HC-SR04.
  • Avertizare sonoră: Modul Buzzer pasiv (5V) - permite controlul frecvenței din cod.
  • Avertizare vizuală: 3 x Module LED (Verde, Galben, Roșu). *Notă: Modulele utilizate integrează deja o rezistență SMD de limitare a curentului pe plăcuță (R1), eliminând necesitatea unor rezistențe externe suplimentare.*
  • Conectică: Breadboard și fire de conexiune Dupont (Tată-Tată și Mamă-Tată).

Conectare pini (Pinout)

Componentele au fost conectate la microcontrolerul ATmega328P după cum urmează:

Componentă Pin Senzor/Modul Pin ATmega328P XMINI Rol în proiect
Senzor HC-SR04 VCC 5V Alimentare
GND GND Masă comună
Trig PD4 (Pin 4) Declanșare semnal ultrasonic
Echo PB0 (Pin 8) Recepție ecou (Input Capture - ICP1)
LED Verde S PD5 (Pin 5) Indicator distanță sigură (>20 cm)
- GND Masă comună
LED Galben S PD6 (Pin 6) Indicator atenție (10 - 20 cm)
- GND Masă comună
LED Roșu S PD7 (Pin 7) Indicator STOP (<10 cm)
- GND Masă comună
Buzzer Pasiv S PB3 (Pin 11) Semnal PWM audio (Timer 2 - OC2A)
- GND Masă comună

Demonstrație funcționare (Fotografii montaj)

Următoarele imagini surprind comportamentul sistemului la diferite praguri de distanță, simulate în faza de testare:

::: Prag 1: Distanță sigură (Peste 20 cm) - Doar LED-ul Verde este aprins :::

::: Prag 2: Distanță medie (10-20 cm) - LED-ul Galben clipește în tandem cu avertizarea sonoră intermitentă :::

::: Prag 3: Distanță critică (Sub 10 cm) - LED-ul Roșu este activat, iar buzzerul emite un sunet de alertă rapid :::

Software Design

Software-ul sistemului de asistență la parcare este implementat în limbajul C (abordare bare-metal, manipulând direct regiștrii microcontrolerului) și rulează pe ATmega328P.

Mediu de dezvoltare și librării:

  • Mediu: Arduino IDE integrat cu pachetul extensie MiniCore, necesar pentru a asigura comunicarea cu programatorul hardware mEDBG de pe placa XMINI.
  • Librării standard AVR: `<avr/io.h>` (pentru definirea regiștrilor sistemului) și `<util/delay.h>` (pentru gestionarea pauzelor necesare senzorului). Nu s-au utilizat biblioteci terțe (precum funcțiile implicite Arduino), ci s-a preferat interacțiunea directă la nivel de hardware.

Fluxul principal și algoritmi implementați: Programul este structurat într-o buclă infinită care rulează următoarele module logice:

  • Inițializare Hardware (GPIO & Timere): Se configurează direcția pinilor folosind regiștrii `DDRB` și `DDRD`. Timer-ul 1 este inițializat în modul Normal cu un prescaler de 8 pentru a oferi o rezoluție de 0.5 microsecunde per tick, necesară măsurării distanței.
  • Achiziție Date (HC-SR04): Sistemul generează un puls scurt de 10 microsecunde pe pinul `Trig`. Ulterior, monitorizează pinul `Echo`. În momentul declanșării ecoului, contorul `TCNT1` este resetat. La finalizarea recepției, valoarea numărată este preluată și transformată matematic în centimetri (aplicând viteza sunetului).
  • Procesare și Semnalizare: În funcție de distanța calculată, sistemul ia decizii bazate pe trei praguri (adaptate pentru testare pe birou: >20cm, 10-20cm, <10cm). LED-urile sunt comutate folosind registrul `PORTD`.
  • Generare Semnal Sonor (PWM Hardware): Pentru buzzer-ul pasiv s-a utilizat Timer-ul 2 configurat în modul CTC (Clear Timer on Compare Match). Prin setarea registrului `OCR2A`, se comută automat starea pinului `PB3` (OC2A) pentru a genera o frecvență audibilă clară (aprox. 1kHz), controlând durata prin cod.

Rezultate Obţinute

În urma realizării practice a proiectului și rulării codului pe placa ATmega328P XMINI, au fost obținute următoarele rezultate:

  • Măsurare precisă: Citirea valorilor senzorului ultrasonic se realizează stabil, sistemul calculând cu acuratețe distanța până la obstacol folosind Timer-ul 1.
  • Răspuns vizual instantaneu: Comutarea stării LED-urilor prin registrele I/O se face fără întârzieri perceptibile. Modulele auto-flash oferă un aspect dinamic sistemului.
  • Modulare sonoră funcțională: Buzzer-ul pasiv emite tonuri la frecvența dorită. Frecvența repetării bip-urilor scade odată cu distanța, oferind un feedback acustic progresiv excelent.
  • Depanare hardware: Pe parcursul implementării, s-a observat că prezența buzzer-ului pe pinul `PB3` bloca comunicarea ISP în faza de programare (eroare debugWIRE). Problema a fost rezolvată prin izolarea acestui pin în timpul procesului de *Upload*.

Concluzii

Proiectul demonstrează succesul integrării conceptelor fundamentale de la materia PM: manipularea porturilor de intrare/ieșire (GPIO), generarea de semnale și, cel mai important, utilizarea avansată a Timerelor pentru captură de date și generare PWM hardware (mod CTC).

Sistemul creat este complet funcțional, oferind o simulare precisă a unui senzor de parcare real. Modularitatea codului permite ca, pe viitor, pragurile de avertizare să fie scalate cu ușurință pentru un automobil de dimensiuni reale.

Download

Jurnal

  • 08.05.2026: Alegerea temei de proiect, documentarea tehnică și achiziția componentelor hardware necesare.
  • 16.05.2026: Testarea modulelor și realizarea schemei electrice pe breadboard (conectarea senzorului, LED-urilor și a buzzer-ului la pinii dedicați ai plăcii XMINI).
  • 23.05.2026: Configurarea pachetului MiniCore. Scrierea codului C bare-metal, calibrarea timerelor pentru HC-SR04, rezolvarea interferenței hardware de pe pinul ISP și finalizarea paginii de wiki.

Bibliografie/Resurse

  • Datasheet ATmega328P
  • Datasheet Senzor Ultrasonic HC-SR04
  • Laboratorul 1 PM - Interfața GPIO
  • Laboratorul 3 PM - Timere și Generare semnal PWM

Export to PDF

pm/prj2026/alexandru.predescu/andrei.tokacs.1779561433.txt.gz · Last modified: 2026/05/23 21:37 by andrei.cotiga
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0