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

Open FPV VTX开源之嵌入式OSD配置

Open FPV VTX开源之嵌入式OSD配置

  • 1. 源由
  • 2. 安装
  • 3. 配置
    • 步骤一:备份`/etc/telemetry.conf`
    • 步骤二:修改`/etc/telemetry.conf`
    • 步骤三:配置时区
    • 步骤四:重启摄像头
  • 4. 实测
  • 5. 参考资料

1. 源由

穿越机模拟图传延迟通常在10ms左右。

最近为什么OpenIPC这么热,主要原因就是该项目性能已经提高到35ms左右。

当然,要达到这个要求,并非简单的一个摄像头,还需要地面端(解码)、高刷率屏幕的支持。

打个比方:

  • 如果屏幕刷新率只有30FPS,1000ms/30FPS = 33.33ms/frame
  • 即使编码、解码、传输都完成了,时间上错过刷新周期,那么就是妥妥要额外在延迟33.33ms了

嵌入式OSD是飞控MCU通过SPI控制MAX7456芯片在图像上直接绘制,大致流程如下:

Analog Camera ----> MAX 7456 chip ----> Analog VTX ----> Antenna(Wireless) ----> RF Receiver(RX5808) ----> Goggles(Fat Shark)^| SPI|Flight Controller

当前Open FPV VTX并不是嵌入式OSD配置交付。因此产品到手后需要做一个简单配置。

IMX335/415 Camera -- MIPI --> SSC30kq/SSC338q chip -- USB --> 8812AU/EU Tx ----> Antenna(Wireless) ----> 8812AU/EU Rx -- USB --> Ground Startion^| UART|Flight Controller

2. 安装

通常情况下,嵌入式OSD软件msposd已经安装,因此无需手动安装。

注:如果您的固件没有上述软件,请更新到最新的固件,参考:《OpenIPC开源FPV之固件sysupgrade升级》

  • 安装目录结构:
 /├──> /usr/bin/│   ├──> msposd│   └──> safeboot.sh├──> /etc/vtxmenu.ini└──> /usr/share/fonts/├──> font_ardu.png├──> font_ardu_hd.png├──> font_btfl.png├──> font_btfl_hd.png├──> font_inav.png├──> font_inav_hd.png└──> truetype/UbuntuMono-Regular.ttf
  • msposd帮助信息:
# msposd --help
Ver: 861a97c Compiled at: 20241130_234711
Usage: msposd [OPTIONS]
Where:-m --master      Serial port to receive MSP (/dev/ttyAMA0 by default)-b --baudrate    Serial port baudrate (115200 by default)-o --output              UDP endpoint to forward aggregated MSP messages ()-c --channels    RC Channel to listen for commands (0 by default) and exec channels.sh. This command can be repeated. Channel values are 1-based.-w --wait        Delay after each command received(2000ms default)-r --fps         Max MSP Display refresh rate(5..50)-p --persist     How long a channel value must persist to generate a command - for multiposition switches (0ms default)-t --temp        Read SoC temperature-d --wfb         Monitors wfb.log file and reports errors via HUD messages-s --osd         Parse MSP and draw OSD over the video-a --ahi         Draw graphic AHI, mode [0-No, 2-Simple 1-Ladder, 3-LadderEx]-x --matrix      OSD matrix (0 - 53:20 , 1- 50:18 chars)--mspvtx      Enable mspvtx support-v --verbose     Show debug infot--help           Display this help

3. 配置

先把配置的改动放在这里,以diff方式给出:仅修改了router=0

# diff -Nr telemetry.conf.bak /etc/telemetry.conf
--- telemetry.conf.bak
+++ /etc/telemetry.conf
@@ -5,7 +5,7 @@baud=115200### router: use simple mavfwd (0), classic mavlink-routerd (1) or msposd instead of mavfwd (2)
-router=0
+router=2wlan=wlan0bandwidth=20

首先,通过ssh方式登录系统。

步骤一:备份/etc/telemetry.conf

$ cp /etc/telemetry.conf /root/telemetry.conf.bak

步骤二:修改/etc/telemetry.conf

$ vi /etc/telemetry.conf
$ diff -uN /root/telemetry.conf.bak /etc/telemetry.conf
--- /root/telemetry.conf.bak
+++ /etc/telemetry.conf
@@ -5,7 +5,7 @@baud=115200### router: use simple mavfwd (0), classic mavlink-routerd (1) or msposd instead of mavfwd (2)
-router=0
+router=2wlan=wlan0bandwidth=20
  • 或者采用图形化配置工具进行配置(配置2即可),详见: Open FPV VTX开源之图形化配置工具

在这里插入图片描述

步骤三:配置时区

  • change localtime instead of gmtime on OSD display #39
$ sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

注1:不同时区的朋友,请根据自己所在时区进行设置。
注2:时区的目的是为了自定义OSD输出,详见:libcamera_mon 开源代码之树莓派3B+ Bookworm部署

步骤四:重启摄像头

$ reboot

此时,mavfwd 将不会启动,取代它的是msposd进程,该进程就是嵌入式OSD软件。

4. 实测

当飞控串口没有配置OSD协议的时候(或者默认MAVLink时),将会显示"Identifying Flight Controller …"

在这里插入图片描述

接下去将在各种飞控地面站上进行嵌入式OSD协议配置,详见以下介绍:

  • 【1】Open FPV VTX开源之ardupilot配置
  • 【2】Open FPV VTX开源之betaflight配置
  • 【3】Open FPV VTX开源之inav配置

5. 参考资料

【1】Open FPV VTX开源之硬件规格及组成
【2】Open FPV VTX开源之第一次出图
【3】Open FPV VTX开源之默认MAVLink设置
【4】Open FPV VTX开源之图像化配置工具

相关文章:

Open FPV VTX开源之嵌入式OSD配置

Open FPV VTX开源之嵌入式OSD配置 1. 源由2. 安装3. 配置步骤一:备份/etc/telemetry.conf步骤二:修改/etc/telemetry.conf步骤三:配置时区步骤四:重启摄像头 4. 实测5. 参考资料 1. 源由 穿越机模拟图传延迟通常在10ms左右。 最…...

2Hive表类型

2Hive表类型 1 Hive 数据类型2 Hive 内部表3 Hive 外部表4 Hive 分区表5 Hive 分桶表6 Hive 视图 1 Hive 数据类型 Hive的基本数据类型有:TINYINT,SAMLLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE&a…...

计算机网络之---公钥基础设施(PKI)

公钥基础设施 公钥基础设施(PKI,Public Key Infrastructure) 是一种用于管理公钥加密的系统架构,它通过结合硬件、软件、策略和标准来确保数字通信的安全性。PKI 提供了必要的框架,用于管理密钥对(包括公钥…...

EF Core执行原生SQL语句

目录 EFCore执行非查询原生SQL语句 为什么要写原生SQL语句 执行非查询SQL语句 有SQL注入漏洞 ExecuteSqlInterpolatedAsync 其他方法 执行实体相关查询原生SQL语句 FromSqlInterpolated 局限性 执行任意原生SQL查询语句 什么时候用ADO.NET 执行任意SQL Dapper 总…...

GaussDB分布式数据倾斜处理

常规数据倾斜巡检 在库中表个数少于1W的场景,直接使用倾斜视图查询当前库内所有表的数据倾斜情况 SELECT * FROM pgxc_get_table_skewness ORDER BY totalsize DESC;在库中表个数非常多(至少大于1W)的场景,因PGXC_GET_TABLE_SKEWN…...

代码随想录Day34 | 62.不同路径,63.不同路径II,343.整数拆分,96.不同的二叉搜索树

代码随想录Day34 | 62.不同路径,63.不同路径II,343.整数拆分,96.不同的二叉搜索树 62.不同路径 动态规划第二集: 比较标准简单的一道动态规划,状态转移方程容易想到 难点在于空间复杂度的优化,详见代码 class Solution {public int uniq…...

vue.js辅助函数-mapMutations

在Vue.js中,使用辅助函数可以更方便地使用Vuex的mutation。而mapMutations就是Vuex提供的一个辅助函数,它可以将mutation映射到组件的methods中,使得我们可以在组件中直接调用mutation,而不需要手动进行commit。 mapMutations函数…...

Vue3组件设计模式:高可复用性组件开发实战

Vue3组件设计模式:高可复用性组件开发实战 一、前言 在Vue3中,组件设计和开发是非常重要的,它直接影响到应用的可维护性和可复用性。本文将介绍如何利用Vue3组件设计模式来开发高可复用性的组件,让你的组件更加灵活和易于维护。 二、单一职责…...

PHP 8.4 安装和升级指南

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

什么是 OpenResty

1、OpenResty简介 1.1 了解OpenResty OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 简单地说OpenRes…...

Windows图形界面(GUI)-QT-C/C++ - QT控件创建管理初始化

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 控件创建 包含对应控件类型头文件 实例化控件类对象 控件设置 设置父控件 设置窗口标题 设置控件大小 设置控件坐标 设置文本颜色和背景颜色 控件排版 垂直布局 QVBoxLayout …...

【计算机网络】lab8 DNS协议

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...

了解linux中的“of_property_read_u32()”

of_property_read_u32(node, "post-pwm-on-delay-ms",&data->post_pwm_on_delay); /*根据"post-pwm-on-delay-ms",从属性中查找并读取一个32位整数*/ /*读到一个32位整数,保存到data->post_pwm_on_delay中*/ of_property_read_u32…...

iOS - Objective-C 底层中的内存屏障

1. 基本实现 // objc-os.h 中的内存屏障实现 #define OSMemoryBarrier() __sync_synchronize()// ARM 架构特殊处理 static ALWAYS_INLINE void OSMemoryBarrierBeforeUnlock() { #if defined(__arm__) || defined(__arm64__)OSMemoryBarrier(); #endif } 2. 解锁前的内存屏…...

阿里云服务器扩容系统盘后宝塔面板不显示扩容后的大小

解决方法步骤: 1. yum install cloud-utils-growpart xfsprogs -y 2.growpart /dev/vda 3 扩容系统盘的第3个分区 主要是这个命令1 3. fdisk -l 4. df -h 5. xfs_growfs /dev/vda3 主要是这个命令2 主要使用 df -Th 这个命令查看对应的文件系统类型 (1)、ext…...

c语言——【linux】多进程编程 【进程的创建,相关shell指令,进程状态切换,回收资源,守护进程等】

1.思维导图 2.进程的创建 函数原型:pid_t fork(void); 功能描述:以当前进程为父进程,创建一个子进程 进程链和进程扇的创建 3.多进程具体使用 3.1进程替换 exec 函数一族 int execl(const char *path, const char *arg, ... /* (char *) N…...

macos 搭建 ragflow 开发环境

ragflow 是一个很方便的本地 RAG 库。本文主要记录一下在本机的部署过程 1、总体架构说明 开发环境:macbook pro(m1),16G内存 512G固态 因本机的内存和硬盘比较可怜,所以在服务器上部署基础 docker 包,…...

信创改造-龙蜥操作系统搭载MySql、Tomcat等服务

龙蜥操作系统 Anolis OS 8 是 OpenAnolis 社区推出的完全开源、中立、开放的发行版,它支持多计算架构,也面向云端场景优化,兼容 CentOS 软件生态。Anolis OS 8 旨在为广大开发者和运维人员提供稳定、高性能、安全、可靠、开源的操作系统服务。…...

Java 数据结构 队列之双端队列 常用方法 示例代码 及其实现

目录 常用方法 示例代码 常见实现 Java中的双端队列(Deque,Double Ended Queue)是一种队列,它允许在队列的两端插入和删除元素。与普通队列(FIFO)不同,双端队列的元素可以从队列的两端进行添…...

【原创】大数据治理入门(2)《提升数据质量:质量评估与改进策略》入门必看 高赞实用

提升数据质量:质量评估与改进策略 引言:数据质量的概念 在大数据时代,数据的质量直接影响到数据分析的准确性和可靠性。数据质量是指数据在多大程度上能够满足其预定用途,确保数据的准确性、完整性、一致性和及时性是数据质量的…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...