新聞中心

EEPW首頁 > 消費電子 > 設計應用 > 手勢識別器的設計

手勢識別器的設計

——
作者:哈爾濱工業(yè)大學深圳研究生院 劉釗 原志杰 徐維昌 宋翔 張世琦 黃棋波 時間:2008-07-31 來源:世界電子元器件 收藏

硬件描述

本文引用地址:http://2s4d.com/article/86483.htm

  系統(tǒng)硬件分為兩個部分:CT-298和MM-2860。

  CT-298是由MC9S08QG構成、由USB總線電源供電的小型評估板。CT-298上安裝有按鈕開關、LED燈、蜂鳴器等作為開發(fā)的輸入輸出器件。同時,USB-COM轉換電路采用了FTDI公司制造的FT232R,容許與電腦之間通過USB接口進行串行通信。BDM用于代碼的燒寫及系統(tǒng)的調試。

  MM-2860是含有Freescale公司制造的MMA7260Q型三軸小量程的模塊,它可以直接安裝在CT-298為其設計的插口上。MM-2860的電源是由CT-298上的MC9S08QG8的PTB5端口來控制的,當PTB5端口為L時電源接通。此外,g-SELECT開關是選擇靈敏度的開關,使用時將MM-2860插入到CT-298的接口中即可。本系統(tǒng)采用的靈敏度選擇為800 mV/g。

軟件描述

  單片機主程序的流程如圖7所示。

 

  系統(tǒng)上電后,首先要對單片機的硬件系統(tǒng)進行初始化、配置寄存器等操作,之后才可以進行數據采集,將的值進行A/D轉換,得到量化的值。圖片菜單是二級菜單,如果沒有接到演示系統(tǒng)傳給單片機進入二級菜單的指令,則單片機一直在主程序運行,不斷地采集A/D值、進行動作判定,并向演示系統(tǒng)發(fā)送type_action的指令。演示系統(tǒng)可根據接收到的type_action的類型采取相應的動作。如果單片機接收到進入二級菜單的命令,則進入圖片菜單,同時也執(zhí)行類似于主程序的動作判定程序,并不斷更新A/D采樣值,發(fā)送type_action,直到接收到退出二級菜單指令才退出。下面詳細介紹一下各個功能模塊的具體設置。

 

  單片機系統(tǒng)主要的工作有:將加速度傳感器的模擬數據進行A/D轉換、向演示系統(tǒng)發(fā)送type_action的動作類型、接收演示系統(tǒng)發(fā)來的進出二級菜單的指令、設置采樣值,除此之外還需要對系統(tǒng)時鐘、外部設備(燈,buzzer)進行配置。根據單片機的主要工作內容選擇單片機內部的功能設備,包括A/D轉換器、模定時器、串行通信模塊(SCI)、內部時鐘源模塊。

  數據采集

  系統(tǒng)設置的采樣頻率為200Hz,每秒鐘分別對X、Y、Z 三軸采樣200個數據,因此定義了三個大小為N的數組對數據進行緩存,他們是:

char x_data[N];

char y_data[N];

char z_data[N];

  這里N取50,每0.25s存取一次,1s鐘可以存取4次,保證采樣率為200。函數void acce_meas(void) 負責將采樣的數據分別放到這三個數組中,下面是程序的具體實現:

for(j=0;j

{

for(i=0;i<3;i++)

{

if(i==0)

{

adc_go(0); //選擇A/D信道0

x_data[j]= ADC_val_L; //X軸

}

else if(i==1 )

{

adc_go(6); //選擇A/D信道6

y_data[j]= ADC_val_L; //Y軸

}

else

{

adc_go(7); //選擇A/D信道7

z_data[j]= ADC_val_L; //Z軸

}

}

delay(); //延時函數,用來設定采樣率

}

   動作檢測

  動作檢測主要是用獲得的三組數據值x_data[N]、y_data[N]、z_data[N]來判定當前動作是系統(tǒng)設定動作中的哪一個,如果符合,則發(fā)送這個動作對應的預定義值給演示終端,否則發(fā)送NO_ACTION。type_dectction()用來實現動作檢測,其中type_move為函數內部變量,用于記錄動作代碼。type_dectction()進行動作檢測的流程如圖8所示。

 

演示終端

  J2ME平臺開發(fā)環(huán)境配置

  進行J2ME的開發(fā)需要從網絡上下載免費的開發(fā)環(huán)境。運行Eclipse后進行最后的配置:Window->preferences->J2ME->Platform Component然后右鍵選擇 Wireless Toolkil,再選擇彈出菜單中的 Add Wireless Toolkil,選擇剛剛安裝的J2ME Toolkit的安裝路徑: C:WTK22,這樣基本配置就完成了。

  J2ME的WTK開發(fā)包是專門針對移動無線設備而設計的開發(fā)包,并提供了一個統(tǒng)一的平臺。在WTK的框架下開發(fā)出來的java程序可以被眾多的所支持,能夠有效解決兼容性的問題。

 

  程序分為主進程、串口監(jiān)視模塊和定制化用戶界面三大部分,分別基于J2ME不同的類庫派生而成,三部分之間通過消息機制相互聯系,共同構成整個程序的運行周期。具體每個模塊所實現的功能參考下節(jié)內容。

  軟件應用程序的組織結構

  本軟件應用程序在WTK的手機仿真器下進行設計,分為Base和display兩個package。在Base Package中包含MainRoutine.java和RS232Port.java兩個java文件;在display Package中的文件較多,主要實現了UI和基本的key響應。下面介紹軟件部分的實現方法:

  ·MainRoutine類

  MainRoutine為程序的入口類,它整合了程序中的所有的對象。MainRoutine派生于MIDlet類,重載實現了MIDlet中的startApp、pauseApp、destroyApp等方法,并且在constructor中加入了exitCommand命令,從而實現了手機的關機功能。

  可以看出MainRoutine實現了程序的入口和退出,并同時標志了程序的基本框架,給具體的功能應用打下了堅實的基礎。

  ·vCanvas類

  vCanvas繼承了Canvas類,并增加了externalMsg方法。之所以在其中增加externalMsg方法,是因為其超類Canvas不能動態(tài)地響應key,而我們對Canvas的要求是能夠通過對串口導入的數據(或按鍵)得到的keyCode做出相應的動作,比如圖片的翻轉、文本的滾動等等。于是,我們可以通過vCanvas派生出一系列的子類,實現我們的具體要求,為將來的開發(fā)提供了方便。

  ·DisplayItem類

  DisplayItem是基礎類,提供了通用的string數據組合。該類的構造方法中需要輸入shortText、longText和extra三個string參數,這樣就保證了每個DisplayItem都可以返回三個不同長度的文本信息,在不同的場合使用。其中shortText用于UI中的標題顯示,longText為Item的主體內容,extra為Item的附加信息。 DisplayItem類在本系統(tǒng)中會被例化來描述菜單和子功能的內容,是應用廣泛的一個基礎類。

  ·ImageCanvas類

  ImageCanvas同樣繼承于基礎類vCanvas,它的主要功能是實現了對圖片的瀏覽及旋轉、鏡像等基本操作。

  考慮到目前使用手機瀏覽圖片、拍攝圖片的多方向性,如果能夠通過加速度傳感器自動校正圖片的方向,使它自動滿足我們想要的方向,那么我們就免除了很多不必要的麻煩。于是我們對圖片的瀏覽功能模塊增加了向左或者向右旋轉90°的功能。這樣用戶就會驚喜地發(fā)現無論他的手機怎樣擺放,顯示的圖片將永遠保持與地面垂直。

  ·ListCanvas類

  ListCanvas提供了主畫面的顯示能力,并將用戶操作派生到內部聚合成員上面去。具體功能的Item將包含在ListCanvas之中,每一個Item擁有顯示在屏幕上的ShortItem,顯示在detail screen中的LongText,還有不被顯示的ExtraText,當然其信息我們也是可以得到的。在ListCanvas中,我們可以用“右鍵”顯示Item的詳細信息,也可以用SELECT鍵來標記每個Item。

  ·ItemListCanvas類:

  ItemListCanvas同樣繼承了vCanvas類,實現了多條目文本瀏覽的功能,構造方法的輸入依次為Display、Displayable、Font、Title和ItemVector。將多條String構造為一個Vector傳遞給ItemListCanvas后,該類能夠提供一個多條目文本實現的用戶界面。本系統(tǒng)的“關于本系統(tǒng)”子功能就是通過實例化該類得到的。

結論

  本系統(tǒng)采用Freescale的單片機MC9S08QG和加速度傳感器MMA7260Q實現了便攜式手持設備的手勢控制,并采用了開放的J2ME平臺實現了終端應用程序。系統(tǒng)完整,實用性強,成本低廉,在滿足用戶基本操作需要的同時,增加了操作的趣味性和靈活性。同時,加速度傳感器MMA7260Q較小的體積和獨特的節(jié)電模式更使其在的應用中有著極大的優(yōu)勢??梢灶A見,在未來的手持設備系統(tǒng)中會大量采用類似的手勢識別功能,因此具有廣闊的市場應用前景。

軟件應用程序

  單片機硬件初始化

上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉