BetaFlight之穿越机F4飞控设置

BetaFlight之穿越机设置

《穿越机》属于高竞速,续航时间较短的小型无人机,通常玩家们喜欢自己买配件组装,穿越机的最高时速可达到每小时120km/h-170km/h,有些达人可让无人机的速度更快。缺点在于时速太快稍不留神就容易炸机。
随着无人机的发展,无人机领域已经得到了飞速的发展,穿越机就算是无人机家族中一个特立独行的款式,有些会玩的玩家通常都会自己买配件进行组装,(就像当年的四驱车一样),他们会自己组建战队,拍摄自己的飞行视频,追逐各种竞速比赛,其中在 各种穿越机比赛获得冠军就成为了国内众多玩家的追求。

折叠编辑本段机架:
机架分为折叠和非折叠两种,不同的材质有不同的优缺点,常见的框架有炭纤板配金属外壳。

折叠的优点主要是方便携带,在空中撞击后可以起到卸力的作用,缺点主要是安装麻烦,价格偏贵。

非折叠机架的优缺点正好与之相反。

折叠编辑本段动力:
动力配置越高飞得就越快,同时电池消耗与之成正比的。

折叠编辑本段飞控:
飞控的作用是控制机身在空中保持平衡,飞手不用分出精力去控制机身平衡。有些高级飞手舍弃飞控自己控制机身平衡,这增加了不小的难度系数。

飞控分为商业飞控和开源飞控,商业飞控有QQ飞控、NAZA飞控等,开源飞控有APM飞控、PIX飞控、F4飞控、CC3D飞控等。

飞控的区别主要体现在运算效率和飞行模式方面。飞控输入端越少,CPU对端口扫描用时就越少,响应速度就越快,更能保证穿越机飞行姿态快速变化的要求。对飞控固件的飞行姿态算法进行简化,CPU的计算速度也会越快。飞行模式,包括简单模式、稳定模式、定高模式、悬停模式、返航模式、一键起飞模式、跟随模式、指导模式、自动模式等。

折叠编辑本段FPV设备:
可以解释为第一人称视角 其中包括(摄像头、图传发射器、天线、图传接收器、显示器或视频眼镜)

OSD:显示飞机的电量,经纬度信号强度和方位,这个可根据喜好来选择。

本人组装穿越机,真的非常好飞,方便携带,一个书包即可!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、接线图

各个厂家的接口不一样,顺序也有所不同,只要会焊接,这都不是问题。
在这里插入图片描述
在这里插入图片描述

二、驱动安装

1:第一步,按住飞控的BOOT键不放,同时使用安卓USB线与电脑连接。此时飞控的led指示灯长亮。打开电脑的设备管理器,查看驱动程序是否自动在线加载完成。若有感叹号,请在线自动搜索驱动并自行安装。安装完成,对应的硬件设备如图所示:

一般会安装成功,如果安装成功,最简单的方法,下载驱动精灵,自动安装,win7安装完后要禁止驱动器签名启动。
在这里插入图片描述
在这里插入图片描述

三、连接betaflight 3.2.2 地面站软件,刷写固件

刷写固件要断开连接,选择好COM口,波特率
在这里插入图片描述
选择固件刷写项,设置好对应的参数:
在这里插入图片描述
点击 Flash Flrmware 开始把固件刷写入飞控,刷写过程会显示:
在这里插入图片描述

四、刷写完,连接,参数设置

建议将飞控放水平,点击Callbrate Accelerometer进行飞控的水平校准。校准时间很快,大概就10秒。在这里插入图片描述
设置接收机的连接端口。一般使用uart3端口连接遥控器的接收机(SBUS接收机)在这里插入图片描述设置完记得点击右下角的Save and Reboot保存,飞控会重启一次。

进入基础设置选项,首先选择电调支持的类型,这个需要对自己能支持哪些要有了解,bls电调主要使用MULTISHOT在这里插入图片描述第三个选项 Disarm motors……选项的勾选是选择开关解锁电机。即在模式选项里的ARM解锁模式,使用一个3端开关作为解锁。这个设置也是出于安全考虑,一直使用至今。
接着设置飞控的传感器频率,默认陀螺仪频率为8K PID刷新频率为2K。可以勾选:Enable gyro 32khz……这个选项,飞控会将陀螺仪与PID的刷新频率超频至32Khz。这个选项看飞控本身的体质决定了,并非必选。在这里插入图片描述下面有3个选项,
第一个是加速计开关。飞自稳和半自稳是必须打开的,betaflight 3.2.0固件加入了防炸机模式(该功能请查找论坛其他相关帖),也需要打开加速计。
第二个是气压计开关。直接关掉,不要问有气压计能不能帮助定高之类的话……穿越机要定高就没乐趣了……
第三个是磁罗盘开关。直接关掉,飞控没有。

选择遥控接收机的模式:在这里插入图片描述
设置飞控默认打开的项目:勾选 OSD 及 DYNAMI_FILTER 选项在这里插入图片描述
OSD自然是使用内置的OSD显示,DYNAMI_FILTER 就是betaflight 3.2.0固件最新的动态滤波功能(该功能具体用处请搜索论坛相关帖)

至此基础设置选项已经设置完成,点击右下角的Save and Reboot保存,飞控会重启一次。

进入PID设置界面,betaflight 3.2.0 的默认参数其实已经能满足新手的基本飞行了,毕竟每台机的参数不尽相同。
而动态滤波功能也是在这里设定,根据论坛相关帖的教程,直接设置如下。设置完记得点击save保存哦。在这里插入图片描述

进入接收机通道的设置界面。这里特别要说明一下,部分刷完固件后没有细看,导致设置完无法解锁电机。
大多数遥控的油门通道默认最低点是1100左右,我推荐请把遥控的油门通道最低点设置低于1000。设置为995~997都可以。本文所有的教程都以这个为标准。
请给飞控上电,动一下遥控的油门值,进入遥控通道行程菜单进行设置。看着电脑显示的值将油门最低值设置为995.这点非常重要在这里插入图片描述
进入模式设置界面。
ARM就是开关解锁。 点击对应模式的 Add Range 新增。AUX1就是飞控的第五通道,我习惯是第五通道设置为3端开关,并鼠标拖动两端值,这个值就是第五通道的行程值。
ANGLE是全自稳模式,自从玩穿越开始就没使用过这个模式,使用感受无法描述。
HORIZON是半自稳模式,适合有一丁点遥控使用基础的新手选择,同样是用AUX1 遥控的第五通道来激活,设置这个模式在第五通道的行程启动范围。
注意看,ARM是解锁,HORIZON是半自稳,那么手动模式在哪呢?手动模式,只要解锁了,不是自稳或者半自稳,就是手动模式了。不要再问手动模式在哪。
在这里插入图片描述AIR MODE模式也叫空中模式,选择这个模式,就算油门最低,电机也不会刹车或者停转,而是以怠速进行工作。这样的好处是在进行大机动飞行过程中油门动作大可以避免意外电机刹车而突然丢姿态导致炸机。飞手动模式一定程度后建议使用AIR模式。建议AIR模式的工作范围设定在手动模式范围。模式设置完,记得点击右下角的保存哦!

OSD界面设置:
个人习惯只看OSD信息的几个数据:电池电压,RSSI遥控信号强度,飞行时间(油门非0状态),通电时间,飞行模式,油门值。所以我习惯只勾选如图的几个选项。
同时中间的屏幕模拟界面也会同步更新显示。选项调节完后,可以直接鼠标点击拖动对应的字块到你想显示在屏幕的位置,例如我就是喜欢把电压值放在屏幕的中下位置,这样飞行时候比较直观方便的看到实时电压状态。在这里插入图片描述在这里插入图片描述
扩展参数设置,重要,请仔细看:在这里插入图片描述
进入命令行,用命令来锁定飞控的最低油门及最高油门,和开机防炸机模式。
输入 dump 回车
输入 set min_check = 1000 回车,确认校验最低油门值1000
输入 set max_check = 2000 回车,确认校验最高油门值2000
输入 set crash_recovery = on回车,确认防炸机模式开启
输入 save 回车,保存重启飞控

电调油门行程校准:
在这里插入图片描述
最后就是电机电调的油门行程校准,此时先去掉动力电池,去掉桨。
勾选 I understand…………
将Master控制推到最高,上动力电,电调开始唱歌,唱歌结束,把控制拉到最低,电调确认最低油门值,最终确认电调自检完成。OK,电调电机的油门行程校准就完成了。
至此,betaflight OMNIBUS F4飞控基本设置完毕,再次检查电机的转向,电调接入飞控的排序。一切OK,装桨上天。

<think>好的,用户让我帮他写一份适用于10寸穿越算法。首先,我需要理解用户的需求。穿越通常用于竞速或者特技行,所以算法需要快速响应和高动性。用户提到的是10寸桨的穿越,这种尺寸的型一般属于中型,可能在动力和负载上有一定的要求。 接下来,我需要考虑用户可能的背景。他可能是有一定DIY经验的无人爱好者,或者是刚开始接触开发的初学者。如果是前者,他可能需要更详细的算法实现和参数调整方法;如果是后者,可能需要更多的代码示例和基础理论解释。不过,用户直接要求写算法,可能已经有一定的开发基础,所以需要提供专业但易懂的内容。 然后,分析用户的问题。算法涉及多个方面,比如姿态解算、PID制、滤波算法等。用户可能需要一个整体的框架,而不仅仅是某个模块的代码。同时,考虑到穿越的实时性要求,算法必须高效,能够在有限的处理器资源下运行。 我需要确定用户是否了解的基础知识。比如,他是否知道传感器数据融合,或者PID制原理。如果用户不太清楚,可能需要简要解释这些概念,但根据之前的回答历史,用户之前询问的是AT89S51的应用,可能有一定的嵌入式开发经验,但算法可能属于新领域,所以需要平衡理论和实践。 另外,用户可能没有明确说明使用的硬件平台,比如芯片型号,传感器类型(如MPU6050、BMI270等),以及是否需要支持特定的通信协议。这些都会影响算法的具体实现。因此,在回答时需要做出合理的假设,或者提醒用户需要根据硬件进行调整。 考虑到AT89S51的性能,之前的回答中提到其主频只有33MHz,4KB Flash,显然不适合运行复杂的算法。但用户现在的问题是关于10寸穿越,可能使用的是更强大的处理器,如STM32系列。因此,在回答中可能需要建议使用更高性能的MCU,并解释为什么AT89S51不适合。 接下来,我需要组织回答的结构。通常,算法包括传感器数据采集、姿态解算、PID制、电输出等模块。每个部分都需要详细说明,并提供代码示例。同时,需要强调实时性和稳定性,比如使用定时中断确保制频率。 还需要考虑滤波算法,如互补滤波或卡尔曼滤波,来处理传感器噪声。PID参数的整定方法也是关键,可能需要给出调整步骤和注意事项。此外,安全制如失保护、电池检测等也需要提及,确保实际应用中的可靠性。 用户可能需要代码示例,但算法较为复杂,完整的代码可能不适合在这里展示,但可以提供关键函数的伪代码或示例片段,比如PID制的实现,姿态解算的四元数更新等。 最后,需要评估用户可能的后续问题,比如如何调试,或者如何处理传感器数据的不同步问题,可以在回答中提前给出提示或建议,增加回答的实用性。</think>以下是为10寸穿越设计的算法基础框架及关键实现方案,采用分层制架构,兼顾实时响应与行稳定性: --- ### **一、系统架构设计** ``` 传感器层(IMU/GPS) → 数据融合层 → 制决策层 → 电驱动层 | | | 1000Hz采样 200Hz滤波 400Hz制 ``` --- ### **二、核心算法模块** #### **1. 姿态解算算法(Madgwick滤波器优化版)** ```c // 四元数更新(简化示例) void updateQuaternion(float gx, float gy, float gz, float ax, float ay, float az) { float beta = 0.1f; // 收敛系数 float q0 = 1.0f, q1 = 0.0f, q2 = 0.0f, q3 = 0.0f; // 梯度下降修正 float delta = 2*(q1*ax + q2*ay + q3*az); float s0 = delta * ax - 2*q1; float s1 = delta * ay - 2*q2; float s2 = delta * az - 2*q3; // 四元数微分方程 q0 += 0.5*(-q1*gx - q2*gy - q3*gz) * dt - beta*s0*dt; q1 += 0.5*( q0*gx + q2*gz - q3*gy) * dt - beta*s1*dt; q2 += 0.5*( q0*gy - q1*gz + q3*gx) * dt - beta*s2*dt; q3 += 0.5*( q0*gz + q1*gy - q2*gx) * dt; } ``` #### **2. PID制优化(串级PID结构)** $$ \begin{cases} 外环(角度环):\ PID_{roll} = K_p\cdot e_{angle} + K_i\cdot \int e_{angle}dt + K_d\cdot \frac{de_{angle}}{dt} \\ 内环(角速度环):\ PID_{rate} = K_p\cdot e_{gyro} + K_i\cdot \int e_{gyro}dt + K_d\cdot \frac{de_{gyro}}{dt} \end{cases} $$ **参数推荐范围**(需实际调试): ```markdown | 制环 | KP | KI | KD | |--------|-------|--------|--------| | 角度环 | 3.5~6 | 0.001 | 0.05 | | 角速环 | 0.1~1 | 0.0005 | 0.01 | ``` --- ### **三、穿越专属特性实现** #### **1. 油门响应曲线优化** ```c // 指数曲线映射(提升中段灵敏度) float throttle_map(uint16_t raw) { const float exp_factor = 1.5; // 可调参数 float normalized = (raw - MIN_THROTTLE) / (MAX_THROTTLE - MIN_THROTTLE); return MIN_THROTTLE + (MAX_THROTTLE - MIN_THROTTLE) * pow(normalized, exp_factor); } ``` #### **2. 特技模式制** - **翻转/滚转检测**:当陀螺仪角速度>800°/s时激活特技模式 - **动力补偿算法**:电输出增加20%保持升力 ```c if(fabs(gyro_z) > 800.0f) { motor_output *= 1.2; // 动力补偿 disable_angle_limit();// 关闭角度限制 } ``` --- ### **四、关键性能指标** | 参数 | 目标值 | 实现方法 | |---------------------|------------------|------------------------------| | 制周期 | ≤2.5ms | 定时器中断优先级配置 | | 姿态解算延迟 | <5ms | IMU数据DMA传输 | | 电响应时间 | <100μs | PWM频率≥400Hz | | 抗风性能 | 可抵抗6级风 | 增加微分项权重 | --- ### **五、硬件适配建议** 1. **主选型**:STM32F4/F7系列(需满足以下性能) - 浮点运算单元(FPU) - 至少2个SPI接口(IMU+FLASH) - 8通道PWM输出 2. **传感器最低配置**: - MPU6000(陀螺仪+加速度计) - BMP280(气压计定高) - 可选GPS模块(UART接口) 3. **电驱动要求**: - BLHeli_32电调(支持Dshot600协议) - 电KV值推荐:2300KV(6S电池) --- ### **六、调试技巧** 1. **参数整定顺序**: 角速度环 → 角度环 → 高度环 → 位置环 2. **黑匣子数据记录**: ```c // 存储关键参数到SD卡 log_data(gyro_x, gyro_y, gyro_z, roll, pitch, yaw, motor[0], motor[1], ...); ``` 3. **安全保护制**: ```c if(battery_voltage < 14.8f) { // 4S电池报警 trigger_buzzer(); reduce_max_throttle(30%); } ``` --- ### **七、典型制流程** ```mermaid graph TD A[读取IMU原始数据] --> B[卡尔曼滤波] B --> C{行模式判断} C -->|手动模式| D[直接解析遥信号] C -->|自稳模式| E[姿态解算+PID制] D/E --> F[混计算] F --> G[电PWM输出] ``` --- **开发注意事项**: 1. 优先实现角速度环制,这是行稳定的基础 2. 使用RTOS时确保姿态解算任务的最高优先级 3. 穿越PID参数需比普通无人更"激进"(增大KP/KD值) 4. 建议配合Betaflight地面站进行参数可视化调试 完整算法需约8-12KB Flash空间,建议选用至少256KB Flash的MCU以支持后续功能扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值