import processing.serial.*;
int x=550;
int y=450;//el punto centro de la pantalla
int grados=0;//inicio de grados en el que se encuentra el triangulo
Serial port;//puerto por el que vamos a recibir los datos
int valor = 0;
//int valor2=550;
void setup()
{
//println(Serial.list());
port = new Serial(this, Serial.list()[0], 9600);
//new Serial(this, COM[5], 9600);
size(1100,1100);//tamaƱo de la ventana
frameRate(100);// especifica el numero de fotogramas que muestra por segundo
smooth();//suavizar
fill(15,30,80);//color de la elipse
}
void draw ()
{
while (port.available() > 0)
{
String cadena ="00"+port.readString(); //Lectura de datos desde arduino
valor = int(cadena.substring(2,cadena.length()));
println(cadena + ":" + valor);
}
background (0,0,0);//color de fondo
pushMatrix();//entrada a la pila de matriz
translate(x, y);//trasladamos la elipse en pantalla con respecto a su estado
rotate(radians(grados));//rotamos la elipse el numero de grados indicado
ellipse(70, 80, 130, 80);//pintar la elipse
popMatrix();//restaura la pila de matriz
//Condiciones que dependen del los valores recibidos desde arduino (movimientos de joystick)
if (valor == 1)
{
valor=0;
y-=10;
if (y<10) y=30;
}
if (valor == 2)
{
valor=0;
y+=10;
if (y>400) y=400;
}
if (valor == 3)
{
valor=0;
x+=10;
if (x>400) x=400;
}
if (valor == 4)
{
valor=0;
x-=10;
if (x<10) x=30;
}
if (valor == 5)
{
valor=0;
grados+=5;
if (grados>360) grados=0;
}
if (valor == 6)
{
valor=0;
grados-=5;
if (grados<0) grados=360;
}
}