Arduino färg Mixer (2 / 3 steg)
Steg 2: Färg Mixer programvara
koden är:
int rposx = 4;
int gposx = 4;
int bposx = 4;
int rval = 0;
int gval = 0;
int bval = 0;
int output = 0;
PFont fontA;
import processing.serial.*;
Seriell port;
void setup() {
size(480,180);
Background(170);
stroke(255);
Fill(255);
rect(4,4,257,52);
rect(4,64,257,52);
rect(4,124,257,52);
fontA = createFont("Verdana",26);
textFont(fontA);
textAlign(CENTER);
text ("Output färg", 360, 50);
Detta gör det möjligt för seriell kommunikation med arduino
println ("tillgängliga seriella portar:");
println(Serial.list());
markerar den första porten i Serial.list() för användning och snabbhet 9600
Port = ny följetong (detta, Serial.list()[0],9600);
}
void draw() {
här ritar en cirkel som visas blandade färgen som är att vara produktionen till Arduino
Fill(rval,gval,bval);
Ellipse(360,110,100,100);
dessa bygga de röda, gröna och blå övertoningslinjer som en vertikal bar i var och en att beteckna vad amt av färgen är
att bli vald
för (int jag = 0; jag < 256; i ++) {
stroke(i,0,0);
line(i+5,5,i+5,55);
}
stroke(255);
line(rposx,5,rposx,55);
för (int jag = 0; jag < 256; i ++) {
stroke(0,i,0);
line(i+5,65,i+5,115);
}
stroke(255);
line(gposx,65,gposx,115);
för (int jag = 0; jag < 256; i ++) {
stroke(0,0,i);
line(i+5,125,i+5,175);
}
stroke(255);
line(bposx,125,bposx,175);
}
void mouseDragged() {
Här kan du dra baren i övertoningen att välja färg, genom att bestämma om musen är inne i en lutning
barer och vilken lutning bar du är.
om (mouseX < 260 & & mouseX > 5 & & mouseY > 5 & & mouseY < 55) {
rposx = mouseX;
rval = rposx-5;
float rout;
för rout, gikt, bout stället skicka ut 0-255 värde för varje i konfigurationsutrymmet värden till 0-85 för röd, 86-170 för grön,
och 171-255 för blå. Detta får mig att bara skicka ett enda seriella porten meddelande från datorn till arduino varje gång den
färgen ändras
routen = karta (rval, 0, 255, 0, 85);
int routp = int(rout);
port.write(routp);
}
om (mouseX < 260 & & mouseX > 5 & & mouseY > 65 & & mouseY < 115) {
gposx = mouseX;
gval = mouseX-5;
float gikt;
gikt = karta (gval, 0, 255, 86, 170);
int goutp = int(gout);
port.write(goutp);
}
om (mouseX < 260 & & mouseX > 5 & & mouseY > 125 & & mouseY < 175) {
bposx = mouseX;
bval = mouseX-5;
float bout;
bout = karta (bval, 0, 255, 171, 255);
int boutp = int(bout);
port.write(boutp);
}
}