基于口令識別的無線控制系統(tǒng)的設計
2.2.2 指令發(fā)送方法
主機的另一個任務是指令發(fā)送。發(fā)送指令通過單獨進程控制。該進程工作主要有:
(1)首先調用Windows CE API函數(shù)CreateFile()打開串口。主機以獨占的方式打開串口2。
(2)之后通過調用API函數(shù)SetCommState()來設定串口波特率。主機設置串口波特率9600,數(shù)據(jù)位8位,停止位1位,無奇偶校驗。
(3)通過調用write()函數(shù)來寫需要串口發(fā)送的指令。通過read()函數(shù)來讀取串口發(fā)送過來的數(shù)據(jù)。
(4)程序結束后,調用CloseHandle()函數(shù)來關閉串口。
以上口令識別算法和指令發(fā)送已進行多次優(yōu)化,滿足系統(tǒng)對算法的要求。
2.2.3 智能車程序
智能車部分主要任務為接受指令和控制電機。
程序從main函數(shù)開始后,首先初始化單片機內部寄存、配置串口、電機復位等。之后就等待串口數(shù)據(jù)的輸入。該過程是一個接受指令、解析指令、執(zhí)行指令、讀取車狀態(tài)、發(fā)送狀態(tài)的一個循環(huán)。接受指令是單片機通過串口接受無線模塊發(fā)送過來的指令數(shù)據(jù)。解析指令是指根據(jù)設定的協(xié)議,單片機判斷指令數(shù)據(jù)完整性并提取關鍵數(shù)據(jù)。執(zhí)行指令是指單片機根據(jù)關鍵數(shù)據(jù)執(zhí)行相應代碼,例如:向前走、停止、左轉等。讀取車狀態(tài)是指單片機讀取車上溫度傳感器的數(shù)據(jù)。發(fā)送狀態(tài)是指小車打包狀態(tài)數(shù)據(jù)并發(fā)送的過程。
2.3 通信設計
通信設計主要是通信協(xié)議的設計。作為應用在嵌入式系統(tǒng)中的通信協(xié)議,應該滿足完整性、便捷性等。本文設計的通信幀結構如圖4所示。本文引用地址:http://cafeforensic.com/article/159368.htm
傳輸?shù)膸衅邆€字節(jié)組成,其中開頭和結尾兩個字節(jié)是幀頭和幀尾。第二第三字節(jié)是目標地址,第四第五字節(jié)是數(shù)據(jù)。第六字節(jié)是校驗位。在傳輸過程中發(fā)生的一些小錯誤。通過接受的幀的校驗位來排除,有一定的抗干擾性。
3 實驗與總結
3.1 實驗結果
本文中取常用口令“前進”,“后退”,“左轉”等8個單詞為一組,進行實驗。共設置三組實驗。第一組試驗中,測試系統(tǒng)口令識別的準確率,分別用說話者A,B,C,D四個人進行以上口令識別,實驗結果中系統(tǒng)識別率達到了90%。第二組試驗中,測試無線系統(tǒng)的傳輸距離。本文將無線模塊接收端和客戶端相分離,至到接收端無法接受到發(fā)送端的數(shù)據(jù)位置。實驗結果是傳送數(shù)據(jù)可以穿過一面墻,傳輸距離可到達30m。第三組實驗為綜合測試,即應用測試。試驗中,測試者可以很方便的控制智能車運動和狀態(tài)。
3.2 總結
口令識別的應用使人對機器人控制更加方便。本文在廣泛應用的WinCE嵌入式平臺上實現(xiàn)了智能車無線控制系統(tǒng)。實驗結果表明,口令識別率達到了90%。在主機正確識別的口令中,智能車的誤操作概率為零。與之前孤立的口令識別系統(tǒng)或控制系統(tǒng)相比,本系統(tǒng)首先應用方便,口令識別準確率高。其次,接口模塊化,通過改變無線數(shù)據(jù)傳送方式可以增加多個節(jié)點控制,便于管理?;诳诹钭R別的無線控制系統(tǒng)具有很好的便捷性和擴展性。尤其是基于嵌入式的該系統(tǒng),具有很廣泛的應用前景。
評論