9、微型四轴开发常见问题 - XDU-Educational-UAV/Drone_Master_PID GitHub Wiki

9.1 STM32虚拟串口问题

通常驱动安装失败,打开设备管理器,可以看到如下图 1.1 所示:

image82

图1.1 虚拟串口驱动安装失败示图

正确安装STM32虚拟串口驱动步骤如下:

安装资料包里的 VCP_V1.4.0_Setup.exe,这个驱动在资料包”3,配套软件3,

STM32 USB 虚拟串口驱动”文件夹内,安装完成,在如下路径可以看到如图 1.2 所示:

image83

图1.2 VCP_V1.4.0_Setup.exe安装完成示图

退出 360 等安全软件,并安装虚拟串口补丁,补丁路径如下图 1.3 所示:然后双击运行 “双击这个.bat”, 因为部分系统缺少配置文件,所以需要使用.bat 复制配置文件到系统文件夹里。

image84

图1.3 安装虚拟串口补丁示图

在下图的路径下,运行 dpinst_amd64.exe 或 dpinst_x86.exe(根据自己系统位数选择)如图 1.4 所示。安装成功后如下图 1.5 所示。

image85

图1.4 手动执行dpinst_amd64.exe

image86

图1.5 虚拟串口驱动安装成功示图

USB 连接四轴或遥控器,在设备管理端口可以看到如下图 1.6 所示。

image87

图 1.6 成功安装虚拟串口

驱动安装成功后,插上 USB,虚拟串口用不了,则检查下 USB 线是否接好,甚至可以换一根 USB 线试试。

9.2 CubeMX代码生成问题

注意:CubeMX在重新生成代码后,会覆盖/* USER CODE ....... BEGIN */和/* USER CODE ....... END */以外的区域,区域外的代码在重新生成后会被删除!

该工程文件由STM32CubeMX V5.5.0版本生成,打开ioc工程文件需要升级至5.5.0及以上版本。

用户自己添加的xxx.c文件,在CubeMX重新Generate文件时,不会被删掉。CubeMX只是重新生成了例如eth.c,gpio.c之类的文件,不会把用户自己添加的文件删掉。

image88

然而在keil工程里却被删掉,因此需要重新添加。为了避免重复添加用户自己的源代码和头文件,可以进行如下操作:

  1. 打开mdk工程

  2. 打开cubemx工程,也就是ioc后缀文件

  3. 进行你的配置,重新生成mdk工程(生成的之前mdk工程要打开)

  4. 点击最小化的mdk,然后可以看到提示框

更新xxx.c文件,选择是

更新xxx.h文件,选择是

最重要的一步,提示更新工程文件,选择否

好了,现在芯片配置的代码已经同步过来了,工程文件还是用原来的,添加的文件就还在了,重新编译,ok。

9.3 四轴飞行过程往一边偏

如果偏飞得厉害,先检查遥控器微调值是否为0,如果不为零,就先调整为0再试飞看飞行效果。如果通过微调的方式不能纠正偏飞问题,那就是其他原因所致。

电机坏了,电机坏了也分好几种情况,比如像图2.1那种情况,电机蓝色底座脱离或者脱落,这种情况导致电机输出动力减弱,甚至有烧坏MOS管的可能;还有像图2.2那种情况,电机输出轴弯曲,输出轴弯曲,装上桨叶转动起来就会因为不平衡产生很大的震动,震动的直接结果就是导致传感器读数据精度变差甚至错误;还有可能是电机长时间工作,轴承或者电刷磨损厉害,导致动力减弱,因为有刷电机是有寿命的,按正常使用来说,这个电机还是有几个月寿命的。对于这种电机坏了的情况,我们只需要换上新的电机即可。

image89

图2.1 电机蓝色底座脱离

image90

图2.2 电机中心转轴弯曲

注意:

对于如图 2.1 电机底座脱离的情况,电机就不能再使用了,只能更换新电机,因为电机在这种状态下,不但没有动力输出,甚至会导致 MOS 管烧掉或者短路,MOS 短路后,上电电机不受控制直接就转起来了,如果 MOS 管烧掉那就得重新焊接了。

偏飞也有可能是桨叶不平衡所致,因为空心杯转速高,装上不平衡桨叶高速转动,就会产生很大震动,过大的震动导致传感器度数精度降低甚至错误。怎么看桨叶是否平衡呢?最直接的就是看桨叶是否磨损,变形以及残缺等。如果这种情况,直接换上新的桨叶即可,注意桨叶是有正反的。

偏飞也有可能是信号干扰导致,信号干扰导致四轴接受不到控制信号,从而出现偏飞的情况,如何判断干扰呢?在可控制范围内,遥控器控制四轴飞行,无干扰的时候,遥控器蓝色通讯指示灯常亮;有一点点干扰(不会影响飞行)的时候,遥控器红色指示灯偶尔闪烁一下,蓝色指示灯基本还是常亮;当干扰变严重,遥控器红色指示灯常亮,这时候四轴基本接收不到遥控器控制信号了,偏飞,乱飞的可能性就很大了。

9.4 四轴定高飞行,高度定不住

定高是讨论比较多的一个话题,当然主要讨论的就是定高效果的问题,有不少用户反映定高效果差的问题,比如定高飞不起来,响应缓慢,飞起来上窜下窜等,反正就是有很多问题,当然这里面不排除硬件(电机,桨叶)的问题以及软件(PID)问题。

  1. 版本固件使用串级(位置环+速度环) PID 的方式控制定高,增加稳定性的同时提高了响应速度,定高稳定性也不会受到自重影响。如果定高效果还是很差,那么我们检测下是否是硬件的问题。

9.5 下载器不能下载调试代码

如果下载器开关设置好了,下载线2端也对接好了,还是不能下载,有可能是如下原因:

编译出错,提示代码超过32K,这种情况是因为MDK未破解,这种情况只需要百度一下MDK破解。

编译或者下载提示找不到芯片,应该是MDK安装之后没有安装相应芯片的pack包。请安装芯片型号对应的Pack包。

下载或者调试出现如图5.1所示的提示:

image91

图 5.1 驱动问题提示

这种情况需要替换一下jlink驱动,用我们提供的驱动替换MDK安装路径下对应的驱动,替换之前可以先将原来的驱动备份一下。在微型四轴资料包里找到“Segger.zip”,解压出来,然后替换MDK安装目录下的Segger文件夹,如图5.2和5.3所示:

image92

图 5.2 新的驱动包

image93

图 5.3 替换掉原来的文件夹

注意 :

调试微型四轴时,请务必接上电池四轴供电,不能用下载器的电源给四轴供电并调试,下载器带载能力较弱,只使用它给微型四轴供电调试可能导致下载器烧掉。