KRITSADA icon

Processing Serial Circle

KRITSADA | PRO | 09/19/19 04:07:47 AM UTC | 0 ⭐ | 831 👁️ | Never ⏰ | []
Java |

1.81 KB

|

None

|

0 👍

/

0 👎

import processing.serial.*;
 
Serial myPort;  // Create object from Serial class
int val;     // Data received from the serial port
int valOld;
float[][] matrix;
 
 
 
void setup()
{
  // I know that the first port in the serial list on my mac
  // is Serial.list()[0].
  // On Windows machines, this generally opens COM1.
  // Open whatever port is the one you're using.
  String portName = Serial.list()[0]; //change the 0 to a 1 or 2 etc. to match your port
  myPort = new Serial(this, portName, 115200);
  matrix = new float[20][20];
  size(1000,1000);
  for(int i=0;i<16;i++){
      for(int j=0;j<12;j++){
         matrix[j][i]=0;
      }
  }
}
 
void draw()
{
  if (mousePressed == true) 
  {                           //if we clicked in the window
    myPort.write('1');         //send a 1
    println("1");   
  }     
  if ( myPort.available() > 0) 
  {  // If data is available,
    for(int i=0;i<12;i++){
      for(int j=0;j<16;j++){
        
        val= myPort.read();         // read it and store it in val
        matrix[j][i]=Integer.valueOf(val);
        //println(val);
        delay(10);
        if(myPort.read()==-1){
          break;
        }
      }
    }
  }
delay(10);
 
//if(val!=valOld){
//    for(int i=0;i<12;i++){
//      for(int j=0;j<16;j++){
//        print(matrix[j][i]); //print it out in the console
//        print('\t');
//      }
//    println();  
//  }
//valOld=val;
//}
  for(int i=0;i<12;i++){
    for(int j=0;j<16;j++){
     float x=i*120;
     float y=j*120;
     if(matrix[j][i]==49){
     fill(0,0,0);
     }
     else if(matrix[j][i]==51){
     fill(64,0,0);
     }
     else if(matrix[j][i]==52){
     fill(128,0,0);
     }
     else if(matrix[j][i]==53){
     fill(255,0,0);
     }
     ellipse(60+x,60+y,120,120);
     }
  }
 
}

Comments