關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 用加速度傳感器來進行手勢識別器的設計

        用加速度傳感器來進行手勢識別器的設計

        作者: 時間:2012-12-21 來源:網絡 收藏

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

        根據type_action的值,在手機界面上產生相應的動作,手機界面發送不同的變化。演示終端的具體實現在下面的內容詳細介紹。

        硬件描述

        系統硬件分為兩個部分:CT-298和MM-2860。

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

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

        軟件描述

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

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

        單片機硬件初始化

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

        數據采集

        系統設置的采樣頻率為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;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(); //延時函數,用來設定采樣率

        }

        傳感器相關文章:傳感器工作原理


        風速傳感器相關文章:風速傳感器原理
        蜂鳴器相關文章:蜂鳴器原理
        加速度計相關文章:加速度計原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南昌县| 兴仁县| 平顶山市| 宜川县| 崇明县| 娱乐| 和田市| 大城县| 潞西市| 迭部县| 鹤庆县| 云龙县| 武鸣县| 开封县| 德庆县| 贵港市| 平舆县| 湖口县| 遂昌县| 康乐县| 梧州市| 东乌珠穆沁旗| 淮阳县| 博爱县| 军事| 文化| 通州市| 惠来县| 保亭| 绍兴市| 邛崃市| 绵阳市| 永平县| 大竹县| 文登市| 明光市| 方城县| 正镶白旗| 广州市| 咸宁市| 涿州市|