Table of Contents

Sonar/Radar

Introducere

Proiectul realizeaza simularea unui sonar, cu scopul de a afisa utilizatorului date despre obiectele din apropiere tinand cont de distanta pana la acestea. Datele de intrare al proiectului sunt obtinute din valorile citite de senzorul ultrasonic de distanta, care se roteste 90 de grade pentru a scana zona din fata. In final, dupa prelucrare, outputul este afisat pe ecranul LCD sub forma unor patrate la o distanta proportionala cu cea reala fata de centrul ecranului reprezentat de locatia statiei.

Descriere generală

Hardware Design

Placa Arduino Uno

+Breadboard and a lot of wires

Pinii de VCC si GND ai modulelor sunt conectati la GND/5V pe placuta sau prin intermediul breadboard-ului.

Senzor ultrasonic de distanta HC-SR04

Pinii Trig si Echo ai senzorului de distanta sunt legati la conexiunile 8 si 9 pe Arduino Uno.

Ecran LCD Nokia 5110

Ecranul LCD are backlight-ul conectat la 3.3V, iar restul intrarilor sunt conectate la 3-7 pe placa.

ServoMotor SG90 180 de grade

Legatura dintre servo-motor si placuta este facuta prin pinul 11.

Senzorul de distanta este conectat pe servo-motor si puse pe un suport, iar ecranul LCD este conectat direct la breadboard.

Software Design

Biblioteci folosite: <SPI.h>, <Adafruit_GFX.h>, <Adafruit_PCD8544.h>, <Servo.h>

Mediul de lucru: Arduino IDE

In setup initializez toate conexiunile elementelor cu placuta arduino, iar in loop se face o parcurgere a zonei 45-135 de grade a servo-motorului si se citesc valorile de la 60, 75, 90, 105 si 120 de grade. Se adauga intr-un vector scalate si la marimea de 84 pe 48 a ecranului LCD pentru a fi afisate la final de loop.

Am folosit 2 vectori care retin pozitiile i si j ale obiectelor scanate anterior pentru ca la fiecare iteratie a loop-ului, sa pot sterge marcajele anterioare si sa rescriu vectorii cu valorile din noua detectie.

Functia detection genereaza patratele care reprezinta obstacolele, iar calc_dis este folosita pentru a intoarce distanta de la senzor.

Rezultate Obţinute

Am testat in mai multe situatii si cu obstacole plasate in bataia senzorului, iar outputul a fost corect. In poza se poate vedea cum scaneaza peretele meu cu o sticla de apa in drum la una din citiri:)))))

Concluzii

Avand la baza experienta si notiunile de la laborator, proiectul meu a reusit sa incorporeze toate functionalitatile pe care mi le-am propus. Imbunatatirea ce consider ca poate fi adusa ar fi cea a managementului de cablaj, pentru a elibera zona de display de fire.

Download

Arhiva cu codul folosit:

andreidragos335cb_cod.zip

*in continuare este necesara downloadarea din Arduino IDE a bibliotecii Adafruit

Bibliografie/Resurse

https://ocw.cs.pub.ro/courses/pm/lab/lab6-2022

https://ocw.cs.pub.ro/courses/pm/lab/lab3-2022

https://ocw.cs.pub.ro/courses/pm/lab/lab1-2022

https://www.youtube.com/watch?v=aDwrMeu4k9Y

https://create.arduino.cc/projecthub/DKVDH/simple-servo-project-for-beginners-5268b2

https://create.arduino.cc/projecthub/Manikantsavadatti/diy-ultrasonic-radar-system-1f4d1c

Export to PDF