technoesolution
Published © CC BY-NC-SA

Radar System Using Ultrasonic Sensor & Arduino Uno

This project is based on Radar system where we use ultrasonic sensor to works as a radar & get data on processing app using Arduino.

IntermediateFull instructions provided30 minutes3,614
Radar System Using Ultrasonic Sensor & Arduino Uno

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
SG90 Micro-servo motor
SG90 Micro-servo motor
×1
Breadboard (generic)
Breadboard (generic)
×1

Software apps and online services

Arduino IDE
Arduino IDE
Processing
The Processing Foundation Processing

Story

Read more

Schematics

Circuit Diagram

Code

Arduino Code

C/C++
Just Copy the following code & upload to the arduino Uno.
/*  Hello friend Welcome To "Techno-E-Solution"
    Here is a code of "Arduino Radar Using Ultrasonic Sensor"
*/
#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

C/C++
1.Now open Processing Application.
2.Copy the following code & paste into Processing.
3.Hit the Run Button.
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);
}

Credits

technoesolution

technoesolution

23 projects • 15 followers
Youtuber | Electrical Engineer | Electronics Lover | Article Writer | Project Developer |

Comments