Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import controlP5.*;         // utilizar la libreria controlp5
  2. import processing.serial.*;  // utilizar la liberia processing.serial
  3. ControlP5 cp5;                 // definir la variable cp5 del tipo ControlP5
  4. Toggle l1, l2, l3, l4, l5, l6, l7, l8;        // definir la variable rojo,verde y azul del tipo Knob
  5. Textlabel texto1, texto2, texto3, texto4, texto5, texto6; // definir las variables texto del tipo Textlabel
  6. Serial serial;                // definir la variable serial del tipo Serial
  7.  
  8. // como deseamos controlar 8 LEDs, usamos un arreglo
  9. int[] led = new int[] {0, 0, 0, 0, 0, 0, 0, 0};  
  10.  
  11. // configuración inicial
  12. void setup()
  13. {
  14.   serial = new Serial(this, Serial.list()[0], 9600);  // inicializamos el puerto serial a 9600 baudios
  15.   String puerto = Serial.list()[0];                  //definimos la variable puerto de tipo cadena
  16.   size(630, 400);                       // tamaño de la ventana
  17.   cp5 = new ControlP5(this);          // crear el objeto ControlP5
  18.  
  19.  
  20.    // crear un botón para encender/apagar cada LED
  21.   for (int i=0; i<led.length; i++)
  22.     cp5.addToggle("LED"+i, 50+i*70, 220, 40, 40);
  23.    
  24.  
  25.   // crear texto
  26.   texto1 = cp5.addTextlabel("label")
  27.     .setText("CONTROL DE LEDS")
  28.       .setPosition(20, 20)
  29.         .setColorValue(0xffffffFF)
  30.           .setFont(createFont("Broadway", 60))
  31.             ;
  32.  
  33.   texto2 = cp5.addTextlabel("label1")
  34.     .setText("Control de encendido y apagado de un led por individual")
  35.       .setPosition(45, 100)
  36.         .setColorValue(0xffffffFF)
  37.           .setFont(createFont("Comic Sans MS", 20))
  38.             ;      
  39.  
  40.   // otra forma de crear texto
  41.   texto4 = new Textlabel(cp5, "Estudiante: Andres Felipe Sinisterra", 40, 295, 600, 200);  
  42.   texto4.setFont(createFont("MV Boli", 15));
  43.   texto5 = new Textlabel(cp5, "Ingenieria Electronica", 40, 310, 600, 200);  
  44.   texto5.setFont(createFont("MV Boli", 15));
  45.   texto6 = new Textlabel(cp5, "Decimo semestre", 40, 325, 600, 200);  
  46.   texto6.setFont(createFont("MV Boli", 15));
  47. }
  48.  
  49. void draw()
  50. {
  51.   background(20, 20, 150);  // color de fondo de la ventana
  52.   texto4.draw(this);    // introduce el texto en la ventana
  53.   texto5.draw(this);
  54.   texto6.draw(this);
  55.  
  56.   for (int i=0; i<led.length; i++) {
  57.     // definir el color de relleno, 0=apagado, 1=encendido
  58.     fill(led[i] == 0 ? 0xFF222222 : 0xFFFFFFFF);
  59.     // dibujar un circulo con ese color
  60.     ellipse(70+i*70, 180, 50, 50);
  61.   }
  62.  
  63. }
  64.  
  65. void controlEvent (ControlEvent evento)  // se activa cuando ocurra un evento con los botones
  66. {
  67.   String nombre = evento.getController().getName();   // recoje el nombre del slider y lo convierte en cadena
  68.   int valor = int(evento.getController().getValue());   // recoje el valor del slider y lo convierte en entero
  69.   int resultado = 0;
  70.   //serial.write(nombre + ":" + valor);   // envia por el puerto serial el nombre y el valor
  71.   //println(nombre + ":" + valor);    // imprime por pantalla el nombre y el valor
  72.  
  73.   for (int i=0; i<led.length; i++) {
  74.     if (nombre.equals("LED"+i)) {
  75.       led[i] = valor;
  76.       // println("led[" + i + "]: " + nombre + " = "+valor);
  77.     }    
  78.     resultado |= (led[i] << i);
  79.   }
  80.   serial.write(resultado);
  81.   println(resultado);
  82. }