多语言展示
当前在线:1008今日阅读:23今日分享:25

利用USRP N210 实时监测所在区域的航班轨迹

最近,实验入手了几台USRP N210设备,在科研之余浏览网页的间隙发现一篇利用USRP追踪飞机飞行轨迹的文档,突然感觉兴趣大增。利用闲暇时间和小伙伴们自己动起手来实践了,下面给出的是我们在实践中的具体步骤。其主要原理是,因为航空CNS(通信导航监视)系统里大量采用非常古老的无线标准(即飞机会在1030MHz频段向周围广播ADS信号,包括自身的位置、速度、高度、目标地址、ID号等基本信息),所以我们只需要将接收下来的信号按特定方式解码,并通过一定方式显示出来便可以了。最后,为了更形象生动的展现捕捉到的飞机轨迹,我们将解调输出的信息生成.KML文件,从而可以在Google Earth 上实时更新显示飞机轨迹。
工具/原料
1

Ubuntu:14.04 64bit_LTS

2

UHD: release_003_009_001

3

GNU Radio:v3.7.8

4

USRP N210:母版N210r4+接收子板SBXv3 RX+发送子板SBXv3 TX+射频天线VERT2450;

方法/步骤
1

第一步,安装用于解调飞机广播信号的gr-air-modes模块:首先,快捷键“Ctrl+Alt+T”打开命令终端,逐行输入以下命令:   $ sudo apt-get install sqlite3 libsqlite3-dev python-zmq python-numpy python-scipy   $ git clone https://github.com/bistromath/gr-air-modes.git   $ cd gr-air-modes/   $ mkdir build   $ cd build   $ cmake ../   $ make   $ sudo make install   $ sudo ldconfig其次,在安装好这个模块后,简要介绍下如何使用该模块:1,打开工程所在文件夹cd gr-air-modes /apps2,调出控制面板modes_gui3,设置面板参数需要设置的参数包括: 信号源(Source)选择UHD,   采样率(Rate)选择10.00Msps,输出报告数阈值(Threshold)设定为3,天线接受增益(Gain)设为30最大为38,天线接口(Antenna)选择TX/RX。RX position 为你所在地的经纬度信息,比如宁波的经纬度信息为120和29。最后,点击“start”按钮,出现如下界面(Livedata输出信息,需要启动USRP N210设备):

2

第二步,安装Google Earth1,根据ubuntu系统选择以下安装包:Ubuntu 32 bit:wget http://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.debUbuntu 64 bit:wget http://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb2,安装包下载完后,需要先更新安装“lsb-core”模块:sudo apt-get updatesudo apt-get -f install; (用于纠正一些包的错误依赖关系)sudo apt-get install lsb-core3,lsb-coreb模块安装完成后,接下来就可以安装下载好的google earth 了,在终端键入以下命令就可以了:sudo dpkg -i google-earth-stable_current_amd64.deb到这里谷歌地球软件安装成功,点开系统左侧栏中search图标,输入“google”便可以找到新装的软件,打开后的界面是这样的(不正常):

3

第三步,连接上Google服务器,装好GoogleEarth后会发现无法正常使用,这是由于谷歌服务器离开国内导致相关服务中断。下面介绍一种上谷歌的方法: 1,到网站搜索基于ubuntu系统的最新host文件,并下载保存到桌面上。给个试过能行的网址,希望还能用:https://laod.cn/hosts/2016-google-hosts.html2,打开命令终端,输入命令“sudo gedit /etc/hosts”,意思是打开本地浏览器的host文件,因此运行该命令之后可以看到一个打开的host文件。再打开刚下载好的host文件全选复制到该文件中,关闭文件前记得点保存。3,重启网络(运行命令“sudo /etc/init.d/networking restart”),并打开GoogleEarth 便可以正常使用了,将出现如下界面(正常):

4

第四步,在Google Earth上显示飞机飞行轨迹在步骤一中的控制面板中的输出栏中有一个钩上的“KML”格式的文件,命名为“modes”。这个文件中记录了航班的信息,如编号、经纬度等。下面如何介绍通过这个文件与Google Earth联系起来,通过实时数据来定时更新飞机在Google Earth中的飞行轨迹。1,启动Google Earth;2,在工具栏中选择“添加”->“网络连接”;3,给即将生成的脚本起个名字,比如“aircraft”;4,点击“浏览”,选择前面生成的“.KML”,即“modes”;5,点击“刷新”按钮,选择定期更新,每次更新时间自己设定(比如设为3秒);6,确定保存设置。完成上述设定后,便可以在Google地球上看到之前显示在步骤一的控制面板中的航班飞行轨迹了,如下图所示:

注意事项
1

本实验主要建立在以下基础上上:第一,一台装有Ubuntu系统的计算机,且GNU-Radio和UHD相应版本已成功安装好;第二,设备USRPN210能成功导入FPGA流,在系统终端输入命令“uhd find devices”,能输出设备信息。

3

本实验主要参考了:使用USRP探索无线世界 Part 1:USRP从入门到追踪飞机飞行轨迹 - FreeBuf.COM | 关注黑客与极客 http://www.freebuf.com/articles/wireless/119950.html 一文,在此表示感谢。

推荐信息