人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/aee033300.pdf ·...

17
CHAPTER 人機介面 人機介面(human-computer/human-machine interface )一詞,顧名思義, 是關於人類使用機器(或狹義僅指電腦)時,基於 人因工程 Human factors engineering )、心理學Psychology )、資訊工程Information engineering )、 工業工程 (Industrial engineering) 人體工學 (Ergonomics) 人工智慧 Artificial Intelligent )等 跨領域 interdiciplinary )技術加以探討,以不同比例加以運用 並落實的綜合議題。其所牽涉的範圍如此之廣,以至於在實務上,多半會將議 題先行限縮,也就是將範圍侷限在特定的應用上,好進行後續研發與設計。 記得在第一章以圖 1-2 說明嵌入式系統的功能圖解時,提到所謂的「使 用者之外部訊號」。當時,筆者將定義廣義為「並非盡都是提供人類溝通用的 感官訊號」,理由是因為並非所有的機器介面都是針對人類作為使用者而加以 設計的;然而,正當我們將焦點狹義成為人機介面時,則與人類溝通用的感官 訊號—— 視、聽、味、觸、嗅五覺—— 必然是我們最感興趣的自然訊號,而其 中關於物理訊號的視、聽、觸三覺,在應用上似乎又較化學訊號的味與嗅覺更 多更廣! 讀者在使用電腦用品,特別是消費性電子產品時,不難發覺其產品的特 色常取決於人機介面的功能設計,而其人機介面的功能又圍繞在視、聽、觸三 覺之介面設計。例如:要讓人類使用者「看到」電腦的訊息,就以燈號或螢幕 等光訊號發送作為媒介,相對地,電腦要「看到」人類使用者與其相關環境的 事物時,則是以接收光訊號之各式/ 錄影機 still/video camera)等感光技術

Upload: hathien

Post on 06-Feb-2018

256 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

CHAPTER

人機介面

人機介面(human-computer/human-machine interface)一詞,顧名思義,是關於人類使用機器(或狹義僅指電腦)時,基於人因工程(Human factors engineering)、心理學(Psychology)、資訊工程(Information engineering)、工業工程 (Industrial engineering)、人體工學 (Ergonomics)、人工智慧(Artificial Intelligent)等跨領域( interdiciplinary)技術加以探討,以不同比例加以運用並落實的綜合議題。其所牽涉的範圍如此之廣,以至於在實務上,多半會將議

題先行限縮,也就是將範圍侷限在特定的應用上,好進行後續研發與設計。

記得在第一章以圖 1-2 說明嵌入式系統的功能圖解時,提到所謂的「使用者之外部訊號」。當時,筆者將定義廣義為「並非盡都是提供人類溝通用的

感官訊號」,理由是因為並非所有的機器介面都是針對人類作為使用者而加以

設計的;然而,正當我們將焦點狹義成為人機介面時,則與人類溝通用的感官

訊號—— 視、聽、味、觸、嗅五覺—— 必然是我們最感興趣的自然訊號,而其中關於物理訊號的視、聽、觸三覺,在應用上似乎又較化學訊號的味與嗅覺更

多更廣!

讀者在使用電腦用品,特別是消費性電子產品時,不難發覺其產品的特

色常取決於人機介面的功能設計,而其人機介面的功能又圍繞在視、聽、觸三

覺之介面設計。例如:要讓人類使用者「看到」電腦的訊息,就以燈號或螢幕

等光訊號發送作為媒介,相對地,電腦要「看到」人類使用者與其相關環境的

事物時,則是以接收光訊號之各式攝 /錄影機(still/video camera)等感光技術

Page 2: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-2

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

加以儲存並處理。聽覺聲波的應用也相仿,人類以麥克風(microphone)「說」給電腦聽,而電腦則以喇叭(speaker)「說」給人類聽。上述例證似乎顯示皆為兩兩成對的關係?!

同理,觸覺以壓力之物理訊號是否也有成對的互動介面( interactive interface)之關係?抑或壓力訊號可與其它如光訊或音訊交互配對,形成新的互動模式?這些不同類訊號間的組合搭配確實可經由設計而形成新的介面風

格,筆者安排於後面章節來進行相關論述與實務觀察。

3.1 微軟開發環境的使用介紹

3.1.1 微軟開發環境的安裝

在本章的實務講解部份,筆者採用以微軟 Visual Studio 2005/2008 所建立的專案作為範例。這些範例的原始程式與相關文件同樣已隨書附在光碟第三章

所專屬的資料夾中。值得一提的是,不同於第二章的 ASIP 硬體平台,本章的範例專案所用的 ARM9平台乃歸類於低階微處理器硬體,而其 32位元之 RISC CPU 效能也得以支持微軟的 WinCE 5.0/6.0 作業系統環境;然而不同於 Keil開發環境的是,Visual Studio 軟體為模擬 WinCE 5.0 視窗環境,並製作模擬視窗供開發者作前期的開發與測試之用,本著 WYSIWYG(What You See Is What You Get)的精神所製作的 IDE 確實大大提高生產力。

在 Visual Studio 軟體安裝部份,類似圖 2-2 的 Keil 安裝步驟,但因為是商用軟體所以本書不提供安裝程式之外,其它舉凡找到安裝程式的所在位置並

點擊執行、點擊幾個下一步(Next)後所出現一系列如許可( license)畫面、目的資料夾選取畫面、客戶資訊輸入畫面、設定過程狀態畫面、完成與提示選

取畫面以及安裝完成後之程式進入點選取畫面等都雷同,所以圖 3-1 僅抓取頭尾畫面供讀者參考,讀者可以舉一反三應用。

諸如上述,為了能模擬 Windows CE 5.0,微軟提供 Windows CE 5.0 SDK的解決方案。(筆者測試成功的安裝程式名為 STANDARD_SDK.msi 之 URL 為

http://www.microsoft.com/downloads/details.aspx?familyid=FA1A3D66-3F61-4DDC-9510-AE450E2318C3&displaylang=en)。它是一個同時能支援 x86, ARM, MIPS 等處理器之 WinCE5.0 Emulator,對於大部份的 PC 使用者而言相當好

Page 3: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-3

人機介面 3 用,而其安裝成功之首 /末頁面與程式之執行進入點的快照圖則簡略顯示於圖3-2 中,其中的安裝概念皆屬雷同,不再贅述。

圖3-1 微軟 Visual Studio 2008 開始安裝與安裝成功之首 /末螢幕快照圖。

(a) (b)

(c)

圖3-2 微軟 Windows CE 5.0 SDK(STANDARD_SDK.msi)安裝之:

(a)開始、 (b)完成、與 (c)執行進入點的螢幕快照圖。

Page 4: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-4

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

3.1.2 微軟開發環境的測試

當前述兩項軟體都安裝完成後,按照一般開發者的慣例,要測試一個

Hello 程式才算完整告一段落。筆者在此為讀者準備一組 HelloMFC!!測試用專案於光碟片,並圖示重點步驟:從「設定 Emulator 的執行參數」到「執行HelloMFC!!於模擬器中」都顯示在圖 3-3 中。對照 Keil 的模擬功能,我們發現 Keil 更注重從硬體的角度顯示進行數位邏輯資訊的模擬,而 Windows CE的模擬則能夠根據真實的 WinCE 視窗,寫實呈現出所執行的畫面。其測試用的畫面設計非常簡單,共兩個觸控按鈕:一個代表執行(go),點擊下去會跳出一個提示訊息;另一個代表結束(exit),如圖 3-4 所示。

(a) 以滑鼠右鍵開啟 WindowsCE 捷徑之內容。

(b) 設定 Emulator 的執行參數。

Page 5: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-5

人機介面 3

(c) 將 HelloMFC!!開啟、標的、編譯、拷貝執行檔至 SD 資料夾、並執行於模擬器中。

圖3-3 將 HelloMFC!!進行模擬器測試之步驟快照。

圖3-4 HelloMFC!!功能示意圖。

當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以 ARM9低階微處理器做為基礎,其軟硬體之實驗規格不限特定廠牌,只要支援微軟

WinCE 系列、SDK 為 Visual Studio 系列皆很容易上線,詳細如下:

實驗板:長高科技(www.dmatek.com.tw)型號 2440XP 之產品(圖3-5)。

模擬器:微軟之 Windows CE 5.0 SDK配合 ActiveSync同步傳輸軟體。

編譯器:微軟之 Visual Studio 2008。

Page 6: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-6

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

專案路徑:第 3 章 \ HelloMFC!!

筆者將實機演練的重點步驟摘要於圖 3-6,讀者可與圖 3-3 作對照比較。

圖3-5 長高科技型號 2440XP 之實驗板照片。

3.1.3 實機與模擬器之環境比較

關於如何開發 8051(Keil)以及 ARM9 (WinCE)等嵌入式應用程式,並非本書的目標;事實上,它們各有專書可供學習與參考。本書所強調之觸控

設計的主題,在 Part I 所要達成的目標是藉由幾種常見的系統平台與範例專案,循序從大範圍的嵌入式系統概念,漸進縮小為感測器與致動器,然後再縮

小至人機介面,最終引導至觸控設計之相關細部主題。

因此,在實務上本書既然已排除圖 1-3 最底層所謂 ASICs 與 FPGAs,以及最高層之通用型處理器之嵌入式設計探討,就藉由 8051 與 ARM9 之相關範例將中間兩層的 ASIPs 與低階處理器之嵌入式設計概念加以闡述並舉證,讀者並不必然需要將第 2、3 章的所有軟硬體都實驗過一次;若能操作固然更好,但是重點乃是其中的流程,也就是設計工具的方法論!在這兩章所呈現的平台

正是當代的經典,當然還有像 Linux、uCOS/uCOS-II 等等有名的平台,無法一一兼顧,但若能抓住本書的範例精神,則多少應能達到觸類旁通之效。

回到實機與模擬器之環境比較,圖 3-6 是實機測試的簡單流程示意,詳細方法請參考各實驗平台的相關說明文件。以圖 3-3 與 3-5 作比較,兩者都是要開啟 HelloMFC!!程式,並執行如圖 3-4之操作畫面,但後者若在 Windows XP則須透過 ActiveSync 連線軟體才能與硬體連線並載入 HelloMFC!!程式。

Page 7: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-7

人機介面 3 而從介面操作的比較,讀者會發現隨著觸控 PC 的流行,兩者都可能可以

用滑鼠或觸控筆( touch pen)來進行觸控 ;但在長高科技的 2440XP 上並不能用人類手指在其觸控螢幕上進行觸控,卻是受限於其電阻式( resistive)的觸控面板(panel)所致;不像在第一章的 openmoko 所使用的 NEO FreeRunner 就是同時包含電阻與電容式(capacitive)的面板,所以既能接受觸控筆等之硬物點壓,又能接受人類手指在其面板上所造成的電容改變之訊號!

筆者先於下兩節討論 RFID 與直流馬達之感測-致動介面裝置,最後再一次與範例專案 DetectionSystem 作整合討論與驗證。

(a) 連線、選取標的、並按下執行按鈕。

(b) 將 HelloMFC!!部署於 2440XP 實機並加以執行。

圖3-6 將 HelloMFC!!進行實機測試之步驟快照。

Page 8: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-8

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

3.2 RFID 之卡片介面

觸控的概念可再區分為「徒手」觸控與「媒介(media)」觸控,像前一節所提到的觸控筆,就是透過握筆之媒介來進行觸控,本小節再探討另一種媒

介,就是卡片媒介,或稱作智慧卡(smartcard)。其中最有名的硬體解決方案莫過於 RFID(Radio-Frequency Identification,無線射頻辨識)了。

其實,從它的名稱可以看出,它並不需要將卡片與讀卡器完成物體的實

際接觸才能進行辨識,往往在 50 至 100mm 距離內(與天線形狀有關)就能感測到訊號,讀者在生活中運用悠遊卡的經驗就足以印證。是的,這套 RFID機制就是典型的一對感測 -致動器,是當代流行的人機介面,甚至也是卡片式的一種觸控機制。其實務中包含的豐富雙向讀寫之驅動程式,特別值得說明。

首先,解釋最令人好奇的原理部份:為何悠遊卡明明沒有包含電池,卻

能夠讓機器進行辨識與讀寫?這個部份可以先從圖 3-7 加以說明,原來 RFID卡片(簡稱射頻卡)分成兩種,一般悠遊卡是屬於被動式標籤(passive tag)機制,並不包含電池,因為它可以藉由讀寫器給予能量加以驅動,如圖所示。

圖3-7 RFID 的原理方塊圖。

電子標籤由標籤天線與晶片組合而程,標籤天線的作用是更有效地發射

與接收射頻載波,而晶片則是儲存電子標籤的資訊內容。依據供電方式的不

同,電子標籤可以分成主動式標籤(active tag)與被動式標籤兩種,主要的差

Page 9: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-9

人機介面 3 別就在內部是否存在著電池。被動式標籤不含電池,所以它必須從讀寫器所發

射的電磁波中吸收能量來啟動,並向讀寫器發送自身的編碼以及相關資訊。讀

寫器接收到訊號後,進行解碼,再送至電腦進行處理。

以上這一系列的機制通常不需要應用程式員擔心,因為 RFID 自有專門生產的廠商完成電子標籤與讀寫器的製作,甚至相關的驅動程式支援。嵌入式系

統的開發人員所需要了解的是相關驅動程式的呼叫與使用,這也是本章所要突

顯的部份:延襲前一章對於基本型與進階型裝置的探討,我們發現裝置的複雜

度似乎與其驅動程式的函式數量與複雜度成正比!

智慧卡與微電腦形成有趣的人機介面應用,筆者將範例的重點放在卡片

的讀、寫與相關的介面設定,進而對人機介面的設計與實作有多一層的體會。

3.2.1 RFID 之專案範例規格

典型的智慧卡是透過卡片上有限的空間內整合記憶體與相關電子裝置如

RFID 等,再被用來當作身份認證卡片、以及電子錢包(e-cash)等。因為這些智慧卡內含個人資訊以及敏感的財務資訊,且有可能公開發行,所以一般會將

所內含的資訊加以保護才不被未經授權的一方所取用以及竄改。但是本節範例

的重點只針對卡片的讀與寫的基本動作,以及相關的介面設定。

筆者所示範的專案範例之內容是讓使用者可以透過使用者介面設定上班

及下班,也就是俗稱的上下班打卡設定。圖 3-7b 右半邊的一組上下班的單選

鈕(radio button)正是為此而設計。當系統能讀到卡號,並且將系統時間,與上下班狀態等資訊顯示在使用者介面上則代表正確執行。實驗規格列舉如下:

實驗板:長高科技型號 2440XP 搭配 RFID 射頻 IC 卡讀寫器之產品編號 RFID-35(參見圖 3-7(a))。

模擬器:微軟之 Windows CE 5.0 SDK配合 ActiveSync同步傳輸軟體。

編譯器:微軟之 Visual Studio 2005。

專案路徑:第 3 章 \RFID_專題範例 \TEST

Page 10: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-10

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

(a) (b)

圖3-8 RFID 之 (a)實驗硬體與 (b)螢幕之使用介面設計圖。

在介紹程式流程之前,筆者先將驅動程式的函式調查如下。筆者團隊所

採用的 RFID 產品 URL 為 http://www.dmatek.com.tw/tn/viewproc.asp?id=1432,它所提供之 API(應用程式介面)共達 12 組,佐證 RFID-35 確為進階驅動型:

HANDLE CE_rf_init(HWND hWnd, long boud); //取得初始化串列埠

BOOL CE_rf_get_status(HANDLE icdev, unsigned char *_Status);

//取得讀寫器的版號

BOOL CE_rf_reset(HANDLE icdev, unsigned int *_Msec); //射頻頭

重定

BOOL CE_rf_ select(HANDLE icdev, unsigned long *_Snr, unsigned

char *_Size); // 從多個卡中選取一個給定序列號的卡

BOOL CE_rf_loadkey (HANDLE icdev, unsigned char _Mode, unsigned

char _SecNr, unsigned long *_NKey);//向讀寫器 RAM裝入 16進制

密碼

BOOL CE_rf_anticoll (HANDLE icdev, unsigned char _Bcnt, unsigned

long *_Snr); //防止卡衝突,返回卡的序列號

BOOL CE_rf_authentication (HANDLE icdev, unsigned char _Mode,

unsigned char _SecNr); // 驗證某一磁區密碼

BOOL CE_rf_beep(HANDLE icdev, unsigned short *_Msec); //蜂鳴

Page 11: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-11

人機介面 3 BOOL CE_rf_halt(HANDLE icdev); // 中止卡操作

BOOL CE_rf_read(HANDLE icdev, unsigned char _Adr, unsigned char*

_Data); // 讀數據,一次必須讀一塊

BOOL CE_rf_request(HANDLE icdev, unsigned char _Mode, unsigned

__int16 *TagType); // 尋卡請求

BOOL CE_rf_write(HANDLE icdev, unsigned char _Adr, unsigned

char*_Data); // 寫數據,一次必須讀一塊

圖3-9 專案範例之驅動流程。

3.2.2 專案範例之驅動流程探討

首先參考圖 3-9 所繪製的範例流程圖作解說。當主程式完成初始動作之後,便以兩條執行緒分工進行程式目標:一條隨時偵測觸控螢幕有無點擊之動

作,也就是員工選擇上班或下班之打卡;另一條則專心作 RFID 的相關初始化、聆聽卡片事件、讀取卡片、顯示、與寫入到檔案之系列動作。

Page 12: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-12

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

這種以兩條執行緒分工同時處理 UI 畫面以及通訊收發資訊的演算法

(algorithm)就是典型網路視窗型程式的寫法,非常重要!因為若不這樣寫,常常導致兩種結果:不是效能太差,就是根本程式執行不起來。究其原理也不

難理解,那就是網路型程式通常有許多的通訊協定導致沉重的編 /解碼負荷,若不以並行方式進行,則當在進行 UI 畫面更新(refresh)時,就會形成畫面停滯的現象。

圖3-10 TEST 程式對 RFID 的驅動流程。

但讀者或許要問:RFID 屬於網路型程式嗎?要回答這個問題之前,先來看一下圖 3-10 說明專案範例對於 RFID 之驅動流程。原來在初始、聆聽、與讀取 RFID 讀寫器之三大步驟中,各有一到多個 API 進行相關工作,換句話說,程式對裝置的操作複雜度並不亞於網路程式的動作,若不採並行處理,很

可能在讀取 RFID 時無法觸控螢幕,因此同樣適合以多執行緒演算法來設計軟體。

Page 13: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-13

人機介面 3 而圖 3-10 後續的步驟為顯示資訊及寫入資訊的動作,並非進行 RFID 的

寫入動作,而是 UI 的更新以及檔案的儲存。此測試程式並未對 RFID 卡片做寫入資料的動作,在本章末後的整合範例中,筆者會再介紹對 RFID 卡片做寫入資料的程式部份。我們先將 RFID 在此暫停一下,先繼續另一項人機介面的元件,最後再作一次整合之專案討論。

3.3 直流馬達之震動介面

3.3.1 馬達運作原理

以機械運動的驅動設備就屬馬達為代表,其控制物件是以控制器為核

心,以電力電子元件及功率變換裝置當作為執行機構。控制馬達的轉矩

( torque)、轉速和轉角能將電能轉換為機械能,進而實現對運動的控制。

直流馬達(direct current motor)能得到廣泛應用的主因是可以精確地控制馬達旋轉的速度或轉矩。它透過兩個磁場的交互作用而產生旋轉。定子(指

馬達的基本構造中,保持固定不動的部分)透過永磁體或受激勵電磁鐵產生一

個固定磁場,轉子(則指繞固定中心轉動的部分)由一系列電磁體構成,當電

流透過其中一個繞組時會產生一個磁場。

讀者可以查看相關百科與文件,得知直流馬達比交流馬達為佳的主因在

於控速方面比較簡單,只須控制電壓大小即可控制轉速,但此類馬達不宜在高

溫、易燃等環境下操作;又若是馬達中需要以碳刷作為 電 流 變 換 器

(Commutator)的部件(即:有刷馬達,brushed motor),還需要定期清理炭刷磨擦所產生的污物。還好相對於有刷之無刷(brushless)馬達,因為少了碳刷與軸的摩擦因此更加省電與安靜,但它的製作難度較高與價格也比較高。

至於馬達的速度則與施加的電壓成正比,輸出轉矩則與電流成正比,這

對於直流馬達的控制是一個挑戰,因為必須在工作期間改變直流馬達的速度。

相關的電路設計讀者可再參考廠商的實驗說明文件。

直流馬達驅動程式的函式相對簡單,它所提供之 API 僅僅 4 組:

Page 14: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-14

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

DeviceIoControl(m_hdcmotor, DC_SPEED_START, …); //馬達初始

DeviceIoControl(m_hdcmotor, DC_SPEED_STOP, …); //馬達結束

DeviceIoControl(m_hdcmotor, DC_SPEED_INCREASE, …); //馬達加速

DeviceIoControl(m_hdcmotor, DC_SPEED_DECTREASE, …); //馬達減速

本節之實驗程序摘要如下:將 DMA-2440XP 教學平台,和 PC 的串列埠

(serial port),USB 連接好,插上 12V 電源,上電;將編譯好的 DcMotor.exe透過 USB 線做檔案傳輸。實驗時可以分別點擊圖 3-11 之 UI 畫面的按鈕,確認是否可以控制直流馬達作停止、開始、以及增減速。

圖3-11 直流馬達之測試範例的介面。

3.3.2 手機震動之微型馬達

手機震動(vibration)之微型馬達屬於無刷直流馬達,微型馬達的致動方式相當多,除了與傳統馬達一樣可以用電磁方式驅動之外,亦可使用壓電

(piezoelectricity)、靜電(electrostatic)等方式。隨著製造技術的演進與各種應用的需求,馬達有走向小型化及「微型化」的趨勢。

以微機電技術(MEMS)所製造出來之感測器與致動器,已廣泛應用在醫療、汽車工業、環境生物技術等領域。其中相當新穎有趣的一項應用就是手機

震動,是在手機鈴響與靜音模式之外的人機介面模式。

回應本章一開頭的兩項議題:壓力訊號可與其它如光訊或音訊交互配

對,形成新的互動模式?觸覺以壓力之物理訊號是否也有成對的互動介面之關

係?是的,壓力訊號與光訊號的配對現今就以觸控螢幕最為著名,而壓力訊號

Page 15: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-15

人機介面 3 與音訊號的配對似乎可以各種樂器作為最佳代表!最後,我們看到手機的「觸

控」加上「回震」的配對互動可說開啟了另一種全新成對的人機介面感受!

3.4 觸控螢幕之即時介面

3.4.1 觸控螢幕的歷史回顧

讀者有無發現目前當紅的人機介面 -- 觸控螢幕,它的輸入輸出,也就是感測與致動訊號的配對情況是如何呢?先公布答案:就是將壓力訊號搭配光訊

號所組成!其實現在這種所謂「創新」的觸控介面,早在廿多年前就經常在大

型展場的導引機器螢幕上出現,沒有鍵盤的 CRT(陰極射線管)螢幕可方便

參觀者透過點選螢幕上的介紹區塊而了解展場的配置情形。而 PDA(個人數

位助理)的部份,記得也在民國 89 年左右國內的國眾電腦所推出的以觸控筆操作之第一台彩色 PDA E-Color 掌上型電腦,當時可謂為台灣 PDA 發展又立下一個新的里程碑。更不用說更早之前的各式如倚天傳訊王,及神乎其機等

股票機之單色或灰階掌上型電腦更早已採用觸控技術?

然而,無獨有偶地,還記得當時第一台最出名的蘋果電腦(Apple)之掌上型電腦 Newton 引領風騷之際,現在以「滑動(sliding)」之觸控聞名的 iPod、iTouch、與 iPhone 產品同樣又出自蘋果的手筆,其使用介面又再度引起風潮。iPod 系列之點擊式轉盤(click wheel)如何帶領 MP3 應用邁向登峰,進而讓

iTouch 接續其市場的利基,一直是讓工業設計界津津樂道的話題。

某種程度而言,當時與蘋果並存的微軟與現今的谷歌(Google)就這部份其實算是追隨者,但也因為微軟與谷歌所提供的使用環境(包括作業系統、

開發工具)相對而言較為普遍,以程式語言來說,蘋果內定的 Objective-C 就

比微軟所常見的 VC++、VC#,以及谷歌所常用的 Java JDK 等來得寡眾市場。

無論如何,如今不論是蘋果的 iPhone、谷歌的 Android 手機、Samsung的 Anycall、或是各式的山寨(Shanzhai)手機,它們的觸控螢幕早就已非當日吳下阿蒙,反而以全新姿態,無論是多點觸控(multi-touch)、手勢(gesture)命令、手機震動回應等等創新設計,屢屢吸引消費者的目光,成功開啟人因設

計的新頁!

Page 16: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-16

觸控設計之觀念與創意應用

嵌入式系統、人機介面與 Android專題實作

3.4.2 從專案說明觸控應用

本小節稱為「以 ARM9 2440XP 教學平台為基礎之數位家庭安全實作 -居家門禁系統」的範例專案是基於觸控螢幕作顯示與設定、以 RFID 作媒介、並輔以其它感測 /致動裝置的門禁系統雛型設計。除了以 VC#所設計之 PC 端管理員介面跳過不討論、而留給有興趣的讀者參考附錄 C 之外,以 VC++所設計之住戶端介面的使用流程都畫在圖 3-12 中,續將虛線所圈的三個部份逐一討論。

圖3-12 居家門禁系統範例專案之流程圖。

綠框 藍框

紅框

Page 17: 人機介面 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEE033300.pdf · 當然,最終的執行仍要回歸實體。本專案所採用的裝置設計是以ARM9 ... 正是當代的經典,當然還有像Linux、uCOS/uCOS-II

3-17

人機介面 3 圖 3-12 中的綠、紅、藍三組虛框正好依序對應本章 3.2 至 3.4 節的裝置:

綠虛框所包圍的門鎖偵測步驟確實是用 RFID 作為門禁裝置;紅虛框所包圍的警示裝置,雖然所用的是 Camera 加 LED 再加警鈴的音訊播放,但同屬致動器的範疇,若改用震動警示亦可。最後,藍虛框所包圍、關於住戶端之各式按鈕

功能,如送出訊號給管理員、設定與輸入密碼等等,都是藉由觸控螢幕的軟體

按鈕所觸發。

詳細的專案文件皆附於光碟片中,但擷取一些模擬器的畫面顯示於附錄 B中,從程式的執行、上鎖與解鎖、重設密碼、以及各個主次畫面之觸控操作都

有畫面擷取。讀者若有機會以實機加以測試將會發現,這個平台似乎只是將原

先滑鼠的功能改成觸控筆加以執行?!觸控筆是否並非全新的觸控機制?滑

鼠與觸控裝置之間的關係如何?這些議題都非常需要再作詳細的探討來釐

清,筆者安排於下一章進行相關的綜合比較。

圖3-13 居家門禁系統對 RFID 的驅動流程。