0% found this document useful (0 votes)
18 views

Processing Code Radar

The document describes code for a radar system that reads data from an Arduino board over serial and displays a radar GUI. It initializes serial communication, reads angle and distance data, and draws the radar display, object indicator, and text labels on screen based on the data.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Processing Code Radar

The document describes code for a radar system that reads data from an Arduino board over serial and displays a radar GUI. It initializes serial communication, reads angle and distance data, and draws the radar display, object indicator, and text labels on screen based on the data.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

/*Ayad Ahmed Djamel

* Twitter:
* https://twitter.com/AyadAhmedDjame1
* Facebook:
* https://www.facebook.com/Ayad.Ahmed.Djamel.14
* Instgram:
* https://www.instagram.com/ahmeed.djameel/
* Youtube Channel:
* https://www.youtube.com/channel/UCgguFsL_cabkYjlqS5dzG4w
*/

import processing.serial.*; // imports library for serial communication

Serial myPort; // defines Object Serial


// defubes variables

String angle="";
String distance="";
String data="";
float pixsDistance;
int iAngle, iDistance;
int index1=0;

void setup() {
size (1350, 695); //CHANGE THIS TO YOUR SCREEN RESOLUTION
smooth();

myPort = new Serial(this,"COM3", 9600); // starts the serial communica tion


myPort.bufferUntil('.'); // reads the data from the serial port up to the
character '.' So actually it reads this: angle,distance.
}
void draw() {

fill(0,12,255);
// simulating motion blur and slow fade of the moving line
noStroke();
fill(0,4);
rect(0, 0, width, height-height*0.065);

fill(0,12,255); // blue 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(0,12,255);
// 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(0,12,255);
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();
fill(0,0,0);
noStroke();
rect(0, height-height*0.0648, width, height);
fill(0,12,255);
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);
fill(255,255,10);
textSize(30);
text("Ayad Ahmed Djamel", 10, 50);
text("Angle: " + iAngle +" �", 950, height-height*0.0277);
if (iDistance<40){

text("Distance: " + iDistance +" cm", 210, height-height*0.0277);


}

textSize(25);
fill(0,12,255);
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();
}

You might also like