Tengo un sensor que puede dar información sobre el movimiento de posición X e Y, y quiero crear una interfaz simple en la que un círculo en la pantalla se moverá en la misma dirección que muevo el sensor. Utilizo Arduino para enviar datos de posición (flotación) a través de la comunicación en serie.
Sin embargo, el código no parece funcionar bien. El círculo que creo, a veces desaparece de la pantalla, y después de un tiempo, vuelve a aparecer. Además, el círculo parece "parpadear" (quiero decir que aparece / desaparece en alta frecuencia) todo el tiempo. Dudo que el problema sea sobre el búfer, pero no estoy tan seguro. Aquí está el código que utilizo:
CÓDIGO DE PROCESAMIENTO
// import libraries
import java.awt.Frame;
import java.awt.BorderLayout;
import processing.serial.*;
// Serial port to connect to
String serialPortName = "COM3";
/* SETTINGS END */
Serial serialPort; // Serial port object
void setup() {
size(900,900);
noStroke();
serialPort = new Serial(this, serialPortName, 9600);
}
byte[] inBuffer = new byte[50]; // holds serial message
void draw() {
background(0);
if (serialPort.available() > 0) {
float[] x= new float[2];
String myString = "";
try {
serialPort.readBytesUntil('\r', inBuffer);
}
catch (Exception e) {
}
myString = new String(inBuffer);
String[] nums = split(myString, ' ');
try {
x[0] = float(nums[0]); //X
x[1] = float(nums[1]); //Y
}
catch (Exception e) {
}
ellipse(x[0]+500, x[1]+500, 70, 70); //+500 to make the circle in the middle of interface
}
}
Comunicación serial en Arduino:
Serial.print(xf,DEC); //méthode 1
Serial.print(" ");
Serial.print(yf,DEC);
Serial.print('\r');
Por favor, ayúdame a encontrar la causa raíz de este problema. ¡Muchas gracias!