R820T电视棒软件无线电跟踪飞机飞行轨迹.docx
《R820T电视棒软件无线电跟踪飞机飞行轨迹.docx》由会员分享,可在线阅读,更多相关《R820T电视棒软件无线电跟踪飞机飞行轨迹.docx(13页珍藏版)》请在冰豆网上搜索。
R820T电视棒软件无线电跟踪飞机飞行轨迹
R820T电视棒+软件无线电跟踪飞机飞行轨迹
来源:
http:
//www.rootoorotor.org/作者:
佚名时间:
2013-07-18TAG:
捕获到的飞机飞行轨迹:
一、声明:
本文参照并学习了putaoshu博客的教程,本文的部分内容摘自其博客,在此向putaoshu大牛表示感谢!
其他参考的国外资料:
http:
//osmocom.rtlsdr.org//trac/wiki/rtl-sdr
二、理论基础:
先了解两个名词
ADS-B:
ADS-B是”广播式自动相关监视”的英文缩写(AutomaticDependentSurveillance–Broadcast),它主要实施空对空监视,装备了ADS-B的飞机通过广播的方式报告自身的精确位置和其它数据(如速度、高度及飞机是否转弯、爬升或下降等)。
ADS-B接收机与空管系统、其它飞机的机载ADS-B结合起来,在空地都能提供精确、实时的冲突信息。
SDR:
SDR是”软件定义无线电”的英文缩写(SoftwareDefinedRadio)也称软件无线电。
随着移动通信的发展,软件无线电的概念开始广泛流行起来。
主要由于多种数字无线通信标准共存,如GSM、CDMA-IS95等,每一种制式对其手机都有不同的要求,不同制式间的手机无法互连互通。
为了解决这个问题,软件无线电方案提出将2MHz~2000MHz的空中信号全部收下来进行抽样、量化,转化成数字信号用软件处理。
换句话说,就是把空中所有可能存在的无线通信信号全部收下来进行数字化处理,从而与任何一种无线通信标准的基站进行通信。
即用计算机软件进行通信信号解调。
软件无线电技术的研究和开发已经有几十年的历史了,最初源于美军的多制式电台项目。
如果还想更多的了解这些知识请自己搜索:
)
本文中所采取的方法:
1.通过安装电视棒破解驱动,开启其支持的所有频段的接收频率,包括接收ADS-B在978Mhz、1090Mhz发射的脉冲信号。
2.使用SDR的方式来解调信号,即使用软件承担信号解调任务。
因为航空CNS标准是公开的(脉冲位置,相对幅度等)。
而且通过明文传输信息(112个未加密的脉冲字),因此编制解调软件可以正确解调飞机发射的ADS-B信号,从而获得飞机飞行的位置、高度、速度等信息。
3.对获取ADS-B的信息结合地图生成直观的飞行轨迹图。
三、环境搭建:
1.首先你需要的是一个电视棒:
Tuner芯片
频率范围
ElonicsE4000
52–2200MHz,其中1100MHzto1250MHz无法覆盖
RafaelMicroR820T
24–1766MHz
FitipowerFC0013
22–1100MHz
FitipowerFC0012
22–948.6MHz
FCIFC2580
146–308MHz,438–924MHz
目前比较主流的是E4000与R820T,据说E4000已经停产,但兼容性较好。
rootoorotor使用的是R820T,淘宝上有卖,价格50元左右,请自行搜索。
2.你需要的是一个Linux发行版,rootoorotor使用的是kaliLinux来做演示。
3.安装GNURadio:
GNURadio可谓是开源界无线电爱好者的”军火库”。
看名字可能你就猜到了,GNURadio是开源的,并且使用GPL协议开源。
项目主页和介绍:
http:
//gnuradio.org/redmine/projects/gnuradio/wiki
安装GNURadio有三种方式:
(1)自动化安装脚本安装、
(2)使用已经编译好的安装包安装、(3)手动编译安装
以上三种方法中,官网推荐使用自动化安装脚本进行安装,原因是发行版更新源中的GNURadio版本相对较老,且GNURadio更新较快使用安装源里的GNURadio会无法得到最新的技术支持,使用自动化安装脚本可以使用到最新版本的GNURadio,并且省去了手动编译安装的麻烦。
方法一:
使用自动化编译脚本进行安装(推荐)
在您喜欢的文件夹内新建一个src文件夹存放安装脚本源码:
mkdirsrc
进入存放源码与脚本的文件夹:
cdsrc
下载自动化安装脚本并执行:
wgethttp:
//www.sbrac.org/files/build-gnuradio&&chmoda+x./build-gnuradio&&./build-gnuradio
安装过车给中会提示用户是否执行脚本,点击y即可,然后请求root权限等,请根据提示操作,另外编译的时间较长,可能会耗费数小时,请耐心等待。
如果发现无法下载请使用VPN或者代理。
由于rootoorotor使用的是KaliLinux(基于Debian7)因此执行脚本的时候提示无法继续,原因是脚本只支持Debian6,如图:
rootoorotor只能选择方法
(2)中的方法来安装GNURadio(由于rootoorotor人比较懒,英语又不好而且技术太渣,这里就不选择手动编译的方式安装GNURadio了)
查看了自动化编译安装脚本的代码,发现自动化安装脚本目前仅支持以下版本的Linux发行版:
Fedora12至Fedora18,Ubuntu9.04至Ubuntu13.04,Redhat6,Debian6,Mint11或大于11,OpenSuse12.1
其余Linux发行版请使用软件源安装或者手动编译的方式进行安装。
方法二:
使用已经编译好的安装包安装(要求GNURadio版本>=v3.5.3):
你可以通过以下方法安装GNURadio以及UHD已经编译好最新版的安装包:
对于Ubuntu与Fedora的用户,可以在这里下载软件包安装。
DownloadUHD
DownloadGnuRadio
安装之后要设置环境变量,打开终端输入:
$exportPYTHONPATH=$PYTHONPATH:
/usr/lib/python2.7/dist-packages
$exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:
/usr/bin
具体方法请参考:
http:
//gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR
如果以上方法你还是觉得太麻烦了,也可以安装Linux发行版源里自带的安装包,其优点是可以自动解决依赖问题,缺点是安装包比较旧
在Debian/Ubuntu中查看gnuradio版本可以使用下面的命令:
apt-cacheshowgnuradio|grepVersion
Debian等Deb系的发行版安装方法(要求root权限执行):
apt-getinstallgnuradio
Fedora等RPM系的发行版安装方法(要求root权限执行):
yuminstallgnuradio
方法三:
如果你是个开发人员而且对Linux、C++、Python比较了解,你可下载源代码自行编译安装:
参考:
http:
//gnuradio.org/redmine/projects/gnuradio/wiki/BuildGuide
更多关于GNURadio的介绍、安装使用方法请参考:
http:
//gnuradio.org/redmine/
4.安装rtl-sdr
在安装真正的飞机信号解调软件之前,需要首先安装驱动(也就是破解的控制软件),以便解调软件能够顺利获取解调器中的A/D采样值,下面的步骤就是编译安装rtlsdr库文件以及捕获工具的。
kaliLinux下还要安装下面的安装包,后面的编译才不会缺少模块和报错(这个让rootoorotor折腾了好久。
。
。
)
sudoapt-getinstalllibusb-1.0-0-devlibuhd-devlibboost-all-devgnuradio-devswiglibcableswig-devcableswigpython-swiginaclibfftw3-devlibgsl0-devpyqt4-dev-toolsswigpython-swiginacgsl-binudevirqbalance
sudoapt-getintallDoxygen(可选)
在编译后面的软件要注意终端中”failed”或者”XXXXNOTFOUND”之类的关键词,因为有些库文件没有安装都可以通过编译,rootoorotor第一次折腾的时候没有注意因此造成一些模块无法正常使用,只能makeuninstall卸载然后再重新编译安装。
下载rtl-sdr
gitclonegit:
//git.osmocom.org/rtl-sdr.git
进入下载好的源码文件夹
cdrtl-sdr
如图所示:
编译安装rtl-sdr
mkdirbuild
cdbuild/
cmake../-DINSTALL_UDEV_RULES=ON
sudomakeinstall
sudoldconfig
编译时要注意看回显信息,make的时候看有没有failed之类的信息,下面是我部分make的信息
sudomakeinstall之后要看看没有提示未安装成功的信息,编译安装完成之后如图:
接下来还需要把rtl-sdr作为组件安装到gnuradio中,方法大同小异:
首先进入一个你想存放源代码的目录,然后:
gitclonegit:
//git.osmocom.org/gr-osmosdr
cdgr-osmosdr/
mkdirbuild
cdbuild/
cmake../
make
sudomakeinstall
sudoldconfig
接下来你就可以测试电视棒了:
将电视棒插入电脑的USB接口:
在终端中输入:
rtl_eeprom
以下是我的测试测试结果,可见电脑已经识别了电视棒
这时已经可以使用rtl_fm命令收听广播,比如我使用下面的命令收听广西交通台:
rtl_fm-W-f100.3M|play-r32k-traw-esigned-integer-b16-c1-V1-
关于rtl_fm的用法您可以使用如下命令查看
rtl_fm–help
这里有相关教程(英语),包括收听航空频率,扫描#警*用频率等……
在破解驱动安装好并测试电视棒可用之后接下来的工作就是安装信号解调软件,步骤如下:
打开终端输入:
gitclone
cdgr-air-modes/
在编译开始前,最好看一下README文件,里面说明了安装方法已经一些软件的依赖:
catREADME|more
这里贴出需求的依赖软件包供大家参考:
REQUIREMENTS
gr-air-modesrequires:
*Python>=2.5(writtenforPython2.7,Python3.0mightwork)
**NumPyandSciPyarerequiredfortheFlightGearoutputplugin.
*Gnuradio>=3.5.0
*EttusUHD>=3.4.0forusewithUSRPs
*osmosdr(anyversion)forusewithRTLSDRdongles
*SQLite3.7orlater
*CMake2.6orlater
确认您当前使用的操作系统可以满足以上需求之后,接下来开始编译安装:
mkdirbuild
cdbuild
cmake../
make
sudomakeinstall
sudoldconfig
至此,所有环境配置完成,接下来就是把电视棒接入USB接口做测试了。
三、测试与结果:
使用下面的命令查看用法。
modes_rx–help
如果想现在开始捕获ADS-B的信号,你需要把电视棒的天线尽量伸出窗外,然后直接在终端中输入:
modes_rx–gain=60–output-all–rtlsdr–kml=xxx.kml
可以用–gain调整增益,增益高一些接收能力强一些。
xxx.kml是把接收到的飞机航班号位置高度信息等存为kml文件的文件名。
正常的话应该就可以看到捕获到的ADS-B的信号,如图:
在等待一段时间之后,按ctrl+c终止信号捕获,这时可以发现在用户的当前目录下生成了.kml的文件,里面记录着飞机的飞行轨迹参数。
如果要结合地图查看该文件可以使用下面的软件:
sudoapt-getinstallgpsprune
运行gpsprune;选择:
”文件”—“打开”即可导入kml文件并查看飞行轨迹,如图:
使用googleearth也可以查看,KaliLinux下安装方法大致如下(非必要,方法不唯一,仅供参考):
sudoapt-getinstallgoogleearth-package
sudoapt-getinstallalienlib32nss-mdnslibfreeimage3lsb-coremsttcorefontspaxrpmttf-dejavuttf-bitstream-vera
make-googleearth-package–force
sudodpkg-igoogleearth*.deb
wgethttp:
//ftp.debian.org/debian/pool/non-free/n/nvidia-graphics-drivers/libgl1-nvidia-glx_313.26-1_i386.deb
dpkg-deb–extractlibgl1-nvidia-glx_313.26-1_i386.deblibgl1
cdlibgl1
sudocpusr/lib/i386-linux-gnu/nvidia/current/libGL.so.1/usr/lib/googleearth
sudocpusr/lib/i386-linux-gnu/tls/libnvidia-tls.so.313.26/usr/lib/googleearth
sudocpusr/lib/i386-linux-gnu/libnvidia-glcore.so.313.26/usr/lib/googleearth
解决乱码:
cd/usr/lib/googleearth/lang
sudomvzh-Hants.qmzh-Hants-bk
完成之后启动googleearth点击“File”–“Open”即可导入kml文件:
googleearth查看kml效果图:
googleearth可以使用3D视角查看飞行轨迹图,非常漂亮。
另外,还可以在这个网站导入kml文件:
如果您使用软件已经可以查看到捕获的飞行轨迹图说明已经完成可本文所有的工作。
本人不才,以上内容纯属没事瞎折腾…..文中有疏漏的地方欢迎指导~在下感激不尽!
四、后续:
ADS-B明文传输可能会造成一定的安全隐患(注入式幽灵飞机)可以参考这里:
不过rootoorotor听说ADS-B会改进安全机制….未来本文提供的方法可能失效。
如果本文对你有所帮助是我的荣幸!
但也请想要折腾实践的朋友务必遵守相关无线电法规,后果自负。
我国现行无线电管理的法律法规体系参考:
RTL2832U+R820T电视棒飞机的教程