Paso 5: El tercer programa... barras de desplazamiento!!!
Mi programa de tratamiento de la tercera y última toma la posición de entrada de dos barras de desplazamiento y luego enviar a Arduino. Probablemente puede utilizar en lugar de un potenciómetro por motivos de entrada. Pulsa a para enviar la entrada de la barra superior y luego s para la entrada de la parte inferior. Si usted tiene preguntas por favor dirigirlos a continuación a los comentarios :)
Import processing.serial.*;
Puerto serial;
ss1 int;
ss2 int;
HScrollbar hs1, hs2;
void setup() {}
Size(640,320);
noStroke();
println(serial.List());
puerto = serie nueva (este, Serial.list() [0], 9600);
HS1 = nuevo HScrollbar(0,height/2+100,width,25,25);
HS2 = nuevo HScrollbar(0,height/2-100,width,25,25); }
void draw() {}
Background(50,60,90);
flotador de s1 = hs1.getPos();
flotador de s2 = hs2.getPos();
SS1 = int(s1 * 1.4);
SS2 = int(s2 * 1.4);
HS1.Update();
HS2.Update();
HS1.display();
HS2.display();
{if(keyPressed)}
Si (clave == 'a' || clave == 'A') {}
Port.Write(SS1);}
Si (clave == de ' || clave == de ') {port.write(ss2) ;}} }
clase {} de HScrollbar
int swidth, sheight;
flotador xpos, ypos;
OPPS de flotador, newspos;
flotador sposMin, sposMax;
int flojo;
sobre booleanos;
Boolean bloqueado;
relación de flotante;
Clase HScrollbar (xp del flotador, flotador yp, sw de int, int, int l) {}
swidth = sw;
sheight = sh;
int widthtoheight = sw - sh;
cociente = (float) sw / (float) widthtoheight;
XPOS = xp;
YPOS = yp-sheight/2;
OPPS = xpos + swidth/2-sheight/2;
newspos = OPPS;
sposMin = xpos;
sposMax = xpos + swidth - sheight;
suelta = l; }
{} void update()
Si (overEvent()) {}
más = true; }
Else {}
más = false; }
Si (mousePressed & & más) {}
bloqueado = true; }
Si (! mousePressed) {}
bloqueado = false; }
Si {} (bloqueado)
newspos = restringir (mouseX-sheight/2, sposMin, sposMax); }
Si (abs (newspos - OPPS) > 1) {OPPS = OPPS + (newspos-OPPS) / sueltas;}}
restringir el flotador (flotador val, minv del flotador, flotador maxv) {}
volver min (max (val, minv) maxv); }
Boolean overEvent() {}
Si (ratonX > xpos & & mouseX < xpos + swidth & & mouseY > ypos & & mouseY < ypos + sheight) {}
verdaderas; }
Else {devuelva false;}}
void display() {}
noStroke();
Fill(204);
Rect (xpos, ypos, swidth, sheight);
Si (sobre || bloqueado) {}
relleno (0, 0, 0); }
Else {}
relleno (102, 102, 102); }
Rect (OPPS, ypos, sheight, sheight); }
Float getPos() {}
volver OPPS * relación; } }