SEP4O2O在Linux下實現(xiàn)動作控制MP3
利用Freescale公司的FreeMASTER軟件,可以很方便地進行程序在線調(diào)試,查看程序所有全局變量,具體軟件和使用方法請查詢Frees-cfle管方網(wǎng)站。以下得到的數(shù)據(jù)為使用FreeMASTER欺件,以時間和AD轉(zhuǎn)換值為坐標繪圖得到。
每次每個方向采樣20個數(shù)據(jù),由于第一個數(shù)據(jù)的可靠性比較大,所以采用每組數(shù)據(jù)的第一個數(shù)據(jù)作為比較依據(jù)。經(jīng)過多次測試,當x方向的數(shù)值小于80時為右轉(zhuǎn)動作,x的方向的數(shù)值大于170時為左轉(zhuǎn)動作,y方向的數(shù)值小于70時為向上抬的動作,y方向的數(shù)值大于160時為向下壓的動作。雖然以上數(shù)據(jù)能表示動作,但人的動作時間相對單片機處理分析速度差別還是太大。為了解決這個問題,使單片機和動作同步,可以把前兩次的動作記錄下來,根據(jù)前兩次的動作對當前動作進行過濾:如果連續(xù)幾個相同的動作,就判斷為一次動作,不相同則切換。動作的切換必然帶有前后動作的變化,記憶之前的動作就可以判斷出有無動作切換。這樣的動作識別方法比較簡單且容易實現(xiàn),如果要實現(xiàn)更為精確的識別,則需要對算法進一步優(yōu)化。圖2為右搖時AD轉(zhuǎn)換器所得到的結(jié)果。圖3為前后左右擺動數(shù)據(jù)。
在判別動作后,通過串口通信協(xié)議,發(fā)送雙辦約定的動作ID,具體見表l
通過串口協(xié)議,核心板也可以對傳感器和單片機進行一定的控制,包括傳感器靈敏度調(diào)節(jié),鎖定休眠功能,使得后期的測試開發(fā)更加的方便。
Linux操作系統(tǒng)作為平臺,其良好的系統(tǒng)可定制、可移植性使得其在嵌入式領(lǐng)域占有重要的地位。Linux有很多好的進程通信機制,如內(nèi)存共享、管道、多線程、信號等,這里選擇信號作為控制通信的橋梁。利用Linux內(nèi)部完整的串口驅(qū)動程序可以很輕松地通過在串口的軟中斷接收程序中發(fā)射信號給指定的程序,也就是播放器程序,然后播放器程序接收并判斷信號類型,給相應控制全局變量賦與相應的控制值,使得介入控制變得可能。控制使用的是播放器自帶的機制,使得更加地穩(wěn)定可靠。使用Madplay作為MP3播放軟件,其默認的控制是通過終端鍵盤來實現(xiàn)的。在設(shè)計時為了達到用動作產(chǎn)生的信號量來控制播放,同時不去大量修改Madplay的程序源碼,可以通過截斷播放器與鍵盤的聯(lián)系,與串口連接上,這樣就可以基本不用修改上層的機制就能夠控制整個播放器的動作。
2.4MP3播放
MC9S08QG8與SEP4020之間通過串口來進行通信。
基本的串口操作原則是先保存串口原始的參數(shù),然后再設(shè)置程序所需要的參數(shù),程序結(jié)束后恢復現(xiàn)場。串口一般操作如下:
串口操作需要的頭文件
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論