Differences

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

Link to this comparison view

pm:prj2024:amocanu:andreea.georgescu02 [2024/05/03 18:50]
andreea.georgescu02 [Descriere generala]
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 =====
 +<note tip>
 Proiectul propune implementarea unui sistem radar adaptat pentru utilizare la scară mică, inspirat de conceptele de monitorizare a distanțelor. Un senzor de distanță ultrasonic, cum ar fi senzorul HC-SR04, montat pe un servomotor, este utilizat pentru a măsura distanțele înconjurătoare. Obiectele detectate sunt vizualizate pe un calculator printr-o interfață grafică simplă. Utilizatorul este notificat atât vizual, cât și auditiv, de către un buzzer. Această soluție oferă o metodă completă și eficientă pentru monitorizarea și detectarea obiectelor din proximitate. Proiectul propune implementarea unui sistem radar adaptat pentru utilizare la scară mică, inspirat de conceptele de monitorizare a distanțelor. Un senzor de distanță ultrasonic, cum ar fi senzorul HC-SR04, montat pe un servomotor, este utilizat pentru a măsura distanțele înconjurătoare. Obiectele detectate sunt vizualizate pe un calculator printr-o interfață grafică simplă. Utilizatorul este notificat atât vizual, cât și auditiv, de către un buzzer. Această soluție oferă o metodă completă și eficientă pentru monitorizarea și detectarea obiectelor din proximitate.
  
Line 8: Line 9:
  
 Proiectul s-a născut din dorința de a explora și de a înțelege potențialul sistemelor de monitorizare și detecție a obiectelor într-un context accesibil și practic. Adaptând conceptele tehnologice pentru utilizare la scară mică, acest proiect oferă oportunitatea de a experimenta și de a învăța despre interconectarea componentelor hardware și software. Proiectul s-a născut din dorința de a explora și de a înțelege potențialul sistemelor de monitorizare și detecție a obiectelor într-un context accesibil și practic. Adaptând conceptele tehnologice pentru utilizare la scară mică, acest proiect oferă oportunitatea de a experimenta și de a învăța despre interconectarea componentelor hardware și software.
- +</​note>​
 ===== Descriere generala ===== ===== Descriere generala =====
  
 +<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>​
 ===== Schema bloc ===== ===== Schema bloc =====
 +
 +{{:​pm:​prj2024:​amocanu:​screenshot_from_2024-05-03_19-20-44.png?​450x400|}}
 +
 +===== Hardware Design =====
 +
 +{{:​pm:​prj2024:​amocanu:​too_close.jpeg?​300|}} ​ {{:​pm:​prj2024:​amocanu:​all_clear.jpeg?​300|}}
 +
 +=====Componente Hardware utilizate:​=====
 +  * Arduino UNO
 +  * Breadboard
 +  * Servomotor MG90S
 +  * 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 și analogici ai plăcii Arduino UNO.
 +
 +2. Breadboard:
 +  * 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
 +5. Buzzer:
 +  * 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 =====
 +
 +
 +<note tip>
 +Medii de dezvoltare:
 +  * Cod: ArduinoIDE
 +  * Schema bloc: drawIO
 +  * Schema electrică: TinkerCad
 +  * 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 trig, echo, 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 și 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).
 +
 +**3. Codul 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ă și afișează obiectele detectate pe radar în funcție de distanță și unghi.
 +  * drawLine(): Desenează linia rotativă a radarului, indicând direcția de scanare.
 +  * drawText(): Afișează informații despre distanță, unghi și 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 și 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>​
 +
 +===== Rezultate Obţinute =====
 +
 +<note tip>
 +Video cu sistemul radar: https://​youtube.com/​shorts/​3qU8o9yFfes?​si=KjTPv5YFtWFnJ9V1
 +</​note>​
 +
 +===== 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 =====
 +
 +Codul sursa al proiectului:​
 +
 +{{:​pm:​prj2024:​amocanu:​georgescu_andreea.daniela.zip|}}
 +
 +
 +===== Jurnal =====
 +
 +<note tip>
 +  * 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>​
 +
 +===== Bibliografie/​Resurse =====
 +
 +<​note>​
 +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>​
 +
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2024/amocanu/andreea.georgescu02.1714751438.txt.gz · Last modified: 2024/05/03 18:50 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