SEP4O2O在Linux下實現動作控制MP3
利用Freescale公司的FreeMASTER軟件,可以很方便地進行程序在線調試,查看程序所有全局變量,具體軟件和使用方法請查詢Frees-cfle管方網站。以下得到的數據為使用FreeMASTER欺件,以時間和AD轉換值為坐標繪圖得到。

每次每個方向采樣20個數據,由于第一個數據的可靠性比較大,所以采用每組數據的第一個數據作為比較依據。經過多次測試,當x方向的數值小于80時為右轉動作,x的方向的數值大于170時為左轉動作,y方向的數值小于70時為向上抬的動作,y方向的數值大于160時為向下壓的動作。雖然以上數據能表示動作,但人的動作時間相對單片機處理分析速度差別還是太大。為了解決這個問題,使單片機和動作同步,可以把前兩次的動作記錄下來,根據前兩次的動作對當前動作進行過濾:如果連續幾個相同的動作,就判斷為一次動作,不相同則切換。動作的切換必然帶有前后動作的變化,記憶之前的動作就可以判斷出有無動作切換。這樣的動作識別方法比較簡單且容易實現,如果要實現更為精確的識別,則需要對算法進一步優化。圖2為右搖時AD轉換器所得到的結果。圖3為前后左右擺動數據。
在判別動作后,通過串口通信協議,發送雙辦約定的動作ID,具體見表l

通過串口協議,核心板也可以對傳感器和單片機進行一定的控制,包括傳感器靈敏度調節,鎖定休眠功能,使得后期的測試開發更加的方便。
Linux操作系統作為平臺,其良好的系統可定制、可移植性使得其在嵌入式領域占有重要的地位。Linux有很多好的進程通信機制,如內存共享、管道、多線程、信號等,這里選擇信號作為控制通信的橋梁。利用Linux內部完整的串口驅動程序可以很輕松地通過在串口的軟中斷接收程序中發射信號給指定的程序,也就是播放器程序,然后播放器程序接收并判斷信號類型,給相應控制全局變量賦與相應的控制值,使得介入控制變得可能。控制使用的是播放器自帶的機制,使得更加地穩定可靠。使用Madplay作為MP3播放軟件,其默認的控制是通過終端鍵盤來實現的。在設計時為了達到用動作產生的信號量來控制播放,同時不去大量修改Madplay的程序源碼,可以通過截斷播放器與鍵盤的聯系,與串口連接上,這樣就可以基本不用修改上層的機制就能夠控制整個播放器的動作。
2.4MP3播放
MC9S08QG8與SEP4020之間通過串口來進行通信。
基本的串口操作原則是先保存串口原始的參數,然后再設置程序所需要的參數,程序結束后恢復現場。串口一般操作如下:

串口操作需要的頭文件
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論