Loading...

Wednesday, March 03, 2021

Arduino Radar System Using Arduino Uno & Ultrasonic Sensor

Hello friends welcome back. In this tutorial I am going to show you “How to make Arduino Radar system using Arduino Uno & Ultrasonic Sensor.” As you all know the radar are an object detecting system mainly used in Military to detect enemies planes. Basically to make this project we use ultrasonic sensor & processing application to shows graph which helps you to detect objects.
Let’s see how it works :-
The ultrasonic sensor contains a receiver & a transmitter. The transmitter transmits the ultrasonic waves towards objects or an atmosphere, but when any object comes a front of this ultrasonic waves the waves get reflects & the receiver receives the waves & the Arduino calculate the distance, and then give output data to the processing application. The processing application shows a graph & we are able to see the objects using this Arduino radar system.

MATERIAL REQUIRED

To make this project we need some Components :-
  1. Arduino Uno R3 x 1
  2. Ultrasonic Sensor x 1
  3. Servo motor (sg90) x1
  4. Breadboard x 1

CIRCUIT DIAGRAM

Arduino To Servo Connection :- 

5V – VCC
GND – GND 
D11 – PWM

 

Arduino To Ultrasonic Sensor :-

5V – VCC
D9 – TRIG
D10 – ECHO
GND – GND

ARDUINO CODE

First upload the following code to the arduino uno
#include <Servo.h>

const int trigPin = 9;
const int echoPin = 10;

long duration;
int distinCM;

Servo radarServo;

void setup() 
{
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
  radarServo.attach(11);
}
void loop() 
{
  for(int i=0;i<=180;i++)
  {
    radarServo.write(i);
    delay(50);
    
    digitalWrite(trigPin, LOW); 
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH); 
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distinCM = duration*0.034/2;
    
    Serial.print(i);
    Serial.print("*");
    Serial.print(distinCM);
    Serial.print("#");
  }
  
  for(int i=180;i>=0;i--)
  {
    radarServo.write(i);
    delay(50);
    digitalWrite(trigPin, LOW); 
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH); 
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distinCM = duration*0.034/2;
    
    Serial.print(i);
    Serial.print("*");
    Serial.print(distinCM);
    Serial.print("#");
  }
}

PROCESSING CODE

Now open Processing application & then paste & upload the following code to the processing.
After all connection Hit the run button of processing application
import processing.serial.*;
import processing.opengl.*;
import toxi.geom.*;
import toxi.processing.*;

ToxiclibsSupport gfx;


Serial port;
String serialAngle;
String serialDistance;
String serialData;
float objectDistance;
int radarAngle, radarDistance;
int index=0;

void setup() 
{
  size (1280, 720);
  gfx = new ToxiclibsSupport(this);
  smooth();
  
  //println(Serial.list());
  
  //String portName = Serial.list()[0];
  String portName = "COM4";
  port = new Serial(this, portName, 9600);
  
  //port = new Serial(this,"COM4", 9600);
  port.bufferUntil('#');
}

void draw() 
{
  //fill(10,255,10);
  noStroke();
  
  fill(0,4); 
  rect(0, 0, 1280, 720);
  fill(10,255,10);
  
  //Radar Arcs and Lines
  pushMatrix();
  
  translate(640,666);
  noFill();
  strokeWeight(2);
  stroke(10,255,10);  
  arc(0,0,1200,1200,PI,TWO_PI);
  arc(0,0,934,934,PI,TWO_PI);
  arc(0,0,666,666,PI,TWO_PI);
  arc(0,0,400,400,PI,TWO_PI);
  strokeWeight(4);
  line(-640,0,640,0);
  line(0,0,-554,-320);
  line(0,0,-320,-554);
  line(0,0,0,-640);
  line(0,0,320,-554);
  line(0,0,554,-320);
  
  popMatrix();
 
  //Ultrasonic Lines
  pushMatrix();
  
  strokeWeight(5);
  stroke(10,255,10);
  translate(640,666);
  line(0,0,640*cos(radians(radarAngle)),-640*sin(radians(radarAngle)));
  
  popMatrix();

  //Object Detection Lines
  pushMatrix();
  
  translate(640,666);
  strokeWeight(5);
  stroke(255,10,10); // red color
  objectDistance = radarDistance*15;

  if(radarDistance<40)
  {
    line(objectDistance*cos(radians(radarAngle)),-objectDistance*sin(radians(radarAngle)),633*cos(radians(radarAngle)),-633*sin(radians(radarAngle)));
  }
  
  popMatrix();
}

void serialEvent (Serial port) 
{
  serialData = port.readStringUntil('#');
  serialData = serialData.substring(0,serialData.length()-1);
  
  index = serialData.indexOf("*");
  
  serialAngle= serialData.substring(0, index);
  serialDistance= serialData.substring(index+1, serialData.length());
  
  radarAngle = int(serialAngle);
  radarDistance = int(serialDistance);
}

DEMONSTRATION

If you like this project follow me on :- 
Youtube
Facebook 
Instagram
Instructables
Dailymotion

Leave a Reply

Your email address will not be published. Required fields are marked *