李槐生



摘 要:近年來,無人機以其成本低、安全性高、控制簡單等特點,成為了各國研究的熱點之一。而無人機如此多優點的實現皆依賴于對其飛行的精確控制。要想實現對無人機的精確控制,就要利用各種傳感器實時精確監測無人機的各種狀態。
關鍵詞:無人機;氣壓傳感器;實時監控;無線模塊
中圖分類號:TH761.3 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2016.24.017
本文主要使用安裝在無人機上的MS5534B氣壓傳感器實時監控無人機所處海拔的氣壓,通過M0計算該傳感器測得的氣壓數據,將其轉換成基本的高度數據,并通過無線模塊傳送到上位機。上位機在LabVIEW上編程,進一步處理下位機發送的高度數據,并采取語音播報的形式實時通知控制人員。
本文所用的MS5534B氣壓傳感器是一款壓阻式壓力傳感器和ADC接口的集成電路。該傳感器測量氣壓精度比較高,價格便宜,性價也比較高。其主要原器件有高度傳感器、單片機LPC1114、FT52 STD無線模塊、TTL轉USB模塊等。
1 硬件系統構成
硬件系統的具體設計方案如下。
1.1 發送模塊
發送模塊的組成設計如圖1所示。
在LPC1114控制MS5534B的過程中,LPC1114需要給MS5534B的MCLK提供1路32.768 K的PWM方波,并通過SPI總線讀出MS5534B的溫度和氣壓數據。讀出的數據經過LPC1114的處理,算出發送模塊此刻的海拔高度,并通過FT52 STD無線發送模塊發送給接收模塊。
1.2 接收模塊
接收模塊的組成設計如圖2所示。
由圖2可知,接收模塊負責接收發送模塊的信號,經TTL轉USB模塊發送給PC機,再在PC機中做下一步處理。
2 MS5534B溫度和壓力的測量
2.1 出場校準
每個模塊都要經過單獨的溫度和壓力校準,64位PROM中的6個系數要補償工藝變化和溫度變化造成的影響。這64位必須由微控制器讀取,然后供軟件使用。
2.2 溫度值和壓力值的計算
通過串行口SPI讀取Word1-Word4,使用位邏輯和移位操作算出校準系數C1-C6;循環讀取未經補償的壓力值D1和溫度值D2,通過如圖3的流程算出真實的壓力和溫度。
所有的計算都使用有符16位變量,乘法結果可能多達32位長(有符),所以,在每次乘法計算后跟除法運算。除法中的除數都是2的冪次方,這樣可以保證計算結果小于65 535(16位)。
2.3 校準值
在Word1-Word4中,校準系數的排列如圖4所示。
2.4 寬溫度范圍內的計算
為了獲得整個溫度范圍內的最佳精度,需要對溫度傳感器的輸出進行非線性補償。這可以通過一個二階因子校正實現,二階因子的計算如圖5所示。
2.5 控制時序
MS5534B通過3線的同步串行通訊口與微處理器通訊,如圖6所示。由微控制器產生的SCLK信號初始化通訊,并且同步數據傳輸。MS5534B在SCLK的上升沿采集數據或發送數據,微處理器在SCLK的下降沿采集數據或發送數據。在DOUT引腳上的數據是MS5534B的轉換結果或者軟件校準數據。另外,DOUT也用來指示轉換狀態(轉換完畢信號),所選擇的輸出數據由DIN引腳輸入的相應時序決定。
校準值、溫度值、壓力值讀取時序和復位時序如圖6、圖7、圖8、圖9所示。
每一次通訊都在開始時序的引導下初始化,并且在啟動時序后都有停止時序。啟動時序由4個位組成,用來選擇讀壓力、溫度或者校準值。在讀取壓力值(D1)和溫度值(D2)的過程中,MS5534B將通過在停止時序的最后1位時拉高在DOUT上的電平來響應AD轉換的開始。
當SCLK上的響應信號開始后,還需要2個時鐘信號。當SCLK上出現下降沿時,表明AD轉換已經完成。微控制器經查詢發現AD轉換完成后,便可以給17個時鐘信號后讀取16位的值。在開始新一次AD轉換時,必須讀取上次的結果。
復位時序用來在微控制器與MS5534B間的同步時序丟失時重新同步,其時序如圖10所示。建議在每讀取數值前發送復位時序,避免干擾導致協議被永久掛起。
2.6 數據濾波
為了提高數據的穩定度,需要進行濾波。D1、D2 中有壓力和溫度數據,不能濾波。因此,可先通過溫度補償得出壓力值P,再對P進行濾波。為了使數據顯得平滑,可采取先中位值平均,后低通的濾波算法。
2.7 高度與壓力的關系
大氣壓力是由大氣重力造成的,因為空氣可壓縮,所以,壓力和高度存在非線性關系。在考慮大氣中典型溫度分布的情況下,1976年美國公布了標準大氣壓的氣壓和高度的近似函數。其函數關系如圖11所示。
3 上位機程序設計
上位機程序是在LabVIEW軟件中編寫的。上機位程度的主要作用是,接收下位機發送的高度信息,計算初始高度和相對高度,播報相對海拔高度,計算發送模塊的海拔變化速度。
3.1 接收功能
接收功能的程序如圖12所示。
3.2 海拔高度
計算相對海拔高度的流程如圖13所示。
3.3 播報海拔高度
3.3.1 等間隔播報海拔高度
等間隔播報海拔高度的流程如圖14所示。
等間隔播報海拔的子VI程序如圖15所示。
3.3.2 按照海拔變化播報海拔高度
這種播報情況是當發送模塊的海拔高度從一海拔范圍變化到另一海拔范圍時,才播報海拔高度,例如,從1~2 m的海拔范圍變化到2~3 m的海拔范圍時,會自動播報海拔高度。其流程如圖16所示。
按照海拔變化播報海拔高度的程序如圖17所示。
計算海拔變化速度的程序如圖18所示。
參考文獻
[1]Intersema Sensoric SA.MS5534Bbarometermoduledatasheet[EB /OL].[2008-01-16].http://www.intersema.ch.
[2]USB轉TTL模塊使用說明[EB/OL].[2012-08-23].http://wen ku.baidu.com/link?url=UoL10b23BUKODOyeVOZ0OGMKAmDPWxSdrDb6CScd8J8Wu-2sU6Gz1Z6D1UbDRmkpf3hd0Ts82onVhEENMw2h5HI3iWD5HwDeUE0ueZ6lD8m.
〔編輯:白潔〕