A grafikus adatábrázoló program egy kicsit módosított változata már mindhárom mért adat grafikonját egyszerre ábrázolja és a mért értékeket a képernyő alján ki is írja:
(a videóhoz kattints a képre)
A módosított grafikus adatábrázoló Processing kódja:
// Mindharom mert adat egyszerre torteno abrazolasa
import processing.serial.*;
Serial myPort;
int[] serialInArray = new int[3];
int i = 1;
int xpos, ypos, zpos = 0;
boolean firstContact = false;
void setup ()
{
size(500, 900);
println(Serial.list());
myPort = new Serial(this, Serial.list()[2], 9600);
myPort.bufferUntil('\n');
background(0);
myPort.write('m');
}
void draw ()
{
if (firstContact == false)
{
delay(300);
myPort.write('m');
}
}
void drawGraph () {
int valueToGraph0 = 0;
int valueToGraph1 = 0;
int valueToGraph2 = 0;
valueToGraph0 = xpos;
stroke(255,0,0,150);
line(i, height/3, i, height/3 - valueToGraph0);
valueToGraph1 = ypos;
stroke(0,255,0,150);
line(i, 2*height/3, i, 2*height/3 - valueToGraph1);
valueToGraph2 = zpos;
stroke(0,0,255,150);
line(i, height, i, height - valueToGraph2);
<p style="text-align: left"> if (i >= width-2)
{
i = 0;
background(0);
}
else
{
i++;
}
}
void serialEvent(Serial myPort)
{
firstContact = true;
String myString = myPort.readStringUntil('\n');
if (myString != null)
{
myString = trim(myString);
int sensors[] = int(split(myString, ','));
if (sensors.length >= 3)
{
xpos = (sensors[0]*3/8);
ypos = (sensors[1]*3/8);
zpos = (sensors[2]*3/8);
drawGraph();
myPort.write('m');
println(sensors[0] + "," + sensors[1] + "," + sensors[2] );
delay(100);
}
}
}
A cikk még nem ért véget, lapozz!
Értékeléshez bejelentkezés szükséges!