Yarana Iot Guru
Published © MIT

Arduino Missile Defense Radar System Mk. I in ACTION

Build a mini Missile Defense Radar using Arduino & HC-SR04 — real-time object detection and radar visualization by Yarana IoT Guru. ”

BeginnerFull instructions provided8 hours8
Arduino Missile Defense Radar System Mk. I in ACTION

Things used in this project

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Code

💻 Arduino Code

C/C++
/*******************************************************
   Arduino Missile Defense Radar System Mk.I
   Created by Yarana IoT Guru
*******************************************************/

#include <Servo.h>

Servo myServo;
int trigPin = 9;
int echoPin = 10;
long duration;
int distance;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  myServo.attach(11);
}

void loop() {
  for (int i = 15; i <= 165; i++) {
    myServo.write(i);
    delay(30);
    distance = calculateDistance();
    Serial.print(i);
    Serial.print(",");
    Serial.print(distance);
    Serial.print(".");
  }
  for (int i = 165; i >= 15; i--) {
    myServo.write(i);
    delay(30);
    distance = calculateDistance();
    Serial.print(i);
    Serial.print(",");
    Serial.print(distance);
    Serial.print(".");
  }
}

int calculateDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  return duration * 0.034 / 2;
}

💻 Processing Code (for Radar Display)

C/C++
1️⃣ Install Processing IDE
.
2️⃣ Open a new sketch and paste the following code:
/*******************************************************
   Processing Radar Visualizer
   For Arduino Missile Defense Radar Mk.I
   Created by Yarana IoT Guru
*******************************************************/

import processing.serial.*;
Serial myPort;
String data = "";
String angle = "";
String distance = "";
int iAngle, iDistance;

void setup() {
  size(900, 600);
  myPort = new Serial(this, "COM3", 9600); // Change COM port if needed
  myPort.bufferUntil('.');
}

void draw() {
  fill(0, 20);
  noStroke();
  rect(0, 0, width, height);
  drawRadar();
  drawObject();
}

void serialEvent(Serial myPort) {
  data = myPort.readStringUntil('.');
  data = data.substring(0, data.length()-1);
  int index1 = data.indexOf(",");
  angle = data.substring(0, index1);
  distance = data.substring(index1+1);
  iAngle = int(angle);
  iDistance = int(distance);
}

void drawRadar() {
  pushMatrix();
  translate(width/2, height);
  noFill();
  stroke(0,255,0);
  arc(0,0,800,800,PI,TWO_PI);
  arc(0,0,600,600,PI,TWO_PI);
  arc(0,0,400,400,PI,TWO_PI);
  arc(0,0,200,200,PI,TWO_PI);
  line(-400,0,400,0);
  popMatrix();
}

void drawObject() {
  pushMatrix();
  translate(width/2, height);
  stroke(0,255,0);
  float x = iDistance * cos(radians(iAngle));
  float y = -iDistance * sin(radians(iAngle));
  line(0,0,x*2,y*2);
  popMatrix();
}

Credits

Yarana Iot Guru
39 projects • 11 followers
Yarana Iot Guru Yarana IoT Guru: Arduino, ESP32, GSM, NodeMCU & more. Projects, Tutorials & App Development. Innovate with us!
Thanks to Yarana IoT Guru.

Comments