小四轴飞控

小四轴飞控总结

引言

过几天就到农历新年了,前段时间做了四轴小飞机的项目,刚好抢在年底做个总结。

这个项目大概是在阳历2023年10月底开始的,通过学习“Allegro绘制小马哥DragonFly四轴飞行器”绘制了四层PCB小飞控,制作完成后的作品如下图所示:
请添加图片描述

硬件部分

下面说说整个的制作过程中遇到的问题和操作的过程。
通过视频学习我熟悉了cadence的基本使用方法,并且制作出了四层小飞控,实现了硬件从无到有的突破。在这个过程中,我掌握了使用Capture绘制原理图,从symbol的绘制,到完成整个四轴原理图的绘制,为后续电路板的布局、走线奠定了基础。绘制PCB之前还需要对每个symbol添加footprint,这个过程使用的是Padstack Editor这个专门绘制footprint引脚的小软件,下面是制作好的部分.pad
请添加图片描述
绘制好footprint后,然后就是绘制PCB了,在这个过程中参考了视频中的布局,因此在走线的时候没有出现太困难的情况。但鉴于笔者经验有限,走线并不是最优,有很多需要改进的地方,下面放上走线图,希望大家能提出宝贵意见供笔者进行改进,请添加图片描述
另外,在使用Allegro设计PCB时,遇到一个问题没有得到解决。当我设计完成走线,添加Teardrop的时候,这个操作过程会细微改变我的走线设计,明明设计走线是直的,添加完Teardrop后就自动变成弯的了,如图所示:
请添加图片描述这样的走线显然是不好的,这幅图是MCU和MPU6050通讯的两个IIC引脚,在后面的实验中出现了一个漏洞,目前我怀疑是这里的走线搞的鬼,后文会在对这个问题展开讲解。

画好PCB进行投板,这个过程大概花了一个多月,大概在十二月初的时候从网上下单了PCB之外的器件、耗材。

在十二月里,由于其它事情耽搁,仅完成了PCB的焊接和硬件测试。小四轴的原理图和电路板都开源在视频里,因此在这个过程并没有费太多的功夫,打板、焊接、基本都是一遍通过。当然,在整个电路板的制作中,对个别的器件、接口也进行了替换,比如发光二极管、MPU6050、电池插接头和电机插接头等。焊接完成电路板在进行测试的过程中,前期主要就对电源部分进行了测试,因为后面的模块测需要配合程序,项目做到这里时,软件部分还没有开始。在提几个小问题,1、PCB的结构直接导入的开源文件,在安装电机的时候,安装孔稍微小了一点点,需要用锉刀进行打磨,这个过程会产生一些手动误差,有可能造成电机松动或安装不直;2、电机底部的保护壳,在对成品飞机进行试飞的过程中,发现这个小东西还是很有必要的,确实能保护电机减少损伤,当然桨叶保护罩也是有必要的;3、桨叶建议使用55mm长,笔者买的保护罩配60mm桨叶略微长了一点,其中有一个桨叶会磨到保护罩,我的解决办法是用锉刀打磨了一点保护罩,勉强也能达到不刮蹭的效果。

软件部分

过完元旦后开始搭建软件部分,并配合硬件电路进行测试,这个过程花了大概一个月左右。软件移植的DragonFLY.Demo和RoboFlyDEMO,二者是基于STM标准库写的,在移植时换成了基于STM32CubeMX的HAL库。开始写了一个简单的反转点灯程序,对MCU最小系统进行功能测试,起初的现象是e-Link连接电脑下载程序能够实现功能,拔掉下载器通过电池供电,现象消失,分析原因是如下图所示的R0电阻没有焊接,这个电阻将单片机BOOT0引脚接地,后面焊上这个电阻后功能恢复正常。出现这个失误,是因为开始的测试逻辑是焊接一部分硬件电路就测试一部分,结果这个电阻距离单片机最小系统略远,焊接最小系统的时候忽略了。

请添加图片描述
接着配合程序调试了MPU6050,在RoboFlyDEMO中用的是软件模拟IIC驱动和陀螺仪、加速度计芯片进行通讯,基于HAL库的程序用的是硬件IIC的方案,使用了内核外设。相比软件IIC能够节约内核的资源,但是网上提到硬件IIC容易出现Bug。前段时间调试过程中笔者也是在这里花费了一些时间,现象是读取不到MPU6050的原始数据,困扰了好几天忽然又好了,起初刚恢复正常时还会断断续续出现问题,现在的正确率已经很高了,在这个过程中硬件以及软件部分几乎没有进行变更,怀疑是上文提到的加上Teardrop后走线被自动拉弯以至于影响了通讯信号,由于笔者能力问题,目前对此感到莫名其妙。

使用串口和匿名地面站进行有线通讯,将陀螺仪原始值传入上位机,可以在地面站上面看到小飞机的实时姿态变化,在STM32F411上使用的是串口1,经过e-Link和电脑进行连接,与匿名地面站的通讯如果想要搞清楚还需要仔细研究与上位机的通讯协议,这里直接使用了RoboFlyDEMO中整理好的代码。对于Wifi物联网模块,在小飞控上有两个功能,1是可以通过无线方式和匿名地面站进行通讯,这样方面在飞机飞行过程中看到实时姿态,摆脱有线连接的限制,非常方便;2是可以与手机APP进行Wifi连接,使用手机对小飞机进行操控。ESP8266模块在LC商城购买,但是只下载到它的规格书,里面讲了一些性能指标方面的内容,对于模块的使用仿佛讲的不够细致。
在这里插入图片描述
提一下飞控程序框架,由于我绘制的飞控没有磁力计、气压计和GPS等功能,整个闭环控制的反馈主要就是陀螺仪、加速度计的值。首先将陀螺仪、加速度值经过IIC从MPU6050中读出,并对原始值进行去零偏处理和去最值滤波并将原始AD值转换为加速度和角速度量,将处理后的原始值加速度、角速度进行四元数和欧拉角结算,得到小飞机的姿态角,最终送入控制函数进行操作。

请添加图片描述
在控制中输入姿态角、角速度和油门等,进行角度环和角速度环解算,这里用的是最基础的两级PID修正,并且两个环用到的PID控制方案完全相同。在角度环中输入遥控器的ROL、PIT、YAW设定量为目标值,MPU6050测量并经过结算后得到的姿态角作为测量值,经过PID算法进行修正,修正后的量作为角速度环的目标值,陀螺仪的角速度值作为测量值,再次使用PID算法进行修正,最终修正后的量送给电机的PWM进行飞行控制。飞控数据流程框图如下:

请添加图片描述
总结,小飞控项目的练习大概花费三个月时间,了解了飞控的整体逻辑架构,也对此项目往更优的方向发展有了一定认知。对于反馈传感器,还可加入磁力计进行定向,加入气压计进行定高,加入GPS进行定位,加入摄像头进行视觉处理,以及选用避障模块等。对于软件,滤波算法、角度环控制算法、角速度环控制算法都可以作为一个方向去研究,本项目中基于PID的参数整定,亦可以花不少时间去优化。当然,硬件方面的模块的选用、芯片型号的更替、布局的优化、走线的美观等都可以进行深入的研究。
请添加图片描述

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ESP32四轴无人机项目是一个基于ESP32开发板的无人机项目。ESP32是一款强大的双核处理器,配备了低功耗蓝牙、Wi-Fi和丰富的GPIO引脚,使其适合用于物联网和无人机项目。 该项目利用ESP32的强大功能和丰富的资源,实现了四轴无人机的制。通过连接传感器和舵机等外部硬件,可以实现无人机的姿态制和制。 在这个项目中,ESP32可以连接到无线网络,并将无人机的状态信息传输到手机或电脑等终端设备上,使用户能够实时监制无人机。同时,利用ESP32的蓝牙功能,还可以通过手机等设备进行远程操作。 该项目还可以实现无人机的自动行功能。通过编程和算法的设计,可以实现无人机的自主行、定点悬停、路径规划等功能。这些功能可以应用于无人机拍摄、物流配送、农业测绘等领域。 在实现这个项目时,需要对无人机的航空知识、电子电路和编程有一定的了解。同时,还需要对ESP32开发板和相关硬件有一定的熟悉和掌握。在项目的实施过程中,需要仔细设计电路布局、选择合适的传感器和舵机,并编写相应的程序进行制。 总之,ESP32四轴无人机项目是一个充满挑战和创意的项目。它结合了无人机的制和物联网技术,具有广泛的应用前景。通过对电子、编程和航空知识的研究和实践,可以打造出功能强大、性能稳定的无人机系统。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值