Skip to main content

Radar System using Arduino

                       Radar System using Arduino

                                        The Radar is Basic Tool used For the Navigation and Tracking object Nearby.The radar is widely used in Military,AirControl systems.Thus the radar is widely used for various applications.Thus we are going to make it in the Arduino using Ultrasonic sensor.


Components Required:


                              1)Arduino
                              2)Ultrasonic Sensor
                              3)Servo Motor
                              4)Male To Female Port wires



 Procedure:

                               The ultrasonic sensor is used between 40 cm to detect object with help of Arduino and next connect the ultrasonic sensor to the Arduino which is defined in the Code and samewise Connect the servo to the Arduino.Now Upload the code which is Given below and next upload Code of Processing App Code to it.Nect press the play Button.Then the mini rador works.
                             myPort = new Serial(this,"COM5", 9600);
                      Set the COM to which your Arduino connected

Arduino Code:


 // NBSL COMMERCIAL
#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;
}

Processing Code:

import processing.serial.*; // NBSL COMMERCIAL
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 (1200, 700); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION***
 smooth();
 myPort = new Serial(this,"COM5", 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.
}
void draw() {
 
  fill(98,245,31);
  // simulating motion blur and slow fade of the moving line
  noStroke();
  fill(0,4);
  rect(0, 0, width, height-height*0.065);
 
  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(width/2,height-height*0.074); // moves the starting coordinats to new location
  noFill();
  strokeWeight(2);
  stroke(98,245,31);
  // draws the arc lines
  arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI);
  arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI);
  arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI);
  arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI);
  // draws the angle lines
  line(-width/2,0,width/2,0);
  line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30)));
  line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60)));
  line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90)));
  line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120)));
  line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150)));
  line((-width/2)*cos(radians(30)),0,width/2,0);
  popMatrix();
}
void drawObject() {
  pushMatrix();
  translate(width/2,height-height*0.074); // moves the starting coordinats to new location
  strokeWeight(9);
  stroke(255,10,10); // red color
  pixsDistance = iDistance*((height-height*0.1666)*0.025); // 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)),(width-width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle)));
  }
  popMatrix();
}
void drawLine() {
  pushMatrix();
  strokeWeight(9);
  stroke(30,250,60);
  translate(width/2,height-height*0.074); // moves the starting coordinats to new location
  line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*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, height-height*0.0648, width, height);
  fill(98,245,31);
  textSize(25);
 
  text("10cm",width-width*0.3854,height-height*0.0833);
  text("20cm",width-width*0.281,height-height*0.0833);
  text("30cm",width-width*0.177,height-height*0.0833);
  text("40cm",width-width*0.0729,height-height*0.0833);
  textSize(40);
  text(" VIRAL SCIENCE ", width-width*0.875, height-height*0.0277);
  text("Angle: " + iAngle +" °", width-width*0.48, height-height*0.0277);
  text("Distance: ", width-width*0.26, height-height*0.0277);
  if(iDistance<40) {
  text("        " + iDistance +" cm", width-width*0.225, height-height*0.0277);
  }
  textSize(25);
  fill(98,245,60);
  translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-width/2*sin(radians(30)));
  rotate(-radians(-60));
  text("30°",0,0);
  resetMatrix();
  translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-width/2*sin(radians(60)));
  rotate(-radians(-30));
  text("60°",0,0);
  resetMatrix();
  translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-width/2*sin(radians(90)));
  rotate(radians(0));
  text("90°",0,0);
  resetMatrix();
  translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-width/2*sin(radians(120)));
  rotate(radians(-30));
  text("120°",0,0);
  resetMatrix();
  translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-width/2*sin(radians(150)));
  rotate(radians(-60));
  text("150°",0,0);
  popMatrix();
}

Lets Check How it's Work:



                                                 POWERED BY

                                                NBSL

Comments

Popular posts from this blog

ARDUINO KEYPAD LOCK SECURITY SYSTEM WITH SERVO MOTOR

                    ARDUINO KEYPAD LOCK SECURITY SYSTEM WITH SERVO MOTOR ARDUINO:          Arduino is Basic system which is used for the controlling various system that does lots of work.The arduino develope in 2003,the arduino is basically a microcontroling unit the code return in the form 8 bit ,32 bit which is return in the language of C and C++`The RAM in arduino is SRAM. KEYPAD LOCK:                       A Keypad Lock is the microcontrolled Security System in which it can be controlled which is contolled by the keypad which is 4*4 matrix and we could be secured with that.Here is the simple project with that we can do the keypad security system. WIRING DIAGRAM: PROCEDURE:         ...

Creating Artificial Planet

Already our Earth is loosing the habitable tendency due to the deforestation, Climate changes, etc. These all causes our Earth as inhabitable planet, for life better we should move into another planet to move into another planet we could create our own planet. But, it is possible to build a planet as like Earth with Atmosphere, Air, Water, Moderate Temperature, Gravity, etc. Theoretically, it is said we could build a planet like Earth. We could build our own planet right in our solar system for constant temperature as we get in our planet “Earth”. We could probably use asteroids in our solar system to build our artificial planet, but we are having only lower amount of asteroids in our solar system so we cannot build a planet as we expected so we are going to use OORT CLOUD to build our Artificial Planet but problem with this OORT CLOUD is it is so far from our Earth, we haven’t still invented that fast vehicle to bring that materials here, so this case could not help us. We have ...

Nasa Spacecraft OSIRIS-REX arrives at ancient asteroid Bennu

What is OSIRIS-REX?            OSIRIS-REX is a man-made artificial satellite which was launched on 8 th September 2016 from Cape Canaveral Air force station. OSIRIS-REX is launched to take samples from the ancient asteroid Bennu and it is estimated to return Earth on 2023. What is Bennu Asteroid?             Bennu was discovered on 11 th September 1999 by Lincoln-Near Earth Asteroid research . The Bennu asteroid is 492 meter wide and it has a mass of 78 billion kilogram. Scientist estimated Bennu could pass closer to Earth than moon in 2135, which close distance of 250,000 miles. What is OSIRIS-REX Work?              The OSIRIS-REX is send to take samples from the Asteroid Bennu to help scientist understand how heat radiated from sun is gently steering Bennu on increasing menacing course through solar system. The OS...