2014年4月22日火曜日

Processing

ふとしたことで、Processingを始めてみました(昔にちょっと触ってたけど)

バージョンが2になっていて、フォントが「Ubuntuっぽい感じの」ジワッとした感じになっていました

ProcessingはたぶんNexus7を買った時に少し触った程度だったと思います
なのでMacに入ってたProcessingはAndoroidoの設定のままでした(Winは新規で導入)

ProcessingはArduino以上にややこしい感じがしてあまり使っていませんでした
しかし3Dオブジェクトの表示などは簡単にできるので、便利かなーと思って始めた次第です



とりあえず、マイコンと接続するためにシリアルポートを使ってみました

import processing.serial.*;
Serial myPort = null;

void setup() {
  textFont(createFont("GulimChe", 20));
  size(1024, 768);
}

void draw() {
  if (myPort == null) { OpenSerialPortSelect(); }
}

void serialEvent(Serial myPort) {
  background(0);
  text(myPort.readStringUntil('\n'), 10, 20);
}

void OpenSerialPortSelect() {
  String[] SerialList = Serial.list();
  background(0);
  
  for (int i = 0; i < SerialList.length && i < 10; i++)
  { text((i + 1) + " : " + SerialList[i], 10, 20 + (i * 20)); }
  
  int SerialSelect = -1;
  if (keyPressed) { SerialSelect = key - '1'; }
  if (SerialSelect >= 0 && SerialSelect < SerialList.length) {
    myPort = new Serial(this, SerialList[SerialSelect], 115200);
    myPort.bufferUntil('\n');
  }
}

こんな感じです
まず接続するポートを選択する画面が表示されます
これはSerial.list()で得られた配列の最初9個を表示します
そして1-9のキーで選択したポートを115.2kbaudで開きます
あとは改行コードを受信した時点で割り込みが発生し、その文字列を表示します

ここまでできれば受信した文字列を配列に展開し、実数などに変換して棒グラフの長さを変えるなどすればぐらふぃかるに表示したり、いろいろできます

以前に缶サット用にPFD(Primary Flight Display)をC#で作りましたがProcessingを使えばこういうのももっと簡単に作れそうです

0 件のコメント:

コメントを投稿