KRITSADA icon

Processing Color Mixer CLONE

KRITSADA | PRO | 09/19/19 02:29:43 AM UTC | 0 ⭐ | 1291 👁️ | Never ⏰ | []
Java |

1.75 KB

|

None

|

0 👍

/

0 👎

 
  // This example code is in the public domain.
 
  import processing.serial.*;
 
  float redValue = 0;        // red value
  float greenValue = 0;      // green value
  float blueValue = 0;       // blue value
  float alphaValue = 0;      // alpha value
 
  Serial myPort;
 
  void setup() {
    size(512, 512 );
 
    // List all the available serial ports
    // if using Processing 2.1 or later, use Serial.printArray()
    println(Serial.list());
 
    // I know that the first port in the serial list on my Mac is always my
    // Arduino, so I open Serial.list()[0].
    // Open whatever port is the one you're using.
    myPort = new Serial(this, Serial.list()[0], 9600);
    // don't generate a serialEvent() unless you get a newline character:
    myPort.bufferUntil('\n');
  }
 
  void draw() {
    // set the background color with the color values:
    background(redValue, greenValue, blueValue, alphaValue);
  }
 
  void serialEvent(Serial myPort) {
    // get the ASCII string:
    String inString = myPort.readStringUntil('\n');
 
    if (inString != null) {
      // trim off any whitespace:
      inString = trim(inString);
      // split the string on the commas and convert the resulting substrings
      // into an integer array:
      float[] colors = float(split(inString, ","));
      // if the array has at least three elements, you know you got the whole
      // thing.  Put the numbers in the color variables:
      if (colors.length >= 3) {
        // map them to the range 0-255:
        redValue = map(colors[0], 0, 1023, 0, 255);
        greenValue = map(colors[1], 0, 1023, 0, 255);
        blueValue = map(colors[2], 0, 1023, 0, 255);
        alphaValue = map(colors[3], 0, 1, 0, 255);
        
      }
    }
  }

Comments