Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /********** Proyecto Lab 4 **********
  2. * Universidad Santiago de Cali
  3. * Laboratorio 04: 8 LEDs en linea
  4. * Descripción: Creación de una interfaz que permite controlar
  5. * para 8 LED's definiendo 8 patrones de movimiento
  6. * Estudiante: Edwin Lobo
  7. */
  8.  
  9. /************** Librerías *******************/
  10.  
  11. import controlP5.*;
  12. import processing.serial.*;
  13.  
  14. /************** Constantes ******************/
  15.  
  16. 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";
  17. String PATR2 = "170 85 170 85 170 85 170 85";
  18. String PATR3 = "0 128 2 64 4 32 8 16 8 16 4 32 2 64 1 128 0";
  19. String PATR4 = "3 12 48 192 3 12 48 192 3 12 48 192 0";
  20. String PATR5 = "0 3 15 63 255 243 240 192 0";
  21. 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";
  22. String PATR7 = "0 240 255 15 255 240 15 255 240 15 255 0";
  23. String PATR8 = "24 36 66 129 129 66 36 24";
  24.  
  25.  
  26. /************** Variables ******************/
  27.  
  28.  
  29. // Creamos las variables para ControlP5, el knob, el titulo y el puerto Serial
  30. ControlP5 cp5;
  31. Knob patrones;
  32. Serial serial;
  33. Textlabel titulo;
  34.  
  35.  
  36. // Solo se ejecuta una vez, al iniciar el Sketch
  37. void setup() {
  38. // Tamaño de la Ventana
  39.   size(500, 350);
  40. // Creamos el objeto de ControlP5
  41.   cp5 = new ControlP5(this);
  42.  
  43. // Dibuja el titulo de la interfaz
  44.  titulo = cp5.addTextlabel("label")
  45.  .setText("Patrones de movimiento")
  46.  .setPosition(150, 30)
  47.  .setColorValue(0xEEEEEEEE)
  48.  .setFont(createFont("Arial", 22)) ;
  49.  
  50.  
  51. // Creamos el objeto Knob
  52. Knob patrones = cp5.addKnob("Patrones de movimiento")
  53.                    .setRange(1, 8)
  54.                    .setValue(0)
  55.                    .setPosition(160, 75)
  56.                    .setRadius(100)
  57.                    .setDragDirection(Knob.HORIZONTAL);
  58.                      
  59. // Creamos el objeto del puerto Serial
  60.   serial = new Serial(this, Serial.list()[0], 9600);
  61.  
  62. }
  63.  
  64. /************ Funciones *******************/
  65.  
  66.  
  67. // Dibuja el fondo de la ventana de la Interfaz
  68. void draw() {
  69.   background(#111111);
  70.    
  71. }
  72.  
  73. // Controla los eventos de la interfaz
  74.  
  75. void controlEvent(ControlEvent evento) {
  76.   // Obtiene el  nombre del  evento
  77.   String nombre = evento.getController.getName();
  78.   // Obtiene el  valor (entero) del  evento
  79.   int valor = int(evento.getController().getValue());
  80.   // Imprime el nombre y el valor (entero) obtenido del evento ejecutado por el Knob
  81.   println (nombre + valor);
  82.  
  83.   // Dependiendo del valor obtenido desde el Knob, escribirá un patron de movimiento.
  84.   switch (valor){
  85.     case 1:
  86.       serial.write(PATR1);
  87.       break;
  88.     case 2:
  89.       serial.write(PATR2);
  90.       break;
  91.     case 3:
  92.       serial.write(PATR3);
  93.       break;
  94.     case 4:
  95.       serial.write(PATR4);
  96.       break;
  97.     case 5:
  98.       serial.write(PATR5);
  99.       break;
  100.     case 6:
  101.       serial.write(PATR6);
  102.       break;
  103.     case 7:
  104.       serial.write(PATR7);
  105.       break;
  106.     case 8:
  107.       serial.write(PATR8);
  108.       break;
  109.   } // Fin Switch
  110.  
  111. } // Fin COntrol de eventos
  112.  
  113. /*************** Fin ******************/