This is an old revision of the document!


Sistem Radar cu Interfata Grafica

Proiect realizat de: Andreea-Daniela GEORGESCU - 333CC

Introducere

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.

Scopul fundamental al acestui proiect este de a furniza un cadru inițial pentru realizarea unor proiecte mai complexe, demonstrând în același timp cât de ușor poate fi implementat un sistem de achiziție de date folosind Arduino și senzori compatibili, precum senzorul HC-SR04. Datele sunt prelucrate local de placa Arduino, apoi transmise către un desktop PC pentru afișarea lor într-un format accesibil și intuitiv.

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.

Descriere generala

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:

  • TOO CLOSE! - în cazul în care se află un obiect la o distanța mai mica decat limita impusa (25 cm);
  • 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).

Schema bloc

Hardware Design

Componente Hardware utilizate:

  • Arduino UNO
  • Breadboard
  • Servomotor MG90S
  • Senzor de proximitate HC-SR04
  • Buzzer
  • Led RGB
  • LCD

Schema Arduino Tinkercad:

Schema electrica:

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

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 funcția loop, la fiecare pas de rotație al servomotorului, se apelează funcția distanceCheck(). În cadrul funcției distanceCheck(), se primesc datele de la senzorul de distanță ultrasonic. Dacă distanța măsurată este mai mică decât limita impusă: LED-ul schimbă culoarea în roșu (default este verde). Buzzer-ul începe să sune. Mesajul de pe ecranul LCD se schimbă din “NO OBJECTS ENC” în “OBJECT IN RANGE”. Pe interfața serială se trimit datele despre unghi și distanță pentru fiecare iterație a servomotorului în care a fost detectat un obiect.

3. Codul Java folosind framework-ul de Processing: Aplicația GUI primește datele de la placa Arduino prin intermediul portului serial într-un format prestabilit. Datele sunt parsate și împărțite în partea de distanță și de unghi. Dacă distanța primită este mai mică decât limita impusă în cod, se creează un nou obiect de tip punct. Toate aceste obiecte sunt desenate în cadrul funcției drawObjects, împreună cu unghiul și distanța la care s-a făcut detecția. Restul radarului se redesenează la fiecare iterație.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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ă ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/amocanu/andreea.georgescu02.1716663204.txt.gz · Last modified: 2024/05/25 21:53 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