Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:alexandru.predescu:andrei.tokacs [2026/05/09 18:05]
alexandru.predescu created
pm:prj2026:alexandru.predescu:andrei.tokacs [2026/05/23 21:41] (current)
andrei.cotiga [Download]
Line 1: Line 1:
-TODO+====== 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ă ===== 
 + 
 +{{:​pm:​prj2026:​alexandru.predescu:​bloctokacs.jpeg?​600|}} 
 + 
 +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: 
 + 
 +::: 
 + 
 +{{:​pm:​prj2026:​alexandru.predescu:​poza1andr.jpeg?​400|}} 
 + 
 +::: 
 + 
 +::: 
 + 
 +{{:​pm:​prj2026:​alexandru.predescu:​poza2andr.jpeg?​400|}} 
 + 
 +::: 
 + 
 +::: 
 + 
 +{{:​pm:​prj2026:​alexandru.predescu:​poza3andr.jpeg?​400|}} 
 + 
 +::: 
 + 
 + 
 +===== 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 ===== 
 + 
 +{{:​pm:​prj2026:​alexandru.predescu:​proeictpmandreitok.zip|}} 
 + 
 +===== 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 
 + 
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2026/alexandru.predescu/andrei.tokacs.1778339154.txt.gz · Last modified: 2026/05/09 18:05 by alexandru.predescu
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