//lAB 5
//Crhistian David Lucumi
//Usc
//Version 1.0
import controlP5.*;
import processing.serial.*;
ControlP5 cp5;
Knob KnobA;
Knob KnobB;
Knob KnobC;
Serial serial;
int valR = 128;
int valG = 128;
int valB = 128;
// Solo se ejecuta una vez, al iniciar el Sketch
void setup() {
// Tamaño de la Ventana
size(800, 450);
noStroke();
// Creamos el objeto de ControlP5
cp5 = new ControlP5(this);
// Creamos el objeto Slider
KnobA = cp5.addKnob("R", 0, 255, 128, 40, 40, 200);
KnobA.setColor( new CColor(
0xFFAA0000, 0xFF550000, 0xFFFF0000,
0xFFFFFFFF, 0xFFFFFFFF));
KnobB = cp5.addKnob("G", 0, 255, 128, 240+10, 40, 200);
KnobB.setColor( new CColor(
0xFF00AA00, 0xFF005500, 0xFF00FF00,
0xFFFFFFFF, 0xFFFFFFFF));
KnobC = cp5.addKnob("B", 0, 255, 128, 440+20, 40, 200);
KnobC.setColor( new CColor(
0xFF0000AA, 0xFF000055, 0xFF0000FF,
0xFFFFFFFF, 0xFFFFFFFF));
// Creamos el objeto del puerto Serial
serial = new Serial(this, Serial.list()[0], 9600);
}
// Se ejecuta N frames por segundo
void draw() {
background(0xFF444444); // color gris del fondo
// definir el color de relleno combinando los valores
// de los colores de los 3 Knobs
fill(valR, valG, valB);
// dibujar el rectángulo con ese color
rect(20, 300, 750, 120);
}
// Cuando ocurra un evento, aquí lo procesamos
void controlEvent(ControlEvent evento) {
// Obtenemos el nombre y el valor del evento
String nombre = evento.getController().getName();
int valor = int(evento.getController().getValue());
// Envíamos el valor al Arduino a través del Serial
if (nombre.equals("R")){serial.write("R"+valor); valR=valor;}
else if (nombre.equals("G")){ serial.write("G"+valor); valG=valor;}
else if (nombre.equals("B")){ serial.write("B"+valor); valB=valor;}
// Imprimimos en la consola, para ver que todo va Ok
println(nombre + ":" + valor);
}