Subscribe Us

test

Breaking

Post Top Ad

Your Ad Spot

lunes, 7 de diciembre de 2015

ARDUINO y PROCESSING >> Mezclador virtual de colores


Mezclador virtual de colores 
 
Potenciómetros conectados a las entradas analógicas  de los pins 0, 1, y 2.   


Código para cargar a través del IDE Arduino en la tarjeta. 

int redPin = 0;
int greenPin = 1;
int bluePin = 2;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.print("R");
  Serial.println(analogRead(redPin));
  Serial.print("G");
  Serial.println(analogRead(greenPin));
  Serial.print("B");
  Serial.println(analogRead(bluePin)); 

  delay(100);



Código para cargar y ejecutar desde el IDE Processing una vez que ya hemos  cargado el código anterior 
 
/**
 * Mezcla de colores
 * by David A. Mellis
 *
 * Created 2 December 2006
 *
 * based on Analog In 
 * by <a href="http://itp.jtnimoy.com">Josh Nimoy</a>. 
 * 
 * Created 8 February 2003
 * Updated 2 April 2005
 */

import processing.serial.*;

String buff = "";
int rval = 0, gval = 0, bval = 0;
int NEWLINE = 10;

Serial port;

void setup()
{
  size(200, 200);

  // Imprime una lista con los puertos disponibles de tipo COM
  println("Puertos disponibles:");
  println(Serial.list());

  //port = new Serial(this, "COM1", 9600);
  // Usa el primer puerto disponible
  port = new Serial(this, Serial.list()[0], 9600);
}

void draw()
{
  while (port.available() > 0) {
    serialEvent(port.read());
  }
  background(rval, gval, bval);
}

void serialEvent(int serial) 

/ / Si la variable "serial" no es igual al valor para 

   / / una nueva línea, añadir el valor a la variable "buff". Si el 

   / / valor "serial" es igual al valor de una nueva línea,  

 / / guardar el valor en el buffer dentro de la variable "val".

  if(serial != NEWLINE) { 
    buff += char(serial);
  } else {
/ / El primer carácter nos dice que tipo de color es el valor
    char c = buff.charAt(0);
    //lo quita de la cadena
    buff = buff.substring(1);
/ / Descartar el retorno de carro al final del buffer
    buff = buff.substring(0, buff.length()-1);
    // Convierte el string en un entero
    if (c == 'R')
      rval = Integer.parseInt(buff);
    else if (c == 'G')
      gval = Integer.parseInt(buff);
    else if (c == 'B')
      bval = Integer.parseInt(buff);
/ / Borrar el valor de "buff"
    buff = "";
  }



Post Top Ad

Your Ad Spot

Páginas