基于Matlab GUI的PC機與智能車(chē)的無(wú)線(xiàn)通信
引言
在以速度決定優(yōu)劣的飛恩卡爾智能車(chē)比賽中,任何因素都可能影響小車(chē)的運行。為了滿(mǎn)足對小車(chē)在賽道中各種狀態(tài)精確分析的需求,上位機的效據采集與處理要求通信波特率高、信號傳輸穩定、不丟包、數據處理量大、數據處理及時(shí)等。在基于Matlab環(huán)境下的串口通信中,查詢(xún)方式下的非實(shí)時(shí)串行通信技術(shù)對實(shí)時(shí)性要求很高的智能車(chē)通信有很大的局限性。而在目前普遍采用的中斷機制下的通信雖然可以滿(mǎn)足實(shí)時(shí)性的需要,卻需要修改Matlab自帶的instrcallback回調函數。程序調試過(guò)程中慘改了回調函數后,需要重新啟動(dòng)Matlab才能使得新的回調函數文件生效。由此可以看出,其操作復雜易出錯,且instrcallback函數接收到保存在工作空間的數據不能被GUI組件的函數實(shí)時(shí)調用。故此方式在需要對多組數據進(jìn)行分別作圖分析時(shí),往往生成多個(gè)零散圖形窗口。為了滿(mǎn)足智能車(chē)的實(shí)時(shí)通信需求,同時(shí)使基于Matlab GUI的通信界面更加簡(jiǎn)潔,本文提出了一種將事件中斷函數寫(xiě)入GUI組件函數中的方式。
Matlab是由美國Mathworks公司開(kāi)發(fā)的面向理論分析研究及工程設計處理和繪圖的一套具有強大功能的軟件系統。Matlab運行穩定、可靠,使用方便,是廣大科研人員進(jìn)行科學(xué)研究的得力助手。從Matlab6.0版本開(kāi)始,Mathworks公司在軟件中增加了設備控制箱(instrument control toolbox),提供了對RS-232/RS-485通信標準的串口通信的正式支持。Matlab GUI(Graphic User Interface)是內置于Matlab的進(jìn)行圖形界面開(kāi)發(fā)的模塊。本文主要介紹在Mariab GUI環(huán)境下,上位機與智能車(chē)進(jìn)行實(shí)時(shí)通信盼辦法。該方法較之使用VC/VB高級語(yǔ)言編程,
大大縮減了開(kāi)發(fā)時(shí)間,提高了開(kāi)發(fā)效率。另外,較之傳統的RS-232接口,使用藍牙接口能夠更大范圍地全方位進(jìn)行數據傳輸和采集。實(shí)驗結果表明,經(jīng)過(guò)兩次握手處理后數據傳輸實(shí)時(shí)穩定,具有很強的實(shí)用性。
1 系統總體設計方案
系統采用飛恩卡爾MCA8HCS12G128單片機作為智能車(chē)的控制器,PC機為上位機。利用Matlab GUI構建起二者的實(shí)時(shí)通信、數據處理和繪圖等平臺。整個(gè)系統的原理框圖如圖1所示,介紹了基于Matlab的GUI和串口通信機制下建立上位機與智能車(chē)實(shí)時(shí)通信和作圖的平臺方法。
智能車(chē)與PC機通過(guò)藍牙相連,系統工作時(shí),由Matlab調用設備控制工具箱中的serial類(lèi)函數來(lái)設置串口屬性,創(chuàng )建串口對象,從而實(shí)現Matlab對串口的控制和讀寫(xiě)操作。在對智能車(chē)的調試過(guò)程中,可以通過(guò)Matlab向藍牙發(fā)送特殊指令,啟動(dòng)智能車(chē)。在智能車(chē)系統運行后便可以將所采集位置和速度等效據通過(guò)藍牙回送給PC機。
由Matlab通過(guò)中斷方式實(shí)時(shí)接收數據,并對數據進(jìn)行分析和處理,實(shí)時(shí)繪出相應的圖形。
2 Matlab GUI設計介紹
?、龠\行Matlab后,點(diǎn)擊主界面左上角的GUI圖標即可運行Matlab GUI開(kāi)發(fā)工具。
?、邳c(diǎn)擊Blank GUI(Default)選項并點(diǎn)擊OK按鈕,完成新建Blank GUI.
?、墼谛陆ǖ腂lank GUI界面的右方菜單中添加設計所需要的元素,完成串口通信及數據實(shí)時(shí)顯示等功能的GUI界面設計。
?、芫帉?xiě)GUI組建相應的響應控制代碼,運行后的通信仿真界面如圖2所示。

數字通信相關(guān)文章:數字通信原理
評論