關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 用加速度傳感器來進(jìn)行手勢識別器的設(shè)計

用加速度傳感器來進(jìn)行手勢識別器的設(shè)計

作者: 時間:2012-12-21 來源:網(wǎng)絡(luò) 收藏

仿真器的外觀和操作類似一部移動電話,但是并不代表某個特定的設(shè)備,而是提供對其所支持的API 的正確實現(xiàn),每個命令按鈕對應(yīng)著相應(yīng)的API函數(shù)。從圖6中可以看到手機(jī)的導(dǎo)航鍵,我們更改了導(dǎo)航鍵的API函數(shù),使其從鼠標(biāo)單擊觸發(fā)的方式轉(zhuǎn)換為串口動作代碼控制。首先,我們編寫了J2ME的串口接收程序,用于接收從單片機(jī)傳來的單字節(jié)的type_action值;然后將type_action以參數(shù)的形式傳給API,手機(jī)根據(jù)不同的type_action值執(zhí)行不同的動作,包括菜單上下翻、進(jìn)出二級子菜單、圖片翻轉(zhuǎn)等。手機(jī)動作與type_action的對應(yīng)關(guān)系如表3。

根據(jù)type_action的值,在手機(jī)界面上產(chǎn)生相應(yīng)的動作,手機(jī)界面發(fā)送不同的變化。演示終端的具體實現(xiàn)在下面的內(nèi)容詳細(xì)介紹。

硬件描述

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

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

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

軟件描述

單片機(jī)主程序的流程如圖7所示。

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

單片機(jī)硬件初始化

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

數(shù)據(jù)采集

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

char x_data[N];

char y_data[N];

char z_data[N];

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

for(j=0;j

{

for(i=0;i3;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(); //延時函數(shù),用來設(shè)定采樣率

}

傳感器相關(guān)文章:傳感器工作原理


風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理
蜂鳴器相關(guān)文章:蜂鳴器原理
加速度計相關(guān)文章:加速度計原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉