ProcessingでSerialを読み込む

ArduinoとかではデバッグのためにSerial通信を使ったりすることはよくあるが、 このSerial通信を簡単に見える化するのにProcessingがかなり便利。

とりあえず、Serial通信を読み込んで表示するのは以下でできる。

import processing.serial.*;

Serial port;

void setup() {
  size(256, 256); // なくてもウィンドウ表示されるので明示しておく
  port = new Serial(this, "COM6", 9600);
}

void draw() {
  // 何もしなくても必要
}

void serialEvent(Serial port) {
  if (port.available() <= 0) return;
  
  try {
    String data = trim(port.readStringUntil('\n'));
    if (data == null) return;
    
    println("serial: " + data);

  } catch (Exception ex) {
    ex.printStackTrace();
  }
}

Arduino側でSerialをホストのPCに送信するのは以下でできる。

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

void loop(){
  Serial.println("Hello, World!");
  delay(1000);
}