This shows you the differences between two versions of the page.
|
pm:prj2026:alexandru.predescu:andrei.tokacs [2026/05/09 19:23] andrei.cotiga [Descriere generală] |
pm:prj2026:alexandru.predescu:andrei.tokacs [2026/05/23 21:41] (current) andrei.cotiga [Download] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Sistem de Asistenta la Parcare ====== | ====== Sistem de Asistenta la Parcare ====== | ||
| + | |||
| ===== Introducere ===== | ===== 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. | 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ă ===== | ===== Descriere generală ===== | ||
| + | {{:pm:prj2026:alexandru.predescu:bloctokacs.jpeg?600|}} | ||
| Sistemul este compus din următoarele componente principale: | Sistemul este compus din următoarele componente principale: | ||
| Line 16: | Line 19: | ||
| 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. | 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. | ||
| - | {{:pm:prj2026:alexandru.predescu:bloctokacs.jpeg?600|}} | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | ==== Listă de piese ==== |
| - | Aici puneţi tot ce ţine de hardware design: | + | * **Placă de dezvoltare:** ATmega328P Xplained Mini (XMINI) - unitatea centrală de procesare. |
| - | * listă de piese: | + | * **Senzor de distanță:** Modul ultrasonic HC-SR04. |
| - | * **Placă de dezvoltare:** ATmega328P Xplained Mini - servește ca unitate centrală de procesare, gestionând timerele și logica sistemului. | + | * **Avertizare sonoră:** Modul Buzzer pasiv (5V) - permite controlul frecvenței din cod. |
| - | * **Senzor de distanță:** Modul ultrasonic HC-SR04 - folosit pentru a măsura timpul de zbor al undelor sonore și a determina distanța până la obstacol. | + | * **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.* |
| - | * **Avertizare sonoră:** Buzzer pasiv (5V) - generează tonurile de avertizare; s-a ales un buzzer pasiv pentru a putea controla frecvența și durata bipurilor din cod. | + | * **Conectică:** Breadboard și fire de conexiune Dupont (Tată-Tată și Mamă-Tată). |
| - | * **Avertizare vizuală:** 3 x LED-uri (Verde, Galben, Roșu) - indică nivelurile de proximitate (sigur, atenție, oprire). | + | |
| - | * **Componente pasive:** 3 x Rezistențe de 220Ω sau 330Ω - necesare pentru limitarea curentului și protejarea atât a LED-urilor, cât și a pinilor de pe microcontroler. | + | ==== Conectare pini (Pinout) ==== |
| - | * **Conectică și asamblare:** Breadboard (pentru realizarea conexiunilor fără lipire) și fire de conexiune tip Dupont (tată-tată și mamă-tată). | + | Componentele au fost conectate la microcontrolerul ATmega328P după cum urmează: |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | ^ Componentă ^ Pin Senzor/Modul ^ Pin ATmega328P XMINI ^ Rol în proiect ^ |
| - | * diagrame de semnal | + | | **Senzor HC-SR04** | VCC | 5V | Alimentare | |
| - | * rezultatele simulării | + | | | GND | GND | Masă comună | |
| - | </note> | + | | | 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 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. | ||
| - | <note tip> | + | **Mediu de dezvoltare și librării:** |
| - | Descrierea codului aplicaţiei (firmware): | + | * **Mediu:** Arduino IDE integrat cu pachetul extensie **MiniCore**, necesar pentru a asigura comunicarea cu programatorul hardware mEDBG de pe placa XMINI. |
| - | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * **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. |
| - | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
| - | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | **Fluxul principal și algoritmi implementați:** |
| - | * (etapa 3) surse şi funcţii implementate | + | Programul este structurat într-o buclă infinită care rulează următoarele module logice: |
| - | </note> | + | * **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 ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | În urma realizării practice a proiectului și rulării codului pe placa ATmega328P XMINI, au fost obținute următoarele rezultate: |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | * **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. |
| - | </note> | + | * **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 ===== | ===== Concluzii ===== | ||
| - | ===== Download ===== | + | 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). |
| - | <note warning> | + | 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. |
| - | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
| + | ===== Download ===== | ||
| - | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | {{:pm:prj2026:alexandru.predescu:proeictpmandreitok.zip|}} |
| - | </note> | + | |
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| - | <note tip> | + | * **08.05.2026:** Alegerea temei de proiect, documentarea tehnică și achiziția componentelor hardware necesare. |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * **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). |
| - | </note> | + | * **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 ===== | ===== Bibliografie/Resurse ===== | ||
| - | <note> | + | * Datasheet ATmega328P |
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * Datasheet Senzor Ultrasonic HC-SR04 |
| - | </note> | + | * 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> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||