Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // Luis Álvarez
  2. // Importamos las librerías que utilizaremos
  3. // Que son ControlP5 y Serial del Processing
  4. import controlP5.*;
  5. import processing.serial.*;
  6.  
  7. // Definimos la variable cP5 del tipo ControlP5
  8. ControlP5 cP5;
  9.  
  10. // Definimos el Serial
  11. Serial serial;
  12.  
  13. int[] led = new int[] {
  14.   0, 0, 0, 0, 0, 0, 0, 0
  15. };
  16.  
  17. // Configuración inicial
  18. void setup() {
  19.   //Tamaño de la ventana
  20.   size(590, 250);  
  21.   noStroke();
  22.   //Instanciamos el objeto ControlP5
  23.   cP5 = new ControlP5(this);  
  24.  
  25.   //Creamos los controladores para los leds
  26.   for (int i=0; i<led.length; i++)
  27.   {
  28.     cP5.addToggle("led"+i, 35+i*70, 140, 30, 30)
  29.       .setMode(ControlP5.SWITCH);
  30.   }
  31.   // Definimos el puerto
  32.   String puerto = Serial.list()[0];
  33.   // Comunicación serial a 9600bps
  34.   serial = new Serial(this, puerto, 9600);
  35. }
  36.  
  37.  
  38. void draw() {
  39.   //Color de fondo
  40.   background(#3B170B);
  41.   fill(led[0] == 0 ? 0xFF222222 : color(255, 255, 0));
  42.   ellipse(50, 100, 50, 50);
  43.   for (int i=1; i<4; i++) {
  44.     fill(led[i] == 0 ? 0xFF222222 : color(255, 0, 0));
  45.     ellipse(50+i*70, 100, 50, 50);
  46.   }
  47.   for (int i=4; i<led.length; i++) {
  48.     fill(led[i] == 0 ? 0xFF222222 : color(0, 255, 0));
  49.     ellipse(50+i*70, 100, 50, 50);
  50.   }
  51.    fill(255);
  52.    textFont(createFont("Arial", 40));
  53.    text("Enciende un LED", 40, 50);
  54.    fill(255);
  55.    textSize(25);
  56.    text("Laboratorio 6", 120, 230);
  57. }
  58.  
  59. // Este evento se ejecuta cuando se mueve algo dentro del prosessing
  60. void controlEvent(ControlEvent evento) {
  61.   //Guardamos el nombre
  62.   String nombre = evento.getController().getName();
  63.   //Guardamos el valor
  64.   int valor = int(evento.getController().getValue());
  65.  
  66.   // Recorremos los botones y los asignamos
  67.   for (int i=0; i<led.length; i++) {
  68.     if (nombre.equals("led"+i)) {
  69.       led[i] = valor;
  70.       serial.write(i);
  71.       serial.write(valor);
  72.       println("evento: " + i + " / valor: "+valor);
  73.     }
  74.   }
  75. }