Sunteți pe pagina 1din 7

Student: Cozma Casiana Teodora

Seria B, Grupa 7

Dispozitiv radar pentru detectarea corpurilor straine

Obiectivul proiectului
Scopul principal al proiectului este de a ajuta la evitarea posibilelor accidente care pot
avea loc in traficul aerian sau maritim, respectiv, la evitarea posibilelor obiecte ce pot pune in
pericol viata persoanelor.
Ipoteza proiectului
Am venit cu aceasta idee de proiect din dorinta de preventive, deoarece multe accidente
catastrofale ar putea fi evitate daca lumea ar dispune de radare specializate. De multe ori in spatiul
suprateran sau acvatic exista multe obstacole despre a caror existenta nu se stie si care pot reprezenta un
pericol pentru oameni. Cu ajutorul unui radar sau sonar s-ar putea afla despre acestea din timp iar
pericolul nu ar mai fi iminent.

Descrierea proiectului
Dispozitivul construit arata in timp real obiectele pe care le descopera in raza sa de actiune si ii
trimite utilizatorului informatii semnificative cu privie la acestea: distanta si unghiul la care se afla.
Acesta este de asemenea conectat la laptop astfel incat sa poata oferi si o reprezentare vizuala a localizarii
obiectelor.
Dispozitivul mai are urmatoarele functionalitati: in prezenta unui obiect, buzzer-ul declanseaza un
semnal sonor utilizatorului: doua LED-uri, unul verde respectiv unul rosu care functioneaza astfel: cel
verde sta aprins daca in raza de actiune a radarului nu se iveste niciun obiect, iar cel rosu se apinde atata
timp cat un obiect este detectat.

Componentele proiectului
Pentru acest proiect am folosit urmatoarele componente: placa Arduino UNO, senzor
ultrasonic hc-sr04, modul buzzer pasiv, doua LED-uri si un motor servo sg90.

Arduino UNO
Arduino Uno R3 este o placă de dezvoltare
bazată pe microcontrollerul ATmega328. Are 14
pini de intrare/ieșire (dintre care 6 pot fi folosiți
ca ieșiri PWM), 6 intrări analog, un oscilator de
16MHz, o conexiune USB, mufă de alimentare,
și un buton de reset.
Poate fi alimentat direct de la calculator, de la
portul USB, prin intermediul unei baterii de 9V
sau a unui alimentator de 9V.

1
Student: Cozma Casiana Teodora
Seria B, Grupa 7

Senzor ultrasonic hc-sr04


Senzorul ultrasonic HC-SR04 este unul dintre cei mai utilizați
senzori pentru aflarea distanței. În special folosit pentru
proiectele cu plăci de dezvoltare Arduino, are avantaje față de
senzorii analogici, necesitând doar pini I/O digitali și are
imunitate mai mare la zgomotul din jur.
Senzorul emite ultrasunete la o frecvență de 40000Hz care
circulă prin aer, iar dacă întâlnește un obstacol, acesta se va
întoarce înapoi spre modul, astfel, luând in considerare viteza
sunetului se poate calcula distanța până la obiect.

Modul buzzer pasiv


Modulul constă într-un buzzer piezoelectric pasiv, care poate genera tonuri
între 1,5 și 2,5 kHz prin comutarea și oprirea la frecvențe diferite, fie folosind
întârzieri sau PWM.
Acesta poate produce o gamă variată de sunete în funcție de frecvența de
intrare.

LED-uri
Aceste leduri mici de 5mm, dar puternice, se pot folosi împreună cu un
microcontroler pentru a genera semnale vizuale în urma executării unei
secvențe de cod sau în urma unui eveniment (detectarea unui obstacol
de către un senzor, etc).

Servo sg90
Un servomotor permite controlul precis al poziției,
vitezei, sau accelerației. Cu alte cuvinte, permite, de
exemplu, setarea cu precizie a unghiului.
Mic și ușor, cu o putere mare de ieșire. Servo se poate
roti aproximativ 180 de grade (90 în fiecare direcție), și
funcționează la fel ca tipurile standard, dar este mai mic.
Se poate folosi orice metodă pentru control servomotor,
hardware sau bibleotecă software.

2
Student: Cozma Casiana Teodora
Seria B, Grupa 7

Alimentarea
Alimentearea se face de la laptop.

Partea software
Codul este scris in Arduino IDE intr-un limbaj asemanator cu C++.

#include <Servo.h>
#include <LiquidCrystal.h>

// Defines Tirg and Echo pins of the Ultrasonic Sensor


const int trigPin = 9;
const int echoPin = 10;
// Variables for the duration and the distance
long duration;
int distance;

const int buzzer = 12;


const int ledPin1 = 14;
const int ledPin2 = 15;
const int DistanceSec = 100;

Servo myServo; // Creates a servo object for controlling the servo motor
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

Servo servoAtac;

Servo servoRotatie;

// starting loaction
const int startAngle = 90;

// rotation limits
const int minimumAngle = 6;
const int maximumAngle = 175;

3
Student: Cozma Casiana Teodora
Seria B, Grupa 7

// speed
const int degreesPerCycle = 1;

void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
pinMode(buzzer, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
Serial.begin(9600);
myServo.attach(11); // Defines on which pin is the servo motor attached
servoAtac.attach(16);
servoRotatie.attach(17);
}

void loop(void)
{
static int currentAngle = startAngle;
static int servoRotateAmount = degreesPerCycle;

// move motor
myServo.write(currentAngle);
delay(10);
// calculate the distance from the sensor, and write the valu with locqtion
to serial
distance=calculateDistance();
SerialOutput(currentAngle, distance);

//distance = calculateDistance();

if (distance <= DistanceSec) {


if(distance <= DistanceSec/2)
{
digitalWrite(buzzer, HIGH);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
// delay(700);
//noTone(buzzer);
}
else
{
digitalWrite(buzzer, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin1, HIGH);
// delay(100);

4
Student: Cozma Casiana Teodora
Seria B, Grupa 7

digitalWrite(buzzer, LOW);
}
} else {
digitalWrite(buzzer, LOW);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
}

// update motor location


currentAngle += servoRotateAmount;

// if the motor has reached the limits, change direction


if(currentAngle <= minimumAngle || currentAngle >= maximumAngle)
{
servoRotateAmount = -servoRotateAmount;
}
}

void SerialOutput(const int angle, int distance)


{
// convert the angle and distance to a string and serial print
Serial.println(String(angle) + "," + String(distance));
}

// Function for calculating the distance measured by the Ultrasonic sensor


int calculateDistance() {

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound
wave travel time in microseconds
distance = duration * 0.034 / 2;
return distance;
}

5
Student: Cozma Casiana Teodora
Seria B, Grupa 7

Partea mecanica

Imbunatatiri
Ce ar mai putea fi imbunatati la acest proiect ar fi raza sa de actionare, deoarece acesta are capacitatea de
a detecta obiecte pe o raza relative scurta. Alta imbunatatire ar puta fi un parametru care sa interpreteze
viteza cu care obiectul se apropie de noi sau noi de el.

Concluzie

6
Student: Cozma Casiana Teodora
Seria B, Grupa 7

In concluzie, dispozitivul creat ar avea utilitate si in viata reala si ar aduce o imbunatatire semnificativa
modului in care ne protejam de evenimente neprevazute.

S-ar putea să vă placă și