LED 應用於 Zebee 系統的報告,但在 Sensor 性能提升後,會以此為基礎,將 LED 架構改換成 Sensor 架構再應用於 Zebee。
5-1 XBee 設定與封包接收
做為無線控制系統的傳遞中樞,Xbee 此一模組,透過 ZigBee 傳輸協定來傳遞控制訊號。首先設 定 Baud Rates 為 9600,並設定傳輸的資料位元數為 8 bit。完成了基本設定後,接著設置區域網路,
定義個人區域網路的 ID,PAN ID(Personal Area Network ID),以對網路進行把關。接者協調器端跟路 由器端也要設置欲傳遞資料的互相目標位址,DH:Destination Address High 及 DL:Destination Address Low 。
協調器端(Coordinator):
PAN ID:111 DH:13A200 DL:409824A1 路由去端(Router):
PAN ID:111 DH:13A200 DL:4090839E
完成設定後透過終端窗口,測試協調器端與路由器端之間的封包傳輸是否正常。透過確定封包傳 輸正常,才保證協調器與路由器已經配對完成,如圖 31。
圖 31、 X-CTU 封包傳輸測試圖
5-2 Arduino 協調器端設計
協調器端電路,在控制系統中扮演著控制中心的角色,所需負責的功用除了辨別網路中的各子節 點路由器的存在,透過控制訊號的發送可以控制末端路由器的燈光亮度。亦可以接收來自路由器端所 發送出的光敏訊號。
在硬體架構上,以 Arduino 搭配 XBee 和控制鈕組成,電力的供應來源是以 USB 串口供應 5V 的 電壓,再透過 Arduino 來提供 XBee 的 3.3V 操作電壓。主要著重在程式端的控制撰寫,程式控制在 Arduino 的軟體中利用 SoftwareSerial 此一函式庫來完成 XBee 與 Arduino 的溝通,透過此一函數,吾 人可於序列監控窗來監測控制訊號的發送與光敏訊號的讀取過程。控制訊號的發送以控制鈕所讀取到 的數位輸入 PIN 腳為依據,若於平常狀態下無觸發任何控制鈕,此時協調器端就發射控制訊號「0」,
若只觸發一個控制鈕即發射控制訊號「1」,而當兩個控制鈕都被觸發而導通時便發射控制訊號「2」,
作為路由器端的調光依據。
而 Arduino 程式在執行上,分成 setup() 與 loop() 兩個 function。首先當協調器端得到 5V 電壓 進入操作狀態,便會進入 control.ino 執行 setup(),在 setup() 裡頭將序列的窗口打開以執行 XBee 的 資料傳送與監控窗的顯示。接著,會定義兩個控制鈕所在的數位輸入 PIN 腳,以便之後 loop()在執行 能夠辨認。系統執行完成 setup()的初始定義後,便會進入 loop()此一 funtion 執行迴圈的操作,不斷 的讀取來自控制鈕的兩個數位輸入值,經加總後以 SoftwareSerial 中的 Serial.print 此一函式將值透過 XBee 傳送給路由端進行控制。接著再利用 SoftwareSerial 中的 Serial.read 來讀取路由器端所發送的光 敏值,透過讀取路由端的光敏值,便能實現監控網路中路由器端周遭環境光亮度的功用。
圖 32、協調器端程式
5-3 Arduino 路由器端設計
路由器端的 XBee 在接收到了來自協調器端的控制訊號後,同樣的透過 Arduino 軟體中 SoftwareSerial 函式庫的 Serial.read 來讀取,並將讀取到的「0」、「1」、「2」三種字串,搭配 ASCII 對照表來作解譯,
Photo Cell
圖 34、情境一: 控制訊號「1」
圖 35、情境二: 控制訊號「2」
圖 36、情境三: 控制訊號「0」且環境亮度不足
5-4 3 倍壓降電容充電電路
無線控制系統的第三個步驟為,透過昇壓放大電路將 Arduino 的控制訊號電壓放大。Arduino 的 輸出電壓為 5V,而若欲應用於路燈的控制,由於路燈驅動的電壓是市電等級。因此搭配市電等級的 電晶體開關,所需要的驅動電壓就需要達到 15V 以上。因此吾人分析一 3 倍的昇壓電路將 Arduino 的輸出電壓提升到可以操控市電等級的電晶體開關。
圖 37、3 倍壓降電容充電電路
利用昇壓電路中的電容 pump 式的升壓原理,設計了三階段的 pump 來充電,第一階段從 Vin 輸 入的 5V 電壓,將 S1、S5、S6 導通,並將 S2、S4 切斷,此時電流導通路徑將朝 CIN1 充電,使得 CIN1 的跨壓達到 2 倍的 Vin。(圖 38)
圖 38、第一階段充電電路
第二階段,切換開關將 S1、S5 切斷,而將 S2、S4 、S6 導通,此時電流路徑改變,CIN2 受到 CIN1 與 CPUMP1 的充電,因此 CIN2 的跨壓將會達到 2 倍的 VIN。(圖 39)
圖 39、第二階段充電電路
而第三階段的話即透過 CIN2 與 CPUMP1 來對 COUT 來充電,使得 COUT 的跨壓能夠達到 3 倍 VIN。(圖 40)
圖 40、第三階段充電電路
透過上述 3 個流程,將控制訊號的電壓提升至 15V 以提供電晶體開關驅動電壓的需求。
六. 結論
圖 32、五大特性表示圖 (a)靈敏度 (b)靈敏度與可量測範圍 (c)量測極限 10-100μm (d)量測極限 1μm
(e)選擇性 (f)穩定度
現今社會中,無線網路的拓展十分迅速。生活中許多方面都會應用到無線控制,因此吾人架構了 一無線路燈控制系統,運用於 ZigBee 傳輸的無線監控網路。依照此架構,往後可應用在生醫訊號、
家電應用…等諸多系統。因此,在結論的部分,將分別針對系統的硬體架構與軟體設計兩部分做總結。
硬體的架構上,無線路燈控制系統,在控制的部分分成協調器端與路由器端。協調器端擔任控制 網路的監控中心,利用 XBee 發送控制訊號,與接收設備資訊。在實驗上,由於 XBee 與 Arduino 的 處理 IC 不同,耗費了許多時間在 XBee 與 Arduino 的溝通介面建立,最後採用專用轉接板,來將 Arduino 的資料直接透過 XBee 傳遞出去。因此系統最基本必備的硬體架構即為:Arduino 與 XBee 這兩個部 分,如外加不同的 Sensor,即可應用於不同方面的感測系統。
而在軟體的部分,主要分成網路的架構與應用端程式的撰寫。系統除了硬體的建立外,還必須架 構起網路,透過 X-CTU 設定協調器與路由器的互傳通道,完成無線控制網路。應用端程式的撰寫,
系統運用於路燈控制,故針對光敏數值訂定控制規範,再利用該規範來調變光亮度,實驗前必須先認 識程式語言,如:C++、Visual Basic…等,還必須先熟悉 Arduino 的軟體函式庫,才能將函式運用到 程式撰寫。
在架構出此一系統之後,基於此架構的基礎,運用 Arduino 與 Xbee 的搭配,執行協調器端與路 由器端間資料傳送,加上不同的感測器,及應用端程式的撰寫便可運用在諸多的系統中。在現今智慧 型手機普遍的社會,藍芽技術已廣泛的應用在智慧型手機之中,透過 Arduino 開發板可以分析藍芽與