2009年5月4日 星期一

邁向互動達人的第三堂課. Communication

之前的課程都是僅僅透過Arduino與電路做操作,今天我們要開始嘗試把Arduino跟電腦連起來,把電腦當做Arduino的擴充裝備,可以做更多的應用。

Arduino v.s. Computer


#ex1. Arduino ➝ Computer

程式檔:ardrino2computer.pde

我們可以先用Arduino Software提供的Serial Monitor來先測試Arduino板子端是否運作正確。


語法~ Serial.begin(speed) Serial.println(val)


#How about Processing?


那我們現在試著用Processing來串串看Arduino,先試著下面這個最簡單的processing範例~
程式檔: 「Processing」SimpleRead.pde









p.s. 在Arduino中的print指令送到其他介面時,需要注意一下~
print:
Prints data to the serial port.
單純的你寫什麼就送什麼...

println:
Prints a data to the serial port, followed by a carriage return character(ASCII 13, or '\r') and a newline character (ASCII 10, or '\n'). This command takes the same forms as Serial.print().
就是在你要送出的資料(字串或數字)後,自動再加上ASCII 13(return)與10(換行)。

所以隨之就有該注意的地方產生,若在接收端的處理是必須有個結束字元時,就得注意該用哪種方法。









#ex2. Computer ➝ Arduino
接下來,我們來嘗試由電腦端來控制Arduino做事情

程式檔:computer2arduino.pde
語法~ Serial.available() Serial.read()


先試試由Arduino Software的Serial Monitor中,直接輸入H/L,來控制看看

#How about Processing?


再試著用Processing來串串看Arduino,先試著下面這個最簡單的processing範例~
程式檔: 「Processing」Control_LED.pde










#中場練習
問題來啦!! 試著用電腦來控制三個LED燈,可以做到 全亮.1號燈.2號燈.3號燈.全暗,讓自己學會掌握硬體端的電路跟接收程式,以及軟體端的控制程式

---
參考解答範例
程式檔:
「Arduino 端」Serial_3LED.pde 「Processing 端」Control_3LED.pde
提供的Processing範例是利用滑鼠由左到右,控制「無」.「1」.「2」.「3」.「全亮」

[小提醒] Serial 訊號最好要隔一段時間送,別讓他瘋狂傳送,不然有時會錯亂...

沒有留言: