magiccar 發表於 2011-2-13 13:47

Arduino與Processing通信實驗二

2011/02/13:Arduino與Processing通信實驗二
上一個通信實驗, 我們從 Arduino 接收外界信號, 傳送到 Processing 中控制圖形, 非常好玩
這一次我們要把過程倒過來, 用 Processing 程式來控制 Arduino 輸出的信號

傳送字元的實驗



傳送數值的實驗


magiccar 發表於 2011-2-13 13:49

這是 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 );
}

magiccar 發表於 2011-2-13 13:54

這是 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]
查看完整版本: Arduino與Processing通信實驗二