processingにて平均値の求め方
Posted: 2017年5月29日(月) 11:30
プログラミング初心者です。
Arduinoを用いて、圧力を測定し、processingにてグラフ化したのですが、行き詰りました。
リアルタイムで数値を測定し、1分間あたりの平均値や最大値、最小値を求め、表示するにはどのようにプログラムを組んでいけば良いでしょうか?
import processing.serial.*;
Serial myPort;
int val;
int [] x = new int[500];
int [] y = new int[500];
void setup()
{
frameRate(50);
size(800, 700); //haikeisize
myPort = new Serial(this, "COM3", 9600);
textSize(25); //fontsize
for (int i = 0; i < x.length; i++){
x = i;
y = 0;
}
}
void draw()
{
background(0);
for (int i = 0; i < y.length - 1; i++){
y = y[i+1];
}
y[y.length - 1] = val;
fill(255);
text("-5V",10,566);
text("0V",10,310);
text("5V",10,54);
text("0sec",530,600);
text("-10sec",30,600);
text("Max(mmHg)",600,200);
text("Min(mmHg)",600,300);
text("Ave(mmHg)",600,400);
fill(255,0,255);
text(val/255.0*5,560,100);
fill(255,0,0);
text(val/255.0*5,600,250);
fill(0,255,255);
text(val/255.0*5,600,350);
fill(0,255,0);
text(val/255.0*5,600,450);
pushMatrix();
translate(50,300);
scale(1,-1);
fill(0);
stroke(255);
rect(0,0,500,255);
rect(0,0,500,-255);
stroke(255,0,255);
for (int i = 0; i < x.length - 1; i++){
line(x,y,x[i+1],y[i+1]);
}
popMatrix();
}
void serialEvent(Serial myPort){
delay(10);
val = myPort.read();
}
Arduinoを用いて、圧力を測定し、processingにてグラフ化したのですが、行き詰りました。
リアルタイムで数値を測定し、1分間あたりの平均値や最大値、最小値を求め、表示するにはどのようにプログラムを組んでいけば良いでしょうか?
import processing.serial.*;
Serial myPort;
int val;
int [] x = new int[500];
int [] y = new int[500];
void setup()
{
frameRate(50);
size(800, 700); //haikeisize
myPort = new Serial(this, "COM3", 9600);
textSize(25); //fontsize
for (int i = 0; i < x.length; i++){
x = i;
y = 0;
}
}
void draw()
{
background(0);
for (int i = 0; i < y.length - 1; i++){
y = y[i+1];
}
y[y.length - 1] = val;
fill(255);
text("-5V",10,566);
text("0V",10,310);
text("5V",10,54);
text("0sec",530,600);
text("-10sec",30,600);
text("Max(mmHg)",600,200);
text("Min(mmHg)",600,300);
text("Ave(mmHg)",600,400);
fill(255,0,255);
text(val/255.0*5,560,100);
fill(255,0,0);
text(val/255.0*5,600,250);
fill(0,255,255);
text(val/255.0*5,600,350);
fill(0,255,0);
text(val/255.0*5,600,450);
pushMatrix();
translate(50,300);
scale(1,-1);
fill(0);
stroke(255);
rect(0,0,500,255);
rect(0,0,500,-255);
stroke(255,0,255);
for (int i = 0; i < x.length - 1; i++){
line(x,y,x[i+1],y[i+1]);
}
popMatrix();
}
void serialEvent(Serial myPort){
delay(10);
val = myPort.read();
}