//Logo Image
作者:盧嘉泓(2011-07-30);推薦:盧俊銘徐業良(2011-07-30)
附註:本文為九十九學年度元智大學機械工程研究所盧嘉泓碩士論文「基於人際溝通互動元素開發遠端臨場機器人-TRiCmini」第三章。

第三章 TRiCmini各模組之建置

前一章已經說明TRiCmini7個模組組成與其功能定義,表3-1TRiCmini各模組功能,圖3-1為各模組間關係,本章將對各模組的硬體構成與程式詳細說明並在最後說明TRiCmini實際使用的情況。

3-1. TRiCmini各模組功能

模組名稱

模組功能

通訊模組

接收並處理無線網路命令

移動模組

控制TRiCmini移動

情緒模組

控制TRiCmini的臉部表情與雙手

影音模組

傳輸聲音與影像

電源模組

供給電源與充電控制

近端使用者介面

TRiCmini外型與內部骨架

遠端使用者介面

操作TRiCmini,輸出遠端影音

3-1. TRiCmini各功能模組相互關係

3.1 通訊模組

TRiCmini通訊模組負責接收並處理無線網路傳來的命令,為節省成本與縮小體積,TRiCmini非採用一般的電腦主機,而選擇使用自行開發之PIC單晶片嵌入式網路伺服器pic_Sever V3(圖3-2),長11.5cm7.5cm控制核心為18F6722單晶片,工作電壓適用9V~24V,支援至少6I/O類比輸出/入腳位、1I2C連接埠、2組馬達控制訊號,RS-232通訊埠與網路插孔各一,具有乙太網路(Ethernet)與網際網路(Internet)兩種通訊功能,資料儲存以MMC記憶卡為載體,結合市售無線網路路由器(圖3-3),達成無線網路接收功能。遠端使用者利用遠端使用者介面發出HTTP命令,經由網際網路傳送至近端使用者設置於家中的無線網路基地台(Access Point),以無線方式傳送給在TRiCmini上的無線網路路由器接收並轉送至pic_Sever V3,解碼處理執行動作,如果動作是由其他模組負責則利用I2C方式轉發給指定模組執行。本節將會先介紹TRiCmini所用到的通訊方式接著詳細說明通訊用的硬體設置與程式。

未命名$DXC 

3-2. 自行開發之PIC單晶片嵌入式網路伺服器pic_Sever V3

000434567

3-3. 無線網路路由器(ASUS WL-330gE)

3.1.1通訊方式介紹

TRiCmini控制採用網際網路HTTP通訊協定傳輸命令而在機體內部則是使用I2C通訊模式來做模組之間的溝通,本節將對這兩種通訊方式做說明。

(1)   HTTP通訊協定

HTTP全名為超文件傳輸協定(Hyper Text Transfer Protocol)在說明HTTP前先必須了解TCP/IP架構,因為在TCP/IP架構的分層中HTTP屬於其中的應用層。TCP/IP架構是由OSI網路模型整合而來,OSI網路模型全名為開放式通訊系統互聯參考模型(Open System Interconnection Reference Model)是國際標準化組織(ISO)1978年制定,廣泛被引用來說明數據通訊協定的結構及功能,如圖3-4所示OSI把數據通訊的各種功能分為7個層級,在功能上又可以被劃分為網路群組(Media layers)與使用者群組(Host layer)兩部份。

OSI網路模型提供了一個模式去解釋各個不同層面的網路協定,這些協定被稱為「堆疊(stack)」,或是「協定堆疊」,依據定義來說,越底層(Layer 1)越接近硬體,越高層(Layer 7)則是越接近應用程式。資料傳送過程為傳送端透過應用程式將資料放入第七層級的封包,再將第七層級的封包放到第六層級的封包內,依序一直放到第一層級的最大的封包內,接著傳送出去給接收端,接收端的主機由第一層級封包開始,依序將封包拆開,然後交給對應負責的層級來識別,每一個層級都只負責與之對應層級事物,然後向相鄰的層級解釋,各層級無需了解他層級如何工作,只需關心同層級協定即可,留給各層級自由設計與發展的空間,表3-2為每一層負責的內容而圖3-5則將OSI網路模型傳送與接收的過程比喻為兩公司間信件的傳遞,讓OSI網路模型的概念更容易被了解。

3-4. OSI網路模型

3-2. OSI網路模型各層負責內容

分層

負責內容

Layer 7應用層
(Application Layer)

應用程式將訊息轉換圍成是語言或反之

Layer 6表現層
(Presentation Layer)

網路服務或程式之間的資料格式的轉換與資料的加解密

Layer 5會談層
(Session Layer)

定義了兩端之間連線通道的連接與掛斷

Layer 4傳送層
(Transport Layer)

傳送資料封包並檢查傳輸過程以確保資料封包可以正確無誤的到達目的端。

Layer 3網路層
(Network Layer)

選擇資料封包的傳輸路徑

Layer 2資料鏈結層
(Data-Link Layer)

處理封包資料 (packet) 並轉成 MAC (Media Access Control) 格式,也就是01的位元串資料,MAC 必須要經由通訊協定來取得媒體的使用權, 目前最常使用的則是 IEEE 802.3 的乙太網路協定。

Layer 1實體層
(Physical Layer)

電子訊號與位元串資料兩者的轉換

3-5. OSI網路模型比喻為信件收發[Wikipedia, 2011]

OSI網路模型,在實際應用中某些層級常會被整合在一起,並非省略了OSI中某一層級的功能,而是將OSI中某些層級的功能合併為1層,目的在簡化系統設計, TCP/IP就是一個4層的架構模TCP/IP模式架構中將應用層、表現層、會議3層整合為應用層1層,TCP/IP字面上代表了兩個協定,傳輸控制協定(Transmission Control Protocol)網際協定(Internet Protocol),由文頓·瑟夫(Vinton Gray Cerf)羅伯特·卡恩(Robert Elliot Kahn)兩位開發而成,而TCP/IP架構也因為其較精簡的設計與高相容性漸漸取代如OSI等其他網路架構成為當今世界上標準的網路架構。HTTP是架在TCP協定上的1種應用程式,是全球資訊網協會(World Wide Web Consortium)和網路工作小組(Internet Engineering Task Force)聯合發布的一系列RFC(Request For Comments),為網際網路上應用最為廣泛的一種網路協議是用戶端和伺服端發送請求和應答的標準。

在本研究中遠端使用者操作在個人電腦中遠端使用者介面,遠端使用者介面會將操作的命令轉為HTTP形式送出,透過網際網路到達近端使用者家中的TRiCmini讓其中的通訊模組接收與轉譯命令使TRiCmini動作。 

(2)   I2C

I2C全名為內部整合電路(Inter-integrated circuit) 飛利浦公司在1980年代為了讓主機板嵌入式系統手機連接低速的週邊裝置而發展出來的。I2C是一種ICIC的通訊協定,與平行傳輸相比可靠性與安全性更佳,且節省空間與成本,通訊速度更可達1 M bit/sec,通訊距離一般低於數公尺,但加上放大器後可達數十公尺之遠。

使用I2C必須有3條線,負責資料傳輸DIDO的稱為SDA,搭配另1用於產生時脈CLOCK訊號的稱為SCK以及1條接地線(GROUND)3-6I2C溝通示意圖,I2C作為通訊手段時,必須要有一IC作為Master而其他的IC則為Slave且必須有自己唯一的位置(Address)

3-6. I2C溝通示意圖

傳送訊號時Master先對I2C上所有元件廣播,並送出所要溝通元件的位址,所指定的Slave 開始與Master連線進行溝通、資料傳遞,其餘Slave 不作回應,溝通結束後回到初始狀態,等待下一次動作。

TRiCmini將利用I2C連接通訊模組與移動控制模組,通訊模組中的pic_Sever V3HTTP指令轉譯後透過I2C傳送指令給移動控制模組中的pic_Protopic_Proto驅動馬達使TRiCmini移動或是開關超音波測距裝置。

3.1.2 TRiCmini通訊模組之硬體設置與程式說明

本節將會說明TRiCmini通訊模組的硬體如何製作與設定並對pic_Sever V3中的程式做說明。

(1)   硬體設置

TRiCmini通訊模組包括了一自行開發之PIC單晶片嵌入式網路伺服器pic_Sever V3版與市售的無線網路路由器。首先必須將無線網路路由器設定為無線網路卡功能,並設定讓其與近端環境中的無線基地台(Access Point)連線;接著必須設定近端環境中的無線基地台,為TRiCmini新增1組連接埠(Port),讓無線基地台的無線訊號可以順利找到並連接TRiCmini。在無線基地台中新增連接埠須先知道pic_Sever V3的預設IP位置,IP位置可在pic燒錄程式中看到或修改(圖3-7),最後使用網路線連接pic_Sever V3網路插孔(RJ-45)與無線網路路由器的網路插孔,完成網路方面的設置。而I2Cpic_Sever V3pic_Proto連接孔位位置如圖3-8所示,利用電線將相對應的孔位連結用以傳輸I2C訊號。

 

3-7. pic_Sever V3的預設IP位置

3-8. I2C孔位

(2)   程式說明

遠端使用者利用遠端使用者介面發送HTTP指令透過網際網路到達近端使用者家中的AP再由無線訊號傳輸到達TRiCmini中的無線網路卡,而無線網路卡接收到無線訊號後將資料傳送給pic_Sever V3處理轉譯HTTP訊息,如果有需要則透過I2C將轉譯過的訊息傳送至其他模組,遠端使用者介面的程式會在後面做詳細說明,在此節將說明pic_Sever V3中關於通訊用的程式。

首先在主程式中開通網路功能,圖3-9紅框所示之副程式讓pic_Sever V3可以上網,完成Server的功能,接著引用Callback function(圖3-10)並將所有接收HTTP命令的形式寫入其中,Callback function掌管了pic_Sever V3所有從網路接收或發送訊息的功能。

3-9. 收取網路訊息副程式

3-10. HTTP Callback function

遠端使用者介面發送出來的HTTP命令格式如圖3-11所示,先指定近端環境網路位置接著為識別碼 ,識別密碼可在PIC燒路程式中看到或修改,在Callback function中程式即是要執行的動作與動作代碼的關係,圖3-12Callback function中部分程式碼解釋。

3-11. TRiCminiHTTP命令格式

3-12. Callback function中部分程式碼解釋

pic_Sever V3接收HTTP命令並做轉譯,但是有些功能並非在pic_Sever V3執行的,所以需要利用I2C傳輸轉譯完成的命令至其他模組,如圖3-13紅框所示將I2C傳輸副程式引入使pic_Sever V3擁有傳輸I2C訊號的功能,被引入的I2C傳輸程式如圖3-14所示,而在pic_Sever V3中必須將要透過I2C傳輸的動作與I2C訊號對應(圖3-15)。

3-13. 引用I2C傳輸副程式

3-14. I2C傳輸程式碼

3-15. I2C傳輸訊號與動作對應程式碼

3.2 移動模組

移動模組包含全向輪平台(圖3-16)與自製之單晶片控制器pic_Proto(圖3-17),長10cm5cm控制核心為18F452單晶片,工作電壓適用9V~24V,支援至少8I/O類比輸出/入腳位、1I2C連接埠、4組馬達控制訊號,RS-232通訊埠插孔一個pic_Proto接收pic_Sever V3傳來的命令,經過演算後驅動馬達,控制TRiCmini行走;移動控制模組同時也負責接收演算超音波感測器。本節將分別介紹TRiCmini基本的移動模式與避障、跟隨功能的硬體製作與程式。

image029

3-16. 全向輪平台

3-17. 單晶片控制器pic_Proto

3.2.1 TRiCmini的基本移動功能

TRiCmini將會在一般居家環境中使用,居家環境空間往往較擁擠、複雜,故TRiCmini採用全向輪平台作為移動的載具。全向輪平台可支援各種移動方式,對於在居家環境中移動非常合適,並且全向輪平台多元的移動方式與人類移動時的感覺更為相近,讓遠端使用者操作起來更為容易。

全向輪平台以3個輪子驅動,三輪以繞一圓周平均分佈的方式配置,輪軸皆指向圓心,3個輪軸間的夾角為120度,透過著三輪差速以及馬達正反轉,即可達到全向的移動。為達成此功能,全向輪經過特別設計,在圓周上裝有與輪軸垂直的小輪,因此基本上可自由沿兩種方向移動;當驅動馬達提供動力時,全向輪沿著軸向轉動,此時全向輪上的小輪則無作用;反之,當全向輪往輪軸方向移動時,驅動馬達則不輸出扭矩,此時全向輪上的小輪,則變為輔助輪,減少移動時的摩擦力,幫助平台移動。

TRiCmini採用轉速80rpm、扭力10kg-cm的減速馬達,全向輪輪徑為5cm,可選擇的行走方式有前進後退、左右平移、順逆時針旋轉,以下為pic_Proto中控制移動的程式說明。

遠端使用者的命令經由網際網路到達pic_Sever V3再經由I2C傳輸給pic_Proto,圖3-18為設定pic_ProtoI2C腳位與主從關係,圖3-19的副程式讓pic_Proto可以接收I2C訊息,圖3-20為用來清空I2C暫存檔案以免pic_Proto累積過多資料而當機,圖3-21I2C傳輸訊號與動作的對應。

3-18. 定義pic_ProtoI2C腳位與主從關係

3-19. I2C接收程式碼

3-20. 定時清空I2C暫存的檔案程式碼

3-21. I2C訊號與動作的對應關係

在程式一開始必須定義馬達PWM控制如圖3-22紅框部份所示,之後必須定義各種移動方式的馬達轉速與轉向(圖3-23)。TRiCmini有多種移動的模式可供切換,普通使用的移動模式即下令移動後便持續動作直到下達其他命令為止,特殊的移動模式有避障模式與跟隨模式,在情緒的表達方面擁有高興、生氣、難過、驚訝、厭惡、害怕6種模式的移動組合動作,各模式選擇如圖3-24所示。

3-22. 定義馬達PWM控制與pic_Proto初始化設定

3-23. 移動方式之馬達控制

3-24. 移動模式選擇

3.2.2 TRiCmini的避障與跟隨功能

TRiCmini配有三個SRF05超音波距離感測器(圖3-25),工作電壓5V,發射聲波頻率為40kHz,每秒最多可打出20次超音波,掃描角度範圍約為60˚,感測距離為1cm~400cm。利用這3個感測器可得知與前方物體距離的資訊,來達成避障或是跟隨的功能,TRiCmini三個超音波距離感測器之配置如圖3-26所示。

超音波

3-25. SRF05超音波距離感測器

3-26. TRiCmini超音波距離感測器配置

使用SRF05超音波距離感測器時,5V Supply腳接5V之電源,0V Ground腳接地,Trigger Input為訊號輸入端用來觸發感測器,電源、接地與訊號輸入皆是3個感測器共用1pic_Proto腳位,測量訊號的輸出腳為Echo Output,輸出距離有效數值的單位為cmSRF05超音波感測器與pic_Proto腳位對照如圖3-27所示。

設置在TRiCmini中央的超音波距離感測器編為1號,左前方的為2號,右前方的為3號,當開啟避障或跟隨模式時,TRiCmini會將超音波距離感測器啟動並開始接收其訊號,在pic_Proto中讀取超音波訊號的程式碼如圖3-28所示。

 

3-27. SRF05超音波感測器與pic_Proto腳位對照

3-28. TRiCmini開啟並接收超音波距離感測器訊號

TRiCmini的避障與跟隨模式的參數在程式一開始時定義,單位為cm(圖3-29)。TRiCmini開啟避障模式時,當障礙物進入警戒距離後會根據離障礙物的距離大小做出不同的動作閃避障礙物;如圖3-30程式所示,當TRiCmini3個感測器任1個測出的距離小於NEW_WARN(警戒距離)時開始避障判斷,如果左前方感測器測出的距離大於右前方感測器測出的距離則TRiCmini向左前方行走,其餘情況則向右前方行走,但如果左前方感測器測出的距離小於NEW_MINTRiCmini右平移,右前方感測器測出的距離小於NEW_MINTRiCmini左平移,而當前方的感測器測出的距離小於NEW_SPIN(危險距離)時TRiCmini會後退,左前方感測器測出的距離小於NEW_SPINTRiCmini向右旋轉,右前方感測器測出的測距離小於NEW_SPINTRiCmini向左旋轉。

3-29. TRiCmini避障與跟隨模式的參數

3-30. TRiCmini避障模式程式碼

TRiCmini開啟跟隨模式時,當要跟隨的人出現在感知距離中,TRiCmini會根據人的行走方向不同做出不同的移動方式來跟隨人,如圖3-31程式所示,如果TRiCmini3個感測器測出的距離皆大於FOLLOW_STOP_FAR(感知距離)則TRiCmini停止,如果TRiCmini3個感測器任1個測出的距離小於FOLLOW_STOP_NEAR TRiCmini停止,如果前方的感測器測出的距離小於FOLLOW_STOP_FAR_MIDDLE且其他2個感測器測出的距離大於FOLLOW_STOP_FARTRiCmini前進,如果左前方的感測器測出的距離小於FOLLOW_STOP_FAR_MIDDLE且其他2個感測器測出的距離大於FOLLOW_STOP_FARTRiCmini向左旋轉,如果右前方的感測器測出的距離小於FOLLOW_STOP_FAR_MIDDLE且其他2個感測器測出的距離大於FOLLOW_STOP_FARTRiCmini向右旋轉,其餘狀況TRiCmini皆為停止。

3-31. 跟隨模式程式碼

3.3 情緒模組

TRiCmini以臉部表情的變化、雙手的擺動、與身體的移動動作等3種方式表達情緒,情緒模組也建構在pic_Sever V3板上,並搭配伺服馬達控制的雙手及LED構成的眼睛與嘴巴TRiCmini依照通用臉部表情預設了高興、難過、生氣、驚訝、厭惡、害怕等6組情緒狀態可供遠端使用者控制,皆配合了對應的表情變化、雙手擺動及身體的移動動作。TRiCmini的眼睛與嘴巴由LED陣列所組成,綜合了人類表情與卡通常用的表情表達方式建構有高興、難過、生氣、驚訝、厭惡、害怕6種通用臉部表情(圖3-32),遠端使用者可以單獨操作臉部表情來配合對話時的情境。接到遠端情緒動作指令時,pic_Sever V3直接控制臉部表情與雙手擺動,同時透過I2C命令移動控制模組產生對應的身體動作。

TRiCmini的臉部表情與伺服馬達構成的雙手皆由pic_Sever V3控制,對應的腳位如圖3-33所示,其中為控制伺服馬達需要將控制腳位拉出並且提供電源與接地,完成拉線作業的pic_Sever V3如圖3-34所示。

3-32. TRiCmini表情變化

3-33. pic_Sever V3與表情LED陣列、伺服馬達對應腳位

3-34. 完成拉線作業的pic_Sever V3

pic_Sever V3控制臉部表情的方式為開啟或是關閉LED燈,各種臉部表情的LED明滅組合其程式如圖3-35所示,而控制伺服馬達則需要引入1個副程式在副程式中已經先行定義好數個伺服馬達的動作角度其程式如圖3-36所示,TRiCmini雙手的動作即是這些定義好動作的組合,TRiCmini的情緒動作配合了臉部的表情,雙手的動作與身體的移動,表情變化與雙手擺動的程式如圖3-37所示而身體的移動則是由pic_Sever根據不同的情緒傳送I2C命令讓移動模組做出不同的移動組合。

3-35. 臉部表情的LED明滅組合部份程式碼

3-36. 伺服馬達動作角度定義程式碼

3-37. 情緒動作控制部份程式碼

3.4 影音模組

TRiCmini使用市售的網路攝影機(EZCAM PT.W)與喇叭(NOKIA MD-8)作為其影音模組,攝影機鏡頭可透過網路控制(HTTP命令)其轉動及仰角讓遠端使用者更可以掌握近端的狀況,同時此攝影機也可收音並配合喇叭做放音,因此遠端使用者可得知近端的畫面與聲音,而近端使用者則可聽見遠端使用的聲音。

影音模組中的網路攝影機在使用前必須先設定會讓其與近端環境中的無線基地台(Access Point)連線,接著必須設定近端環境中的無線基地台替網路攝影機新增1組連接埠(Port),讓無線基地台的無線訊號可以順利找到並連接網路攝影機.

3.5 電源模組

TRiCmini電源模組由磷酸鋰鐵(LiFePO4)充電電池與一電源電路板組成,負責TRiCmini電力的供應與充電的管理。TRiCmini的電源模組可達成如家電產品般的充電功能,在TRiCmini電源不足時會提供警示,連接市電後即自動切換電力來源為市電並且對電池充電,電池充電完成後即會自動切斷充電功能。本節將詳細介紹電源模組的硬體構成與原理。

(1)   磷酸鋰鐵充電電池

TRiCmini採用必翔實業所生產的磷酸鋰鐵充電電池,輸出電壓為13.8V、重約1kg,磷酸鋰鐵充電電池與一般充電電池相比,磷酸鋰鐵充電電池電容量更大、放電功率、穩定性更高,循環壽命更長且可快速的充電。

(2)   電源電路板

磷酸鋰鐵充電電池所提供的電壓為13.8V,但是TRiCmini內部的裝置並非適用於此電壓,所以需要電源電路板利用穩壓IC降壓供電給這些裝置。電源電路板另外的工作為充電功能的管理,TRiCmini需要達成當電池電力不足時,提醒使用者,當與插座連接時使用市電並進行充電,當充電完成時自動切斷充電保護電池。以下將介紹達成這些功能的電路設計。

首先為電力來源的切換,如圖3-38所示,當與插座連接時,繼電器1從原本NC跳至NO,負載的電力來源便轉換為市電,此時LED1亮起提醒使用者目前已與市電連接,電池不再供電,電阻R5可保護LED不被燒壞。

3-38. 電力源自動切換電路示意圖

接著為達成低電壓警示與自動切斷充電的功能電源電路板上配有一顆運算放大器(LM358) 做簡單的電壓邏輯判斷,LM358的接腳如圖3-39所示。

3-39. LM358接腳圖

一個LM358有兩組比較器可使用,port 8為電源,port 4為接地,中當IN(+)腳的輸入電壓大於IN(-)腳的輸入電壓時OUT會輸出高電位,反之當IN(+)腳的輸入電壓小於IN(-)腳的輸入電壓時OUT會輸出低電位,使用LM358時還需特別注意,Vcc輸入電壓必須高於輸入IN(+)腳的電壓1.5V以上,LM358才可正常運作,而OUT所輸出的電壓大約是Vcc85%左右。

充電電路如圖3-40所示,穩壓器7809供給LM358電力,穩壓器7806提供6V電給LM358的兩個IN(+)(port3, port5),電池則透過分壓電路連接LM358的兩個IN(-)腳。當電池電壓不足時(此處設定為低於12.8V),透過分壓電路R1R2轉換,port2IN(-)腳輸入電壓會低於6V,此時port3IN(+)腳輸入電壓將大於port2IN(-)腳輸入電壓,於是port1 OUT腳輸出高電位使LED2亮起提醒電池電量已經不足。當電池充電完成時(此處設定為電池電壓高於13.8V),透過分壓電路R3R4轉換,port6IN(-)腳輸入電壓會高於6V,此時port5IN(+)腳輸入電壓將小於port6IN(-)腳輸入電壓,於是與固態繼電器連接的port7 OUT腳輸出低電位,失去驅動電壓的固態繼電器成為斷路,充電也因此切斷,同時LED3熄滅表示充電完成。

3-40. 充電電路示意圖

TRiCmini電源電路板(圖3-41)是將圖3-383-40部份的電路結合而成,整體電路如圖3-42所示,如要設定不同臨界電壓值,依照分壓電路原理計算,改變R1R2R3R4電阻即可調整「低電力警示」與「充電完成」的電壓。其中負載端配合不同型號的穩壓器即可視需求供給不同的電壓,充電時使用市售的變壓器與插座連接即可。

3-41. TRiCmini電源電路板

3-42. TRiCmini電源電路板電路示意圖

3.6 近端使用者介面

近端使用者介面即是TRiCmini內部的骨架與本身的外型,為兼具輕巧與堅固的特性,TRiCmini採用鋁合金與塑鋼兩種素材作為骨架,在較需要承重處以鋁合金支撐,塑鋼層板用來安置晶片等較輕的內部元件。整體骨架材料配置如圖3-43所示,其中攝影機架與保護板採用鋁合金則是基於製造性與成本考量,保護板用來隔離保護晶片組,讓使用者可以抱起TRiCmini

TRiCmini必須要吸引使用者與之互動,所以整體外型尺寸、重量比起前代(TRIC)大幅縮小(圖3-44),與前代相比TRiCmini體積減少了70%,重量減少了60%,除了符合成為家電產品的目的外,也減少了製作的成本。TRiCmini設計上盡量使用流線與圓弧,並搭配舒適的顏色以營造其親和力,另外摒棄了傳統機器人冷冰冰的硬式外殼,改採如絨毛玩具般軟質材料,甚至設計讓使用者可以幫TRiCmini「換衣服」,TRiCmini可穿著一般市售的嬰兒裝(圖3-45),使用者可依自己的喜好搭配衣飾,讓TRiCmini更加個人化,大大增加了趣味性與互動性。

3-43. TRiCmini骨架材料配置

3-44. TRICTRiCmini大小比例

3-45. 外觀著裝的TRiCmini

3.7 遠端使用者介面

遠端使用者透過遠端使用者介面,經由網際網路投射至TRiCmini與近端使用者進行雙向溝通與互動。為降低遠端使用者操控的困難,除了傳統的滑鼠點擊式電腦操作介面外,TRiCmini也可搭配使用專用之觸控面版。TRiCmini的遠端使用者介面是使用微軟Visual Basic 2008所撰寫的應用程式,本節將詳細說明介面操作方法與其中對應的程式。

TRiCmini遠端使用者介面介紹如圖3-46,中間部份顯示近端環境畫面,佔了版面最大的部份,因為在近端影像的呈現是此介面最重要的一個功能,在畫面四周有攝影機控制按鈕,將攝影機控制擺放在畫面四周可讓使用者操作起來更加的直覺;右下方為方向控制區,右方為表情選擇區,右上為狀態顯示區,如選擇高興表情後,TRiCmini臉部變為高興,而遠端操作介面的表情控制的高興鈕也會持續亮起直到選擇其他表情,左方為情緒動作控制,為一次性的動作,按下後TRiCmini做出一次選擇的情緒動作,按下的瞬間會亮起來提示使用者。

3-46. TRiCmini遠端使用者介面介紹

開啟TRiCmini遠端操作者介面後需要一段讀取時間,TRiCmni設計了開機等待讀取的畫面(圖3-47),進入後畫面中央會提示需要按聯絡人選擇鍵,點選此鍵時會跳出新視窗,此視窗為聯絡人清單,在聯絡人清單跳出時會出現使用說明(圖3-48),TRiCmini操作介面許多地方皆會有提示或使用說明讓使用者使用起來更加容易,使用者可在聯絡人清單建立並儲存最多六筆的聯絡人資料,並可選擇與其中任何一人對話(圖3-49)其程式碼如圖3-50所示,程式會自動儲存聯絡人資料到電腦中,並且在開啟聯絡人清單時顯示出來,點選列表中的TALK鍵後,即連線至該地址,而IP地址與名稱也會顯示在主畫面中。

3-47. TRiCmini讀取等待畫面

3-48. TRiCmini操作介面提示說明

3-49. TRiCmini聯絡人清單

3-50. 聯絡人清單部份程式碼

遠端使用者登入TRiCminiTRiCmini臉部LED燈會閃爍提示近端使用者有人登入,操作介面中央使用Visual Basic中的WebBrower功能,顯示IP CAM傳回的近端環境畫面,而在程式中一開始為傳送HTTP指令用的副程式,操作介面中所有動作指令皆會引用此副程式,如圖3-51所示。圖3-52程式碼為將設計好的按鈕與視窗樣式套入,美化操作介面。

3-51. 傳送HTTP指令用副程式程式碼

3-52. 套用按鈕與視窗樣式程式碼

操作介面右方為TRiCmini表情選擇,開啟時預設為普通表情,被選擇的表情按鈕會亮起以提示使用者,選擇表情後即傳送HTTP指令程式碼如圖3-53所示;操作介面右下方為TRiCmini方向控制,開啟時預設為停止,被選擇的移動方向會亮起並在狀態顯示處顯示目前移動的狀態以提示使用者,選擇移動方向後即傳送HTTP指令,程式碼如圖3-54所示,避障與跟隨功能開啟時預設為關閉、攝影機旋轉角度選擇開啟時預設為小角度,其控制的原理與表情、移動控制相同。

3-53. TRiCmini表情控制部份程式碼

3-54. TRiCmini移動控制部份程式碼

情緒動作與攝影機方向控制,點擊後即發送HTTP命令,點擊得瞬間按鈕改變顏色以提示使用者,與移動或表情控制不同,情緒動作與攝影機方向控制皆是一次性的命令,點擊後只會動作一次並非像移動或表情控制會保持選擇狀態直到選擇其他狀態為止,程式碼如圖3-55所示。

3-55. TRiCmini情緒動作控制部份程式碼

3.8 整體系統運作流程

本章將TRiCmini所包含的硬體與程式做了詳細的說明,本研究所要發展的應用於人際溝通互動之遠端臨場機器人至此已製作完成。

TRiCmini實際運作的情形如圖3-56所示,遠端使用者(親友、照護者)利用家中個人電腦中的「遠端使用者介面」登入TRiCmini,遠端使用者可在操作介面上看到TRiCmini身上「影音模組」傳送來的近端環境(高齡者家中)影像並可控制TRiCmini在近端使用者(高齡者)家中四處走動查看家中情況,其移動的命透過網際網路傳送至近端使用者家中設置的無線基地台,讓命令以無線的方式傳送至TRiCmini透過TRiCmini身上的「通訊模組」接收命令並解碼,傳至「移動模組」使TRiCmini移動。

TRiCmini走到近端使用者身旁,遠端使用者可利用TRiCmini與之溝通互動,遠端使用者的聲音會藉由TRiCmini身上「影音模組」傳出而近端使用的影像聲音被「影音模組」接收並於遠端使用者介面出現,根據對話的情境遠端使用者可以控制TRiCmini展現不同的表情或是肢體動作,情緒展示的命令透過網際網路傳送至近端使用者家中設置的無線基地台,讓命令以無線的方式傳送至TRiCmini透過TRiCmini身上的「通訊模組」接收命令並解碼,傳至「情緒模組」使TRiCmini改變表情或做出情緒動作。遠端使用者還可開啟TRiCmini的避障或跟隨功能讓TRiCmini自行移動,減少操作的麻煩,這兩種模式也可以娛樂近端使用者互動。

「電源模組」供給TRiCmini電力並具電力警示與充電功能,當TRiCmini電力不足時,臉部會有閃燈提醒使用者,使用者只需用變壓器將TRiCmini與插座連接即可充電,並在充電完成後TRiCmini會自動切斷充電功能,「近端使用者介面」為TRiCmini本身的外型與骨架,是被使用者所看見的模組,影響使用者對TRiCmini觀感並肩負吸引使用者與TRiCmini互動的作用,TRiCmini設計出小巧可愛的外型,採用軟性材質並設計可讓使用者更換衣服,增加其親和力與互動性。

3-56. TRiCmini實際使用時各項功能

本研究目標之一是希望將此機器人商品化,真正實際應用於一般家庭中,因此必須了解實際上使用的情況。本研究必須驗證TRiCmini是否符合當初定義的設計概念,下一章將會規劃各種測試與可用性評估,協助瞭解TRiCmini的性能與使用者實際使用情況,來證明TRiCmini的可用性,或是用來當作改良設計的依據。

參考資料

Wikipedia, 2011, http://zh.wikipedia.org/wiki/