Friday, September 11, 2015

Arduino Radar

by J.B. Wylzan
Project 25:  Radar Scanner Display
This project shows how objects are detected and displayed on your computer screen imitating a radar monitor. A separate software called Processing 3.0a10 was used to interact with the Arduino R3 IDE.



Hardware:
Microservo SG90
Ultrasonic Sensor
connecting wires
breadboard
Arduino R3 UNO board

Code # 25:
/*
  iHacklab Radar Monitor Display
  This project, inspired by Dejan Nedelkovski,
  was modified to fit the display into a standard computer monitor

  reprogrammed by JBWylzan
  
  Using Graphics Interface provided by Processsing 3.0
  The example code is public domain */

import processing.serial.*;  
import java.awt.event.KeyEvent;  
import java.io.IOException;

Serial myPort;  
String angle="";
String distance="";
String data="";
String noObject;
float pixsDistance;
int iAngle, iDistance;
int index1=0;
int index2=0;

void setup() {
 size (1000, 500);  
 smooth();
 myPort = new Serial(this,"COM4", 9600);  
 myPort.bufferUntil('.');  
}

void draw() {
  fill(98,245,31);
  noStroke();
  fill(0,4); 
  rect(0, 0, width, 1010); 
  fill(98,245,31); // green 
  drawRadar(); 
  drawLine();
  drawObject();
  drawText();
}

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

void drawRadar() {
  pushMatrix();
  translate(500,480); 
  noFill();
  strokeWeight(2);
  stroke(98,245,31);
  arc(0,0,1000,1000,PI,TWO_PI);
    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(-500,0,500,0);
  line(0,0,-500*cos(radians(30)),-500*sin(radians(30)));
  line(0,0,-500*cos(radians(60)),-500*sin(radians(60)));
  line(0,0,-500*cos(radians(90)),-500*sin(radians(90)));
  line(0,0,-500*cos(radians(120)),-500*sin(radians(120)));
  line(0,0,-500*cos(radians(150)),-500*sin(radians(150)));
  line(-500*cos(radians(30)),0,500,0);
  popMatrix();
}

void drawObject() {
  pushMatrix();
  translate(500,480); 
  strokeWeight(9);
  stroke(255,10,10); // red 
  pixsDistance = iDistance*22.5; 
  if(iDistance<30){
  line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),500*cos(radians(iAngle)),-500*sin(radians(iAngle)));
  }
  popMatrix();
}

void drawLine() {
  pushMatrix();
  strokeWeight(9);
  stroke(30,250,60);
  translate(500,480); 
  line(0,0,500*cos(radians(iAngle)),-500*sin(radians(iAngle))); 
  popMatrix();
}

void drawText() { 
  pushMatrix();
  textSize(14);
  fill(98,245,60);
  translate(500,490);
  text("90°",0,5);
  text("www.iHackLab.blogspot.com        0°",250,5);
  text("180°",-500,5);
  popMatrix(); 
}


Challenge: 
Use the sketch above and your previous projects on Servo and Ultrasonic to detect objects and monitor them on a radar-like screen display. 

Actual Layout:


Procedure:
1. Build the prototype as shown above
2. Run the Processing Interface
3. Select File > New
4. Copy Code #25 above
5. Paste Code #25
6. Click File > Save
7. Click Run
8. Wait for the Screen to display
9. Open previous projects on ultrasonic or servo
10. Upload sketch and run your hands on the ultrasonic


Next Project:  Robotics


Disclaimer:  We shall not be liable for any loss or damage of whatever nature - direct, indirect, consequential, or otherwise - which may arise as a result of your use of any information on this website. However, if you are interested in using any of the projects for personal or educational purposes, please inform the author by email. 

Public Domain Notice: Copyright (c) 2000. All rights reserved. This article is part of a book entitled iHackRobot. Copies are welcome to be shared or distributed publicly as long proper citations are observed. Please cite as follows: A Journal of a Creative Mind, Joey Lawsin, 1988, USA.


"The Last Human on Earth will no longer be Human." ~ Joey Lawsin
================================================================== 
The Homotronics® and Homodruinos® logos are registered trademarks.
Copyright Biotronics© Inc. iHackRobot®. All Rights Reserved.
Patent Pending. 2000 © ®


 ================================================================== 





No comments:

Post a Comment