Paso 5: Procesamiento de código
Import processing.serial.*;PFont p;
Serie myPort; El puerto serie
int xPos = 100; posición horizontal de la gráfica
void setup () {}
Size(700,500);
p=createFont("Arial",16,true);
Background(0); conjunto fondo negro
para (int u = 99; u < ancho; u = u + 60) //loop crea red vertical
{
Stroke(100);
line(u,0,u,height-99);
}
para (int t = altura-99; t > 0; t = t-25) //loop crea red horizontal
{
Stroke(100);
line(99,t,width,t);
}
textFont(p,12); ajustar tamaño de fuente 12
textAlign(LEFT);
Fill(255,0,0); rojo
texto ("Viento velocidad MPH", 100, altura-25); velocidad de viento de la impresión
Fill(0,255,0); verde
texto ("presión barométrica mb", 210, altura-25);
Fill(0,0,255); azul
texto ("Grados Celsius", 355, altura-25);
Fill(255); Blanco
texto ("viento dirección N = 0 grados", 460, altura-25);
Fill(100); gris
textAlign(RIGHT);
Text("0",110,height-87);
para (int m = 160; m < ancho; m = m + 60) //loop lugares 0-9 minutos
{
int =(m-100) Min/60;
Fill(100);
textAlign(CENTER);
Text(min,m,height-87);
}
Fill(100);
textAlign(CENTER);
Text("minutes",width/2,height-70);
para (int p = 400; p > 0; p = p-50) //loop lugares números en cuadrícula vertical cada dos líneas
{
Float pat=map(p,400,0,0,200);
int pati=int(pat); flotador de cambios pat a un int
Fill(255,0,0);
textAlign(RIGHT);
Text(Pati,98,p+5); medidas de
Float patie=map(p,400,0,850,1100);
int paties=int(patie);
Fill(0,255,0);
texto (paties, 75, p + 5), medidas de //pressure
Float patiesTemp=map(p,400,0,-30,55);
int patiesTemp1 = int (patiesTemp);
Fill(0,0,255);
Text(patiesTemp1,45,p+5); mediciones de temperatura
Float patiesDirec=map(p,400,0,0,359);
int patiesDirect=int(patiesDirec);
Fill(255);
Text(patiesDirect,25,p+5); medidas de dirección de viento
}
Lista de todos los puertos serie disponibles
println(serial.List());
Sé que el primer puerto en la lista de serie de mi mac
es siempre mi Arduino, así que abro Serial.list() [0].
Abierto cualquier puerto es el que utilizas.
myPort = serie nueva (este, Serial.list() [0], 9600);
no generar un serialEvent() a menos que obtenga un carácter de nueva línea:
myPort.bufferUntil('\n');
conjunto de antecedentes:
}
void draw() {}
void serialEvent (serie myPort) {}
obtener la cadena ASCII:
InString de cadena = myPort.readStringUntil('\n');
String xWindSpeed = inString.substring(0,4);
String xPressure = inString.substring(4,8);
Cadena xtemp = inString.substring(8,12);
String xWindDirect=inString.substring(12,16);
int yWindSpeed=int(xWindSpeed);
int yPressure=int(xPressure);
int ytemp=int(xtemp);
int yWindDirect=int(xWindDirect);
Float WindSpeed=map(yWindSpeed,0,1023,height-104,-3);
Float Pressure=map(yPressure,0,1023,height-104,-3);
Float temp=map(ytemp,0,1023,height-104,-3);
Float WindDirect=map(yWindDirect,0,1023,height-104,-3);
Stroke(255,0,0,150);
line(xPos,WindSpeed+4,xPos,WindSpeed);
Stroke(0,255,0,150);
line(xPos,Pressure+4,xPos,Pressure);
Stroke(0,0,255,150);
line(xPos,Temp+4,xPos,Temp);
Stroke(255,255,255,150);
line(xPos,WindDirect+4,xPos,WindDirect);
xPos ++;
Si (xPos > = ancho) {//if el gráfico es completo excepto imagen como jpeg y de principio sobre
saveFrame("Weather-###.jpg");
xPos = 100;
p=createFont("Arial",16,true);
Background(0); conjunto fondo negro
para (int u = 99; u < ancho; u = u + 60) //loop crea red vertical
{
Stroke(100);
line(u,0,u,height-99);
}
para (int t = altura-99; t > 0; t = t-25) //loop crea red horizontal
{
Stroke(100);
line(99,t,width,t);
}
textFont(p,12); ajustar tamaño de fuente 12
textAlign(LEFT);
Fill(255,0,0); rojo
texto ("Viento velocidad MPH", 100, altura-25); velocidad de viento de la impresión
Fill(0,255,0); verde
texto ("presión barométrica mb", 210, altura-25);
Fill(0,0,255); azul
texto ("Grados Celsius", 355, altura-25);
Fill(255); Blanco
texto ("viento dirección N = 0 grados", 460, altura-25);
Fill(100); gris
textAlign(RIGHT);
Text("0",110,height-87);
para (int m = 160; m < ancho; m = m + 60) //loop lugares 0-9 minutos
{
int =(m-100) Min/60;
Fill(100);
textAlign(CENTER);
Text(min,m,height-87);
}
Fill(100);
textAlign(CENTER);
Text("minutes",width/2,height-70);
para (int p = 400; p > 0; p = p-50) //loop lugares números en cuadrícula vertical cada dos líneas
{
Float pat=map(p,400,0,0,200);
int pati=int(pat); flotador de cambios pat a un int
Fill(255,0,0);
textAlign(RIGHT);
Text(Pati,98,p+5); medidas de
Float patie=map(p,400,0,850,1100);
int paties=int(patie);
Fill(0,255,0);
texto (paties, 75, p + 5), medidas de //pressure
Float patiesTemp=map(p,400,0,-30,55);
int patiesTemp1 = int (patiesTemp);
Fill(0,0,255);
Text(patiesTemp1,45,p+5); mediciones de temperatura
Float patiesDirec=map(p,400,0,0,359);
int patiesDirect=int(patiesDirec);
Fill(255);
Text(patiesDirect,25,p+5); medidas de dirección de viento
}
Si (xPos < ancho) {}
incremento de la posición horizontal:
xPos ++;
}
}
}