当前位置: 首页 > news >正文

怎样使用树莓派自己搭建一套ADS-B信号接收系统

0 我们知道,ADS-B全称广播式自动相关监视系统,其实就是飞机发出的广播信号,用明码来对外发送自己的位置、高度、速度、航向等信息,是公开信息。连续接收到一架飞机发出的ADS-B信息后,可以通过其坐标点来描绘出飞机的航行轨迹,并实时获取其飞行状态。这对于现今的民航飞行来说已经是非常普遍的了。

但除了民用飞机外,军用航空器也会安装有ADS-B系统,主要是为了空中防碰撞。以某些距离城市及机场非常近的军用机场为例,他们使用的空域会与民用航空器的空域有不少的交集,这就需要开启ADS-B设备,便于地面指挥。

不过也不必担心,在正常情况下,执行任务的军用航空器都会关闭ADS-B设备,防止暴露行踪。同时在国内,虽然军用航空器会开启ADS-B,但都会进行一定的处理以消除敏感信息,只显示必要的、满足需求的信息出来,比如高度航向速度等。

1 前言 因为自己是一个无线电爱好者,所以对一些无线电信号的传播和接受非常感兴趣。看到网络上有很多关于ADS-B信号接收器的设计很是感兴趣,因此这段时间就在淘宝上网购了必须的硬件然后搭建了一下。注意这个项目知识用来研究和学习的,关键的是用来了解背后的代码是怎么写的,RTL-SDR是怎么工作的。
2 警告:请不要尝试将相关电波数据传送至FR24,RadarBox,FA等境外平台, 这将严重违反无线电管理条例以及国家安全法!
3 所需硬件:

树莓派4B,4G足够,MicroSD Card 32G

SDR接受硬件RTL2832

天线,自己可以做137mm半波长DP天线就可以,馈线(SMA接口)

高频放大器(可以没有,有效果更好)

还要有网络

1 首先是安装树莓派的操作系统,注意,树莓派最好配一个5V3A,15W的电源,确保树莓派稳定工作。我选择的是使用Raspberry Pi烧录器来写SD卡,版本是最新的v1.8.5。选择的是64位的Raspberry Pi OS Lite系统,很小,只有0.4G大小。在烧录入之前选择好WIFI的设置,然后烧录。这样上电开机后才可以ssh过去。

2 树莓派开机正常后,ssh过去:ssh ads-b@192.168.1.10

输入密码登录。然后进行必要软件的安装

首先是升级系统,然后安装必要软件:

$ sudo apt-get update

$ sudo apt-get install git

$ sudo apt-get install cmake

$ sudo apt-get install build-essential

上面的都是确保我们下载开源代码我们能够编译的必要基础库文件。

然后是安装usb驱动文件

$ sudo apt-get install libusb-1.0-0-dev

接下来,我们要下载RTL2832u的驱动代码,然后进行编译安装

$ git clone https://gitea.osmocom.org/sdr/rtl-sdr.git

$ cd rtl-sdr

$ mkdir build

$ cd build

$ cmake ../ -DINSTALL_UDEV_RULES=ON

$ make

$ sudo make install

$ sudo ldconfig

$ sudo cp ../rtl-sdr.rules /etc/udev/rules.d

将上一层文件rtl-sdr.rules 拷贝到/etc/udev/rules.d目录中。

将使用电视棒作为电视设备自动加载的默认驱动程序列入黑名单,因为它不能让电视棒作为 SDR 使用,并且将会与我们刚刚安装的新驱动程序发生冲突。

打开 /etc/modprobe.d 文件夹

在该目录下创建一个叫 blacklist-rtl.conf 的新文件,

$ sudo touch blacklist-rtl.conf

$ sudo vim balcklist=rtl.conf

在文件中加入 blacklist dvb_usb_rtl28xxu 这条指令,保存文件,并重启。

机器重启后,将电视棒插入 usb 接口,打开 Terminal 窗口,输入 rtl_test -t 命令,测试电视棒是否能够被正常驱动。

出现这个信息,说明硬件和驱动安装正确。

然后安装dump1090

$ git clone https://github.com/antirez/dump1090.git

$ cd dump1090

$ make

$ ./dump1090 –interactive

出现这个界面说明一切都正常。

然后启动:

$ doump1090 –interactive –net –enable-agc

因为我使用ssh登录的,所以我在另外电脑的浏览器中输入:ip:8080就能看到这个界面了。

完美收官。

因为网络环境的原因,google地图打不开,地图在这里,把这个题图替换一下就可以了。https://download.csdn.net/download/kangdehua/90290284

但是,这个页面(gmap.html)打开的图,还是有些问题的。

在这个项目中,我们需要了解的是RTL-SDR的硬件是怎么工作的请参考博文:[RTL-SDR] RTL-SDR原理图_r820t-CSDN博客

了解了原理,你就知道了我们软件都安装了什么内容,以及为什么要这么做。

相关文章:

怎样使用树莓派自己搭建一套ADS-B信号接收系统

0 我们知道,ADS-B全称广播式自动相关监视系统,其实就是飞机发出的广播信号,用明码来对外发送自己的位置、高度、速度、航向等信息,是公开信息。连续接收到一架飞机发出的ADS-B信息后,可以通过其坐标点来描绘出飞机的航…...

Chrome谷歌浏览器如何能恢复到之前的旧版本

升级了谷歌最新版不习惯,如何降级版本 未完待续。。 电脑中的Chrome谷歌浏览器升级到了最新版本,但是有种种的不适应,如何能恢复到之前的旧版本呢?我们来看看操作步骤,而且无需卸载重装。 怎么恢复Chrome 之前版本&a…...

路由器旁挂三层网络实现SDWAN互联(爱快SD-WAN)

近期因公司新办公区建设,原有的爱快路由器的SDWAN功能实现分支之间互联的服务还需要继续使用。在原有的小型网络中,使用的爱快路由器当作网关设备,所以使用较为简单,如下图所示。 现变更网络拓扑为三层网络架构,但原有的SDWAN分支…...

代码随想录算法训练营第五十五天 |108.冗余连接 109.冗余连接Ⅱ

108.冗余连接: 文章链接 题目链接:108.冗余连接 思路 首先分析题目,给定拥有n个节点和n条边的图,其中图是在原n个节点和n - 1条无环无向图中添加一条边得到的。要求是输出多出的边。(PS:可能会有多个答案…...

Unity补充 -- 协程相关

1.协程。 协程并不是线程。线程是主线程之外的另一条 代码按照逻辑执行通道。协程则是在代码在按照逻辑执行的同时,是否需要执行额外的语句块。 2.协程的作用。 在update执行的时候,是按照帧来进行刷新的,也是按照帧执行代码的。但是又不想…...

【第二十周】U-Net:用于生物图像分割的卷积神经网络

文章目录 摘要Abstract文章信息研究动机U-Net网络结构U-Net网络搭建数据增强损失函数转置卷积创新性与不足创新性:不足: 总结 摘要 U-Net(Convolutional Networks for Biomedical Image Segmentation)是一种用于图像分割的深度学…...

部署Metricbeat监测ES

官方参考文档 安装Metricbeat curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.17.27-linux-x86_64.tar.gztar xzvf metricbeat-7.17.27-linux-x86_64.tar.gz设置 Metricbeat连接到 Elasticsearch 进入metricbeat目录配置metricbeat.yml …...

Pytorch|YOLO

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 一、 前期准备 1. 设置GPU 如果设备上支持GPU就使用GPU,否则使用CPU import torch import torch.nn as nn import torchvision.transforms as transforms im…...

云计算与物联网技术的融合应用(在工业、农业、家居、医疗、环境、城市等整理较全)

摘要 为生产领域带来更加全面和深入的变革。通过云计算平台对物联网数据进行处理和分析,企业可以实现对生产过程的更加精细化的管理和控制。 1. 智能生产调度 通过云计算和物联网技术的融合应用,企业可以实现对生产线上各个环节的实时监控和数据分析。…...

基于python+Django+mysql鲜花水果销售商城网站系统设计与实现

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…...

Golang:报错no required module provides package github.com/xx的解决方法

报错 问题重现可能的原因及解决方法1. 未初始化 Go 模块解决方法: 2. 没有添加依赖解决方法: 3. 网络问题解决方法: 4. 依赖版本问题解决方法: 5. 包未发布或路径拼写错误解决方法: 6. go mod tidy 未运行解决方法&…...

数据结构与算法(2):顺序表与链表

1.前言 哈喽大家好喔,今天博主继续进行数据结构的分享与学习,今天的主要内容是顺序表与链表,是最简单但又相当重要的数据结构,为以后的学习有重要的铺垫,希望大家一起交流学习,互相进步,让我们…...

华为OD机试E卷 --过滤组合字符串--24年OD统一考试(Java JS Python C C++)

文章目录 题目描述输入描述输出描述用例题目解析JS算法源码Java算法源码python算法源码c算法源码c++算法源码题目描述 数字 0、1、2、3、4、5、6、7、8、9 分别关联 a~z 26 个英文字母。 0 关联“a”"b”"c1 关联“d”"e”"f2 关联“g"“h”“i”3 关…...

QT跨平台应用程序开发框架(3)—— 信号和槽

目录 一,基本概念 二,connect函数使用 2.1 connect 2.2 Qt内置信号和槽 2.3 一些细节 三,自定义信号和槽 3.1 自定义槽函数 3.2 自定义信号 3.3 带参数的信号槽 四,信号和槽的意义 五,信号和槽断开连接 六&…...

从 0 开始实现一个 SpringBoot + Vue 项目

从 0 开始实现一个 SpringBoot Vue 项目 从 0 开始实现一个 SpringBoot Vue 项目 软件和工具创建 SpringBoot 后端项目创建 MySQL 数据库配置文件实现增删改查接口 Model 层mapper 层service 层controller 层测试 实现项目功能接口 代码测试 创建 Vue 前端 安装 Node.js配置…...

【无标题】微调是迁移学习吗?

是的,微调(Fine-Tuning)可以被视为一种迁移学习(Transfer Learning)的形式。迁移学习是一种机器学习方法,其核心思想是利用在一个任务上学到的知识来改进另一个相关任务的性能。微调正是通过在预训练模型的…...

虚幻基础1:hello world

能帮到你的话,就给个赞吧 😘 文章目录 hello world创建项目创建关卡创建蓝图将蓝图插入关卡中运行 hello world 本文引擎为5.5.1 创建项目 如图 创建后如图。 创建关卡 如图 创建蓝图 如图 选择actor 双击进入蓝图节点 选择事件图表 创…...

C链表的一些基础知识

一、链表的基本概念 链表是一种常见的线性数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针(单链表情况)。通过指针将各个节点连接起来,与数组不同,链表在内存中的存储不是连续的…...

JDK长期支持版本(LTS)

https://blogs.oracle.com/java/post/the-arrival-of-java-23 jdk长期支持版本(LTS):JDK 8、11、17、21:...

【超详细】Python datetime(当前日期、时间戳转换、前一天日期等)【附:时区原理详解】

文章目录 相关文献当前时间前一天日期、后一天日期东八区(北京)时间时间戳转换datetime -> strstr -> datetimedatetime -> timestamp(时间戳)timestamp -> datetime 获取日期中的年、季度、月、周、日、小时、分、秒等时区原理时区问题复杂…...

技巧小结:根据寄存器手册写常用外设的驱动程序

需求:根据STM32F103寄存器手册写DMA模块的驱动程序 一、分析标准库函数的写法: 各个外设的寄存器地址定义在stm32f10x.h文件中:此文件由芯片厂家提供;内核的有关定义则定义在core_cm3.h文件中:ARM提供; 1、查看外设区域多级划分…...

Redis:Hash数据类型

🌈 个人主页:Zfox_ 🔥 系列专栏:Redis 🔥 Hash哈希 🐳 ⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射。在Redis中&#…...

OpenCV CUDA模块图像处理------双边滤波的GPU版本函数bilateralFilter()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数在 GPU 上执行双边滤波操作,是一种非线性平滑滤波器,能够在 保留边缘的同时去除噪声。 函数原型 void cv::cuda:…...

前端面试五之vue2基础

1.属性绑定v-bind(:) v-bind 是 Vue 2 中用于动态绑定属性的核心指令,它支持多种语法和用法,能够灵活地绑定 DOM 属性、组件 prop,甚至动态属性名。通过 v-bind,可以实现数据与视图之间的高效同…...

.NET 9中的异常处理性能提升分析:为什么过去慢,未来快

一、为什么要关注.NET异常处理的性能 随着现代云原生、高并发、分布式场景的大量普及,异常处理(Exception Handling)早已不再只是一个冷僻的代码路径。在高复杂度的微服务、网络服务、异步编程环境下,服务依赖的外部资源往往不可…...

Android 视图系统入门指南

1. View:界面的最小单位 本质:屏幕上的一个矩形区域,能显示内容或接收触摸。比喻:就像乐高积木,是组成界面的最小单位。常见子类: TextView(文字积木)、Button(按钮积木…...

uniapp 对接腾讯云IM群公告功能

UniApp 实战:腾讯云IM群公告功能 一、前言 在即时通讯场景中,群公告是信息同步的重要渠道。本文将基于uniapp框架,结合腾讯云IM SDK,详细讲解如何实现群公告的发布、修改、历史记录查询等核心功能。 群公告的数据结构设计权限校…...

RabbitMQ 学习

MQ 的相关概念 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。…...

Global Security Market知识点总结:主经纪商业务

在全球证券市场的复杂体系中,主经纪商业务(Prime Brokerage)占据着独特且关键的位置。这一业务为大型机构投资者提供了一系列至关重要的服务,极大地影响着金融市场的运作与发展。 一、主经纪商业务的定义 主经纪商业务是投资银行…...

GitHub 趋势日报 (2025年06月05日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 1472 onlook 991 HowToCook 752 ChinaTextbook 649 quarkdown 451 scrapy 324 age…...