EZ430 Chronos 開發設想 :廣義手勢語言

EZ430 Chronos 開發設想 :廣義手勢語言算法

終於收到了代購的開發套件,這幾天都在思考究竟用它來開發一款什麼樣的有趣應用呢? 終於在昨天肯定了開發設想:手勢語言,充分利用套件的3軸加速度感應器,捕捉手勢數據,再根據預先設定的對應模型翻譯成字符、數字或者指令,能夠把翻譯結果保留在手錶內存/FLASH裏,等到聯機時再用RF傳到PC上,也能夠直接就用RF同步傳送到PC上。編程

爲何起名爲「廣義手勢語言」,而不是「手勢交互」或者「手勢輸入」?由於準備設計一個比較全面的手勢語言系統,相似於手語之類的,固然,仍是一步步來,不可能一次就搞定,分階段進行,最終可以跟實際的天然語言一一對應。架構

這種手勢語言跟MCU結合緊密,好比能夠直接利用手勢來輸入程序指令(好像須要編譯才能夠運行,後面再關注細節),能夠直接在手錶上把特定的三軸座標翻譯成指令來操做MCU的底層硬件(好比啓動一個程序、進入程序的菜單進行設置,確認設置結果,等等),也能夠利用手勢來開啓/關閉無線傳輸,還能夠用手勢來代替按鈕的功能,調用不一樣的內置程序,修改設置什麼的,好比調整時間,調整日期。架構設計

現階段主要以手腕上能夠方便佩戴的 chronos 爲手勢輸入源,後續有必定進展後計劃使用手套式傳感器,每一個手指頭上都放置一個相似的三軸傳感裝置,由於手指的移動範圍更靈活,更省力,能夠創造更豐富簡單的手勢語言。翻譯

這個設想的難點是對於手勢語言的設計,至於利用 chronos 收集手勢信號,分析三軸數據並轉換爲有意義的語言,這些均可以經過建模編程來實現,都是一些按圖索驥的工做,難度不是很高。設計

 

【 20120703更新:】內存

難點仍是在前面的設計,由於屬於無中生有地創造一個新體系--雖然能夠參考一些現有的資料,不過難度仍是比較大,至於後面的軟硬件實現,就是按圖索驥了,只要保證不出錯,再兼顧一下手勢識別算法的效率(這塊可能有較多改進餘地),就能夠了。開發

綜合來講,主要有下面2個難點:
一、高難度:設計手勢語言的各類手勢,以及對應的含義,要符合人類的習慣(就是順着關節的運動,不搞特別彆扭的),要有較大信息帶寬,各個手勢不要太類似--要從架構設計層面來下降識別算法的難度;
二、中難度:手勢識別算法模塊,把各類手勢對應的3軸變化數據創建對應關係,儘可能下降誤判,儘可能下降算法複雜度(先考慮時間複雜度,再考慮空間複雜度)。同步

須要避免無心觸發,因此我這幾天在考慮是否在觸發手勢發出後再啓動一個5秒定時器來等待一個確認手勢,如今想到一種很方便的觸發手勢:
一、手腕靜止3秒;
二、迅速翻轉手腕180度,保持2秒;
三、再次迅速翻轉手腕-180度(反方向轉動返回原來位置)。編譯

確認手勢:(LCD顯示提示是否進入手勢捕捉狀態)
一、手腕迅速轉動90度,不保持;
二、手腕迅速轉動-90度(反方向翻轉恢復原位),不保持;
三、手腕迅速轉動90度,不保持;
四、手腕迅速轉動-90度(反方向翻轉恢復原位),不保持;
其實確認手勢就是連續2次快速轉動90度

這個廣義手勢語言的設想有些太大,因此也沒期望一步登天地短時間內迅速搞定,不過能夠一步步來,先識別簡單手勢,再識別複雜手勢,能放在CC430上處理的算法就放在CC430上,過於複雜的手勢算法就由PC來實現,讓手錶在沒法識別時就把未知手勢的所有3D座標打包發給PC,總之思路是很豐富的。

過段時間會先實現一些簡單的指令性的手勢,好比:
一、啓動手勢識別;
二、關閉手勢識別;
三、用手勢調用溫度顯示程序;
四、用手勢調用秒錶程序,顯示上次狀態;
五、用手勢開關秒錶程序;
六、用手勢調用時間程序;
七、用手勢調整時間。

估計須要預先設計出如下手勢: 一、啓動手勢識別的手勢; 二、關閉手勢識別的手勢; 三、確認的手勢; 四、取消的手勢(默認超時無確認就是取消); 五、調用某個程序的手勢(實際上是用手勢進入那個菜單選擇,包括進入主菜單,進入子菜單); 六、10個數字輸入的手勢(感受這個最麻煩)

相關文章
相關標籤/搜索