无人机零件变废为宝:Betaflight飞控差速转向打造FPV空气动力船
1. 项目概述:从无人机残骸到水上精灵
手头攒了一堆炸机后“半身不遂”的无人机零件,看着就闹心。一块因为进水而报销了一个电调通道的飞控,一对还能转的电机,一个摄像头……扔了可惜,放着占地。与其让它们在零件盒里吃灰,不如让它们在水上获得新生。这个想法催生了这个微型FPV空气动力船项目:用无人机剩下的“边角料”,打造一个能在水面驰骋的第一人称视角小艇。
这不仅仅是一个废物利用的环保项目,更是一次对飞控系统底层能力的深度探索。我们通常将Betaflight这类飞控固件与四轴飞行器牢牢绑定,但其核心是一个高度可配置的电机混控器。通过自定义混控,我们可以让飞控理解并执行全新的运动逻辑,比如用两个电机实现车辆的前进、后退和转向,这就是差速转向。本项目正是利用这一原理,将一块“残疾”的飞控(仅两个电调通道完好)变废为宝,驱动一艘3D打印船体的空气动力船。
整个构建过程充满了工程迭代的乐趣。从最初一个可爱但笨重、一下水就变潜艇的失败设计,到用轻木雕刻的简易船体,再到最终通过多次3D打印迭代出的流线型方案,每一步都揭示了流体动力学、重心配比和推力矢量之间微妙的平衡关系。最终成品不仅能在池塘里稳定航行,还能通过FPV图传带来沉浸式的驾驶体验。如果你也有一堆无人机零件和一颗爱折腾的心,不妨跟着这篇记录,一起看看如何让这些电子垃圾在水面上“飞”起来。
2. 核心组件解析与选型思路
2.1 动力与控制系统:无人机零件的“移植手术”
项目的核心是复用无人机动力总成。我的选择基于手头现有的“残骸”,但其中的逻辑具有通用性。
1. 飞控 (Flight Controller): 我使用的是一块NewBeeDrone的BeeBrainBL F4飞控,它有一个电调通道因进水损坏。这正是项目的起点——一块在无人机上已不完美,但在其他平台上仍大有可为的大脑。选择飞控时,关键在于其固件是否支持自定义电机混控 (Custom Motor Mix)。Betaflight、Emuflight、INAV等主流开源固件均具备此功能。对于本项目的双电机差速船,任何至少拥有两个完好PWM/Dshot输出口的飞控都能胜任,无论其原本是用于Whoop微型无人机还是5寸机。
2. 电机与螺旋桨: 我选用了一对1202尺寸、8000KV的Flow牌无刷电机。选择依据如下:
- 尺寸与功率: 1202电机重量轻(约3g/个),推力适中,非常适合微型载具。KV值越高,电机在相同电压下转速越高。对于1S电池(3.7V),较高的KV值(如8000-10000)有助于在低电压下获得足够的转速来产生推力。
- 安装兼容性: 确保电机孔位与你的安装方案匹配。常见微型电机使用M2螺丝,孔距为9mm直径的圆周分布(4个孔)。我设计的3D打印推力舱就基于此标准。
- 螺旋桨: 使用了Avan Rush 2.5寸桨。对于空气动力船,螺旋桨的作用是向后推动空气,反作用力推动船体向前。较小的桨叶(2-3寸)在高速下阻力更小,更适合这种轻量化平台。注意桨叶的旋转方向,通常需要一对正反桨,但在差速转向中,两个桨同向旋转即可,转向靠差速实现。
3. 图传系统: FPV的乐趣在于第一视角驾驶。我复用了一个Whoop无人机上的NBD BeeEye摄像头,它集成了5.8G图传发射机(VTX)。选择这类微型摄像头的优点是集成度高、重量轻、供电简单(通常直接接5V或3.3V)。如果你的飞控有专用的摄像头供电口(如5V BEC输出),连接会非常方便。
注意: 所有电子设备,尤其是飞控和图传,必须进行防水处理。水面环境的湿气、溅水是电子设备的头号杀手。我会在后续步骤详细说明我的防水方案。
2.2 船体材料与制造:从轻木到3D打印的迭代
船体是项目中最需要反复试验的部分,它直接决定了船的浮力、稳定性和航行姿态。
1. 初代方案 (Mk1): 纯3D打印的教训 最初为了追求造型一体化,我设计了一个充满“萌系”线条的船体,并采用无填充、无支撑的单次打印。结果惨不忍睹:船体密度太大,吃水过深,几乎像块石头一样漂着。这给了我第一个关键教训:对于排水型船体(尤其是微型的),浮力与重量的比值至关重要。 3D打印实体模型非常重,必须采用中空或薄壁结构。
2. 二代方案 (Mk2): 轻木手作的启示 为了解决重量问题,我回归传统,用轻木(Balsa)手工切削了一个船体。轻木质地轻盈,易于加工,是理想的原型材料。我用丙烯酸颜料涂刷多层以密封木材,防止吸水。这个版本成功浮起来了,但出现了更棘手的问题:重心分配和纵向稳定性。由于电机和电池组成的“推力舱”位于船尾,且位置较高,船头非常容易在加速或急停时扎入水中,导致向前翻覆(俗称“拿大顶”)。
3. 最终方案 (Mk5): 基于迭代的3D打印优化 综合前几版的失败经验,Mk5的设计目标明确:
- 低重心: 将电机安装位置尽可能降低,同时确保螺旋桨不会打水。
- 长船体与抬升船首: 增加水线长度,并将船头设计成上翘的样式,防止航行中船首埋入水中。
- 模块化推力舱: 保留可整体拆卸的电机/飞控/电池模块,方便调试和维护。
- 水密性薄壁打印: 使用3D打印制作一个中空薄壳船体,在保证强度的前提下最大化减轻重量。
我选择使用PETG材料打印,因其韧性比PLA更好,更能承受偶尔的碰撞。打印设置是关键:0.4mm喷嘴,2层壁厚,0%填充,无支撑。这样打出来的是一个坚固的壳体。为了确保水密,我提高了打印温度(PETG用235°C),降低了打印速度(40mm/s),并设置了5%的挤出补偿,以促进层与层之间的融合,杜绝微孔。打印完成后,仍需仔细检查,我对发现的个别针眼用超级胶水进行了封堵。
3. 差速转向原理与Betaflight深度配置
这是项目的技术核心,让无人机飞控理解如何开船。
3.1 差速推力混控原理
差速转向并非新鲜概念,在坦克和履带车上广泛应用。其核心思想很简单:
- 前进/后退: 两个电机同速同向旋转。同时正转提供向前推力,同时反转提供向后推力(需电调支持3D模式)。
- 转向: 两个电机产生速度差。想让船左转,就降低左侧电机转速(或提高右侧),产生一个绕船体中心旋转的扭矩,从而实现转向。
在四轴飞行器上,飞控通过混控器将遥控器的摇杆输入(油门、横滚、俯仰、偏航)转化为四个电机不同的转速指令。我们的目标就是“欺骗”飞控,让它用仅有的两个电机通道,来响应我们重新定义过的控制逻辑。
3.2 Betaflight自定义混控配置实战
以下是在Betaflight Configurator中实现双电机差速混控的详细步骤。我以Betaflight 4.2.2固件为例,但逻辑通用于后续版本。
步骤1:确定电机物理连接与资源映射 首先,你需要知道你的两个电机焊在了飞控的哪两个焊盘上,以及它们在Betaflight中被识别为哪个电机编号。
- 给飞控上电,连接Betaflight地面站,进入 “电机” (Motors) 标签页。
- 解锁风险提示,用滑块逐个测试电机。假设你推动“电机1”滑块时,左侧的电机转动;推动“电机3”滑块时,右侧的电机转动。那么,你的左电机对应 Motor 1,右电机对应 Motor 3。(注意:在默认四轴混控下,只有电机1、2、3、4有输出,其他无效)。
- 进入 “命令行” (CLI) 标签页,输入
resource命令并回车。在输出信息中找到resource MOTOR 1和resource MOTOR 3这两行。它们会显示类似resource MOTOR 1 B06的信息,这表示电机1的信号由芯片引脚B06输出。记下这两个引脚编号。
步骤2:重新分配资源(可选但推荐)
为了让配置更清晰,我们可以把这两个有效的电机映射到逻辑上的“电机1”和“电机2”资源上。在CLI中执行(请替换B06和B09为你实际查到的引脚):
这步操作将物理左电机(原Motor 1)绑定到逻辑Motor 1,物理右电机(原Motor 3)绑定到逻辑Motor 2,并禁用其他电机输出。执行后需要重启飞控。
步骤3:创建自定义差速混控 重启后再次进入CLI,输入以下命令来定义混控:
命令详解:
mmix命令格式为:mmix <电机索引> <油门系数> <横滚系数> <俯仰系数> <偏航系数>- 电机索引从0开始,所以
mmix 0对应我们刚刚映射的逻辑电机1(左)。 1.0 0 0 -1.0:这组数字意味着这个电机将100%响应油门信号,并且100%反向响应偏航信号。- 同理,
1.0 0 0 1.0表示右电机100%响应油门,100%正向响应偏航。
效果就是: 当你推油门时,两个电机同时加速(1.0)。当你打右舵(偏航右)时,飞控会输出一个正的偏航信号。根据混控,左电机(系数-1.0)会减速,右电机(系数1.0)会加速,速度差导致船体向右转。左转则相反。
步骤4:启用配置与电调设置
- 退出CLI,进入 “配置” (Configuration) 标签页。
- 在“混控器” (Mixer) 下拉菜单中选择 “自定义” (CUSTOM)。
- 为了能实现倒车,需要启用 “3D” 模式(如果固件版本有该选项),或者确保你的电调协议(如Dshot)支持双向旋转。
- 对于某些集成了电调的飞控(如我用的BeeBrainBL),可能需要通过如JESC Configurator这样的工具,单独设置电调启用双向(Bi-directional)模式。
至此,你的飞控已经从一个四轴飞行控制器,“变身”为一个差速转向的船用控制器了。遥控器的摇杆映射通常是:左摇杆上下 = 油门,右摇杆左右 = 偏航(转向)。
4. 船体设计与3D打印实操要点
4.1 Mk5船体设计思路详解
经过多次失败,Mk5的设计集中解决了以下几个关键问题:
- 降低重心与推力线: 将安装电机的“推力舱”整体下沉,使其底部几乎与船底平齐。同时,将推力舱的安装面设计成具有约1-2度的向下倾角。这个细微的角度至关重要。当船静止或低速时,推力略微向下,有助于压住船尾。当船加速、船头上抬进入滑行状态时,这个倾角能使推力线变得水平,直接提供向前的推进力,而不是产生一个使船头下压的力矩。
- 优化船型以减少阻力: 放弃了早期版本的箱型船尾,采用了更流线型的尾部。船首部分去除了尖锐的棱角,改为圆滑过渡,这样在转弯时,水流的分离会更平顺,减少突然的阻力变化,让飞控的偏航控制更线性。船底增加了中央龙骨通道,这不仅在硬地上行驶时减少了接触面积(摩擦阻力),在水中也有助于保持航向稳定性。
- 模块化与可维护性: “推力舱”是一个独立部件,通过螺丝固定在船体上。这样,调试飞控、更换电池或进行维修时,无需拆解整个船体。我在推力舱的电机支架上设计了走线槽,可以将电机线缆隐藏起来,既美观又安全。
- 防水与电池仓设计: 电池仓被特意抬高,位于中央通道的隆起部位。即使有少量水进入船体,电池也能保持干燥。船体内部预留了空间,可以放置一小块吸水海绵,用于吸收冷凝水。
4.2 3D打印与后处理指南
打印文件准备:
- 船体 (
Hull.stl):应竖直打印,即船尾朝下。这种姿态使得船体的大部分外表面都成为垂直面,打印质量最好,且完全不需要支撑。 - 推力舱 (
Thrust_Pod.stl):同样竖直打印(尾部朝下)。
切片参数建议(以PETG为例):
- 层高:0.2mm (在强度与打印速度间取得平衡)
- 壁厚:2圈 (对于0.4mm喷嘴,即0.8mm壁厚)。这是保证水密性的最低要求,可根据需要增加到3圈。
- 顶部/底部层:3层。
- 填充密度:0%。 我们的目标是制造一个中空的水密壳体,不需要任何内部填充。
- 支撑结构:关闭。 设计上已避免悬垂。
- 打印温度:235-245°C (促进层间融合)
- 打印速度:40-50mm/s (外壁可更慢,如30mm/s,以提高质量)
- 挤出流量:105% (轻微过度挤出,确保层与层之间没有缝隙)
后处理与水密测试:
- 检查与修补: 打印完成后,对着强光仔细检查船体,寻找可能的针孔。对于发现的任何微孔,使用氰基丙烯酸酯胶水(快干胶) 进行点涂封堵。胶水会渗入孔隙并固化。
- 内部涂层(可选但推荐): 为了万无一失,可以在船体内部刷涂一层环氧树脂或专用的电子设备三防漆。这能从根本上密封所有可能的层间缝隙。操作时需确保涂层均匀,且不会在底部积聚过多影响重心。
- 水密测试: 在安装电子设备前,进行静态浮力测试。将空船体放入水中,用手压住使其吃水到设计水线,保持几分钟,观察内部是否有水珠渗入。也可以用纸巾塞入船内,一段时间后取出检查是否潮湿。
5. 组装、防水与系统集成
5.1 电子设备组装与焊接
- 电机安装与延长: 将两个无刷电机用M2x4螺丝固定在推力舱上。通常电机原装线很短,需要用电线进行延长。建议使用耐折的硅胶线,长度要足够从电机焊盘走到飞控上的对应焊点,并留有余量。焊接后,用热缩管或绝缘胶带做好绝缘。
- 飞控安装: 在将飞控固定到推力舱之前,必须先完成防水处理(见下一节)。处理完毕后,使用飞控减震胶球将飞控板固定在推力舱的立柱上,然后将Goober canopy(或任何兼容的摄像头支架)盖在上面,用M2x8螺丝锁紧。这种安装方式提供了基本的减震。
- 焊接电机线: 根据之前Betaflight的资源映射,将左、右电机的三根相线焊接到飞控对应的电机焊盘上。焊接顺序无关紧要,如果电机转向错误,后续可以在BLHeli Suite或电调配置器中通过软件更改,或者直接交换任意两根线。
- 连接图传与接收机: 将FPV摄像头的视频线(Video)和地线(GND)焊接到飞控上标有“CAM”或“VTX”的对应焊点。将接收机(如FrSky, ExpressLRS)的信号线焊接到飞控的任意一个UART RX端口,并在Betaflight端口设置中启用该UART的串行数字接收机功能。
重要提示: 所有焊接点,包括电机、摄像头、接收机的接口,在完成焊接并检查无误后,都必须进行防水处理。一个未密封的焊点就是水流进入的通道。
5.2 至关重要的防水处理
电子设备防水是项目成败的生命线。我采用三防漆 (Conformal Coating) 作为主要手段。
- 清洁: 用异丙醇和棉签彻底清洁飞控、电调(如果独立)等所有电路板,去除助焊剂和污渍。
- 遮蔽: 使用专用的防水遮蔽胶泥或高温胶带,将不需要涂覆的部位保护起来。必须遮蔽的部位包括:
- USB接口
- 陀螺仪传感器(通常是芯片中间的一个小方块,可能没有外壳)
- 气压计传感器(如果有)
- 按钮和拨动开关
- 电池插头/焊盘
- 编程焊盘(如Bootloader)
- 图传天线连接器
- 接收机天线焊点(如果是外露的)
- 喷涂: 在通风良好的地方,将三防漆(我用的Electrolube FSC)均匀喷涂在电路板两面。保持约20-30厘米距离,薄薄地喷一层,等待5-10分钟表干后,再喷第二层。通常2-3层即可。确保漆液覆盖所有芯片、电容和焊点,形成一层透明的保护膜。
- 检查与固化: 喷涂后仔细检查,确保没有元器件引脚形成桥接。三防漆通常需要数小时才能完全固化。在彻底固化前不要通电。
- 额外防护: 对于电机,虽然其线圈有漆包线绝缘,但轴承和霍尔传感器(如果是有刷电机)怕水。可以在电机外部,特别是出线口处,涂抹少量硅酮密封胶进行保护。电池插头可以用** dielectric grease( dielectric grease)** 涂抹,既能防氧化也能一定程度上防泼溅。
5.3 总装与配平
- 将组装好的“推力舱”模块用螺丝安装到3D打印船体上。
- 连接所有设备:电池、图传天线、接收机天线。
- 配平: 这是影响航行姿态的关键一步。将船放在一个水平的平面上,观察其自然静止时的姿态。理想状态是船体基本水平,或船尾略微下沉(因为动力在后面)。如果船头过重,可以将电池向后移动;如果船尾过重,则向前移动电池。我的设计通过可移动的电池仓来实现这一点。目标是让船在静止时,水线大致位于船体中部偏后。
6. PID调优与水面航行技巧
6.1 为船只调整PID参数
Betaflight的PID控制器是为四轴飞行器在空中快速稳定的响应而设计的。对于水面船只,尤其是只有偏航轴需要控制的情况,我们需要一套完全不同的参数。
- 进入PID调校页面: 在Betaflight地面站中,进入“PID调校” (PID Tuning) 页面。
- 简化问题: 由于我们的自定义混控只使用了偏航轴,因此横滚和俯仰的PID值完全无关,可以忽略。我们将全部注意力放在Yaw轴上。
- 初始参数建议(可作为起点):
- Yaw P (比例): 10-20 (远低于四轴默认的40-60)。过高的P值会导致船只转向时剧烈振荡,像钟摆一样左右晃动。
- Yaw I (积分): 0.01-0.03 (非常低)。I值用于消除静态误差,对于船只,很小的I值就足够了。
- Yaw D (微分): 0-5 (可以很低或为0)。D值抑制变化,对于速度较慢的船只,作用不大,设高反而可能引入噪声。
- 调参方法:
- 在平静的水面(如家庭浴缸或小水池)进行测试。
- 缓慢增加 Yaw P 值,直到船只对遥控器转向指令反应迅速,但不过冲或振荡。如果出现持续左右摇摆,说明P值太高了。
- 尝试给一个小的 Yaw I 值,观察船只是否能保持直线航行,或者在转向后能否更稳定地回中。
- Yaw D 可以暂时保持为0。
- 核心原则:从低值开始,缓慢增加。 水面载具的响应比飞行器慢得多,需要更“柔和”的PID。
6.2 速率与曲线设置
进入“速率” (Rates) 页面进行调整:
- 中心灵敏度/指数曲线 (RC Expo): 可以设置为一个较小的正值(如0.1-0.2),让摇杆在中心区域的操作更柔和,便于微调航向。对于新手,甚至可以调高一些以获得更平滑的操控感。
- 最大角速率 (Max Rate): 四轴动辄500-1000度/秒的速率对船来说是天方夜谭。我将其设置在 200-300度/秒。这意味着即使你把摇杆打满,船只的转向速度也被限制在一个合理的范围内,防止因转向过急而失控翻覆。
- 超级速率 (Super Rate): 可以保持默认或调低,它对船只操控的影响不如角速率直接。
6.3 水面航行实操心得与避坑指南
- 起滑 (Getting on Plane): 空气动力船高速航行时,船体会上抬,减少与水面的接触面积,从而大幅降低阻力,这叫“起滑”。你的船可能需要一段距离的加速才能达到起滑速度。确保电池电量充足,并给予持续、平稳的油门。
- 转向技巧: 高速行驶中突然满舵转向极易导致翻船。正确的做法是:先略微收油减速,再柔和打舵转向,出弯后再补油加速。 这类似于驾驶快艇。
- 风浪的影响: 即使是微风也会对微型船产生很大影响。侧风会让船持续偏航,你可能需要持续施加反向舵来保持直线。选择无风或微风天气进行首航。
- “游泳之耻”的预防: 永远在视线可及、并且你愿意下水打捞的范围内航行。准备一根长杆或一个带绳子的浮漂作为救援工具。在开放水域,船失去信号或动力时,风和水流会很快把它带离。
- 电池与续航: 使用高放电倍率(C数)的1S锂电池。由于电机持续高负载工作,续航时间通常只有5-8分钟。随时关注图传画面中的OSD电压显示,建议将报警电压设在3.5V以上,防止电池过放。
- 事后维护: 每次航行后,务必用干布擦干船体外部,并打开舱盖(如果可打开),检查内部是否有水汽。将设备置于干燥通风处彻底晾干后再存放。长期不用时,断开电池连接。
通过这一系列的迭代、配置和调优,原本在抽屉里“躺平”的无人机零件,终于化身为一艘灵动的水上FPV小艇。这个过程最大的收获,或许不是最终那条能跑起来的船,而是对飞控混控、流体动力学和快速原型制造有了更“手感”层面的理解。每一次失败的下水,都是对某个设计假设最直接的检验。如果你也动手做了一条,最有趣的时刻可能不是它第一次成功航行,而是你盯着它,脑子里已经开始盘算:“如果我把船头再改尖一点……或者试试四个电机?” 折腾的乐趣,莫过于此。