Differences

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

Link to this comparison view

pm:prj2024:amocanu:andreea.georgescu02 [2024/05/05 17:32]
andreea.georgescu02
pm:prj2024:amocanu:andreea.georgescu02 [2024/05/27 00:47] (current)
andreea.georgescu02 [Concluzii]
Line 1: Line 1:
 ====== Sistem Radar cu Interfata Grafica ====== ====== Sistem Radar cu Interfata Grafica ======
 +
  
 ===== Introducere ===== ===== Introducere =====
Line 13: Line 14:
 <note tip> <note tip>
 Acest proiect implementează un sistem radar utilizând Arduino UNO, senzorul de distanță HC-SR04 montat pe un suport special pe un servomotor. Senzorul HC-SR04 măsoară distanțele înconjurătoare,​ iar servomotorul rotește radarul intermitent pentru a scana zona de interes. Atunci când un obiect este detectat în raza senzorului, un buzzer emite un sunet de atenționare,​ iar un LED RGB se aprinde: roșu dacă distanța este sub o anumită valoare limită (THRESHOLD),​ galben dacă distanța este egală cu această valoare limită și verde în restul cazurilor. Informațiile despre obiectele detectate sunt afișate pe un laptop printr-o interfață grafică simplă și intuitivă. De asemenea, un mesaj intuitiv este afișat pe un display LCD în cazul în care este detectat un obiect în raza de acoperire, astfel: Acest proiect implementează un sistem radar utilizând Arduino UNO, senzorul de distanță HC-SR04 montat pe un suport special pe un servomotor. Senzorul HC-SR04 măsoară distanțele înconjurătoare,​ iar servomotorul rotește radarul intermitent pentru a scana zona de interes. Atunci când un obiect este detectat în raza senzorului, un buzzer emite un sunet de atenționare,​ iar un LED RGB se aprinde: roșu dacă distanța este sub o anumită valoare limită (THRESHOLD),​ galben dacă distanța este egală cu această valoare limită și verde în restul cazurilor. Informațiile despre obiectele detectate sunt afișate pe un laptop printr-o interfață grafică simplă și intuitivă. De asemenea, un mesaj intuitiv este afișat pe un display LCD în cazul în care este detectat un obiect în raza de acoperire, astfel:
-  * //Beware of the danger in front// - în cazul în care se află un obiect la o distanța mai mica decat limita impusa; +  * //TOO CLOSE!// - în cazul în care se află un obiect la o distanța mai mica decat limita impusa ​(25 cm)
-  * //All clear// - în cazul în care se află un obiect la o distanța mai mare sau egală ​decat limita impusa.+  * //A LITTLE CLOSE!// - în cazul în care se află un obiect la o distanța intermediara(25 < distance < 50). 
 +  * //ALL CLEAR!// -  ​în cazul în care se află un obiect la o distanța mai mare decat limita impusa ​(50 cm).
 </​note>​ </​note>​
 ===== Schema bloc ===== ===== Schema bloc =====
Line 22: Line 24:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +{{:​pm:​prj2024:​amocanu:​too_close.jpeg?​300|}} ​ {{:​pm:​prj2024:​amocanu:​all_clear.jpeg?​300|}} 
-Aici puneţi tot ce ţine de hardware design+ 
-  * listă ​de piese +=====Componente Hardware utilizate:===== 
-  * scheme electrice (se pot lua şi de pe Internet şdin datasheet-uri,​ e.ghttp://www.captain.at/​electronic-atmega16-mmc-schematic.png+  * Arduino UNO 
-  * diagrame ​de semnal ​ +  * Breadboard 
-  * rezultatele simulării +  * Servomotor MG90S 
-</​note>​+  * Senzor ​de proximitate HC-SR04 
 +  * Buzzer 
 +  * Led RGB 
 +  * LCD 
 + 
 +=====Schema Arduino Tinkercad:​===== 
 + 
 +{{:​pm:​prj2024:​amocanu:​ttt22.jpg?​800|}} 
 + 
 +=====Schema electrica:​===== 
 + 
 +{{:​pm:​prj2024:​amocanu:​schema_mea.jpg?​800|}} 
 + 
 +====Schema ​de Conectare==== 
 + 
 +  
 +1. Arduino UNO:  
 +  * Toate conexiunile componentelor sunt realizate cu pinii digitali șanalogici ai plăcii Arduino UNO. 
 + 
 +2Breadboard: 
 +  * Distribuie +5V și GND pentru componentele care necesită aceste conexiuni. 
 +  * Utilizat pentru legarea servomotorului și a buzzerului la pinii respectivi. 
 +3. Servomotor MG90S: 
 +  * Semnal: Pin 8 
 +  * Vcc: +5V prin breadboard 
 +  * Ground: GND prin breadboard 
 +4. Senzor de proximitate HC-SR04: 
 +  * Echo: Pin 10 
 +  * Trig: Pin 9 
 +  * Vcc: +5V direct la Arduino 
 +  * Ground: GND direct la Arduino 
 +5Buzzer: 
 +  * Semnal: Pin 8 (prin breadboard
 +  * Ground: GND prin breadboard 
 +6. LED RGB: 
 +  * Roșu: Pin 13 prin rezistență ​de 330Ω 
 +  * Verde: Pin 11 prin rezistență de 330Ω 
 +  * Albastru: Pin 12 prin rezistență de 330Ω 
 +  * Ground: GND (prin breadboard) 
 +7. Display LCD: 
 +  * SCL: Pin A4 
 +  * SDA: Pin A5 
 +  * Vcc: +5V prin breadboard 
 +  * Ground: GND prin breadboard 
 + 
 + 
 + 
 + 
 + 
  
 ===== Software Design ===== ===== Software Design =====
Line 34: Line 85:
  
 <note tip> <note tip>
-Descrierea ​codului aplicaţiei (firmware): +Medii de dezvoltare:​ 
-  * mediu de dezvoltare ​(if any) (e.gAVR StudioCodeVisionAVR+  * Cod: ArduinoIDE 
-  librării şsurse 3rd-party (e.gProcyon AVRlib+  * Schema bloc: drawIO 
-  * algoritmi şstructuri ​pe care plănuiţsă le implementaţ+  * Schema electrică: TinkerCad 
-  * (etapa 3surse şi funcţii implementate+  * Design circuit: TinkerCad 
 +  * Biblioteci folosite:  
 +      * LiquidCrystal_I2C.h:​ pentru a controla ecranul LCD cu interfață I2C. 
 +      * Servo.h: pentru a controla servomotorul. 
 +**1. Codul Arduino:​** 
 +În cadrul ​codului ​Arduino, servomotorul rotește senzorul ultrasonic și măsoară distanța față de obiecte. Pe baza distanței măsurate, LED-ul își schimbă culoarea, buzzer-ul sună și mesajul de pe ecranul LCD se actualizează. De asemenea, datele despre unghi și distanță sunt trimise către interfața serială pentru a fi prelucrate ulterior de aplicația GUI. 
 + 
 +**2. Funcționare:​** 
 +În cadrul funcției loop, la fiecare pas de rotație al servomotorului,​ se apelează funcția distanceMeasurement(), unde se primesc datele de la senzorul de distanță ultrasonic. Dacă distanța măsurată este mai mică decât limita impusă, atunci
 +  * Culoarea default a LED-ului (verde) se schimbă în roșu. 
 +  * Buzzer-ul emite un sunet. 
 +  * Mesajul default ​de pe ecranul LCD (“ALL CLEAR!”se schimbă în funcție de distanță ​("TOO CLOSE!"​ sau "A LITTLE CLOSE!"​). 
 +  * Pe interfața serială sunt trimise datele despre unghi și distanță pentru fiecare iterație a servomotorului în care a fost detectat un obiect. 
 + 
 +**Inițializarea și configurarea piniiilor:​** 
 + 
 +Funcția initializePins() configurează pinii pentru trigecho, buzzer și LED-ul RGB ca OUTPUT. 
 + 
 +**Scanarea și măsurarea distanței:​** 
 + 
 +Funcția scanAndMeasure(rotește servomotorul de la 0 la 170 de grade și înapoi, măsurând distanța la fiecare pas. 
 +Funcția distanceMeasurement() măsoară distanța folosind senzorul ultrasonic, trimite datele prin serial și actualizează ecranul LCD și culoarea LED-ului. 
 + 
 +**Afișarea mesajului și setarea culorii LED-ului:​** 
 + 
 +Funcția displayMessageAndColor() afișează un mesaj pe LCD șsetează culoarea LED-ului în funcție de distanța măsurată. 
 +Funcția setColor() setează intensitatea LED-urilor RGB pentru a afișa culoarea corespunzătoare (roșu, portocaliu sau verde). 
 + 
 +**3Codul Java folosind framework-ul de Processing:​** 
 + 
 +**Serial Communication:​**  
 +  * Se inițializează comunicarea serială pentru a primi date de la un dispozitiv radar, conectat la portul COM5 și setat la o viteză de transfer de 9600 baud. 
 + 
 +**Desenarea Elementelor Vizuale:​** 
 + 
 +  * drawRadar(): Desenează arcele concentrice și liniile radiale pentru a reprezenta zona de scanare a radarului. 
 +  * drawObject():​ Detectează șafișează obiectele detectate ​pe radar în funcție de distanță șunghi. 
 +  * drawLine(): Desenează linia rotativă a radarului, indicând direcția de scanare. 
 +  * drawText(): Afișează informații despre distanță, unghi șstarea de siguranță a mediului înconjurător. 
 + 
 +**Manipularea Datelor de la Radar:** 
 + 
 +  * serialEvent(): Este activată atunci când sunt primite date de la radar prin comunicarea serială. Aceasta interpretează datele primite șextrage unghiul și distanța obiectelor detectate. 
 + 
 +**Desenarea Componentelor Vizuale:​** 
 + 
 +  * drawArcs(): Desenează arcele concentrice care reprezintă diferitele intervale de distanță ale radarului. 
 +  * drawAngleLines():​ Desenează liniile radiale care reprezintă diferitele unghiuri de scanare ale radarului. 
 +  * drawAngleLabels():​ Desenează marcajele de unghiuri pe radar pentru a indica direcția de scanare. 
 + 
 +**Afișarea Informațiilor:​** 
 + 
 +  * setObjectColor():​ Stabilește culoarea obiectelor detectate în funcție de distanță. 
 +  * drawAngleLabel():​ Desenează etichetele de unghi pentru a indica direcția de scanare a radarului.
 </​note>​ </​note>​
  
Line 44: Line 148:
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Video cu sistemul radar: https://​youtube.com/​shorts/​3qU8o9yFfes?​si=KjTPv5YFtWFnJ9V1
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +A fost o provocare sa implementez primul meu proiect de acest gen, dar si o introducere utila in acest domeniu. ​
 +
 +Proiectul este functional si pregatit sa serveasca la detectia obiectelor pe o raza minimala.
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Codul sursa al proiectului:​ 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării ​proiectului: ​surse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+ 
 +{{:​pm:​prj2024:​amocanu:​georgescu_andreea.daniela.zip|}}
  
-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**. 
-</​note>​ 
  
 ===== Jurnal ===== ===== Jurnal =====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+  * 25 aprilie: Alegere finala proiect. 
 +  * 30 aprilie: Am comandat piesele. 
 +  * 3 mai: Sosire comanda. 
 +  * 7 mai: Comanda suplimentară pentru piese. 
 +  * 10 mai: Sosire comanda suplimentară. 
 +  * 16 mai: Milestone Hardware. 
 +  * 23 mai: Milestone Software
 </​note>​ </​note>​
  
Line 66: Line 178:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse ​Software** şi **Resurse ​Hardware**.+In realizarea proiectului m-am folosit de informatii preluate din urmatoarele surse: 
 + 
 +**Resurse ​Hardware:** 
 +  * https://​www.geeksforgeeks.org/​how-to-interface-i2c-lcd-display-with-arduino/​ 
 +  * https://​www.youtube.com/​watch?​v=n-gJ00GTsNg 
 +  * https://​www.ardumotive.com/​how-to-use-a-buzzer-en.html 
 + 
 +**Resurse ​Software:** 
 +  * https://​www.youtube.com/​watch?​v=w5-LD8OGJNs 
 +  * https://​chat.openai.com/ 
 + 
 </​note>​ </​note>​
  
pm/prj2024/amocanu/andreea.georgescu02.1714919541.txt.gz · Last modified: 2024/05/05 17:32 by andreea.georgescu02
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