2015年4月18日 星期六

Processing: Send Data To Arduino

since: 2015/04/18
update: 2015/04/18
reference:
1. Connecting Arduino to Processing

A. 說明:

     在 Arduino 上, 設定當 9600 port 收到字元 'A' 時, 送出字元 'L',
     而收到字元 'B' 時, 送出字元 'H'. 底下為 Mac 上 Processing 的處理方式.

-----------------------------------------------------------------------------------------------

B. 實作:
     1. 開啟 Processing, 新增 Sketch 專案: arduino_hello2

     2. 在 arduino_hello2 Sketch 專案編輯區, 寫入以下程式碼:
import processing.serial.*;
Serial port;
int lf = 10;      // ASCII linefeed
char inChar;
boolean writeA = true;

void setup() {
  //println(Serial.list());
  size(400,200);
 
  String arduinoPort = Serial.list()[2];
  port = new Serial(this, arduinoPort, 9600);
  port.bufferUntil(lf);
  writeChar(writeA);
}

void draw() {
  if(port.available()>0) {
    // A ~ Z: http://www.asciitable.com/ 
    if(inChar >= 65 && inChar <= 90) {
      println("===> get char:\'"+inChar+"\' from port \n");
    }
  }
}

void serialEvent(Serial p) {
  inChar = p.readChar();
  writeA = !writeA;
  writeChar(writeA);
}

void writeChar(boolean writeA) {
  if(writeA)
  {
    port.write('A');
    println("write char:\'A\' to port ....");
    writeA = false;
  }
  else {
    port.write('B');
    println("write char:\'B\' to port ....");
    writeA = true;
  }
}


-----------------------------------------------------------------------------------------------

C. 執行結果:


沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。