,
(中國民用航空飛行學院 空中交通管理學院,廣漢 618307)
所謂的遠程塔臺技術[1]是指為偏遠地區(qū)的小型機場提供遠程管制服務的技術。管制員并不能通過所在塔臺的窗口直接觀察到管制地區(qū)機場內(nèi)的飛機,而是通過將現(xiàn)場的實時視頻信號傳輸?shù)竭h方管制室來實現(xiàn)對飛機的遠程指揮[2]。在管制員實施管制服務的整個過程當中,工作人員完全可以像在一般塔臺指揮飛機一樣來實施管制服務,但是在管制員遠程指揮飛機的整個過程中,對于駕駛員來說是不可見并且是完全察覺不到的。管制員可以在管制室對偏遠地區(qū)機場內(nèi)的各種傳感器、告警系統(tǒng)、燈光系統(tǒng)以及相關的空中交通管理與監(jiān)視設備進行操控。管制員在進行整個指揮的過程中,所有的視頻信息及圖像信息都會被完整地記錄并保存下來,這些信息數(shù)據(jù)可以用于以后的分析。
在實驗室中以樹莓派為載體,來進行遠程塔臺技術模擬實驗平臺的搭建。采用樹莓派Raspberry Pi 3B整合自編程序搭建遠程終端,直接將信息采集設備收集的信息整理并傳輸,該種方法效率較高,且開發(fā)板體積小巧,操作便利,搭建簡單,整體性強,能較好地根據(jù)即將進行的多種測試進行調(diào)整。采用路由器創(chuàng)造無線網(wǎng)環(huán)境,使樹莓派Raspberry Pi 3B和用于遠程控制的筆記本電腦具有同一IP,通過遠程桌面來控制樹莓派,并利用其進行數(shù)據(jù)傳輸。
局域網(wǎng)環(huán)境下數(shù)據(jù)傳輸快,延遲低,且有效解決了有線數(shù)據(jù)傳輸?shù)牟季€復雜和成本問題。所搭建好的實驗平臺如圖1所示,相關平臺原理圖如圖2所示,Linux是一種開源的操作系統(tǒng),獲得模塊和軟件的途徑多且便利,有利于不同功能的整合,并采用OpenCV、VLC等組件實施視頻采集和傳輸。Python語言具有豐富和強大的庫,能夠把用其它語言制作的各種模塊很輕松地聯(lián)結(jié)在一起,利用Python的相關編程設計,實現(xiàn)DHT11模塊對溫濕度的采集并傳輸,通過控制RTL天線并運行DUMP1090模塊實現(xiàn)對ADS-B信號的獲取。
圖1 實驗平臺的搭建
圖2 平臺原理圖
樹莓派[3](Raspberry Pi) 是2012 年由英國樹莓派基金會發(fā)行的一款卡片式計算機,本次實驗所用樹莓派如圖3所示,它采用了 ARM架構(gòu)處理器和 Linux 操作系統(tǒng),在只有信用卡大小、購買成本只需200 元左右的硬件電路板上實現(xiàn)了個人計算機的全部功能。樹莓派接口豐富,可擴展性強,有著豐富的開源軟件資源,與傳統(tǒng)的嵌入式開發(fā)平臺相比,在速度、集成度、價格和效率上有著明顯的優(yōu)勢,因而上市以來在嵌入式開發(fā)領域發(fā)展迅速。本文將以樹莓派Raspberry Pi 3B型機作為開發(fā)機,它搭載了1.2 GHz的64位4核處理器,內(nèi)裝802.11 b/g/n無線網(wǎng)卡和藍牙4.1適配器,最大驅(qū)動電流增為2.5 A。在接口方面,樹莓派擁有15針頭MIP相機(CSI)界面,可被樹莓派相機(無紅外線版)使用;4個USB2.0規(guī)范接口;MicroSD卡槽;17個GPIO及HAT 規(guī)格鋪設[4]。
圖3 實驗所用的樹莓派
DHT11是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器[5]。本次實驗所用的DHT11如圖4所示, 其精度濕度為±5%RH, 溫度為±2 ℃,量程濕度為20~90%RH, 溫度為0~50 ℃。它應用專用的數(shù)字模塊采集技術和溫濕度傳感技術,確保產(chǎn)品具有極高的可靠性和卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質(zhì)卓越、響應快、抗干擾能力強、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數(shù)以程序的形式存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準系數(shù)。單線制串行接口使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,使其成為該類應用中在苛刻應用場合的最佳選擇。產(chǎn)品為4針單排引腳封裝,連接方便。
DHT11模塊與樹莓派引腳的連接說明為(有3線和4線制兩種,本文用的是3線制):①VCC 外接3.3~5 V;②GND 外接GND;③out 小板開關數(shù)字量輸出接口,接樹莓派I/O口。
圖4 實驗所用DHT11
DHT11與樹莓派連接圖如圖5所示。
圖5 DHT11與樹莓派相連接
本文所用的RTL天線采用R820T2 TUNER芯片取代R820T,其接收效果更好,靈敏度更高,支持SDR RTL1090接收ADS-B信號、978 MHz和1 090 MHz的脈沖信號,支持DVB-T地面無線數(shù)字電視信號和DAB FM等無線信號。在視頻監(jiān)控方面,使用樹莓派的CSI接口攝像頭。
用樹莓派板子上的內(nèi)置Camera接口來獲取影像,通過網(wǎng)絡Streaming Protocol的方法將攝像機的影像傳到網(wǎng)絡上,用VLC軟件來實現(xiàn)遠程監(jiān)控[6]。其命令如下:
$sudo apt-get update
$sudo apt-get upgrade #更新系統(tǒng)的安裝程序apt-get
$sudo raspi-config #選擇Enale Camera引導樹莓派的攝像機
$sudo apt-get install vlc #安裝vlc軟件
$raspivid -o - -t 0 -w 1024 -h 768 -fps 30 |cvlc -vvv stream:///dev/stdin --sout‘#standard{access=http,mux=ts,dst=:8160}’ :demux=h264 #執(zhí)行streaming,制作視頻流(參數(shù)介紹:w視頻寬度,h視頻高度,fps每秒傳輸幀數(shù),dst網(wǎng)絡的端口,demux視頻壓縮格式h264)
運行raspivid,樹莓派的Teminal終端顯示如圖6所示,樹莓派開始采集視頻流。在遠程連接的筆記本電腦上通過VLC軟件,連接地址http://192.168.0.100:8160(本實驗所用樹莓派IP為192.168.0.100),就能監(jiān)視樹莓派的實時影像,所監(jiān)視的飛機模型如圖7所示。
圖6 樹莓派Teminal終端顯示
圖7 遠程監(jiān)視的畫面
3.2.1編程語言選用
Python語言具有豐富和強大的庫,它常被昵稱為膠水語言,能夠把用其它語言制作的各種模塊很輕松地聯(lián)結(jié)在一起[7]。Python是純粹的自由軟件,語法簡潔清晰。Python還可以交互模式運行,比如主流操作系統(tǒng)Unix/Linux、Mac、Windows都可以直接在命令模式下直接運行Python交互環(huán)境。直接下達操作指令即可實現(xiàn)交互操作。樹莓派Raspberry Pi的操作系統(tǒng)是Linux系統(tǒng),因此選用Python語言通過相應的編程來調(diào)用DHT11模塊功能,獲取溫濕度數(shù)據(jù)。在樹莓派上安裝Python語言,輸入以下命令:
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get install python2.7
編碼方式:PR庫有兩種方式,一種是bcm,另一種是wiringPi的方式,兩者的區(qū)別大致是bcm的pin的序號為0,1,3,...是與每一個GPIO引腳對應的,不包含GND和電源之類的在內(nèi),而wiringPi則是從電源開始為0,然后按增序排。本文采用bcm方式,在Python的腳本中,應在setmode函數(shù)里面制定編碼方式為bcm,所連樹莓派引腳為GPIO4,即channel=4,腳本編輯為:
channel=4
data=[]
j=0
GPIO.setmode(GPIO.BCM)
3.2.2DHT11模塊時序信號
DHT11模塊有兩個關鍵的時序信號:開始握手階段和數(shù)據(jù)發(fā)送階段。開始握手階段:主機端GPIO發(fā)送開始信號首先拉低至少18 ms,然后拉高20~40 μs,模式變?yōu)镮N等待信號輸入,DHT11等待主機端開始信號(低電平)結(jié)束后,發(fā)送80 μs低電平響應開始信號,然后DHT11拉高電平80 μs。握手完畢,如圖8所示。
數(shù)據(jù)發(fā)送階段:一次的濕度和溫度數(shù)據(jù),DHT11需要發(fā)送40位(0、1)數(shù)據(jù),每一位數(shù)據(jù)之前都以50 μs低電平開始,隨后的高電平時序信號,持續(xù)26~28 μs表示這一位是0,持續(xù)70μs表示這一位是1,然后繼續(xù)50 μs低電平,緊接著下一位的高電平開始,如圖9所示。40位數(shù)據(jù)的組成=8位濕度整數(shù)部分+8位濕度小數(shù)部分(暫時沒用)+8位溫度整數(shù)部分+8位溫度小數(shù)部分(暫時沒用)+8位校驗和。8位的順序都是高位先出,然后用移位相加的方式,將這8位轉(zhuǎn)換成整型數(shù)字。
圖8 開始握手階段
圖9 數(shù)據(jù)發(fā)送階段
腳本編輯為:
while j < 40:
k = 0
whileGPIO.input(channel) == GPIO.LOW:
continue
whileGPIO.input(channel) == GPIO.HIGH:
k+=1
if k > 100:
break
if k < 8:
data.append(0)
else:
data.append(1)
計算濕度、溫度、校驗和按照每8位轉(zhuǎn)換成一個十進制數(shù)字,腳本編輯為:
fori in range(8):
humidity +=humidity_bit[i] * 2 ** (7-i)
humidity_point += humidity_point_bit[i] * 2 ** (7-i)
temperature +=temperature_bit[i] * 2 ** (7-i)
temperature_bit += temperature_point_bit[i] * 2 ** (7-i)
check +=check_bit[i] * 2 ** (7-i)
tmp = humidity + humidity_point + temperature + temperature_point
通過文本編輯器輸入以下程序,并保存成DHT11.py:
$nano DHT11.py
輸入完成后,通過Ctrl+O組合鍵存儲程序,Ctrl+X組合鍵離開nano編輯器。輸入以下命令就能獲取當前的溫度和濕度:
$sudo python dht11.py
若check值和tmp值不相等,就會輸出“wrong”,并輸出相應的校驗值,直到check=tmp,才會輸出溫濕度值,如圖10所示為測試幾次輸出的錯誤校驗值,圖11所示為正確值,當前所測溫度為19 ℃,濕度為36%。為了檢驗所測數(shù)據(jù)的準確性,把手指放在DHT11傳感器上,顯示結(jié)果會明顯發(fā)生變化,溫濕度值均會升高。
所需要的軟件都是在網(wǎng)上的,首先要先安裝一個svn軟件,用git即可。終端下輸入指令:
#sudo apt-get install git
#sudo apt-get install cmake
安裝兩個軟件,“rtl-sdr”軟件,網(wǎng)址位于:http://github.com/pinkavaj/rtl-sdr.git,它是一個RTL28320芯片的控制軟件,負責控制電視棒頻率,類似破解驅(qū)動。另一個是“dump1090”軟件,網(wǎng)址位于:https://github.com/antirez/dump1090。它是一個把無線電中的數(shù)字信號提取出來并解碼的軟件[8],就是解碼S模式應答機的內(nèi)容,分別下載安裝兩個軟件并編譯,(以dump1090為例)終端下輸入指令:
#git clone https://github.com/antirez/dump1090.git
#cd dump1090/
# make
圖10 錯誤數(shù)據(jù)的校驗
圖11 所獲取的溫濕度
運行dump1090,模型將開始收集附近配備ADS-B[9]飛機的信息。終端下輸入如下命令:
#sudo rmmod dvb_usb_rtl28xxu
#sudo ./dump1090 --interacitve --net
樹莓派終端就會顯示此時在天空中飛行的一些飛機的數(shù)據(jù)信息,如圖12所示,既能收到中國民航飛行學院廣漢分院訓練用的小型機,又能收到在空中飛過的大型民航運輸客機的信息,界面的相關參數(shù)為:Hex16進制數(shù)據(jù)、Flight航班號、Altitude飛行高度、Speed飛行速度、Lat/Long經(jīng)緯度地理坐標。用遠程控制的筆記本電腦進一步訪問http://192.168.0.103:8080,便可獲取結(jié)合Google地圖的詳細飛機軌跡等相關信息[10],如圖13所示。對于民航客機,還可訪問FlightAware、FlightStats等相關網(wǎng)站,獲取和此航班有關的更多信息,比如飛行時間、機型型號、飛行計劃和歷史航班等,如圖14所示。
圖12 終端顯示的ADS-B信息
圖13 結(jié)合Google地圖的顯示畫面
圖14 訪問FlightAware獲取航班信息
本文介紹了遠程塔臺的主要實現(xiàn)和工作原理,并羅列了主要的程序設計過程。程序設計主要通過Linux系統(tǒng)和Python語言完成,實現(xiàn)了對遠程終端(樹莓派Raspberry Pi 3B)的控制,以及遠程終端影像視頻信息獲取、傳輸,溫濕度氣象數(shù)據(jù)的獲取,ADS-B信號接收的功能。本次模型建設基本實現(xiàn)遠程塔臺技術的幾個基本功能,但在功
能的實現(xiàn)中,還存在一些不足之處:影像視頻傳輸存在2~3 s的延遲,氣象數(shù)據(jù)只采集了溫濕度,還可添加更多的傳感器模塊,實現(xiàn)更豐富的氣象資料的采集傳輸。DHT11在獲取溫濕度時,錯誤率還是比較高的,暫時不知道如何比較準確地識別時序信號,而且在樹莓派執(zhí)行多任務時,很可能錯得很離譜。