BetaFlight 命令行(CLI)简介 |
您所在的位置:网站首页 › bf地面站设置中文界面 › BetaFlight 命令行(CLI)简介 |
参数设置: 查看飞控的负载 场景: 随着芯片越来越高级(F4(如STM32F411、F405) -> F7(如F722、F745) -> H7(如H743)),CPU的算力越来越高,就想着能否开启一些新功能。 如果想看看CPU算力是否能支持自己开启这些新功能,就需要查看 CPU 的负载。 命令行: tasks 命令行解释: 列出当前正在执行的任务列表,并给出他们对 cpu 的占用比例,以及累计的占用毫秒数量 举例: Task list rate/hz max/us avg/us maxload avgload total/ms 08 - (BATTERY_VOLTAGE) 50 4 2 0.5% 0.5% 1 说明: 08 - (BATTERY_VOLTAGE) : 任务ID和名称 50 (rate/hz) :执行频率, 即每秒执行多少次,50 代表每秒执行 50 次 4 (max/us) : 最大执行的时长(微秒), 4 代表最长一次执行是 4 us 2 (avg/us): 平均执行的时长(微秒), 2 代表平局执行 2 us 0.5% (maxload) : 最大占用 CPU 的比例(百分比) 0.5% (avgload) : 平均占用 CPU 的比例 1 (total/ms): 总共执行的时长总和(毫秒), 1 代表总共执行耗时 1 毫秒 参数设置: 资源重映射 场景:资源重映射就是重新配置 MCU 上的引脚功能。 举个例子,飞控的某个电机信号输出口坏了,比如焊盘掉了, PCB断线等, 想重新配置一个新的引脚给电机当信号输出口。 例子1: 电机重新排序 我们经常在BF中对电机重新排序, 这个GUI界面很容易懂, 我们依次按照图示电机转动的电机图标即可。 其背后的原理,就是在对电机1,2,3,4进行重新映射。怎么理解? 因为在飞控上,4路、6路、8路电机信号输出,都是有固定的引脚编号的,分别是A01~A08。 电机1,2,3,4连接飞控时,可能是随便焊接的,顺序可能不对,再加上现在流行倒置,所以很有可能电机焊接时是并不是右下角1、右上角2、左下角3、左上角4的顺序。没关系,通过资源重映射重新把A01~A04分配给对应的引脚即可。 例如: 已知 A06引脚映射到 motor 1 , A07 映射到motor 2上,需要交换: resource motor 1 A7 resource motor 2 A6 save 即可实现交换 motor 1 和 motor 2。 例子2:LED口焊盘脱落使用TX3代替、2号电机口坏、UART1口坏、无PWM口控制舵机 假设一个飞控, 支持 8 路电机信号输出 + 6路UART串口(UART1和UART2串口装有反向电路防倒灌)+ 电池电压和电流输入口 + RSSI信号输入口, 我们用它来驱动 4 个电机 + 一个接收机 + 一个GPS + 一个图传 + 两个舵机 正常情况下, 我们会使用 1~4 号电机信号输出口(给电机), 3个 UART口(给接收机、GPS、图传),一个LED口(给LED灯带控制),以及两个PWM信号输出口(使用脉冲宽度调制,使得 MCU 的数字输出能够对模拟电路进行控制)。、 现在的问题来了: LED口焊盘脱落不可用,2号电机信号输出口坏了,接收机的UART1串口也坏了,且飞控默认情况下没有PWM信号的口, 应该怎么解决问题? 问题1:“LED口焊盘脱落不可用”问题的解决思路 思路: 重新选一个UART口用于LED控制 具体过程参见帖子链接:FPV: 通过遥控器通道,控制无人机的灯带开关 问题2: “电机信号输出口坏”问题的解决思路 思路: 把 2号电机信号口映射到空闲的 5~8 号电机信号口的任意一个上(由于穿越机的混控模型为QuadX,因此默认启用1~4号电机信号口) 第一步: 查看现有映射 执行命令 : "resource list" 然后回车, 列出所有已有映射,如下(此处只展示跟电机 MOTOR 有关的行): A06: MOTOR 1 A07: MOTOR 2 A08: MOTOR 3 A09: MOTOR 4 A10: MOTOR 5 A11: MOTOR 6 A12: MOTOR 7 A13: MOTOR 8 如上所示, A06 ~A13 分别映射给了 MOTOR 1 ~ MOTOR 8, 即电机2对应的输入信号来自于飞控的A06口的输出。 由于此时 A06 口已经坏了,需要重新找一个 Axx 口 (且类型是用于电机信号输出的 MOTOR类型的口)来给2好电机用; 注: 此处的Axx 代表飞控的端口引脚, Axx是给每个引脚的名字,是不会改变的,但可以改变其映射; MOTOR 是函数,代表是后面跟的数字 1~8 是电机序号; 第二步: 电机信号口重映射 我们可以把坏了的2号电机信号输出口重新映射到5号电机信号输出口 A10上,命令如下: resource motor 2 none resource motor 5 none resource motor 2 A10 save 脚本说明: 前两句清除旧映射, 即2号、5号两个电机信号输出口映射到 none, 然后重新把2号电机信号输出口映射到飞控的 A10 口。 此时, 就可以把2号电机的信号输入线接到飞控的5号电机信号输出口上了。 resource 命令小结: 形式: resource [function name] [index] [pin] 例子: resource motor 2 A10 例子含义: 把 motor 2 映射到 A10 引脚, 即 2号电机对应的将是飞控的 A10 引脚 问题3: “接收机UART串口坏”问题的解决思路 思路: 接收机原来用的 UART1 串口坏了,换一个 UART 口,比如UART2 注1:UART是串口通讯用到的端口,它由接收口RX和发送口TX组成, 一般接收机都带有数据回传功能,所以除了飞控TX和RX都要练接收机) 注2: 有些接收机的回传信号需要反向电路,例如 SBUS和对应的RX口之间就有一个反向电路,此时就需要接入到有方向电路的UART口。 由于BF提供了图形界面,直接在BF的“端口”那里,把原来UART1的“串行数字接收机”的对勾去掉,在“UART2”的“串行数字接收机”上打勾,然后保存即可。 问题4: “飞控没有PWM口,无法控制舵机”问题的解决思路 从BF固件3.1开始, 默认的舵机输出分配就从固件中删除了,因此如果要用到舵机,就需要在CLI 资源重映射中分配设置; 我们的F4、F7、H7等飞控,用到的MCU 是 STM32, 它内部有定时器,可以用于定时输出脉冲到伺服系统。 飞控的电机信号输出口5已经用掉了, 剩下的6、7、8三个电机信号输出口可以选2个分别用于两个舵机的PWM控制。 第一步:依然是输入 “resource list”查看引脚定义 A06: MOTOR 1 A07: MOTOR 2 A08: MOTOR 3 A09: MOTOR 4 A10: MOTOR 5 A11: MOTOR 6 A12: MOTOR 7 A13: MOTOR 8 第二步: 资源重定义 选飞控 A11, A12 两个引脚作为舵机控制的PWM信号输出口,如下脚本: resource motor 6 none resource motor 7 none resource servo 1 A11 resource servo 2 A12 save 命令说明: 前两句依然是解除既有 motor 映射(此为飞控默认的映射), 后两句分别把舵机 1,2 映射到飞控的 A11, A12 引脚 此时就已经把6,7号电机信号输出口对应的A11,A12引脚重映射为舵机1,2的PWM信号输出口了,然后就可以去BF里去做一些舵机的设置了。 例子2: 交换 rx, tx端口 假设 rx 2 是 sbus 接收机信号输入, 但是焊接时吧 subs 线焊接在 tx 上了,已知 rx2 对应 a10引脚, tx2 对应 a11 引脚, 显然,交换两者即可: resource serial_rx 2 A11 resource serial_tx 2 A10 save 例子3: 把LED_STRIP、PPM拓展出来为更多串口,以支持 更多外设 假设飞控的rx、tx口都被各种传感器用完了,还想加一个rx5、tx5口来支持新外设,应该怎么做? 飞控上的有两个口可以作为扩展串口的备选: LED_STRIP(连接 ws2812 LED灯) PPM ( 连接PPM接收机 ) 这两个要么就是花里胡哨,要么就是非常古老基本没人用,可以把它们的飞控引脚让出来作为新的串口。 通过 resource list 命令可以发现, LED_STRIP 映射在 A12 上, PPM 映射在 A13 上,因此就可以把 TX5、RX5 分别映射到 A12、A13: resource serial_tx 5 A12 resource serial_rx 5 A13 save 同理, 也可以把它们改成舵机,来接舵机: resource servo 1 A12 resource servo 2 A13 save Resource 命令中函数/功能列表 resource [function name] [index] [pin] resource 第二个参数是 函数/功能, 其含义和约束条件如下所示: 功能:ADC_BATT 含义: 电池电压传感器 约束: 只能映射到ADC引脚 功能:ADC_CURR 含义: 电池电流传感器 约束: 只能映射到ADC引脚 功能:ADC_RSSI 含义: 接收机的模拟RSSI输入 约束: 只能映射到ADC引脚 功能:BEEPER 含义: 信号蜂鸣器 备注: 通常直接接至蜂鸣器晶体管基极 功能:CAMERA_CONTROL 含义: FPV摄像头由OSD控制调参 备注: 由摇杆模拟按钮,来控制摄像头调参 功能:I2C_SCL, I2C_SDA 取值: 1 - n 含义: IIC通信口,一般GPS等会使用 功能:LED 取值:1 - 3 含义: LED指示灯 功能:LED_STRIP 含义: WS2812 LED数据 备注: 如果未连接或使用 WS2812, 则LED是较好的替代选项 功能:MOTOR 取值:1 - n 含义: 电机信号 功能:PPM 含义: 接收机 PPM 输入 备注: 一般不使用PPM接收机,可以释放给其他可选功能使用 功能:PWM 取值:1 - n 含义: PWM ,用于控制舵机等伺服设备 功能:SERIAL_RX 取值:1 - n 含义: 串行接收引脚 约束:无法重映射到其他引脚,但可以指定不同的功能 功能:SERIAL_TX 取值:1 - n 含义: 串行发送引脚 备注:SERIAL_RX/SERIAL_TX 11-12 是软串口 #1 he #2 功能:SERVO 取值:1 - n 含义: 舵机信号 小结: 注意事项:不是所有的引脚都是能相互定义的,比如电池电压传感器(ADC_BATT)、电池电流传感器(ADC_CURR)、来自接收器的模拟RSSI输入(ADC_RSSI),这些都是只能映射到其他 ADC 引脚(ADC:即模数转换,模拟到数字的转换器,作用:输入模拟量,输出数字量) 参数设置: 灯带与BB响同步闪烁 场景:LED灯带与BB响同步闪烁,作为视觉指示器,便于查找飞机 命令: set ledstrip_visual_beeper = ON 命令说明: 此时,当 LEDLOW 模式处于活动状态(即LED灯带关闭)是,LED灯带与BB响同步闪烁。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |