sismoGraph sketch Processing

[singlepic id=163 w=420 h=340 float=center]
Hoy les quiero compartir un pequeño sketch que hice hace unos dias, su aplicacion es la de graficar los datos recibidos por el acelerometro interno de las MacBook’s, osease que solo funciona en mac; utiliza la libreria Apple SMS de Daniel Shiffman, instalen primero la libreria y luego corran el siguiente codigo:

[code language=”java”]
import sms.*;
graph x,y,z;
int[] vals=new int[3];
int t;

void setup() {
size(900,700);

x=new graph(20,20,860,200,color(0,0,255));
y=new graph(20,250,860,200,color(0,255,0));
z=new graph(20,480,860,200,color(0,255,255));

t=millis();
}

void draw() {
background(0);
x.draw();
y.draw();
z.draw();

if (millis()-t>=10){
t=millis();
vals = Unimotion.getSMSArray();
println(“x=”+vals[0]+” y=”+vals[1]+” z=”+vals[2]);
x.write(vals[0]);
y.write(vals[1]);
z.write(vals[2]);
}
}

class graph{
int[] values= new int[0];
private int x,y,Width,Height;
color col;

graph(int px,int py,int w,int h, color pcol){
x=px;
y=py;
Width=w;
Height=h;

col=pcol;
}

void draw(){

int px=x+Width;

fill(128);
noStroke();
rect(x,y,Width,Height);
stroke(255,0,0);
line(x,y+(Height/2),x+Width,y+(Height/2));
stroke(col);
for (int i = values.length-1; i >= 0; i–) {
point(px,y+values[i]);
try{
line(px,y+values[i],px-1,y+values[i-1]);
}
catch (Exception e){
}
px–;
}
}

void write(int value){
if(values.length==Width) values=reverse(shorten(reverse(values)));
values = (int[]) append(values,int(map(value,-255,255,0,Height)));
}

}
[/code]

Adrian MB

Me gusta la electrónica, programación y todo lo relacionado. Ing. en Mecatronica de la UPIITA del IPN y estudiante de Diseño Industrial en la UAM. @adrianmtzb http://adrianmb.mx

También te podría gustar...