NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Processing(SerialLibraryes:serialEvent関数の使い方)

SerialLibraryes:serialEvent関数
 Serialライブラリ※1serialEvent関数は、データが使用可能なときに呼び出されます。
 このデータを取得するには、read関数メソッドのいずれかを使用します。
 serialEvent関数は、ある数のデータ要素が読み込まれた後にだけトリガするようにbuffer関数で設定でき、特定の文字が読み込まれた後にトリガするbufferUntil関数で設定できます。
 whichパラメータには、新しいデータが利用できるポートの名前が含まれますが、複数のシリアル接続が開いていて、2つを区別する必要がある場合にのみ便利です。

以下補足です

※1:シリアルライブラリは、一度に1バイトずつ外部デバイスとの間でデータの読み書きを行います。このライブラリは、カスタムマイクロコントローラデバイスと通信し、それらを処理プログラムの入力または出力として使用する柔軟性を備えています。シリアルポートは、多くのPC上に存在し、USB経由でエミュレートできる9ピンI/Oポートです。print関数やprintln関数などの方法でコンソールにデータを送信するときは、コンソールが比較的遅いことに注意してください。高速のリアルタイム出力(60フレーム/秒など)はサポートしていません。


 Processingで使用するSerialLibraryes:serialEvent関数の使い方は以下の通りです。
 Serial.list関数で使用可能なシリアルポートを取得し、printArray関数でその一覧を図2の様に出力します。
 new Serial関数で、現在使用している「「0」"COM1"」ポートを「9600bps」のボーレートで開きます。
 serialEvent関数は、データが使用可能なときに呼び出されます。
イメージ 4
import processing.serial.*;
 
Serial myPort;    // シリアルポート
PFont myFont;     // 表示フォント
String inString;  // シリアルポートからの入力文字列
int lf = 10;      // ASCII改行
 
void setup() {
  size(400,200);
  //あなたはこのフォントをCreate Font Toolで作成する必要があります
  myFont = loadFont("ArialMS-18.vlw");
  textFont(myFont,18);
  // 利用可能なシリアルポートを一覧表示する
  printArray(Serial.list());
  // 私のMAC上のシリアルリストの最初のポート
  // isalways my  Keyspan adaptor, so I openSerial.list()[0].
  // あなたが使用しているポートはどれもオープンしています。
  myPort = new Serial(this,Serial.list()[0], 9600);
  myPort.bufferUntil(lf); 
 
void draw() {
  background(0);
  text("received: " + inString, 10,50);
 
void serialEvent(Serial p) {
  inString = p.readString(); 
イメージ 3
図1:プログラムの内容

SerialLibraryes:serialEvent関数の構文
 void serialEvent(Serial whichPort) {
  statements
 }

SerialLibraryes:serialEvent関数のパラメータ
 whichPort Serial: 新しいデータが利用可能なポート
 statements : 任意の有効な文

SerialLibraryes:serialEvent関数の戻り値
 特に無し

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Amazon.co.jp が販売、発送します。 ギフトラッピングを利用できます。