赫玉瑩++邊疆++王貫安++李志華
摘 要:針對無人駕駛車的信息采集與處理,在模擬實驗過程中設計了一種基于藍牙和虛擬儀器LabVIEW的綜合監控平臺。能夠實時地檢測并直觀顯示出智能車的行駛姿態和路況,便于程序和算法的調試驗證,并具備可靠性、靈活性、便捷性。
關鍵詞:藍牙 LabVIEW 無線通信 監控
中圖分類號:TN92 文獻標識碼:A 文章編號:1674-098X(2014)06(a)-0041-04
The information acquisition and processing of Smartcar based on bluetooth and Virtual instrument
HE Yu-ying, BIAN Jiang, WANG Guan-an, LI Zhi-hua
(Department of Information Science and Engineering, Central South University, Changsha,410083,China)
Abstract:In the process of simulation experiments,a comprehensive monitoring based in bluetooth and LabVIEW was designed under the demand of smartcars information acqiusition and processing.The design can monitor and display driving posture and road conditions of smart car in real time,which is conductive to debugging program and algorithm validation.In addition,it owns the reliability,flexibility and convenience.
Keywords:bluetooth;LabVIEW;wireless communication;monitoring
隨著電子技術和計算機領域的飛速發展,計算機控制在汽車行業占據著舉足輕重的作用[1]。給汽車裝上“大腦”,讓汽車學會“思考”,這是汽車行業發展的必然趨勢,也面臨著很大的發展空間。
對智能車的信息監測控制有以下3種方式:①采用串口線與電腦相連,在PC機上顯示。②在智能車行駛過程中,先將信息存儲在車載SD卡中,再將SD卡中的內容導入計算機。③利用無線傳輸,將數據傳送到接收端,進行實時監控。顯然,前兩種方法對于整個行駛狀態不具有普遍性,無法顯示車輛高速行駛過程中的實時狀況。因此,開發上位機對車輛信息采集處理實現監控,已成為一種必然的選擇。
目前比較成熟的短距離無線傳輸網絡的技術有:藍牙、wifi、超帶寬技術、Zigbee技術等。藍牙技術可提供低成本、低功耗的無線接入方式,被認為是近年來無線數據通信領域重大的進展之一[2]。而LabVIEW是由NI公司在1986年推出的一種高效的圖形化軟件開發環境,支持與多種總線接口系統的通信連接,提供數據采集、一起控制、數據分析和數據顯示等于虛擬儀器系統集成相關的多種功能,具有強大的圖形化用戶界面和User Interface庫,是目前應用最廣、發展最快、功能最強的圖形化軟件開發集成環境。本設計將采用FBT06系列藍牙模塊進行短距離的無線通信,利用LabVIEW軟件制作上位機虛擬儀器,進行人機交互,實現智能車的數據監控和處理。
1 系統總體結構
智能車在行駛過程中,通過攝像頭采集圖像信息,同時,針對路況,應能夠給出相應的舵機打角,以及相應占空比的PWM波控制電機以實現加速、減速、過彎、避障等,使智能車的運行趨于穩定、可靠。同時,也可通過信息采集,記錄經過的道路情況,如彎道、直道、十字交叉路口等等,應用于賽道記憶算法,以便于智能車的提速。整合以上所有需監控狀態,通過藍牙技術,由無線串口藍牙模塊(從機)傳送給藍牙模塊(主機),再通過PL2303串口轉USB,將信息傳送給PC機,最后通過LabVIEW上位機將采集到的數據進行處理和顯示。系統硬件結構圖如圖1所示。
2 藍牙實現
基于藍牙技術的獨特優點,本設計采用藍牙實現短距離的無線通信,最遠距離可以達到100 m。藍牙技術工作在全球通用的2.4 GHz ISM頻段,數據傳輸速度為1 Mbit/s[3]。其采用了快速確認和調頻方案,從而使得藍牙具有良好的抗干擾能力和系統穩定性。下面對其通信的實現原理進行詳細說明。
在下位機設置一定的采樣周期,對串口進行初始化,接收數據信息,當采樣周期到達時,單片機就將需要發送的數據打包,以固定的格式發送出去。當接收中斷到來時,下位機讀取數據并進行解讀,然后進行相應的數據修改,實現對智能車的控制。
對于串口接收狀態,可用如下轉移圖進行描述,如圖2所示。
其為基于有限狀態機的幀同步方法[4]。該方法的實現過程是將數據幀的接收過程分為若干個狀態,在接受完一個數據幀或其他異常幀時,需要將狀態機設置為HEAD1,否則將會影響下一幀的數據接收,然后解析數據,得到相應的功能碼,校驗成功后將會更新主程序中的控制碼。
本設計中采用FBT06系列小尺寸2.1+EDR藍牙模塊,其集成了藍牙天線、專用各種串行線纜替代方案。其波特率最高可達到1.384Mbps,有多達35條方便靈活地AT指令集,支持WIOMODE,可通過藍牙無線端設置AT命令。需要特別說明的是,由于FBT06采用CMOS電平設計,與PC機(RS232電平)電平不同,所以不能進行直接連接,需要進行電平轉換。在使用藍牙模塊之前,需對它進行配置,進行藍牙模塊初始化、選擇流控制方式等。endprint
在藍牙模塊的使用過程中,需要注意的是:① 其波特率的設置,要使系統穩定,盡量少地受到外界干擾。一般設置波特率不超過115200bps。②由于要求較大的傳輸距離,對百米藍牙模塊采用兩級供電。包括VCC和PAVCC,在使用過程中,給兩者均供電3.3V。
3 上位機設計
采用LabVIEW虛擬儀器軟件進行本設計的開發,編程使用圖形化編輯語言G,簡單直觀,不需要很深的編程基礎也能實現設計。通過對程序框圖的編寫,實現了本監控系統的主要模塊設計,并能夠很好地應用于圖像顯示和智能車調試中。
在進行設計之前,加裝虛擬儀器軟件架構VASA驅動,它可以與大多數儀器總線連接,通過該串口進行數據傳輸。在LabVIEW中,程序的執行順序是沿著數據流動的方向運行的。在進行串口的配置之后,配置好的串口數據要留到設置好的緩沖區中,再通過“串口讀取”將緩沖區中的數據讀出來,即實現數據接收。如圖3所示,體現在程序框圖中。
而對于圖像顯示,由于上位機接收到的數據是機器語言字符串,要將其還原成圖像數據,那么通訊協議就發揮作用了。在發送圖像時,設置固定的標志字符,比如:picture,圖片伴隨該字符發送,當上位機軟件接收到字符串后,將其與“picture”進行比對,識別出發送數據的內容。該部分的具體編程實現就體現在通訊協議的編寫過程中了,當然,通訊協議的內容并不局限于此,還有其他更為復雜的操作和應用,在此不再進行詳細闡述。轉換為圖像數據之后,通過字符串顯示控件將其顯示出來。實現步驟如下[5-6]:
①將圖像數據字符串轉換為“無符號字節數組”,并調整數組維數為二維。
②平化像素圖并繪制。編程面板:編程->圖形與聲音->圖形格式->繪制平化像素圖。
編程->簇/類與變體->按名稱捆綁。
③接入圖片控件。
而對于整個數據采集處理及顯示過程,通過設置while結構讓其一直循環,進行實時監控。
圖像采集和處理部分,在前面板上顯示出采集到的原本道路信息,以及進行濾波去噪、二值化等處理后的圖像,并排顯示,方便比對和對算法的分析。
與此同時,前面板的設計,還主要有舵機打角顯示,電機驅動占空比,小車行駛速度顯示,以及路況顯示等。為了更好地直觀性表現出車輛運行狀態,并進行控制算法的驗證,以方便調試,在前面板加放坐標系顯示,利用順序結構從一組數據中求取相應變量,將一段時間內該變量的狀態接收點作為縱坐標,時間作為橫坐標,繪制曲線,查看其運行動態。由于舵機打角和電機輸出是算法控制的兩大模塊,必然要直觀地顯示出其當前值和變化率,有關該模塊,在程序框圖中的實現如圖4所示。
最后進行數據存儲,在整個調試過程中的采集數據一方面送到虛擬面板上顯示出來,另一方面,要把它存儲起來,以供查詢瀏覽,也方便對道路信息的數據進行仿真分析,從而更好地控制車輛的運行姿態。此處的數據存儲有兩種方案,一種是按照上文所述,將采集到的數據在上位機部分同步存儲;另一種方案是在模擬車上安放SD卡,通過車輛的主控芯片將數據存放進SD卡中。將兩種方案進行對比,采用第二種方案更有利于數據的準確性,但如果幾乎沒有數據丟包,采用第一種方式依然能夠保證數據的準確性、有效性而且更為簡便經濟。
如圖5所示,為本設計的監控平臺前面板圖。
在設計過程中還遇到了一些問題,比如:數據的丟包;程序的運行速度以及上位機的參數自適應等,通過對通訊協議和上位機程序的不斷完善,已將遇到的問題逐一解決。由于本設計是針對無人駕駛車調試而設計,還存在著一些不足,略顯簡陋,但針對實際的應用環境和被控對象的特性,可在此基礎上進行改進和完善。
4 結語
根據實際需求,采用藍牙FBT06系列和K60主控芯片為主要模塊搭建硬件平臺,并基于LabVIEW和藍牙通信技術,在一定的規范協議下編寫程序,實現了無線通訊傳輸和監控,更有利于智能車的調試,提高了調試效率和進度。該項技術不僅在智能車調試方面,還可將其應用于工業控制、醫療設備等領域,并將發揮其獨特的優勢和效果,值得推廣。
參考文獻
[1] 張秀彬,應俊豪.汽車智能化技術原理[M].上海交通大學出版社,2011.
[2] 程良明.ZIGBEE無線串口通信設備在高速公路站級電子顯示屏上的應用[J].中國交通信息化,2012(2):109-111.
[3] 張群,楊絮,張正言,等.藍牙模塊串口通信的設計與實現[J].實驗室研究與探索,2012(3):79-82.
[4] 朱慧芬,沈連豐,張宏澤,等.藍牙智能車載卡的軟件實現[J].電子工程師,2004(3):38-40.
[5] 陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007:55-68.
[6] 楊樂平,李海濤,趙勇,等.LabVIEW高級程序設計[M].北京:清華大學出版社,2003:9-19.endprint
在藍牙模塊的使用過程中,需要注意的是:① 其波特率的設置,要使系統穩定,盡量少地受到外界干擾。一般設置波特率不超過115200bps。②由于要求較大的傳輸距離,對百米藍牙模塊采用兩級供電。包括VCC和PAVCC,在使用過程中,給兩者均供電3.3V。
3 上位機設計
采用LabVIEW虛擬儀器軟件進行本設計的開發,編程使用圖形化編輯語言G,簡單直觀,不需要很深的編程基礎也能實現設計。通過對程序框圖的編寫,實現了本監控系統的主要模塊設計,并能夠很好地應用于圖像顯示和智能車調試中。
在進行設計之前,加裝虛擬儀器軟件架構VASA驅動,它可以與大多數儀器總線連接,通過該串口進行數據傳輸。在LabVIEW中,程序的執行順序是沿著數據流動的方向運行的。在進行串口的配置之后,配置好的串口數據要留到設置好的緩沖區中,再通過“串口讀取”將緩沖區中的數據讀出來,即實現數據接收。如圖3所示,體現在程序框圖中。
而對于圖像顯示,由于上位機接收到的數據是機器語言字符串,要將其還原成圖像數據,那么通訊協議就發揮作用了。在發送圖像時,設置固定的標志字符,比如:picture,圖片伴隨該字符發送,當上位機軟件接收到字符串后,將其與“picture”進行比對,識別出發送數據的內容。該部分的具體編程實現就體現在通訊協議的編寫過程中了,當然,通訊協議的內容并不局限于此,還有其他更為復雜的操作和應用,在此不再進行詳細闡述。轉換為圖像數據之后,通過字符串顯示控件將其顯示出來。實現步驟如下[5-6]:
①將圖像數據字符串轉換為“無符號字節數組”,并調整數組維數為二維。
②平化像素圖并繪制。編程面板:編程->圖形與聲音->圖形格式->繪制平化像素圖。
編程->簇/類與變體->按名稱捆綁。
③接入圖片控件。
而對于整個數據采集處理及顯示過程,通過設置while結構讓其一直循環,進行實時監控。
圖像采集和處理部分,在前面板上顯示出采集到的原本道路信息,以及進行濾波去噪、二值化等處理后的圖像,并排顯示,方便比對和對算法的分析。
與此同時,前面板的設計,還主要有舵機打角顯示,電機驅動占空比,小車行駛速度顯示,以及路況顯示等。為了更好地直觀性表現出車輛運行狀態,并進行控制算法的驗證,以方便調試,在前面板加放坐標系顯示,利用順序結構從一組數據中求取相應變量,將一段時間內該變量的狀態接收點作為縱坐標,時間作為橫坐標,繪制曲線,查看其運行動態。由于舵機打角和電機輸出是算法控制的兩大模塊,必然要直觀地顯示出其當前值和變化率,有關該模塊,在程序框圖中的實現如圖4所示。
最后進行數據存儲,在整個調試過程中的采集數據一方面送到虛擬面板上顯示出來,另一方面,要把它存儲起來,以供查詢瀏覽,也方便對道路信息的數據進行仿真分析,從而更好地控制車輛的運行姿態。此處的數據存儲有兩種方案,一種是按照上文所述,將采集到的數據在上位機部分同步存儲;另一種方案是在模擬車上安放SD卡,通過車輛的主控芯片將數據存放進SD卡中。將兩種方案進行對比,采用第二種方案更有利于數據的準確性,但如果幾乎沒有數據丟包,采用第一種方式依然能夠保證數據的準確性、有效性而且更為簡便經濟。
如圖5所示,為本設計的監控平臺前面板圖。
在設計過程中還遇到了一些問題,比如:數據的丟包;程序的運行速度以及上位機的參數自適應等,通過對通訊協議和上位機程序的不斷完善,已將遇到的問題逐一解決。由于本設計是針對無人駕駛車調試而設計,還存在著一些不足,略顯簡陋,但針對實際的應用環境和被控對象的特性,可在此基礎上進行改進和完善。
4 結語
根據實際需求,采用藍牙FBT06系列和K60主控芯片為主要模塊搭建硬件平臺,并基于LabVIEW和藍牙通信技術,在一定的規范協議下編寫程序,實現了無線通訊傳輸和監控,更有利于智能車的調試,提高了調試效率和進度。該項技術不僅在智能車調試方面,還可將其應用于工業控制、醫療設備等領域,并將發揮其獨特的優勢和效果,值得推廣。
參考文獻
[1] 張秀彬,應俊豪.汽車智能化技術原理[M].上海交通大學出版社,2011.
[2] 程良明.ZIGBEE無線串口通信設備在高速公路站級電子顯示屏上的應用[J].中國交通信息化,2012(2):109-111.
[3] 張群,楊絮,張正言,等.藍牙模塊串口通信的設計與實現[J].實驗室研究與探索,2012(3):79-82.
[4] 朱慧芬,沈連豐,張宏澤,等.藍牙智能車載卡的軟件實現[J].電子工程師,2004(3):38-40.
[5] 陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007:55-68.
[6] 楊樂平,李海濤,趙勇,等.LabVIEW高級程序設計[M].北京:清華大學出版社,2003:9-19.endprint
在藍牙模塊的使用過程中,需要注意的是:① 其波特率的設置,要使系統穩定,盡量少地受到外界干擾。一般設置波特率不超過115200bps。②由于要求較大的傳輸距離,對百米藍牙模塊采用兩級供電。包括VCC和PAVCC,在使用過程中,給兩者均供電3.3V。
3 上位機設計
采用LabVIEW虛擬儀器軟件進行本設計的開發,編程使用圖形化編輯語言G,簡單直觀,不需要很深的編程基礎也能實現設計。通過對程序框圖的編寫,實現了本監控系統的主要模塊設計,并能夠很好地應用于圖像顯示和智能車調試中。
在進行設計之前,加裝虛擬儀器軟件架構VASA驅動,它可以與大多數儀器總線連接,通過該串口進行數據傳輸。在LabVIEW中,程序的執行順序是沿著數據流動的方向運行的。在進行串口的配置之后,配置好的串口數據要留到設置好的緩沖區中,再通過“串口讀取”將緩沖區中的數據讀出來,即實現數據接收。如圖3所示,體現在程序框圖中。
而對于圖像顯示,由于上位機接收到的數據是機器語言字符串,要將其還原成圖像數據,那么通訊協議就發揮作用了。在發送圖像時,設置固定的標志字符,比如:picture,圖片伴隨該字符發送,當上位機軟件接收到字符串后,將其與“picture”進行比對,識別出發送數據的內容。該部分的具體編程實現就體現在通訊協議的編寫過程中了,當然,通訊協議的內容并不局限于此,還有其他更為復雜的操作和應用,在此不再進行詳細闡述。轉換為圖像數據之后,通過字符串顯示控件將其顯示出來。實現步驟如下[5-6]:
①將圖像數據字符串轉換為“無符號字節數組”,并調整數組維數為二維。
②平化像素圖并繪制。編程面板:編程->圖形與聲音->圖形格式->繪制平化像素圖。
編程->簇/類與變體->按名稱捆綁。
③接入圖片控件。
而對于整個數據采集處理及顯示過程,通過設置while結構讓其一直循環,進行實時監控。
圖像采集和處理部分,在前面板上顯示出采集到的原本道路信息,以及進行濾波去噪、二值化等處理后的圖像,并排顯示,方便比對和對算法的分析。
與此同時,前面板的設計,還主要有舵機打角顯示,電機驅動占空比,小車行駛速度顯示,以及路況顯示等。為了更好地直觀性表現出車輛運行狀態,并進行控制算法的驗證,以方便調試,在前面板加放坐標系顯示,利用順序結構從一組數據中求取相應變量,將一段時間內該變量的狀態接收點作為縱坐標,時間作為橫坐標,繪制曲線,查看其運行動態。由于舵機打角和電機輸出是算法控制的兩大模塊,必然要直觀地顯示出其當前值和變化率,有關該模塊,在程序框圖中的實現如圖4所示。
最后進行數據存儲,在整個調試過程中的采集數據一方面送到虛擬面板上顯示出來,另一方面,要把它存儲起來,以供查詢瀏覽,也方便對道路信息的數據進行仿真分析,從而更好地控制車輛的運行姿態。此處的數據存儲有兩種方案,一種是按照上文所述,將采集到的數據在上位機部分同步存儲;另一種方案是在模擬車上安放SD卡,通過車輛的主控芯片將數據存放進SD卡中。將兩種方案進行對比,采用第二種方案更有利于數據的準確性,但如果幾乎沒有數據丟包,采用第一種方式依然能夠保證數據的準確性、有效性而且更為簡便經濟。
如圖5所示,為本設計的監控平臺前面板圖。
在設計過程中還遇到了一些問題,比如:數據的丟包;程序的運行速度以及上位機的參數自適應等,通過對通訊協議和上位機程序的不斷完善,已將遇到的問題逐一解決。由于本設計是針對無人駕駛車調試而設計,還存在著一些不足,略顯簡陋,但針對實際的應用環境和被控對象的特性,可在此基礎上進行改進和完善。
4 結語
根據實際需求,采用藍牙FBT06系列和K60主控芯片為主要模塊搭建硬件平臺,并基于LabVIEW和藍牙通信技術,在一定的規范協議下編寫程序,實現了無線通訊傳輸和監控,更有利于智能車的調試,提高了調試效率和進度。該項技術不僅在智能車調試方面,還可將其應用于工業控制、醫療設備等領域,并將發揮其獨特的優勢和效果,值得推廣。
參考文獻
[1] 張秀彬,應俊豪.汽車智能化技術原理[M].上海交通大學出版社,2011.
[2] 程良明.ZIGBEE無線串口通信設備在高速公路站級電子顯示屏上的應用[J].中國交通信息化,2012(2):109-111.
[3] 張群,楊絮,張正言,等.藍牙模塊串口通信的設計與實現[J].實驗室研究與探索,2012(3):79-82.
[4] 朱慧芬,沈連豐,張宏澤,等.藍牙智能車載卡的軟件實現[J].電子工程師,2004(3):38-40.
[5] 陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007:55-68.
[6] 楊樂平,李海濤,趙勇,等.LabVIEW高級程序設計[M].北京:清華大學出版社,2003:9-19.endprint