義大利教育學家蒙特梭利提出:「強調兒童主動探索,並著力於設計啟發性的教學情境和教具,讓兒童藉由具體操作來學習,不只是聽講。」因此,根據此裡念,本作品欲設計一套將平板電腦與筆的結合,並在畫圖過程中以聲音互動引導的方式,來帶領小朋友使用的繪圖觸控筆與Android 繪圖APP。而為了將畫圖的情境更融入實際生活的環境,還設計了情境地圖功能,透過找尋目前位置來對應出附近著名景點或是動物。此外,當小朋友畫圖完成還會出現景點或是動物的英文單字與動畫。換言之,在印象最深刻的當下,以手腦並用地學習英文與認識景點或是動物。
此作品顛覆了平常市面上所看到的觸控筆和塗鴉本等工具,並可以如同旅遊日誌方式來利用繪圖觸控筆紀錄遊玩的地點。此具備體感功能的繪圖觸控筆整合了HT66FU50微處理器與G-sensor加速度感測器來判斷使用者的姿勢與相對應的操作方式,以達到具備體感功能的人機互動的娛樂效果。最後,透過這兩種的結合帶來了更多具幼教於樂的互動性與知識性的體感學習裝置。
前言
義大利教育學家蒙特梭利提出:「強調兒童主動探索,並著力於設計啟發性的教學情境和教具,讓兒童藉由具體操作來學習,不只是聽講。」。一般在市面上,我們可以發現不論是書局所販賣的兒童英文教材,或是執行在行動裝置的兒童教材 APP,都會發現幾個類似的問題。就是在畫圖時都只能從畫面所提供的繪畫的範本來描繪一模一樣的圖案,不僅缺乏臨場感與真實感,也使得小朋友在畫圖時缺乏有趣的聲音做為引導,容易缺乏新鮮感與互動性。久而久之,這些繪本就束之高閣,造成無謂的浪費。
舉例來說,當爸爸與媽媽帶著小朋友到台北市立動物園遊玩。平板電腦可以根據定位來得知現在小朋友所在的位置後,打開專屬設計的繪圖本,小朋友就可在繪圖本裡選擇喜歡的動物,然後再搭配繪圖觸控筆來畫畫。完成後,繪圖本也提供動物的相關資訊,讓小朋友打鐵趁熱,學習新的知識、常識和英文單字。
此外,以往的繪畫APP在畫圖時,必須不斷切換畫筆顏色與橡皮擦的功能才能完成一幅畫。本作品認為在操作過程中多了很多不必要,且不直覺的操作方式。
因此,基於上述的問題,本作品設計一套Android 繪圖APP,提供以下基本功能:
1.調色盤與選色功能
2.多樣的動物繪圖範本
3.具備體感功能的繪圖觸控筆
4. 配合GPS的情境地圖
此外,利用盛群半導體公司所推出的HT66FU50 微處理器與整合G-sensor加速度感測器(DMARD07),並依照不同的體感數據來找出相對應的加速度值以作為判斷的依據。最後,把所得數據加以分析,並找出當下的體感姿勢後,再傳送給 Android 繪圖APP 作出相對應的操作動作。
工作原理
本作品利用HT66FU50 微處理器及搭配G-sensor加速度感測器(DMARD07)等兩個重要元件的應用設計。因此,以下,分別說明本系統的各個相關的製作原理。
HT66FU50微處理器
HT66FXX系列微處理器是一款具有A/D的8位元,高性能精簡指令集的Flash微處理器。其中,HT66FUX0多了UART模組之功能。
微處理器之CPU特性如下所列:
*提供暫停和喚醒功能,以降低消耗功率。
* 內部震盪(4MHz、8MHz和12MHz),無須外接元件。
*多種工作模式:正常、低速、閒置和休眠。
* 63條指令。所有指令都可在1或2個指令週期完成。 五種震盪模式:HXT、LXT、ERC、HIRC
和LIRC。
查表指令。
本作品使用HT66FU50的GPIO、AD和UART介面功能。如圖1所示,為HT66FU50之腳位圖。
G-sensor加速度感測器原理
G-sensor又稱三軸重力感測儀。G-sensor的原理即是偵測X、Y與Z軸等三維空間的變動,而得到實際的數值來加以應用。
而採用固態微機電(MEMS)製程的重力加速度感測器具有體積小、低耗電與低單價等優點。一顆三軸G-sensor加速度感測器可同時偵測三個軸向的運動。就便利性來說,加速度感測器屬於自主性元件,不須依靠外部輔助資訊。此加速度感測器一般是由利用表面微機電技術所製作的感測器單元、訊號條件電路和ADC所組成。
在此,以飛思卡爾(Freescale)的G-sensor加速度感測器為例,其感測器單元為一電感性的感測細胞(G-cell),是利用半導體多晶矽材料,以及光罩和蝕刻製程所製造的一種機械結構,並由彈簧、橫樑材質(Beam Masses)和栓繩(Tether)所組成,如圖2所示。
基本上,G-cell是由一組三個橫樑所構成的一種機械結構,中間橫樑是可移動的,而兩側橫樑則是固定住。當系統產生加速度時,便可利用中間移動式的橫樑和兩側固定式橫樑的位移差計算出重力加速度值。當系統維持靜止狀態或處於等速運動時,栓繩便會將中間可移動的橫樑拉至中心位置,類似彈簧的原理。
如圖3所示,為G-cell實體模型圖,其利用三個橫樑可形成兩兩相對的電感器。當有加速度發生時,中間橫樑會往加速度的相反方向移動導體上電容值有所變動,利用電容值的改變來推算出重力加速度的大小。
而如圖4所示,為本作品所使用的G-sensor加速度感測器-DMARD07(利順精密公司)接腳上視圖。表1則為各腳位的說明。由於本作品使用微處理器HT66FU50的I2C作為和G-sensor加速度感測器溝通,所以後者的Pin3和Pin12接至高電位(VCC);Pin1、Pin2、Pin5和Pin11接至低電位(GND)。其中,Pin3、Pin4間與Pin12、Pin11間分別並聯兩顆電容(0.1uF和10uF)作為穩壓之用。而其餘腳位則無使用。
藍牙無線傳輸協定
藍牙技術運作的原理主要是運用跳頻展頻技術(Frequency Hopping Spread Spectrum -- FHSS)方式[5-6],使藍牙晶片的兩端,以某一特定形式的窄頻載波同步地在2.4MHz 頻帶上傳送訊號。詳細來說,此 FHSS 的傳輸技術,是將欲傳輸的信號透 過一系列不同的頻率範圍廣播出去,而由傳送裝置先傾聽頻道(Listens Channel)。若偵測出頻道處於閒置狀態時,信號便由此頻道傳送出去;反之,若偵測出頻道為使用中,便使用跳躍程序進行傳送。重要的是,傳送與接收必定要同步切換頻道才可以正常接收資料。而藍牙最多可進行 1 對 7 的傳輸。除了資料之外,也可以使用 CVSD (Continuous Variable Slope Delta-Modulation)技術來進行語音傳輸及使用分時多工(TDMA)協定技術之通訊協定。
在藍牙技術中,無線電的發射功率為0dBm (Power Class 3),傳輸範圍約為 10m,將來可以達到 50 公尺。傳輸功率的範圍為 1mW 到 100mW (Power Class 1、2),傳送功率的大小與系統的需求有關。但是要達到 100mW 功率的傳輸時,則須在射頻前,再加上一個射頻放大器(Power Amp)裝置,以增益約為 20dBm 的功率放大。基本上,傳輸速率(Transfer Rate)理論上為 1Mbps,實際有效速率最高只可達 721kbps。
如圖5所示,藍牙通訊協定主要分為Radio 、Baseband ,Link Manager 、 L2CAP、HCI及Application Framework 等部分。其中,相關功能如下所列:
*Radio主要負責頻率的合成及雜訊過濾。
*Baseband主要處理訊息編碼,碼錯誤重送及跳頻機制等工作。
*LinkManager則負責有關Link 的建立、釋放,甚至於保密等工作。
*L2CAP主要負責不同通訊協定的多工處理、封包的切割及重組及服務品質等。
*HCI則提供 Bluetooth 與Host 間的介面控制,為一種與硬體無關的標準控制命令。
*Application Framework 部分,則依據應用所需提供如TCP/IP、HID (Human Interface Device)及RFCOMM 等應用程式介面。
本作品使用HL-MD08R-C2藍牙模組,其接腳圖以及說明如圖6所示。我們使用此藍牙模組的TX和RX作為繪圖觸控筆和平板的傳輸介面,並使用PIO8作為LED的正極;RESET腳設為接地,讓該藍牙模組處於活動狀態。
圖5 : 藍牙通訊協定階層圖(SIG Version) |
|
Android系統開發
由於Android系統本身的功能目前仍在逐漸增加和調整。因此,Android系統的開發也是一個重要的技術方向。這種類型的開發涉及Android軟體系統的各個層級。
Android系統開發的一個比較典型的範例就是,當系統需要某種功能時,為了提供呼叫的介面給Java層級的應用程式,需要從底層到上層的整體開發,其步驟如下:
(1) 增加C或C++的函式庫。
(2) 定義Java層級所需要的類別(系統API)。
(3) 將所需要的程式碼封裝成JNI
(Java Native Interface)。
(4) 結合Java類別和JNI。
(5) 應用程式呼叫Java類別。
如果涉及Android系統API的修改,則一定要慎重處理。因為系統API的修改可能涉及Android應用程式的不相容問題。
然而,在更多的時候,Android系統開發只是在不改變系統API的情況下,僅修正系統的缺陷,並增加系統的穩定性而已。Android系統開發的結構圖則如圖7所示。
Android的應用程式開發是Android開發的另一個技術方向。從開發的角度來看,這種形式的開發可以基於某個硬體系統,在沒有硬體系統的情況下也可以基於Linux或是windows下的Android模擬器來開發。這種類型的開發工作就位於Android系統的上層。
事實上,在Android軟體系統中,第三個層級(Java框架)和第四個層級(Java應用程式)之間的介面也就是Android的系統介面(系統API),這個層級是標準的介面。所有的Android應用程式都是基於這個層級的介面開發出來的。而Android系統的第四個層級就是一組內建的Android應用程式。
此外,針對一個Android應用程式開發者來說,其開發的應用程式其實和Android系統的第四層級的應用程式是同一個層級的內容。例如,Android系統提供了基本的桌面程式,開發者可以根據Android的系統介面,實作另外一個桌面程式,提供給使用者安裝使用。如圖8所示,Android 應用程式開發的結構圖。
系統設計
本作品設計方面主要分成兩個部分: 繪圖觸控筆韌體設計,以及Android 繪圖APP應用程式設計。本作品將繪圖觸控筆設計成有五個不同的使用功能,分別為:旋轉換色、搖搖調色盤、反筆橡皮擦、甩筆相機和按鈕快門。
繪圖觸控筆的韌體程式設計
韌體設計部分使用盛群微處理器HT66FU50,以及使用藍牙作為繪圖觸控筆和Android 繪圖APP之間的資料傳輸。其中,透過HT66FU50之GPIO腳位模擬I2C並與G-sensor加速度感測器做溝通,以取得目前感測器的輸出資料。此時,LED也會隨著不同的姿勢作出相對應的改變。可變電阻則是利用微處理器的AD腳位功能,來得知可變電阻之值。
如圖10所示,為韌體程式部分的流程圖。
Android 繪圖APP的應用程式設計
應用程式方面,本作品之APP是在Windows 系統中,下載 Eclipse 整合開發環境,並以Java程式語言撰寫Android應用程式。開發者可在Eclipse上安裝 Android開發工具(ADT) 擴充套件,接著下載 Android軟體開 發套件 (Software Development Kit, SDK),並將 SDK設定資料夾路徑至 Eclipse。而建置好開發環境後,便可開始撰寫 Android 應用程式。如圖11所示,為Android 繪圖APP軟體部分之流程圖。
當開啟Android 繪圖APP,首先會根據GPS的定位找出該地可提供小朋友繪畫的景物。目前則先以動物園為一主題,待GPS定位完成後會出現動物園的情境地圖和可提供小朋友繪圖之動物,來讓小朋友選擇。選擇完畢後會進入畫面,畫板上仍有提供傳統按鍵式功能,如:拍照、橡皮擦和調色盤等等。
其中,Android 繪圖APP提供另一不同之功能,名為「真實取色」,此功能可讓小朋友在照相機所擷取到的畫面中,點選自己所想要的顏色後,即可獲取照相機畫面中的顏色。這也讓小朋友在繪畫的過程當中更增加真實感。
在畫畫的過程當中,每個動作都有人聲來提醒與小朋友互動,同時也搭配了動物音效讓小朋友在畫圖時更具臨場感。在圖繪製完成後,會出現該動物的英文單字和動物相關的基本常識,同時也結合了人聲的導讀功能,幫助小朋友閱讀。
實驗與測試結果
G-sensor抓值和讀取可變電阻值測試
在整個實測上,首先,先於PC主機上插入藍牙接收器後,與繪圖觸控筆上的藍牙做配對,完成後,X-CTU應用程式上會出現virtual COM port。我們就可利用這virtual COM port來擷取當我們手拿不同方式或姿勢時的G-sensor加速度感測器之值。當我們手拿繪圖觸控筆的姿勢不同時,G-sensor的值也會跟著變化。例如: F1 00 FF 0D,由左到右來看的話,分別是X軸(F1)、Y軸(00)和Z軸(FF)。最後,0D表示X-CTU換行的意思。我們擷取各姿勢的X、Y和Z軸之範圍值,用來當作我們姿勢動作的判斷。此外,可變電阻的電位變化的擷取抓值是利用HT66FU50的AD功能腳位來得知可變電阻之值。將AD腳位所擷取到的值透過藍牙傳送至X-CTU應用程式做顯示。
Android 繪圖APP
Android 繪圖APP設計上,先撰寫藍牙接收/傳送程式,再利用X-CTU模擬實體之繪圖觸控筆來作測試。本作品以平板APP為Client端,繪圖觸控筆為Server端。當在平板APP輸入某一訊息後,透過藍牙傳輸傳送至X-CTU,X-CTU上會顯示出相同之訊息。接下來,同樣利用X-CTU來做測試。X-CTU利用藍牙傳輸傳送某一數值給平板APP後,平板APP上會出現相同之值。
最後,再開始撰寫當平板APP接收到繪圖觸控筆傳來的動作辨識之值時,APP所要做出相對應的動作。我們可透過繪圖觸控筆以甩動的方式來切換成一個甩筆相機的操作動作。此時,Android 繪圖APP就立即切換成可用來拍照的照相機。此外,擷取各個繪圖觸控筆所產生的不同動作可見G-sensor加速度感測器的範圍值。因此,使用者的繪圖觸控筆可根據感測器的輸出值切換成不同的APP操作介面。(本文作者為虎尾科技大學 資訊工程系許永和 教授、李柏箴)
結論
透過本作品所實現的繪圖觸控筆與Android 繪圖APP應用程式,可以提供家長與使用者另一種有別於市面上所看到的觸控筆和塗鴉本等工具。
其中,內建G-sensor加速度感測器的繪圖觸控筆後,就具備了體感的功能,並可根據不同的姿勢所產生的感測器輸出數值,來實現不同的繪圖與操控功能。而初步所設計的Android 繪圖APP可提高幼兒在學習的樂趣,並增加學習的記憶性與互動性。未來,可以根據不同類型的學習範圍加以增添,以延伸具備體感功能的繪圖觸控筆的附加應用價值。
參考文獻
[1]HT66FU50 Datasheet (PDF) -
Holtek Semiconductor Inc.[online] Available
http://www.alldatasheet.com/datasheet-pdf/pdf/334088/HOLTEK/HT66FU50.html
[2]線性加速器.[online] Available
sites.ccvs.kh.edu.tw/blog/lib/read_attach.php?id=
7208?
[3] DMARD07 Datasheet V1.0.[online] Available
http://www.domintech.com.tw/UserFiles/doc/DMARD07%20Datasheet%20V1.0.pdf
[4]藍牙運作原理與應用.[online] Available
http://www.shs.edu.tw/works/essay/2009/11/2009111500244012.pdf
[5]HL-MD08R-C2藍牙模組UART TTL Bluetooth v2.1+EDR Class2.[online] Available
www.hotlife.com.tw/HL-MD08R-C2.htm
[6]Androdi 2.X 手機程式設計入門、應用到精通。孫宏明
[7]Android的系統架構-陳鐘誠的網站.[online] Available
ccckmit.wikidot.com/ga:architecture