圓創力科技

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

查看: 9140|回復: 2

Arduino與Processing通信實驗二

    [複製鏈接]
magiccar 發表於 2011-2-13 13:47 | 顯示全部樓層 |閱讀模式
2011/02/13:Arduino與Processing通信實驗二
上一個通信實驗, 我們從 Arduino 接收外界信號, 傳送到 Processing 中控制圖形, 非常好玩
這一次我們要把過程倒過來, 用 Processing 程式來控制 Arduino 輸出的信號

傳送字元的實驗
Processing2Adurino_01.pde (2.22 KB, 下載次數: 6)


傳送數值的實驗

Processing2Adurino_02.pde (2.27 KB, 下載次數: 2)
 樓主| magiccar 發表於 2011-2-13 13:49 | 顯示全部樓層
這是 Processing 的程式碼
  1. /*
  2. 第二個資料傳送實驗 / Processing 程式碼
  3. 實驗內容:從 Processing 中偵測滑鼠是否在圖形中按鍵, 並把結果寫入串列通訊埠(COM PORT)
  4. */

  5. import processing.serial.*; // 載入串列通訊物件模組
  6. Serial myPort;              // 建立一個串列通信物件類別

  7. void setup()                     // 設定程式段
  8. {
  9.   println(Serial.list());                           // 列出使用通信埠的編號
  10.   size(400, 200);                                // 設定視窗大小
  11.   String portName = Serial.list()[1];                 // 設定通信埠的編號
  12.   myPort = new Serial(this, portName, 9600);         // 設定物件類別內容
  13. }

  14. void draw() {
  15.   background(255);                   // 設定背景色為白色 ( 黑色 = ___ )
  16.   if (mouseOverRect() == true) {  // 假如滑鼠在方形上方按鍵,
  17.   fill(204);                      // 就設定顏色為灰階204,
  18.     myPort.write('H');            // 並寫入"H" 到串列通訊埠來表示此狀態
  19.   }
  20.   else {                          // 假如滑鼠不在在方形上方按鍵,
  21.     fill(0);                      // 就設定顏色為灰階0 (黑色),
  22.     myPort.write('L');            // 並寫入"L" 到串列通訊埠來表示此狀態
  23.   }
  24.   rect(50, 50, 100, 100);         // 畫出矩形 ( x坐標 , y坐標 , 寬 , 高 )
  25. }

  26. boolean mouseOverRect() {           // 檢查滑鼠是否在方形上方按鍵的自定函式
  27.   return ((mouseX >= 50) && (mouseX <= 150) && (mouseY >= 50) && (mouseY <= 150) && mousePressed );
  28. }
複製代碼


 樓主| magiccar 發表於 2011-2-13 13:54 | 顯示全部樓層
這是 Arduino 的程式碼
  1. /*
  2. 第二個資料傳送實驗 / Arduino 程式碼
  3. 實驗內容:從串列通訊埠(COM PORT)讀取資料, 並用其來開啟或關閉 LED 燈
  4. */

  5. char val;       // 設定儲存接收資料的變數
  6. int ledPin = 13; // 設定指示燈的輸出接腳為13

  7. void setup() {                        // 設定程式段
  8.   pinMode(ledPin, OUTPUT);         // 將接腳設為輸出模式
  9.   Serial.begin(9600);                     // 啟動9600 bps速度的串列通訊
  10. }

  11. void loop() {                        //主程式段
  12.   if (Serial.available()) {                // 假如串列通訊埠(COM PORT)有資料進來,
  13.     val = Serial.read();                // 讀取資料, 並存到變數 val 中
  14.   }
  15.   if (val == 'H') {                         // 假如接收到 "H",
  16.    digitalWrite(ledPin, HIGH);         // 就開啟 LED 燈
  17.   } else {                                // 否則,
  18.     digitalWrite(ledPin, LOW);        // 就關閉 LED 燈
  19.   }
  20. }
複製代碼

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

QQ|Archiver|手機版|小黑屋|圓創力科技有限公司 IOP Robotic Technology Co.,Ltd Tel: 07-3924582 Fax: 07-3924001

GMT+8, 2024-4-26 03:19 , Processed in 0.024029 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表