基于nRF24L01和Actel FPGA的智能探測系統(tǒng)設(shè)計(jì)
3、系統(tǒng)軟件設(shè)計(jì)
3.1車載控制系統(tǒng)軟件設(shè)計(jì)
車載系統(tǒng)是本系統(tǒng)的核心部分,它擔(dān)負(fù)著現(xiàn)場環(huán)境探測,遠(yuǎn)距離數(shù)據(jù)傳輸以及未知區(qū)域檢測等重要功能。因此該部分的設(shè)計(jì)對可靠性和穩(wěn)定性要求較高。系統(tǒng)的軟件流程圖如圖4所示。
圖4車載控制系統(tǒng)流程圖
車載系統(tǒng)軟件包含兩部分功能:采集現(xiàn)場各種參數(shù)和實(shí)現(xiàn)各種運(yùn)行模式。通過溫濕度傳感器和人體紅外傳感器采集溫濕度值以及現(xiàn)場環(huán)境是否有人信號;通過無線返;回參數(shù)決定當(dāng)前小車的運(yùn)行模式,包括自動(dòng)運(yùn)行模式、半遙控模式和全遙控模式。自動(dòng)運(yùn)行模式下小車會根據(jù)采集到的光電對管組信息分析當(dāng)前的路況,從而作出相應(yīng)運(yùn)行路徑修正處理;半遙控模式下通過鼠標(biāo)控制Windows界面的參數(shù)來控制小車的行動(dòng);全遙控模式下通過操控鍵盤可直接操控小車運(yùn)行。
車載系統(tǒng)自動(dòng)運(yùn)行時(shí),通過內(nèi)部算法進(jìn)行路徑選擇和障礙規(guī)避。由于光電對管組信息相對較少,故采用查表映射法進(jìn)行舵機(jī)電機(jī)驅(qū)動(dòng)控制,即將光電對管組采集到的信息進(jìn)行分類,根據(jù)不同的信息賦予小車不同的電機(jī)和舵機(jī)驅(qū)動(dòng)值,而光電對管組采集得到的信息為6 bit數(shù)據(jù),也就是數(shù)值為0~63,將其作為數(shù)組的下標(biāo),在數(shù)組內(nèi)容中根據(jù)下標(biāo)所表征的類型設(shè)置不同的經(jīng)驗(yàn)值,通過大量的運(yùn)行測試即可得到比較理想的參數(shù)。車載系統(tǒng)檢測到小障礙物時(shí),查表得到舵機(jī)電機(jī)參數(shù),轉(zhuǎn)過一定角度繞開障礙物繼續(xù)運(yùn)行;檢測到較大障礙物且無法繞過時(shí),車載系統(tǒng)倒車回到安全區(qū)域繼續(xù)運(yùn)行。
由于光電對管組存在干擾信號,在算法上進(jìn)行了如下濾波處理:利用記憶功能將前幾次的行進(jìn)路線保存,通過與當(dāng)前輸出狀態(tài)的比對,判斷是否為干擾信息以決定是否摒棄當(dāng)前控制量。
以上算法保證了車載系統(tǒng)在運(yùn)行中出錯(cuò)概率降到最低。
3.2人機(jī)交互界面設(shè)計(jì)
A機(jī)交互界面是采用微軟基礎(chǔ)類(MFC)開發(fā)的基于對活框架構(gòu)的應(yīng)用程序。采用CMSComm類處理中轉(zhuǎn)板與PC之間的串口通信,同時(shí)通過截獲軟件系統(tǒng)的消息傳遞函數(shù)來實(shí)現(xiàn)對鍵盤值的判斷。
本文詳細(xì)介紹了nRF24L01無線芯片的DPL和ACKPAYLOAD等功能,實(shí)現(xiàn)了車載系統(tǒng)與上位機(jī)之間的雙向通信,使用Actel公司的CoreConsole工具構(gòu)建SoPC片上系統(tǒng),同時(shí)設(shè)計(jì)了PC機(jī)上人機(jī)交互界面,完善了系統(tǒng)的運(yùn)行和控制,實(shí)現(xiàn)了具有實(shí)時(shí)數(shù)據(jù)傳送、自動(dòng)避障、遠(yuǎn)程操控等功能的智能探測系統(tǒng)。
評論