Processing Code


	import processing.serial.*;

	Serial myPort;        // The serial port

	int iter = 0;
	float x = 500;
	float y = 500;

	void setup () {
	  // set the window size:
	  size(1000, 1000);        

	  myPort = new Serial(this, Serial.list()[0], 9600);  //Open port

	  // A serialEvent() is generated when a newline character is received :
	  myPort.bufferUntil('\n');
	  background(0);      //set inital background
	}

	void draw () {
		//Drawing a line from center to point.
		stroke(127, 34, 255); //stroke(150);     //stroke color
		line( width/2, height/2, x, y);
		stroke(250);
		point(x,y);
	}

	void serialEvent (Serial myPort) {
	  // get the ASCII string:
	  String inString = myPort.readStringUntil('\n');
	  // Skip first iteration 
	  if (iter == 1){
	  String splitted[] = split(inString,' ');
	  String inString1 = splitted[0];
	  String inString2 = splitted[1];
	  if (inString1 !=  null || inString2 != null || inString1 != " " || inString2 != " ") {
		inString1 = trim(inString1);                // trim off whitespaces.
		inString2 = trim(inString2); 
		float dist = float(inString1);           // convert to a number.
		float angl = 0.9*float(inString2);
		if (!Float.isNaN(dist) || !Float.isNaN(angl)){ 
		  dist = map(dist, 0, 4, 0, width);
		  //angl = map(angl, 0, 1023, -3.14, 3.14); //map to the screen height.
	  
		  x = width/2 + dist*cos(angl*1.115);
		  y = height/2 + dist*sin(angl*1.115);
		}
	  }
	  
	  }
	  iter = 1;
	  }