Arduino與Processing通信實驗二
2011/02/13:Arduino與Processing通信實驗二上一個通信實驗, 我們從 Arduino 接收外界信號, 傳送到 Processing 中控制圖形, 非常好玩
這一次我們要把過程倒過來, 用 Processing 程式來控制 Arduino 輸出的信號
傳送字元的實驗
傳送數值的實驗
這是 Processing 的程式碼
/*
第二個資料傳送實驗 / Processing 程式碼
實驗內容:從 Processing 中偵測滑鼠是否在圖形中按鍵, 並把結果寫入串列通訊埠(COM PORT)
*/
import processing.serial.*; // 載入串列通訊物件模組
Serial myPort; // 建立一個串列通信物件類別
void setup() // 設定程式段
{
println(Serial.list()); // 列出使用通信埠的編號
size(400, 200); // 設定視窗大小
String portName = Serial.list(); // 設定通信埠的編號
myPort = new Serial(this, portName, 9600); // 設定物件類別內容
}
void draw() {
background(255); // 設定背景色為白色 ( 黑色 = ___ )
if (mouseOverRect() == true) {// 假如滑鼠在方形上方按鍵,
fill(204); // 就設定顏色為灰階204,
myPort.write('H'); // 並寫入"H" 到串列通訊埠來表示此狀態
}
else { // 假如滑鼠不在在方形上方按鍵,
fill(0); // 就設定顏色為灰階0 (黑色),
myPort.write('L'); // 並寫入"L" 到串列通訊埠來表示此狀態
}
rect(50, 50, 100, 100); // 畫出矩形 ( x坐標 , y坐標 , 寬 , 高 )
}
boolean mouseOverRect() { // 檢查滑鼠是否在方形上方按鍵的自定函式
return ((mouseX >= 50) && (mouseX <= 150) && (mouseY >= 50) && (mouseY <= 150) && mousePressed );
}
這是 Arduino 的程式碼
/*
第二個資料傳送實驗 / Arduino 程式碼
實驗內容:從串列通訊埠(COM PORT)讀取資料, 並用其來開啟或關閉 LED 燈
*/
char val; // 設定儲存接收資料的變數
int ledPin = 13; // 設定指示燈的輸出接腳為13
void setup() { // 設定程式段
pinMode(ledPin, OUTPUT); // 將接腳設為輸出模式
Serial.begin(9600); // 啟動9600 bps速度的串列通訊
}
void loop() { //主程式段
if (Serial.available()) { // 假如串列通訊埠(COM PORT)有資料進來,
val = Serial.read(); // 讀取資料, 並存到變數 val 中
}
if (val == 'H') { // 假如接收到 "H",
digitalWrite(ledPin, HIGH); // 就開啟 LED 燈
} else { // 否則,
digitalWrite(ledPin, LOW); // 就關閉 LED 燈
}
}
頁:
[1]