1
1
Fork 0

Add a optional graph for each value

This commit is contained in:
Simon Giesel 2019-01-11 15:22:37 +01:00
parent 1a88043b7a
commit 7798923d82

View file

@ -1,21 +1,42 @@
import ketai.sensors.*; import ketai.sensors.*;
// Change this value to disable the Graph
boolean enableGraph = true;
KetaiSensor sensor; KetaiSensor sensor;
float fontSize = 130*displayDensity; float fontSize = 130*displayDensity;
float accelerometerX, accelerometerY, accelerometerZ, rotationX, rotationY, rotationZ; float accelerometerX, accelerometerY, accelerometerZ, rotationX, rotationY, rotationZ;
ArrayList<Integer> valuesAccelX = new ArrayList<Integer>();
ArrayList<Integer> valuesAccelY = new ArrayList<Integer>();
ArrayList<Integer> valuesAccelZ = new ArrayList<Integer>();
ArrayList<Integer> valuesRotX = new ArrayList<Integer>();
ArrayList<Integer> valuesRotY = new ArrayList<Integer>();
ArrayList<Integer> valuesRotZ = new ArrayList<Integer>();
void setup() void setup()
{ {
sensor = new KetaiSensor(this); sensor = new KetaiSensor(this);
sensor.start(); sensor.start();
textAlign(CENTER, CENTER); textAlign(CENTER, CENTER);
textSize(fontSize); textSize(fontSize);
strokeWeight(6);
smooth();
} }
float mapNum; float mapNum;
void draw() void draw()
{ {
background(78, 93, 75); background(78, 93, 75);
drawGraph(valuesAccelX, height / 2 - fontSize * 4);
drawGraph(valuesAccelY, height / 2 - fontSize * 3);
drawGraph(valuesAccelZ, height / 2 - fontSize * 2);
drawGraph(valuesRotX, height / 2 + fontSize * 3);
drawGraph(valuesRotY, height / 2 + fontSize * 4);
drawGraph(valuesRotZ, height / 2 + fontSize * 5);
fill(255); fill(255);
text("Accelerometer:", 0, -fontSize*5.5, width, height); text("Accelerometer:", 0, -fontSize*5.5, width, height);
mapNum = mapColor(accelerometerX); mapNum = mapColor(accelerometerX);
@ -44,8 +65,26 @@ float mapColor(float in){
return map(in, -9.83, 9.83, 0, 255); return map(in, -9.83, 9.83, 0, 255);
} }
void drawGraph(ArrayList<Integer> values, float margin){
if(!enableGraph) return;
float lineWidth = (float) width / (values.size() - 1);
for (int i=0; i < values.size() - 1; i++) {
line(i * lineWidth, margin + values.get(i), (i + 1) * lineWidth, margin + values.get(i + 1));
}
}
void onAccelerometerEvent(float x, float y, float z) void onAccelerometerEvent(float x, float y, float z)
{ {
valuesAccelX.add(int(x * 10));
while(valuesAccelX.size() > 10)
valuesAccelX.remove(0);
valuesAccelY.add(int(y * 10));
while(valuesAccelY.size() > 10)
valuesAccelY.remove(0);
valuesAccelZ.add(int(z * 10));
while(valuesAccelZ.size() > 10)
valuesAccelZ.remove(0);
accelerometerX = x; accelerometerX = x;
accelerometerY = y; accelerometerY = y;
accelerometerZ = z; accelerometerZ = z;
@ -53,6 +92,16 @@ void onAccelerometerEvent(float x, float y, float z)
void onGyroscopeEvent(float x, float y, float z) void onGyroscopeEvent(float x, float y, float z)
{ {
valuesRotX.add(int(x * 10));
while(valuesRotX.size() > 10)
valuesRotX.remove(0);
valuesRotY.add(int(y * 10));
while(valuesRotY.size() > 10)
valuesRotY.remove(0);
valuesRotZ.add(int(z * 10));
while(valuesRotZ.size() > 10)
valuesRotZ.remove(0);
rotationX = x; rotationX = x;
rotationY = y; rotationY = y;
rotationZ = z; rotationZ = z;