前回に引き続き開発をしていきたいと思います。今回は各種メーターの基礎を作っていきたいと思っています。


 Arduinoのプログラムはそのままでセンサーの値を1バイトずつ出力します。

・Processing
import  processing.serial.*;

Serial  serial;
int[]   data;
int recv_dataH;

void setup() {
  size(800, 600);
  smooth();
  background(0,0,0);
  data = new int [width];
  serial = new Serial( this, Serial.list()[1], 9600 );
  speedmeter();
}

void speedmeter(){
  strokeWeight(3);
  stroke(255,0,0);
  fill(30,30,30);
  arc(200, 200, 220, 220, PI, PI*2.000, PIE);
  arc(200, 200, 220, 220, PI, PI*1.875, PIE);
  arc(200, 200, 220, 220, PI, PI*1.750, PIE);
  arc(200, 200, 220, 220, PI, PI*1.625, PIE);
  arc(200, 200, 220, 220, PI, PI*1.500, PIE);
  arc(200, 200, 220, 220, PI, PI*1.375, PIE);
  arc(200, 200, 220, 220, PI, PI*1.250, PIE);
  arc(200, 200, 220, 220, PI, PI*1.125, PIE);
}

void draw() {
  speed();
}

void speed(){
  strokeWeight(4);
  fill(30,30,30);
  stroke(100,50,0);
  arc(200, 200, 201, 201, PI, PI*2, PIE);
  strokeWeight(3);
  stroke(255,0,0);
  arc(200, 200, 200, 200, PI, PI+recv_dataH*0.002, PIE);
  fill(255);
  textSize(32);
  text(recv_dataH, 220, 200);
}

int serialEvent(Serial port) {  
  if ( port.available() >= 3 ) {
    if ( port.read() == 'H' ) {
      int high = port.read();      
      int low = port.read();
      recv_dataH = high*256 + low;
      println(recv_dataH);
    }
  }
  return(recv_dataH);
}

 ゴリ押しで図形を表示しています。特に開設することもないでしょう。改善点はそれぞれの図形のxy座標を変数にしていじりやすくするとかですかね。
キャプチャ

 出力してみるとこのような感じ。そこそこいい感じになっていると思います。

 動かしてみるとこんな感じです。結構それっぽくなったと思います。


 今回はここまでです。次回はいろいろなデータをいっぺんに表示できるようにしたいと思います。それではまた今度。