float xmag, ymag = 0;
float newXmag, newYmag = 0;
import processing.serial.*;
int [] vals = new int[1];
Serial myPort;
boolean madeContact = false;
void setup()
{
size(640, 400, P3D);
PFont myFont = createFont(PFont.list()[2], 14);
textFont(myFont);
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil('\r');
strokeWeight(2);
colorMode(RGB, 1);
}
void draw()
{
background(0.5);
if (madeContact == false)
{
myPort.write('m');
}
float a = 2*PI*vals[0]/3600;
pushMatrix();
translate(width/2, height/2, -30);
rotateX(-0.4);
rotateY(-a);
scale(90);
beginShape(QUADS);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
endShape();
popMatrix();
}
void serialEvent(Serial myPort)
{
madeContact = true;
String myString = myPort.readStringUntil('\n');
if (myString != null)
{
myString = trim(myString);
int sensors[] = int(split(myString, ','));
if (sensors.length >= 1)
{
vals[0] = sensors[0];
delay(100);
println(sensors[0]);
myPort.write('m');
}
}
}