零基础DIY四轴飞行器超级详细保姆级教程(STM32F407ZGT6主控、WIFI图传、陀螺仪平衡、气压计/超声波定高、手机蓝牙控制等功能)

article/2025/9/5 8:51:40

前言 

         大四毕业后暑假没事做就花了一点DIY了一个四轴飞行器,是比较大的那种F450机架,不是那种PCB板做机架的小四轴,因为我也是从零基础开始做的四轴,现在就想把自己的过程写成博客分享在网上。下面我会从机械结构、主控和各传感器模块这些方面进行详细介绍。

器件清单 

器件名称淘宝链接数量
普中T100开发板https://m.tb.cn/h.fz0zR1M 1
BMP280气压计https://m.tb.cn/h.fyV4IDf1
F450机架动力套餐https://m.tb.cn/h.fz0C7tb1
HC08蓝牙模块https://m.tb.cn/h.fz0C7tb1
OV2640摄像头模块https://m.tb.cn/h.fBcwmab1
六轴角度传感器https://m.tb.cn/h.fBcDmUV1
WIFI模块https://m.tb.cn/h.fyVgWC4 1
1.8寸TFTOLED显示屏https://m.tb.cn/h.fz0zirx1
HC-SR04超声波测距模块https://m.tb.cn/h.Ua5l80Q?tk=gU4v2twHMcQ1

        如果自己DIY大四轴的话,上述器件搭配按照我的链接购买应该是接近最低成本了。

F450动力套餐及电池等使用介绍 

        其中的F450动力套餐包含F450机架、1045桨叶一套加备用、电调x4、3S航模电池x1、电压报警器(BB响)、B3锂电池充电器x1,一套下来三百出头,其中B3锂电池充电器最好自己另买B6平衡充电器、因为航模电池很娇贵,不能过冲过放,B3充电器是很低端的,保险起见最好换成B6充电器或者更高端的。
        航模电池一定不能过放,买来的电池一般只有出厂电量,一定要先充满再工作,一般3S航模电池只能工作十多分钟,一定要经常用BB响测电池电压,每节电池电压低于3.7V一定要充电,否则过放极易造成电池报废。航模电池过放有两种情况:一、航模电池的每块电池电压都接近于0V,此时还可以抢救一下,方法是用3.7V左右的电压、小电流给电池慢慢充电,将其电压充到3.7V以上,这时候一般就可以恢复功能,但是寿命和容量会大大折扣。二、航模电池中只有一块电池接近0V,其他电池正常,这种情况基本上就无法抢救了,可以自己小心地把坏的电池焊下来,其他电池继续串联使用。航模电池使用有一套口诀:最高4.2V,最低3.7V,长时间存放3.8V。
        电调会有5V的稳压输出,这样就不用外加降压稳压模块给单片机和传感器等模块供电了。在第一次使用电调时需要对电调进行油门校准,即设置最小油门和最大油门,此时最小油门对应的PWM波一个周期内的高电平持续时间为1ms,最大油门对应的PWM波一个周期内的高电平持续时间为2ms,然后根据电调手册进行操作即可。我自己是写了电调校准的代码部分的,在使用的时候用手机蓝牙控制单片机进入电调校准模式即可实现一键油门校准。
        桨叶会有正反桨之分,此套餐有的桨叶型号为“1045”,需要逆时针旋转;有的为“1045R”,需要顺时针旋转。注意不要接反,否则没有升力。

机械安装和自制调试架

        在DIY之前一定要设计好机械结构,一套好的机械方案可以大大节省你的调试时间!!!重要的事情说一遍!!!接下来就是我的一些机械方面的心得:
        1.尽量让你的整个四轴的重心在机架中间,如果发生一边偏沉会让你的PID参数调试变得困难,如果偏沉严重甚至你会无法调试得到合适的PID参数!
        2.尽量把陀螺仪的位置安装在机架中心,因为陀螺仪对高频振动很敏感,当长时间处于高频震动环境下陀螺仪误差很大!把陀螺仪安装在中心可以让四个电机的振动抵消掉一部分。
        3.最好给陀螺仪做好减震措施,比如在飞控下面垫上柔软的海绵,海绵可以降低震动的频率和幅度,让陀螺仪的数据基本不会产生漂移,此种方法亲测有效。也可以在淘宝上买飞控专用的减震垫板,我个人直接用的海绵,通过双面胶连接机架、海绵和飞控。
        4.网上有专门的调试架,既可以调试平衡环也可以调试定高环,但是价格比较贵,两百左右。我是自己自制的调试架,用一根圆形的铁棍将机架架起来,两端固定好,这样可以调试平衡环。高度环(定高)在平衡环调试好以后再进行,用手握住机架下面即可,因为平衡环调试好以后一般不会发生侧翻,但是也要小心操作。

电路设计

        我是在普中T100开发板的基础上画的PCB扩展板,软件用的国产硬件电路设计软件——立创EDA,因为要按照开发板的引脚分布画板子,所以引脚布局有些麻烦,最终画了四层板,尺寸在10cm*10cm以内(这样就可以白嫖嘉立创每个月的免费打板),下面是我画的原理图和PCB板。
板子把模块用到的引脚集成在一起、并且预留了5V和3.3V的电源扩展接口。使用的时候焊好排母,将模块和电调插入即可运行。

        画原理图和PCB板时,里面的符号和PCB封装是按照元器件引脚自己做的 ,里面最麻烦的就是开发板的封装和原理图符号,因为开发板的引脚顺序和PCB和芯片的是不一样的,我只能根据开发板的引脚结构一个个对应(一百多个引脚)。

 

        PS:因为疏忽忘记把扩展板上的PA9、PA10引脚和USB转TTL的相应引脚连上了,所以用的时候需要自己用焊锡把引脚连上,这四个引脚是相邻的,所以很简单。因为一开始没想用超声波测距模块来定高所以没画这一部分,后来用气压计定高时发现气压计测量误差相对较大,定高时出现上下飘移的现象,后来改用超声波定高,超声波测距模块用的WIFI的接口(串口),两者用杜邦线连接,后面有时间的话可能会改进PCB板。
        另外,具体的焊接时里面的电容和降压模块可以不用接,因为开发板自带降压模块和滤波电容,我将它们的接口预留在板子上是因为有人的供电方式可能是单独外接电源供电(5V和3.7V),不用电调的BEC电源输出,这样的话这块板子不仅可以用作飞控板,也可以用作其他方面的学习。

一个成功的四轴飞行器的必备素养及功能实现

        一个基本的四轴飞行器起码需要包含以下功能:可遥控、自平衡、自定高。
        我自己DIY的这款飞行器的遥控功能是用手机遥控的,用的HC08蓝牙模块和手机相连,蓝牙配套软件用汇承的配套蓝牙APP,可以自定义按键名称及功能。自平衡功能用的正点原子的六轴IMU模块,输出当前结算后的姿态角和加速度、角速度等数据,然后用PID算法进行自平衡。定高功能有两种方式来实现:一是气压计,这也是我最开始设计的方式,但是实际操作发现气压计测得的高度误差较大,用来定高飞行器会上下漂移,但是高端的无人机都是用气压计做定高的并且效果很好,原因就是需要用气压计+IMU做数据融合算法实现高度的精确测量,这种算法我个人以前并未接触过,做起来很麻烦,由于时间原因我改用超声波定高。超声波测距离很准确,但是高度有限,我用的超声波传感器最大测量距离典型值为4.5m,在空旷地方最大能达到近7m,勉强够用。
        PS:用超声波定高的话效果其实没有光流模块好,一般的光流模块不仅可以定高也可以定点,其不仅可以测量近地高度,也可以测量水平维度的偏移,加上PID算法可以让飞行器像木桩一样定在空中。当然其缺点也很明显,只能在一定高度内使用,一般在7m以内,如果在高空实现定点功能就需要气压计,IMU和GPS共同来实现。因为预期工作不够,并且只是个人业余的爱好DIY,所以本设计并没用GPS,如果以后有时间或许会将功能完善。

因为时间原因,此篇文章是以一个半成品的状态发布的,各模块具体的功能实现和核心代码没时间做介绍,此篇文章仅供各位作为入门者的总体方案参考即可。


http://chatgpt.dhexx.cn/article/kLRVrQXI.shtml

相关文章

20210728用树莓派 DIY 四轴飞行器(硬件、故障保护、遥控、飞行模式)

https://mbb.eet-china.com/forum/topic/92385_1_1.html 20210728用树莓派 DIY 四轴飞行器(硬件、故障保护、遥控、飞行模式) 2021-7-28 11:00:24 只看该作者 倒序浏览阅读:849 回复:1 机械构造–第一部分 今天,我们…

正则判断是手机号码

var regExp "^((13[0-9])|(15[^4])|(18[0,2,3,5-9])|(17[0-8])|(147))\\d{8}$" // 正则表达式 var objExpnew RegExp(regExp) // 正则初始化对象 var tel "18310121542" // 输入手机号码 objExp.test(tel) // 正则验证号码

手机号码正则_中国大陆手机号码的正则表达式总结ChinaMobilePhoneNumberRegex

ChinaMobilePhoneNumberRegex是国人总结整理的一组匹配中国大陆手机号码的正则表达式。遵守MIT开源协议。 规则包括: 手机卡 – 基础运营商 支持语音通话 / 短信 / 数据流量号码长度 11 位运营商 [1]号段中国移动134-0~8 / 135 / 136 / 137 / 138 / 139 / 150 / 151 / 152 / 1…

php虚拟电话号码,虚拟运营商号码慎入! 七大你要想到的事【2】

原标题:虚拟运营商号码慎入! 七大你要想到的事 面临倒闭可能,号码如何处理 在虚拟运营商中我们发现了不少的民营企业身影,这也是工信部在最早开展移动转售业务的初衷之一,鼓励民营企业进入到移动通信行业中来。民营资本的进入可以…

php虚拟电话号码,[视频]一号通电信诈骗追踪 虚拟号码服务藏漏洞

进入[整点新闻]>> “一号通”业务“擅长”呼叫转移与服务管理,只要通过网络或者任何一部固定电话,您都可以随时随地改变“一号通”所链接的号码,或者按顺序转移、无应答转移、临时转移以及免打扰等呼叫转移方式。正因“一号通”的种种便…

自适应红色大气虚拟手机靓号交易商城网站源码

☑️ 编号:ym363 ☑️ 品牌:无 ☑️ 语言:php ☑️ 大小:8.5MB ☑️ 类型:虚拟手机靓号交易商城 ☑️ 支持:pcwap 🎉 欢迎关注,私信,领取 🎉 ✨ 源码介绍 靓号…

VS 2015 | MFC | Dialog界面被关闭了如何打开

打开VS 的资源视图: 上方工具栏 视图->资源视图可以找到,打开****_DIALOG即可

C++ MFC 界面美化------自绘菜单栏

最终效果 一: 点击菜单栏标题后弹出菜单,在OnNcHitTest中增加代码 ,使得当鼠标在 菜单标题的区域点击后,触发对应的函数 LRESULT CMFCDrawnTitleDlg::OnNcHitTest(CPoint point) {// TODO: 在此添加消息处理程序代码和/或调用默认…

MFC界面编程基础(02):MFC窗口的创建

上一篇:MFC界面编程基础(01):Windows 编程模型下一篇:MFC界面编程基础(03):消息映射、窗口绘制、文档/视图结构体系 MFC是什么? 微软基础类库(英语:Micros…

MFC界面编程基础(01):Windows 编程模型

上一篇:MFC界面编程基础(00):基本概念下一篇:MFC界面编程基础(02):MFC窗口的创建 WinMain函数 当 Windows 操作系统启动一个程序时,它调用的就是该程序的 WinMain 函数…

简单聊天室的设计 C++ MFC

b站有更高级教学视频 https://www.bilibili.com/video/av38700336/ 一、要求 要求:分别设计基于对话框的客户端和服务器端的程序,实现两端的通信,服务器端能接受客户端的消息,并且显示客户端的连接信息,把客户端信息…

MFC 中使用QT开发界面

首先创建一个基于对话框的MFC工程,当然其他的像是多文档、单文档工程也是可以的,只是为了简单起见我这里用的是对话框 然后通过鼠标右键点击项目,然后依次点击属性 --> C/C -->常规在工程的附加头文件中添加上QCore、QGui、QWidget和QT…

第六篇--MFC美化界面

1.MFC如何设置背景颜色 首先,为对话框添加WM_CTLCOLOR消息,方法为:右击Dialog窗口 --> Class Wizard --> Messages --> WM_CTLCOLOR --> Add Handler --> Edit Code 然后,在Dlg.h文件中添加成员变量CBrush m_brush; 接着,在之前Edit Code的位置,写上 HB…

MFC界面类库Xtreme Toolkit Pro 下载及使用教程介绍

Xtreme Toolkit Pro 是针对Windows程序员的一套先进的用户界面套包,强大的功能可使您的应用程序具有专业的、现代感的外观。 Xtreme Toolkit Pro 由8个专业级的构件组成,Xtreme CommandBars, Xtreme Docking Pane, Xtreme Property Grid, Xtreme Report …

wxWidgets界面设计工具DialogBlocks

工欲善其事,必先利其器。在MFC上开发,有VS系列强大的可视化工具,基于wx的开发工具虽然没有VS、QT的界面设计器强大,但在灵活度上VS的界面设计器是没法比的(QT的没有用过,不做评论)。 如…

Visual Studio开发MFC如何打开可视化窗口编辑界面

在使用Visual Studio 2019开发工具开发MFC工程项目时,如果把可视化界面窗口编辑界面关闭后如何打开? 1、项目关闭后重新打开时的界面,没有可视化窗口界面显示。 2、在右侧的解决方案资源管理器中,选择资源文件下的 MFCApplicati…

VisualStudio2022 MFC对话框窗体托盘图标设计

目录 效果展示头文件1.1 头文件声明 CPP文件2.1 初始化2.2 功能实现 环境:VisualStudio2022 框架: MFC 对话框窗体 功能:托盘 对话框类:CBLToolsDlg 作者:CDamogu 时间:20220308 效果展示 头文件 1.1 头文件声明 头文…

MFC界面美化---自绘标题栏

做MFC项目的时候,会经常遇到需要美化界面的时候。mfc的原始界面比较丑,今天主要记录一下对MFC标题栏重绘的过程,最终效果是这样的。 1.因为要对标题栏进行重绘,我们要把MFC的原生标题栏给去掉,在MFC对话框的属性那里&a…

Windows界面编程:MFC

前言 大家之前在学C/C语言时,基本都是通过控制台实现“人机交流”的。但大家每次在写控制台程序时,看到黑框框应该都会有些许不爽吧:“输入输出为什么不能基于图形用户界面而非要使用文本用户界面呢?”事实上,在各个环…

MFC-登录界面(可修改密码)

登录界面的博客有很多,参考了这一篇文章,下面给出链接。 MFC做一个登录界面(用户名,密码以及密码的明文密文切换)_umarutyan的博客-CSDN博客 但这里无法修改密码,下面做出一些补充。 由于用不到数据库&a…