OpenIPC开源FPV之Adaptive-Link工程解析
1. 源由
目的蛮简单的,在做集成之前搞清楚集成代码的工作原理。与RF相关的内容,始终搞得非常神秘,也确实神秘!
RF神秘的主要原因:相关变量比较多,且非线性相关,再加上实际应用场景复杂,导致很多情况下一不注意就发生说不出的为什么信号衰减了。
==》最为底层的逻辑是电磁学核心麦克斯韦方程组
==》或者更加通俗的可以认为是高斯定律(磁场)、法拉第电磁感应定律、安培-麦克斯韦定律的综合作用
注:这里不做展开物理学理论(虽然很想,想当初方程组的推导随便15分钟的事情)。另外,也不会展开RF
设计知识(反正我也不太懂),但是要明白的是通过这些底层逻辑,能够从本质上更好的理解信号衰减+增强在实际环境如何处理、简化。
2. 工程结构
为了更好的理解和进一步优化,我们对OpenIPC的Adaptive Link进行了整理。
详细代码分支详见:OpenIPC-Adaptive-Link/arrange_project_structure
.
├── ALink42n.c
├── ALink42p.c
├── ALink42q.c
├── alink_drone.c
├── alink_gs.py
├── build.sh
├── install.sh
├── Makefile
├── LICENSE
├── README.md
├── config
│ ├── alink.conf
│ └── txprofiles.conf
└── more
├── setpower.sh
├── spreadfwd.py
└── spreadfwd.readme.txt
3. 工程脚本
build.sh
: 为了进行摄像头端代码的编译构建
注:支持goke|hisi|star6b0|star6e交叉编译。
$ ./build.sh
Usage: ./build.sh [goke|hisi|star6b0|star6e|native]
install.sh
: 为了简化安装流程的脚本文件。
注:为了简化安装,支持从代码库直接安装,以及网络安装。
$ ./install.sh --help
Usage: ./install.sh gs <install|remove|update> [src]
./install.sh drone <install|remove|update> <goke|hisi|star6b0|star6e> [src]
4. 工程代码
4.1 天空端
Makefile
: 天空端嵌入式工程主要构建文件ALink42n.c
ALink42p.c
ALink42q.c
注:目前尚并不是非常清楚三个文件主要功能区别,从代码复杂角度:q > p > n。
4.2 地面端
alink_gs.py
: 不依赖硬件的地面端程序
5. 总结
本文先从工程总体上给出一个概貌,后续在陆续放出更为细节的内容。
6. 补充知识
6.1 高斯定律(电场)
描述: 电场的通量与封闭面内部的电荷成正比,说明电荷是电场的源。
-
积分形式:
∮ ∂ V E ⋅ d A = Q enc ε 0 \oint_{\partial V} \mathbf{E} \cdot d\mathbf{A} = \frac{Q_{\text{enc}}}{\varepsilon_0} ∮∂VE⋅dA=ε0