OpenIPC开源FPV之Channel配置
OpenIPC开源FPV之Channel配置
- 1. 源由
- 2. 现象
- 3. 硬件
- 3.1 模拟频点
- 3.2 数字频点
- 2.4GHz频段频点表格 (802.11b/g/n):
- 5GHz频段频点表格 (802.11a/n/ac):
- 4. 分析
- 5. 实验
- 6. 参考资料
1. 源由
无线信号,传输过程中不可避免都会受到干扰。同时,由于在一个开放空间中传输的信号,或多或少可以被监听,因此需要注意安全性。
不过好在OpenIPC的FPV固件是基于wfb-ng加密传输的,等到破解秘钥估计信息早就过期了。因此,本章重点谈下Channel的配置。
2. 现象
眼见为实,看下当前设置的两个信道。理论上应该不干扰的,而实际情况:静态似乎马马虎虎,动态雪花点、横线干扰相对严重。
- OpenIPC FPV/Analog VTX Interference Test
考虑到的点:
- 频点错开 模拟(5917MHz) vs 数字(5805MHz)
- 频宽不覆盖 模拟(5~8MHz) vs 数字(20MHz)
- 空间位置 天线间距15cm
- 模拟信号VIN/VOUT 全程采用公共地屏蔽
- 模拟摄像头和数字摄像头均有各自的BEC电路(起到一定的电源隔离作用)
似乎需要进一步看看干扰源主要是以何种方式进入系统???
- 辐射干扰:信号通过电路耦合到模块内部
- 传导干扰:电源地/公共地影响到模块
3. 硬件
- VT5804 ML1
- DIY OpenIPC FPV ssc30kq+rtl8812EU
3.1 模拟频点
以下是肥鲨模拟眼镜(Fat Shark)配合**野火接收机(Wildfire RX)**的常见接收频段和频点表格,供参考:
频段 | 频点 1 | 频点 2 | 频点 3 | 频点 4 | 频点 5 | 频点 6 | 频点 7 | 频点 8 |
---|---|---|---|---|---|---|---|---|
A 频段 | 5865 | 5845 | 5825 | 5805 | 5785 | 5765 | 5745 | 5725 |
B 频段 | 5733 | 5752 | 5771 | 5790 | 5809 | 5828 | 5847 | 5866 |
E 频段 | 5705 | 5685 | 5665 | 5645 | 5885 | 5905 | 5925 | 5945 |
F 频段 (Fatshark) | 5740 | 5760 | 5780 | 5800 | 5820 | 5840 | 5860 | 5880 |
R 频段 (RaceBand) | 5658 | 5695 | 5732 | 5769 | 5806 | 5843 | 5880 | 5917 |
- A 频段和F 频段(Fatshark Band)是常用的频段,尤其是Fat Shark品牌眼镜配合使用时。
- R 频段(RaceBand)通常用于FPV竞赛,因为这些频点间隔更宽,减少了干扰。
- E 频段的高频点(5885、5905、5925、5945)有时用于接收长距离信号,但要确保你的设备支持这些频点。
3.2 数字频点
以下是RTL8812EU网卡(支持802.11a/b/g/n/ac标准)所能使用的Wi-Fi频段及频点表格,包括2.4GHz和5GHz频段的常见信道频率:
- 2.4GHz频段(信道 1-13)是全球广泛使用的标准频段,但容易受到干扰。日本允许使用信道14(2484 MHz),其他地区通常不支持。
- 5GHz频段提供了更多的信道和更宽的带宽,支持更高的数据速率,特别适合802.11ac标准。
- DFS (Dynamic Frequency Selection):在某些5GHz信道(52-140)上,设备必须支持DFS技术来检测雷达信号并避让。这些信道在部分国家受限,使用前需确认设备是否支持DFS。
- U-NII频段(Unlicensed National Information Infrastructure):5GHz频段的不同信道被划分为多个子频段,具体使用的信道受限于设备和当地法规。
2.4GHz频段频点表格 (802.11b/g/n):
信道 | 频率 (MHz) |
---|---|
1 | 2412 |
2 | 2417 |
3 | 2422 |
4 | 2427 |
5 | 2432 |
6 | 2437 |
7 | 2442 |
8 | 2447 |
9 | 2452 |
10 | 2457 |
11 | 2462 |
12 | 2467 |
13 | 2472 |
14 (仅限日本) | 2484 |
5GHz频段频点表格 (802.11a/n/ac):
信道 | 频率 (MHz) | 说明 |
---|---|---|
36 | 5180 | U-NII-1 频段 |
40 | 5200 | |
44 | 5220 | |
48 | 5240 | |
52 | 5260 | U-NII-2 频段,需支持DFS |
56 | 5280 | |
60 | 5300 | |
64 | 5320 | |
100 | 5500 | U-NII-2e 频段,需支持DFS |
104 | 5520 | |
108 | 5540 | |
112 | 5560 | |
116 | 5580 | |
120 | 5600 | |
124 | 5620 | |
128 | 5640 | |
132 | 5660 | |
136 | 5680 | |
140 | 5700 | |
144 | 5720 | |
149 | 5745 | U-NII-3 频段 |
153 | 5765 | |
157 | 5785 | |
161 | 5805 | |
165 | 5825 |
4. 分析
从逻辑角度看,由于模拟电路通常交易受到外界的干扰,通常可以从以下几个方面来考虑:
- 电磁辐射耦合
由于数字摄像头,模拟摄像头的板子都是裸露的,没有屏蔽。因此,高频信号是非常有可能通过PCB上的线路耦合到系统内部,从而产生噪声。
- PCB布局与接地设计
要减少高频电流的回流路径干扰产生的噪声。
- 电缆或导线耦合
因为是手工安装,额外的电源线、信号线比较长,会导致不必要的信号干扰。在快速原型中,这类问题尤其需要注意。
- BEC模块的噪声耦合
开关电源尤其存在噪声,尤其是一些开关电源设计如果不良,本身就是一个噪声源。
- 信号线耦合干扰
数字信号线的高频变化可能通过寄生电容或寄生电感耦合到模拟信号线。
5. 实验
将频点分割的更加远,如果能够显著降低干扰,则表明是信号串扰,主要通过天线耦合进来。反之,则需要考虑高频信号在电路、导线、BEC自身的干扰问题。
- OpenIPC FPV/Analog VTX Interference Field Test
对比现象&实验结果,整体上并没有明显的改变。
==》因此,之前逻辑上分析的干扰并非频点覆盖的判断是正确的。
同时,问题就更加复杂,因为需要进一步实验,验证电路、导线、BEC等问题源。
考虑进一步做如下对比测试:
- 两个电池分别对模拟&数字供电
- 整理过长的导线,减少导线过程形成的干扰
- 在模块外部覆盖金属薄膜,进行类似屏蔽罩的测试
注:由于该模块还有不少其他软件上的工作,就暂时不展开硬件上的细节测试。有兴趣的朋友可以进一步照着这个方向进行优化。
6. 参考资料
【1】四轴飞控DIY集成FPV功能
【2】Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考
【3】OpenIPC开源FPV之工程编译
【4】OpenIPC开源FPV之工程框架
【5】OpenIPC开源FPV之重要源码包
【6】OpenIPC开源FPV之重要源码启动配置
【7】OpenIPC开源FPV之固件sysupgrade升级
【8】OpenIPC开源FPV之Ardupilot配置
相关文章:

OpenIPC开源FPV之Channel配置
OpenIPC开源FPV之Channel配置 1. 源由2. 现象3. 硬件3.1 模拟频点3.2 数字频点2.4GHz频段频点表格 (802.11b/g/n):5GHz频段频点表格 (802.11a/n/ac): 4. 分析5. 实验6. 参考资料 1. 源由 无线信号,传输过程中不可避免都会受到干扰。同时,由于在一个开放…...

UG NX12.0建模入门笔记:1.0 UG NX12.0安装教程
一、如何关闭防火墙? 提示:安装软件之前,建议先 关闭防火墙和杀毒软件!!! 文章目录 一、如何关闭防火墙?二、UG NX12.0安装包三、UG NX12.0安装教程1.新建文件夹2.安装JAVA环境3.安装许可证管理…...

【C++】踏上C++学习之旅(三):“我“ 与 “引用“ 的浪漫邂逅
文章目录 前言1. "引用"的概念1.1 "引用"的语法 2. "引用"的特性3. "引用"的使用场景3.1 "引用"做参数3. 2 "引用"做返回值3.2.1 "引用"做返回值时需要注意的点 4. 常引用5. "引用"在底层的实…...

中间件之Seata
一、引言 在微服务架构日益盛行的今天,分布式事务成为了一个必须面对和解决的问题。传统的本地事务已经无法满足分布式环境下的数据一致性需求,因此分布式事务解决方案应运而生。Seata作为一款开源的分布式事务中间件,以其高性能、易用性和灵…...

MySQL 异常: “Host ‘xxx‘ is not allowed to connect to this MySQL server“
update user set host % where user root; FLUSH PRIVILEGES; 这两行代码就行...

c语言中字符串函数strlen,strcmp,strcpy,srtcat,strncpy,strncat,strncmp
1.strlen的使用和模拟实现 strlen 用来求字符串的长度,统计\0之前字符的个数。 模拟实现1:计数参数法 #include<stdio.h> #include<assert.h> size_t my_strlen(char* str) {int count0;assert(str);//assert断言是判断是字符串不能为空w…...

携程线下一面,面试内容:
面试时间:2024/9/12 • 实例方法和静态方法有什么不一样? • Java中的异常有哪几类?分别怎么使用? • 常用的集合类有哪些?比如List如何排序? • ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么? • 内存溢出是怎么…...

DeepL翻译:全世界最准确的翻译
DeepL翻译是一款高质量的机器翻译工具,以下从产品描述、产品特色、适用人群、适用场景四个方面对其进行介绍: 体验地址:DeepL翻译:全世界最准确的翻译 产品描述 DeepL是一家德国公司,以其高质量的机器翻译服务而闻名…...

15分钟学Go 实战项目一:命令行工具
实战项目一:命令行工具 1. 引言 命令行工具是开发者常用的工具之一,它可以帮助用户通过命令行界面对程序进行控制和交互。在这节中,我们将创建一个简单的命令行工具,以帮助你理解Go语言的基本语法和如何处理命令行输入。在这个过…...

lesson02 作业
lesson02-01作业 小红的体重是 m 千克,她想知道自己的体重在磅(1 千克约等于 2.20462 磅)是多少 输入描述 输入一个整数表示小红的标准体重m(kg) 输出描述 输出一个整数表示转换后的磅值n 磅 示例 输入: 50 输出:…...

港大和字节提出长视频生成模型Loong,可生成具有一致外观、大运动动态和自然场景过渡的分钟级长视频。
HKU, ByteDance|⭐️ 港大和字节联合提出长视频生成模型Loong,该模型可以生成外观一致、运动动态大、场景过渡自然的分钟级长视频。选择以统一的顺序对文本标记和视频标记进行建模,并使用渐进式短到长训练方案和损失重新加权来克服长视频训练…...

RabbitMQ进阶_可靠性
文章目录 一、 发送者的可靠性1.1、 生产者重试机制1.2、 生产者确认机制1.2.1、确认机制理论1.2.2、确认机制实现1.2.2.1、定义ReturnCallback1.2.2.2、定义ConfirmCallback 二、 MQ的可靠性2.1、 数据持久化2.1.1、 交换机持久化2.1.2、 队列持久化2.1.3、 消息持久化 2.2、 …...

JavaScript字符串的常用方法有哪些?
1.1操作方法 归纳为增删查改 1.1.1增 这里不是直接增添内容,而是创建字符串的一个副本,再进行操作 处理用以及${}进行字符串拼接外,还可以通过concat 1.1.1.1concat 用于将一个或多个字符串拼接为一个新字符串(浅拷贝&#…...

jmeter发送post请求
在jmeter中,有两种常用的请求方式,get和post.它们两者的区别在于get请求的参数一般是放在路径中,可以使用用户自定义变量和函数助手等方式进行参数化,而post请求的参数不能随url发送,而是作为请求体提交给服务器。而在…...

图文深入理解Oracle Total Recall
List item 题记:本文图文深入理解Oracle Total Recall技术。 1. Oracle Total Recall 概述 Oracle Total Recall(也称为 Flashback Data Archive - 闪回数据归档)提供了一种用于跟踪数据库更改的机制,可自动跟踪数据库历史更改…...

腾讯云控制台URL刷新URL预热 使用接口刷新
如图所示的俩个控制台功能,调用腾讯云的接口执行这俩个动作 (代码可以优化)nodejs框架是express, 这里粘贴调用成功的代码示例,做个记录。 app.get(/PurgeUrlsCache, async function (req, res, next) {// Depends on tencentclo…...

构建后端为etcd的CoreDNS的容器集群(二)、下载最新的etcd容器镜像
在尝试获取etcd的容器的最新版本镜像时,使用latest作为tag取到的并非最新版本,本文尝试用实际最新版本的版本号进行pull,从而取到想的最新版etcd容器镜像。 一、用latest作为tag尝试下载最新etcd的镜像 1、下载镜像 [rootlocalhost opt]# …...

libaom-all-intra参数说明
part_sf.less_rectangular_check_level 1; 这个设置可能控制编码器在分割画面时使用非矩形分区的检查级别。part_sf.ml_prune_partition 1; 这个设置可能用于基于机器学习(ML)的分区修剪,以减少不必要的计算。part_sf.prune_ext_partition_…...

应用假死?
有个客户10月18日应用接口都访问慢,nginx层面error显示连接拒绝,当时实施同学重启了java应用运行正常,但今天又卡死了,后台登录也登录不上去,看日志没异常,最终找到了数据库层面。 查看数据库相关日志&…...

SAP MM+FI - 物料管理模块与财务会计模块的集成配置
01 采购费用过账配置表 为了方便项目实施过程中采购费用过账配置,迪森资深专家根据丰富经验总结得出采购费用过账配置表,以供大家参考: 02 材料采购订单入库及结算 2.1采购订单入库 假设:入库数量1000PC,价格 10 元…...

初阶数据结构【3】--单链表(比顺序表还好的一种数据结构!!!)
本章概述 前情回顾单链表实现单链表彩蛋时刻!!! 前情回顾 咱们在上一章博客点击:《顺序表》的末尾,提出了一个问题,讲出了顺序表的缺点——有点浪费空间。所以,为了解决这个问题,我…...

mysql迁移到达梦的修改点
字段是达梦关键字的,达梦会给转成大写,如果不要转则需要使用双引号引起来。关键字参考:D:\dmdbms\doc\DM8_SQL语言使用手册.pdf 例如:RowCount Level Content Password Locked 中文乱码问题,需要在应用程序所在服务器的…...

Go小技巧易错点100例(十八)
正文: 使用下划线增加数字可读性 有时候我们代码里会定义很长的数字,虽然计算机程序能支持很大的数据的计算,但是对我们来说,可读性是一个需要考虑的点,特别是1后面全是0的时候。 但是这个问题在Go语言中是可以通过…...

【python】极简教程8-字符串
第八章:字符串 8.1 字符串即序列 字符串是一系列字符的有序集合,可以使用索引访问字符串中的各个字符,索引从 0 开始。 示例代码: fruit = banana letter = fruit[1] print(letter) # 输出: a8.2 len 函数 len 函数返回字符串的长度(字符数)。...

UEFI EDK2框架学习 (四)——UEFI图形化
一、修改protocol.c #include <Uefi.h> #include <Library/UefiLib.h> #include <Library/UefiBootServicesTableLib.h> #include <stdio.h>EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle,IN EFI_SYSTEM_TABLE *SystemTable ) {EFI_STATUS S…...

【C++】— 一篇文章让你认识STL
文章目录 🌵1.什么是STL?🌵2.STL的版本🌵3.STL的六大组件🌵4.STL的重要性🌵5. 如何学习STL🌵6. 学习STL的三种境界 🌵1.什么是STL? STL是Standard Template Library的简称…...

mysql--索引
目录 1、长什么样 2、硬件理解 3、软件理解 4、进一步认识 5、索引的理解 6、为什么不选择其他数据结果? 7、聚簇索引和非聚簇索引 8、索引操作 (1)主键索引创建 第一种方式 第二种方式 第三种方式 主键索引的特点 (…...

【linux】线程 (三)
13. 常见锁概念 (一)了解死锁 死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程占有的,且不释放的资源,而处于的一种永久等待状态 (二)死锁四个必要条件 互斥条件…...

c++日常积累
在 C 中,可以直接将 int 类型的值赋值给 bool 类型。C 会自动进行类型转换,任何非零的 int 值都会被转换为 true,而 0 会被转换为 false。 QDialog 有一个 finished(int) 信号,该信号在对话框关闭时发出,并传递一个整…...

字节流写入文件
一、创建输出流对象表示的文件三种方式 方法一: FileOutputStream fos new FileOutputStream("fos.txt",true);//最简便方法二: FileOutputStream fos new FileOutputStream(new File("fos.txt"));方法三; File f ne…...