用 JavaScript 构建飞机雷达系统

几年前,我看到了Thomas Watson的精彩演讲,他在演讲中谈到了他是如何构建AirplaneJS的,这是一个网络应用程序,可以从飞机上接收ADS-B无线电信号,并在浏览器的地图上实时绘制它们。我不知道这在 JavaScript 中是可能的,所以我开始研究它。

我玩弄了这个项目,并开始想知道是否有办法可以将它推得更远一些。考虑到 AirplaneJS 在服务器上使用 Node.js,我决定进行实验,看看是否可以使用 Web USB 使其工作,从而将其变成仅前端的项目。几周前我终于让它工作了🥳所以决定写下来。

我还在学习很多关于 USB 协议以及如何解码 ADS-B 信号的知识,所以这篇文章不会深入探讨这个主题。

在我开始之前,这里有一个演示:

动图

这是演示站点的链接

RTL-SDR 加密狗

该项目的主要组件包括Web USB APIRTL-SDR 加密狗 + 天线和一些 JavaScript 代码。

如今,大多数飞机都广播 ADS-B 数据,即自动相关监视广播。这是一种监视技术,允许飞机在不被询问的情况下广播其飞行状态,这意味着它不需要飞行员的输入。
此数据指示飞机的位置、纬度、经度、速度、代码等。
他们会定期将此数据传输给空中交通管制员,但是,使用带有天线的软件定义无线电加密狗,您可以拦截这些消息以制作您自己的飞机雷达系统📡。

您可以购买或制造不同类型的天线,但我个人使用的是偶极天线。

由于数据以 1090 MHz 的频率广播,因此偶极子的大小需要使用以下公式计算:

<span style="color:#171717"><span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-name-color)">In</span> <span style="color:var(--syntax-name-color)">feet</span><span style="color:var(--syntax-text-color)">:</span>

<span style="color:var(--syntax-name-color)">Total</span> <span style="color:var(--syntax-name-color)">length</span> <span style="color:var(--syntax-error-color)">=</span> <span style="color:var(--syntax-literal-color)">468</span> <span style="color:var(--syntax-error-color)">/</span> <span style="color:var(--syntax-name-color)">Frequency</span> <span style="color:var(--syntax-declaration-color)">in</span> <span style="color:var(--syntax-name-color)">MHz</span> <span style="color:var(--syntax-comment-color)">// Gives the total lengh of the dipole</span>

<span style="color:var(--syntax-name-color)">Length</span> <span style="color:var(--syntax-declaration-color)">of</span> <span style="color:var(--syntax-name-color)">each</span> <span style="color:var(--syntax-name-color)">branch</span> <span style="color:var(--syntax-error-color)">=</span> <span style="color:var(--syntax-name-color)">Total</span> <span style="color:var(--syntax-name-color)">length</span> <span style="color:var(--syntax-error-color)">/</span> <span style="color:var(--syntax-literal-color)">2</span>

<span style="color:var(--syntax-error-color)">---</span>

<span style="color:var(--syntax-name-color)">In</span> <span style="color:var(--syntax-name-color)">cm</span><span style="color:var(--syntax-text-color)">:</span>

<span style="color:var(--syntax-name-color)">Total</span> <span style="color:var(--syntax-name-color)">length</span> <span style="color:var(--syntax-error-color)">=</span> <span style="color:var(--syntax-literal-color)">14264</span> <span style="color:var(--syntax-error-color)">/</span> <span style="color:var(--syntax-name-color)">Frequency</span> <span style="color:var(--syntax-declaration-color)">in</span> <sp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值