Paso 4: Usando el proceso para hacer la gráfica
Proceso:
Si no has usado procesamiento antes de que usted puede descargar el software desde www.processing.org. Proceso es muy parecido a arduino pero sus salidas son imagen basado y no basado en hardware. Proceso tendrá la información que has impreso en serial(9600) y usarlo para trazar una curva.
Nuestro bosquejo puede parecer bastante complicado pero permite el bosquejo leer varias entradas de la planta sedienta y poner los gráficos en una sola página. Leer a su través para ver cómo está funcionando.
Import processing.serial.*;
Serie myPort;
String delimiterBetweenMultipleValues = "|";
String delimiterBetweenLabelAndValue = ":";
int numserialreads = 0;
int graphStartX = 100;
textPadding int = 2;
int circleDiameter = 3;
String [] valuePairs;
drawPoint boolean = false;
drawCircle booleano = true;
drawLine booleano = true;
int xPos = graphStartX; posición horizontal de la gráfica
partH int; altura de la pantalla parcial
int valmin = 0; Valor mínimo de la gráfica
int valmax = 600; Valor máximo del gráfico
void setup()
{
Size(1366, 700); ajustar el tamaño de su pantalla
println(serial.List()); Obtener configuración Serial
myPort = serie nueva (este, Serial.list() [0], 9600); Abrir puerto serie a 9600
myPort.clear(); Vacía el búfer de
myPort.bufferUntil('\n'); No generar un serialEvent() a menos que obtenga un carácter de nueva línea:
Fondo (170, 219, 207); Color de fondo inicial
textSize(42); Tamaño del texto
relleno (237, 61, 138); Color de fuente
}
void draw()
{
Todo lo que sucede en el serialEvent()
}
//This keyPressed() vacío nos refrescará la pantalla cuando le pegó el ' n ' clave
{
Si (clave == ' n ') {}
xPos = 0;
Fondo (170, 219, 207); Limpia la pantalla con fondo turquesa
}
}
void serialEvent (serie myPort)
{
InString de cadena = myPort.readStringUntil('\n'); Haz cadena ASCII:
Si (inString! = null) {}
numserialreads ++;
inString = trim(inString); Recorte cualquier espacio en blanco
println(inString); Mostrar la secuencia de datos entrante
Si (numserialreads < 20) //Reset todo
{
println("Initializing");
retorno;
}
Si (numserialreads == 20) //Reset todo
{
xPos = 0; Volver a la posición 0
Fondo (170, 219, 207, 255); Borrar la pantalla y mostrar fondo turquesa
}
valuePairs = split (inString, delimiterBetweenMultipleValues); dividir la cadena entrante en pares de valor/etiqueta y almacenar en un array.
int totalinputs = valuePairs.length;
partH = altura / totalinputs; Dividir la pantalla por número de sensores
para (int j = 0; j
{
String [] par;
par = split (valuePairs [j], delimiterBetweenLabelAndValue);
Etiqueta de la cadena;
etiqueta = par [0];
texto (etiqueta, 10, partH*(j+1) -10);
Pair[1]=Trim(Pair[1]);
int valor = int(pair[1]);
valor = int (mapa (valor, valmin valmax, partH 0,)); Asignar el valor a la variable altura parcial
Si (j == 0) {}
accidente cerebrovascular (245, 86 y 230);
}
Si (j == 1) {}
accidente cerebrovascular (241, 49 y 90);
}
Si (j == 2) {}
tiempos (0, 173, 181);
}
línea (xPos, partH*(j+1), xPos, partH*(j+1) - valor); ver su valor
Stroke(255); color de línea divisoria
línea (0, partH*(j+1), anchura, partH*(j+1));
}
Si (xPos > = ancho)
{
xPos = 0;
Fondo (170, 219, 207, 255); Borrar la pantalla y mostrar fondo turquesa
} else
{
xPos ++; incrementar posición horizontal de la gráfica
}
}
}
{} void exit()
myPort.stop();
}