0% found this document useful (0 votes)
607 views

Radar Arduino Project

The document describes a radar detection system that uses an Arduino, ultrasonic sensor, and servo motor. The Arduino rotates the servo motor from 0 to 180 degrees, moving the ultrasonic sensor to detect objects in different directions. When an object is detected within a certain distance threshold, the object's distance and detection angle are sent via SMS to a mobile number using a GSM modem interfaced with the Arduino. The system could also trigger a camera to move towards detected objects.

Uploaded by

DARSHAN KUDACHE
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
607 views

Radar Arduino Project

The document describes a radar detection system that uses an Arduino, ultrasonic sensor, and servo motor. The Arduino rotates the servo motor from 0 to 180 degrees, moving the ultrasonic sensor to detect objects in different directions. When an object is detected within a certain distance threshold, the object's distance and detection angle are sent via SMS to a mobile number using a GSM modem interfaced with the Arduino. The system could also trigger a camera to move towards detected objects.

Uploaded by

DARSHAN KUDACHE
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

INTRODUCTION:

RADAR is an object detection system which uses radio waves to


determine the range, altitude, direction, or speed of objects. Radar
systems come in a variety of sizes and have different performance
specifications. A radar system is the heart of a missile guidance
system. Small portable radar systems that can be maintained and
operated by one person are available as well as systems that occupy
several large rooms. Radar was secretly developed by several
nations before and during the World War II. The term RADAR itself,
not the actual development, was coined in 1940 by United States
Navy as an acronym for Radio Detection and Ranging.

The project works on the principle of radar echo effect of the


transmitting signal. Arduino control the servo motor for the direction of
ultrasonic sensor and it moves from 0 degree to 180 degree. Ultrasonic
sensor transmits the signal in all direction and if any obstacle that is
target is detected then echo pulse sense. With the help of this echo pulse
arduino program find out the distance and direction angle of the target.
At this condition Siren is trigger and sends the SMS to the colonel. A
SIM300 GSM modem is interfaced to the controller for sending
message.
The beauty of the project is it saves the target data and moves the
camera in the target direction. Furthermore, this project can be enhanced
by using a laser gun. When the target is detected then at this proper
direction gun is fired. Arduino co ntroller and ultrasonic sensor is the
base of this project.
COMPONENTS REQUIRED :
1]ARDUINO
The Arduino microcontroller is an easy to use yet powerful single board
computer that has gained considerable traction in the hobby and professional
market.
The Arduino is open-source, which means hardware is reasonably priced
and development software is free.

TABLE I ARDUINO SPECIFICATIONS Microcontroller ATmega328


[1] Operating Voltage 5V
[2]Input Voltage (recommended) 7-12V
[3] Input Voltage (limits) 6-20V
[4] Digital I/O Pins 14 (of which 6 provide PWM output)
[5] Analog Input Pins 6
[6] DC Current per I/O Pin 40 mA
[7] DC Current for 3.3V Pin 50 mA
[8] Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader

[9] SRAM 2 KB (ATmega328)


[10] EEPROM 1 KB (ATmega328)
[11] Clock Speed 16 MHz

2] ULTRASONIC TRANSMITTER AND RECIVER


Ultrasonic sensors (also known as transceivers) work on a principle
similar to radar or sonar which evaluate attributes of a target by interpreting
the echoes from radio or sound waves respectively.
Ultrasonic sensors generate high frequency sound waves and evaluate the
echo which is received back by the sensor.

FEATURES
Use for motion or distance sensing
Frequency: 40kHz ±1.0kHz
Aluminum case
Capacitance: 2000Pf ±20%
Transmitter: bandwidth 5.0kHz/100Db, sound pressure level
112Db/40 ±1.0kHz

3] MOTOR driver L293D


L293D is a dual H-bridge motor driver integrated circuit (IC).
Motor drivers act as current amplifiers since they take a low-current
control signal and provide a higher-current signal.
This higher current signal is used to drive the motors.

4] SERVO MOTOR
A servomotor is a rotary actuator that allows for precise control of angular
position, velocity and acceleration. It consists of a suitable motor coupled to a
sensor for position feedback. It also requires a relatively sophisticated
controller, often a dedicated module designed specifically for use with
servomotors. Servomotors are not a different class of motor, on the basis of
fundamental operating principle, but uses servomechanism to achieve closed
loop control with a generic open loop motor. Servomotors are used in
applications such as robotics, CNC machinery or automated manufacturing.

5] GSM MODEM
A GSM modem is a specialized type of modem which accepts a SIM card,
and operates over a subscription to a mobile operator, just like a mobile
phone
From the mobile operator perspective, a GSM modem looks just like a
mobile phone.
When a GSM modem is connected to a computer, this allows the computer
to use the GSM modem to communicate over the mobile network.

6] LCD
Most common LCDs connected to the microcontrollers are 16x2 and 20x2
displays.
This means 16 characters per line by 2 lines and 20 characters per line by
2 lines, respectively.
The standard is referred to as HD44780U, which refers to the controller
chip which receives data from an external source (and communicates directly
with the LCD.
Building the device

 First I made a cardboard stand for connecting the Ultrasonic sensor to the Servo motor. I folded
it like it’s shown on the picture below, glued it and secured to the servo motor using a screw like
this.

 Also I attached a pin header on which I soldered 4 jumper wires for connecting the sensor.

 Finally I secured the servo motor to the Arduino Board using an elastic band.

 I connected the Ultrasonic Sensor HC-SR04 to the pins number 10 and 11 and the servo
motor to the pin number 12 on the Arduino Board.
WORKING :
Arduino program controls the all interfaced devices. For moving the
radar we have robotics setup. WI-FI is connected to arduino serially.
Arduino controls the motors clockwise and anti-clockwise by giving
signal to the motor driver IC (L293D IC). User sends the command
by mobile to the WI-FI and gives this command to the arduino.
Arduino program compaire this code with the predefined code. If it
is match then program gives digital signal to motor driver IC and
perform the required operation like left, right, forward and
backward.

Arduino control the servo motor in angle between 0 to 180 degree.


On this servo motor we are putting ultrasonic sensor which is
connected to the arduino board. Ultrasonic sensor work on the
trigger and echo pulse.

As per object distance it will generate echo pulse. If object is having


less distance than threshold distance saved in program then
program will find out the angle of servo motor. In next operation
distance data and angle data is send to the predefined mobile
number in SMS using SIM900 module which is interfaced to the
Arduino. The beauty of the project is camera application. If object is
detected then camera move in the object direction with the help of
another servo motor.
Source codes:

.Here’sThe Arduino Source Code With Description Of Each


Line Of The Code:
. // Includes the Servo library

#include <Servo.h>.

// Defines Tirg and Echo pins of the Ultrasonic Sensor

const int trigPin = 10;

const int echoPin = 11;

// Variables for the duration and the distance

long duration;

int distance;

Servo myServo; // Creates a servo object for controlling the servo motor

void setup() {

pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output

pinMode(echoPin, INPUT); // Sets the echoPin as an Input

Serial.begin(9600);

myServo.attach(12); // Defines on which pin is the servo motor attached

void loop() {

// rotates the servo motor from 15 to 165 degrees


for(int i=15;i<=165;i++){

myServo.write(i);

delay(30);

distance = calculateDistance();// Calls a function for calculating the distance measured


by the Ultrasonic sensor for each degree

Serial.print(i); // Sends the current degree into the Serial Port

Serial.print(","); // Sends addition character right next to the previous value needed
later in the Processing IDE for indexing

Serial.print(distance); // Sends the distance value into the Serial Port

Serial.print("."); // Sends addition character right next to the previous value needed
later in the Processing IDE for indexing

// Repeats the previous lines from 165 to 15 degrees

for(int i=165;i>15;i--){

myServo.write(i);

delay(30);

distance = calculateDistance();

Serial.print(i);

Serial.print(",");

Serial.print(distance);

Serial.print(".");

// 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;

void drawRadar() {

pushMatrix();

translate(960,1000); // moves the starting coordinats to new location

noFill();

strokeWeight(2);

stroke(98,245,31);

// draws the arc lines

arc(0,0,1800,1800,PI,TWO_PI);

arc(0,0,1400,1400,PI,TWO_PI);

arc(0,0,1000,1000,PI,TWO_PI);

arc(0,0,600,600,PI,TWO_PI);

// draws the angle lines

line(-960,0,960,0);

line(0,0,-960*cos(radians(30)),-960*sin(radians(30)));
line(0,0,-960*cos(radians(60)),-960*sin(radians(60)));

line(0,0,-960*cos(radians(90)),-960*sin(radians(90)));

line(0,0,-960*cos(radians(120)),-960*sin(radians(120)));

line(0,0,-960*cos(radians(150)),-960*sin(radians(150)));

line(-960*cos(radians(30)),0,960,0);

popMatrix();

void drawLine() {

pushMatrix();

strokeWeight(9);

stroke(30,250,60);

translate(960,1000); // moves the starting coordinats to new location

line(0,0,950*cos(radians(iAngle)),-950*sin(radians(iAngle))); // draws the line according


to the angle

popMatrix();

void drawObject() {

pushMatrix();

translate(960,1000); // moves the starting coordinats to new location

strokeWeight(9);

stroke(255,10,10); // red color

pixsDistance = iDistance*22.5; // covers the distance from the sensor from cm to pixels

// limiting the range to 40 cms

if(iDistance<40){

// draws the object according to the angle and the distance


line(pixsDistance*cos(radians(iAngle)),-
pixsDistance*sin(radians(iAngle)),950*cos(radians(iAngle)),-950*sin(radians(iAngle)));

popMatrix();

void draw() {

fill(98,245,31);

textFont(orcFont);

// simulating motion blur and slow fade of the moving line

noStroke();

fill(0,4);

rect(0, 0, width, 1010);

fill(98,245,31); // green color

// calls the functions for drawing the radar

drawRadar();

drawLine();

drawObject();

drawText();

import processing.serial.*; // imports library for serial communication

import java.awt.event.KeyEvent; // imports library for reading the data from the serial
port

import java.io.IOException;
Serial myPort; // defines Object Serial

// defubes variables

String angle="";

String distance="";

String data="";

String noObject;

float pixsDistance;

int iAngle, iDistance;

int index1=0;

int index2=0;

PFont orcFont;

void setup() {

size (1920, 1080);

smooth();

myPort = new Serial(this,"COM4", 9600); // starts the serial communication

myPort.bufferUntil('.'); // reads the data from the serial port up to the character '.'. So
actually it reads this: angle,distance.

orcFont = loadFont("OCRAExtended-30.vlw");

void draw() {

fill(98,245,31);

textFont(orcFont);

// simulating motion blur and slow fade of the moving line

noStroke();
fill(0,4);

rect(0, 0, width, 1010);

fill(98,245,31); // green color

// calls the functions for drawing the radar

drawRadar();

drawLine();

drawObject();

drawText();

void serialEvent (Serial myPort) { // starts reading data from the Serial Port

// reads the data from the Serial Port up to the character '.' and puts it into the String
variable "data".

data = myPort.readStringUntil('.');

data = data.substring(0,data.length()-1);

index1 = data.indexOf(","); // find the character ',' and puts it into the variable "index1"

angle= data.substring(0, index1); // read the data from position "0" to position of the
variable index1 or thats the value of the angle the Arduino Board sent into the Serial
Port

distance= data.substring(index1+1, data.length()); // read the data from position


"index1" to the end of the data pr thats the value of the distance

// converts the String variables into Integer

iAngle = int(angle);

iDistance = int(distance);

}
void drawRadar() {

pushMatrix();

translate(960,1000); // moves the starting coordinats to new location

noFill();

strokeWeight(2);

stroke(98,245,31);

// draws the arc lines

arc(0,0,1800,1800,PI,TWO_PI);

arc(0,0,1400,1400,PI,TWO_PI);

arc(0,0,1000,1000,PI,TWO_PI);

arc(0,0,600,600,PI,TWO_PI);

// draws the angle lines

line(-960,0,960,0);

line(0,0,-960*cos(radians(30)),-960*sin(radians(30)));

line(0,0,-960*cos(radians(60)),-960*sin(radians(60)));

line(0,0,-960*cos(radians(90)),-960*sin(radians(90)));

line(0,0,-960*cos(radians(120)),-960*sin(radians(120)));

line(0,0,-960*cos(radians(150)),-960*sin(radians(150)));

line(-960*cos(radians(30)),0,960,0);

popMatrix();

void drawObject() {

pushMatrix();

translate(960,1000); // moves the starting coordinats to new location

strokeWeight(9);
stroke(255,10,10); // red color

pixsDistance = iDistance*22.5; // covers the distance from the sensor from cm to pixels

// limiting the range to 40 cms

if(iDistance<40){

// draws the object according to the angle and the distance

line(pixsDistance*cos(radians(iAngle)),-
pixsDistance*sin(radians(iAngle)),950*cos(radians(iAngle)),-950*sin(radians(iAngle)));

popMatrix();

void drawLine() {

pushMatrix();

strokeWeight(9);

stroke(30,250,60);

translate(960,1000); // moves the starting coordinats to new location

line(0,0,950*cos(radians(iAngle)),-950*sin(radians(iAngle))); // draws the line according


to the angle

popMatrix();

void drawText() { // draws the texts on the screen

pushMatrix();

if(iDistance>40) {

noObject = "Out of Range";

else {
noObject = "In Range";

fill(0,0,0);

noStroke();

rect(0, 1010, width, 1080);

fill(98,245,31);

textSize(25);

text("10cm",1180,990);

text("20cm",1380,990);

text("30cm",1580,990);

text("40cm",1780,990);

textSize(40);

text("Object: " + noObject, 240, 1050);

text("Angle: " + iAngle +" °", 1050, 1050);

text("Distance: ", 1380, 1050);

if(iDistance<40) {

text(" " + iDistance +" cm", 1400, 1050);

textSize(25);

fill(98,245,60);

translate(961+960*cos(radians(30)),982-960*sin(radians(30)));

rotate(-radians(-60));

text("30°",0,0);

resetMatrix();

translate(954+960*cos(radians(60)),984-960*sin(radians(60)));
rotate(-radians(-30));

text("60°",0,0);

resetMatrix();

translate(945+960*cos(radians(90)),990-960*sin(radians(90)));

rotate(radians(0));

text("90°",0,0);

resetMatrix();

translate(935+960*cos(radians(120)),1003-960*sin(radians(120)));

rotate(radians(-30));

text("120°",0,0);

resetMatrix();

translate(940+960*cos(radians(150)),1018-960*sin(radians(150)));

rotate(radians(-60));

text("150°",0,0);

popMatrix();

APPLICATION

1.Air Force
2.Naval Application
3.Applications in Army

REFERANCES

[1] www.arduinoproducts.com
[2] www.atmel.com/atmega328
[3] www.wikipedia.org
[4] Book of Alan G.Smith-Introduction to Arduino
[5] Reference book of Getting Started WithArduino By
Massimo Banzi
[6] www.realworldsensor.com
[7] Fundamentals of Radar signal processing-M.A.

You might also like