Stap 5: De derde programma... schuifbalken!!!
Mijn derde en laatste verwerking programma neemt de positie input van twee schuifbalken en vervolgens verzenden naar de Arduino. Het kan waarschijnlijk gebruikt in plaats van een potentiometer voor invoer redenen. U drukt op een voor het verzenden van de input van de bovenste balk en vervolgens s voor de inbreng van de bodem. Als je toevallig te vragen, kun je hen doorverwijzen hieronder naar de opmerkingen :)
importeren van processing.serial.*;
Seriële poort;
int ss1;
int ss2;
HScrollbar hs1, hs2;
VOID Setup {}
size(640,320);
noStroke();
println(Serial.List());
poort = nieuwe Serial (dit, Serial.list() [0], 9600);
HS1 = nieuwe HScrollbar(0,height/2+100,width,25,25);
HS2 = nieuwe HScrollbar(0,height/2-100,width,25,25); }
VOID draw() {}
Background(50,60,90);
zweven s1 = hs1.getPos();
zweven s2 = hs2.getPos();
SS1 = int(s1 * 1.4);
SS2 = int(s2 * 1.4);
HS1.update();
HS2.update();
HS1.display();
HS2.display();
if(keyPressed) {}
Als (sleutel == 'a' || sleutel == 'A') {}
Port.write(SS1);}
Als (sleutel == de ' || sleutel == de ') {port.write(ss2) ;}} }
Class HScrollbar {}
int swidth, sheight;
float xpos, ypos;
float spos, newspos;
float sposMin, sposMax;
int losse;
Booleaanse over;
Boolean vergrendeld;
float verhouding;
Klasse HScrollbar (xp drijven, zweven yp, int sw, int sh, int l) {}
swidth = sw;
sheight = sh;
int widthtoheight = sw - sh;
ratio = (float) sw / (zweven) widthtoheight;
xpos = xp;
yPos = yp-sheight/2;
spos = xpos + swidth/2-sheight/2;
newspos = spos;
sposMin = xpos;
sposMax = xpos + swidth - sheight;
losse = l; }
VOID update() {}
Als (overEvent()) {}
meer dan = true; }
else {}
meer dan = false; }
Als (mousePressed & & meer dan) {}
vergrendeld = true; }
Als (! mousePressed) {}
vergrendeld = false; }
Als (vergrendelde) {}
newspos = beperken (mouseX-sheight/2, sposMin, sposMax); }
Als (abs (newspos - spos) > 1) {spos = spos + (newspos-spos) / los;}}
float beperken (val drijven, zweven minv, zweven maxv) {}
retourneren van min (max (val, minv), maxv); }
Booleaanse overEvent() {}
Als (mouseX > xpos & & mouseX < xpos + swidth & & mouseY > ypos & & mouseY < ypos + sheight) {}
return true; }
else {return false;}}
VOID display () {}
noStroke();
Fill(204);
rect (xpos ypos, swidth, sheight);
Als (over || vergrendeld) {}
vulling (0, 0, 0); }
else {}
vulling (102 102, 102); }
rect (spos ypos, sheight, sheight); }
float getPos() {}
terug spos * verhouding; } }