新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于體感算法的多功能藍牙遙控器的設計

        基于體感算法的多功能藍牙遙控器的設計

        作者: 時間:2013-10-10 來源:網絡 收藏


        算法的主要流程為:(1)對角速度進行采樣,并進行數字濾波;(2)對加速度進行采樣,并進行數字濾波;(3)通過加速度傳感器數據對陀螺儀的坐標軸進行旋轉;(4)計算鼠標兩個軸的偏移量;(5)通過鍵盤掃描得到鼠標按鍵鍵值;(6)通過HID協議將鍵值發送給服務端。數據流程如圖2所示。


        3.2 狀態機

        軟件通過狀態機控制遙控器處于不同的工作狀態。該狀態機包括配對狀態、重連狀態、連接狀態和休眠狀態。遙控器狀態示意圖如圖3所示。

        (1)睡眠狀態。系統開機首先進入睡眠模式,當按下任意按鍵(配對鍵除外)或者搖動遙控器時,遙控器被喚醒,如果遙控器中已經存有重連信息(最近一次與之配對的主機信息,包括BD Address和Pin Code)并且電量足夠則進入重連狀態,否則繼續停留在睡眠狀態。在睡眠狀態中,遙控器將關閉微控制器、藍牙控制器、加速度傳感器、地磁傳感器、E2PROM、語音模塊以及所有LED,鍵盤和數字陀螺儀仍保持工作,但會降低采樣頻率,用作喚醒系統之用。

        (2)重連狀態。進入重連狀態后,遙控器讀取重連信息并嘗試與最近一次配對的主機進行重連。如果重連成功則進入工作狀態,如果多次重連失敗則重新進入睡眠狀態。在重連狀態中,加速度傳感器、地磁傳感器、數字陀螺儀和語音模塊將被關閉。

        (3)配對狀態。在任意狀態下,如果用戶按下配對鍵(工作模式下需要長按配對鍵),則遙控器清除重連信息并進入可發現狀態。這時主機可以發現遙控器,并進行配對操作。在可發現狀態中,加速度傳感器、地磁傳感器、數字陀螺儀和語音模塊將被關閉。

        (4)連接狀態。進入工作狀態后,如果用戶長時間不使用遙控器,系統會增長sniff的間隔來降低功耗,最后會使系統進入睡眠狀態。如果主機主動斷開,連接系統則進入睡眠狀態,如果連接意外斷開,則系統會進入重連狀態。在工作狀態中,遙控器會根據不同的報文格式來選擇所需的傳感器和模塊并控制是否給其供電,而且選擇不同的sniff間隔以減少功耗。

        通過樣機的使用和測試,本設計方案中的遙控器解決了一般體感遙控器存在的主要問題[5]:(1)做到了高性能與低成本的平衡:HL1010中的微控制器不僅滿足了遙控器的性能要求,與一般的藍牙控制芯片比較,不需要在外部另加微控制器,大大降低了成本;(2)有良好的抗環境干擾:方案中選用的藍牙通信技術具有高速、高帶寬和高保真等特點,并且運用調頻技術可有效地防干擾;(3)功耗低:遙控器通過電源管理模塊、狀態機控制和連接時的長短sniff狀態切換,有效降低了功耗,睡眠狀態時電流在100 ?滋A以下,空中鼠標狀態下,短sniff時電流為5 mA左右,長sniff時電流為1 mA左右;(4)良好的用戶體驗:空中鼠標中加入了后,用戶無論以什么姿勢握住遙控器都可以輕松地控制鼠標,加入了防抖程序后空中鼠標可以過濾掉用戶手部的細微抖動,增加了控制的精確度,在縮短sniff間隔后遙控器可以做到每1000幀/s以上的報告速率,可以完成某些高要求的體感游戲的控制。遙控器中的鍵盤功能和語音功能實現比較簡單,并且與無關。

        紅外遙控器相關文章:紅外遙控器原理

        萬能遙控器相關文章:萬能遙控器代碼


        加速度計相關文章:加速度計原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 湾仔区| 珲春市| 喀什市| 集贤县| 方城县| 刚察县| 黄骅市| 清水县| 福贡县| 汶川县| 安庆市| 虎林市| 策勒县| 广元市| 海南省| 溧阳市| 浏阳市| 五莲县| 石楼县| 高台县| 镇雄县| 英超| 介休市| 遂平县| 滦平县| 卢湾区| 兴义市| 都安| 盖州市| 定远县| 会昌县| 河南省| 岳池县| 元阳县| 策勒县| 蒲城县| 鹤山市| 板桥市| 武穴市| 金湖县| 江华|