/********** Proyecto Lab 4 **********
* Universidad Santiago de Cali
* Laboratorio 04: 8 LEDs en linea
* Descripción: Creación de una interfaz que permite controlar
* para 8 LED's definiendo 8 patrones de movimiento
* Estudiante: Edwin Lobo
*/
/************** Librerías *******************/
import controlP5.*;
import processing.serial.*;
/************** Constantes ******************/
String PATR1 = "128 64 2 1 32 16 8 4 128 64 2 1 32 16 8 4 128 64 2 1 32 16 8 4";
String PATR2 = "170 85 170 85 170 85 170 85";
String PATR3 = "0 128 2 64 4 32 8 16 8 16 4 32 2 64 1 128 0";
String PATR4 = "3 12 48 192 3 12 48 192 3 12 48 192 0";
String PATR5 = "0 3 15 63 255 243 240 192 0";
String PATR6 = "0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 129 24 129 24 129 24 129 24 129 24 129 24 129 24 129 24 129 24 129 24";
String PATR7 = "0 240 255 15 255 240 15 255 240 15 255 0";
String PATR8 = "24 36 66 129 129 66 36 24";
/************** Variables ******************/
// Creamos las variables para ControlP5, el knob, el titulo y el puerto Serial
ControlP5 cp5;
Knob patrones;
Serial serial;
Textlabel titulo;
// Solo se ejecuta una vez, al iniciar el Sketch
void setup() {
// Tamaño de la Ventana
size(500, 350);
// Creamos el objeto de ControlP5
cp5 = new ControlP5(this);
// Dibuja el titulo de la interfaz
titulo = cp5.addTextlabel("label")
.setText("Patrones de movimiento")
.setPosition(150, 30)
.setColorValue(0xEEEEEEEE)
.setFont(createFont("Arial", 22)) ;
// Creamos el objeto Knob
Knob patrones = cp5.addKnob("Patrones de movimiento")
.setRange(1, 8)
.setValue(0)
.setPosition(160, 75)
.setRadius(100)
.setDragDirection(Knob.HORIZONTAL);
// Creamos el objeto del puerto Serial
serial = new Serial(this, Serial.list()[0], 9600);
}
/************ Funciones *******************/
// Dibuja el fondo de la ventana de la Interfaz
void draw() {
background(#111111);
}
// Controla los eventos de la interfaz
void controlEvent(ControlEvent evento) {
// Obtiene el nombre del evento
String nombre = evento.getController.getName();
// Obtiene el valor (entero) del evento
int valor = int(evento.getController().getValue());
// Imprime el nombre y el valor (entero) obtenido del evento ejecutado por el Knob
println (nombre + valor);
// Dependiendo del valor obtenido desde el Knob, escribirá un patron de movimiento.
switch (valor){
case 1:
serial.write(PATR1);
break;
case 2:
serial.write(PATR2);
break;
case 3:
serial.write(PATR3);
break;
case 4:
serial.write(PATR4);
break;
case 5:
serial.write(PATR5);
break;
case 6:
serial.write(PATR6);
break;
case 7:
serial.write(PATR7);
break;
case 8:
serial.write(PATR8);
break;
} // Fin Switch
} // Fin COntrol de eventos
/*************** Fin ******************/