この間よくわからないまま使っていたProcessingですが、Ene-1GPのモニターに使えそうだということで使えるようになろうと思います。今回はその時使ったプログラムの解読です。

 まず、Arduinoで毎回センサーのデータをとるのはめんどくさいので、数秒おきに1~4をシリアル出力しておきます。

 前回使ったプログラムは以下の通りです。
 コメントに解説を追加しておきます。
import processing.serial.*; //宣言?

//下三行が定義
Serial port;
int val;
int x, y, dx, dy, c;

void setup() {
  size(800, 600); //画面サイズ
  String arduinoPort = Serial.list()[1]; //シリアルポートの番号
  port = new Serial(this, arduinoPort, 19200); //ポートの設定
  background(0); //背景を黒に設定
}

void draw() {
  val = 0;
  if ( port.available() > 0) {
    val = port.read(); //ポートの値を読む
    print(char(val)); //Processingのコンソールに読んだ文字を表示
    if (char(val) == '2') {
      x = -800;  //表示する図形の左上の点の初期位置のx座標
      y = 0; //同y座標
      dx = 50;  //xの変化量
      dy = 0; //yの変化量
      c = 16; //出てくるまでのコマ数
      fill(255, 255, 0); //表示する図形の色
    } else if (char(val) == '1') { //以下繰り返し
      x = 800; 
      y = 0;
      dx = -50; 
      dy = 0;
      c = 16;
      fill(0, 0, 255);
    } else if (char(val) == '4') {
      x = 0; 
      y = -600;
      dx = 0; 
      dy = 40;
      c = 15;
      fill(255, 0, 0);
    } else if (char(val) == '3') {
      x = 0; 
      y = 600;
      dx = 0; 
      dy = -40;
      c = 15;
      fill(0, 255, 0);
    }
  }
  if (c-- > 0) { //更新処理
    x = x + dx;  //x座標の変換
    y = y + dy; //y座標の変換
    rect(x, y, 800, 600); //(x,y)の座標から800*600の長方形を表示
  }
}

 このようになります。Javaはわからないので間違っていたらごめんなさい。

 今回はここまでです。ちょっとProcessingに浮気していろいろ作ってみたいと思います。それではまた今度。