基于stm32的四旋翼无人机的设计——飞行控制系统软件设计

2 四旋翼无人机设计总体思路

确定无人机基本需求,主要包括无人机的功能、性能、成本、功耗、尺寸和重量等。确定这些之后,就可以针对这些需求进行硬件模块的选择以及软件的初步构思。
对无人机进行系统设计,把实际问题转变为工程问题,确定总体的系统结构,再分别确定硬件结构和软件结构并画出流程框架,其中的重点是软件硬件之间的划分,划分的结果将对开发进度有着较大的影响。
对无人机进行详细设计,设计和选择符合无人机系统的具体构件。既包括硬件模块比如cup6050,也包括软件模块比如一些可以直接调用的函数。在这一阶段,更多的是需要特定的设计,并尽可能使具体结构优化。
最后,进行系统的集成与测试,通过对无人机系统反复的测试,修正构件中的错误,最后把软件程序进行固化。
2.1 软件设计的思路
四旋翼无人机硬件的开发,解决了怎么飞行的问题,用什么器件控制的问题,以及如何检测当前无人机姿态的问题。飞行看起似乎近在咫尺,但实际上,每一个电机都有自己的特性,给它们相同的参数,也会不完全一致的转动。周围环境,比如微风等扰动,也会使其失去平衡,从而达到不可控。
为了解决这些问题,笔者在姿态控制上选择以PID算法进行控制,无人机相当于有了一个自动调节的大脑。但想要使用PID,就需要实际飞行姿态的参数,因此,程序还需要把MPU6050采集的数据进行处理,这就用到了四元数姿态解算,得到欧拉角。采集的数据由于传感器的客观原因也常常不够准确,这就需要了卡拉曼算法进行滤波。通过这3个算法的配合,基本可以对飞行姿态进行控制。同时,在程序编写上以模块的形式,方便检测更改程序的错误以及进行调试。

3 四旋翼无人机的结构与运动姿态

3.1 无人机的结构
一般而言,无人机的机体架构为X型或十字型,这取决于机头方向的定义,而它们的主要区别在于坐标系的位置是不一致的。对于X型无人机,它的机头方向为两个机翼的中间,十字型无人机则是以其中一个机翼为正方向。两种机体架构各有优劣,但总体而言,以X型为机架的无人机性能更好,主要是通过调查发现,选用X型作为机架的无人机常常表现的更为稳定且易于操作。因此,本次设计选用以X型为机身构造。
X型四旋翼无人机是一种由4个独立的电机驱动,以X型架构为机身的飞行器。它的具体结构如图3.1所示,4个电机共同为无人机提供向上的动力,并且每一个都是独立的,从结构上看,四个电机处于同一水平面并且每个电机到中心的距离是相等的。以顺时针转动的电机2、电机4称为正桨,以逆时针旋转的电机1、电机3称为反桨。由图可以看出4个旋翼可以分为2组,并以在同一对角线的为一组,而且同组电机的旋转方向是一致的,相邻的两个电机是反向的。在两个旋翼转速完全相同的情况下,两个旋翼产生的反扭力矩方向相反,大小相同,便可抵消力矩,从而达到达到平衡。

图3.1X型四旋翼无人机具体结构

4 飞行控制系统硬件设计

如图4.1所示四旋翼无人机的硬件电路由STM32最小系统、电源、传感器、LED、和接口六大部分组成。主控制器STM32F103C8T6负责解算传感器模块采集的信息,并利用采集的信息提供飞行任务指令,同时结合PID控制算法,PWM波信号输出使电机转速发生有规律的变化,从而实现飞行器的可控飞行。

图4.1四旋翼无人机的硬件电路

5 软件设计总体思路

软件使用 keil MDK 5.14 集成开发环境。飞行控制软件主要包括以下几个方面。 mpu6050传感器把初始数据传送给STM32 单片机,采用I2C通信方式;得到飞行器的实时姿态数据,并进行滤波;四元数姿态解算得到实际姿态; PID控制姿态,使无人机在无法达到理论值时依旧处于稳定状态; 通过占空比的改变,使PWM波信号控制电机。具体程序框图如图5.1所示

图5.1四旋翼无人机的软件程序设计框图

6 系统调试与飞行测试

虽然程序经过较为严格的论证,并对每段程序进行了检查,但实际环境常常是多变的,比如信号传输可能被干扰,空气流动造成的扰动等,操作手法也可能造成飞行的不稳定,所以制作出的实物,需要根据实际情况进行微调。
在进行飞行测试时,笔者通过与团队的讨论,选择在宽阔的室内试飞,主要考量在于室内墙壁可以反射信号,无人机不容易失控,其次是测试阶段,选择扰动量小的地方,发现问题便于分析,从而便于整体的修改。
测试的内容主要包括无人机的飞行移动和悬停。图为四旋翼无人机飞行时的图片。动态性能良好,在飞行的测试中,四旋翼无人机能够按照遥控控制的方向进行前进、倒退、向上、向下、左移、右移倾角误差在±4°以内,飞行的姿态较为平稳。控制命令发送后,四旋翼无人机的响应时间在2s左右,系统响应实时性较好。不足之处在于,降落时需要缓慢下降,否则电源瞬间切断,直接掉落下来可能造成一些危险。总的来说,测试的结果达到了预期的设计要求。

7 总结

这次的毕业设计,我回顾了许多在大学期间所学知识,有高数、线代、控制理论、嵌入式、单片机等课程。回顾期间,一方面感受到自己深深不足,一方面又因为自己学过而不至于寸步难行。在面对一些未曾学习过的知识的时候,按照老师所教授的自学技巧,比如书看皮,文献看目录来找自己真正需要的东西,又如对于原理解释,理解数学解释对后续学习起到了事半功倍的效果。整体而言,这次的毕业设计使我受益良多。现对本次毕业设计总结如下
现对本次毕业设计进行总结,本文从四旋翼无人机的发展入手,对无人机飞行原理,以及飞行姿态控制进行了简单的描述,之后又对整个硬件的模块进行简单的介绍。有了这两个铺垫,软件内容的出现不会显的突兀,读者也能快速简单的了解整个四旋翼无人机,进而对软件部分的大致思路有个对实际的把握。
本文对软件部分进行了详细的论述,主要是对卡尔曼滤波、四元数姿态解算、PID这三个算法进行了浅薄的理解和详细的论述,在参考大量程序后,进而写出对应的程序。整体而言,本文对算法的论述占较大的篇幅,并且以较为通俗易懂的话写了出来,相对应的可以给初次接触该领域的读者一点参考。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1168922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

惊魂一刻!重装系统误删分区,数据救援大揭秘

在数字化时代,数据已成为我们生活和工作中不可或缺的一部分。然而,在操作电脑的过程中,有时会因为疏忽或误操作而导致数据丢失,其中,重装系统时误将所有分区删除便是一种常见且令人头疼的情况。这种误操作往往会导致存…

AIDL Hal 开发笔记3---- stable-c HAL 实例分析

目录stable-c HAL 实例分析在 HIDL HAL 中 聊过 Same-Process HALs,这类 hal 的调用对性能要求高,一般直接链接,不适用跨进程的方式来调用。 在 AIDL HAL 中,与之对应的是 stable-c HAL。stable-c HAL 就是一个对外接口稳定的 so …

AIDL Hal 开发笔记4----驱动开发

目录一、编写Linux 内核驱动1.1 编写驱动1.2 将模块编译进内核二、Native 程序测试驱动程序三、权限配置驱动开发 一、编写Linux 内核驱动 1.1 编写驱动 Linux 驱动实际就是一个 Linux 内核模块。 首先,我们需要理解什么是内核模块?简单来说&#x…

基于PLC的卷扬机控制系统

三、卷扬机控制系统 (一)卷扬机的基本结构 如图3-1所示,卷扬机是由一个电机通过卷筒来带动左右两个小车上下行的工业机器。在工作过程中,使用一个电机同时拖动两个小车,使左右两个小车交替运行,当左车&…

基于51单片机的出租车计价器

3出租车计价器硬件设计 硬件是一个电子器具能否顺利运行的重要保障,它是软件的物质基础和载体。本系统的硬件设计主要包含K24C02记忆存储模块,用于存储数据;DS1302时钟模块,为计价器计时;A44E霍尔传感器电路&#xff0…

收藏级指南:Agentic RAG 彻底升级传统RAG,打造能干活的AI数字同事

Agentic RAG作为传统RAG的颠覆性升级方案,核心是将静态的“检索-生成”流程,重构为智能体驱动的动态自适应工作流。传统RAG仅能完成单次问答的闭环,而Agentic RAG凭借推理规划、工具调用、自我修正的核心能力,可承接复杂任务落地。…

QML基本元素

元素可以被分为可视化元素与非可视化元素。一个可视化元素(例如矩形框Rectangle)有着几何形状并且可以在屏幕上显示。一个非可视化元素(例如计时器Timer)提供了常用的功能,通常用于操作可视化元素。现在我们将专注于几…

交直流可编程电源(技术资料) 直流电源是直流输出0-30V 5A TL494 线路; 交流电压...

交直流可编程电源(技术资料) 直流电源是直流输出0-30V 5A TL494 线路; 交流电压是10-120HZ可变频,0-30V幅度可调,5A输出; 变频交流电源部分是MEGA8DDS芯片D类数字功放做的。 电路原理: 经典的TL494开关电源线路 开关电…

DevSecOps时代测试工具的进化论:从功能验证到全链路质量保障

DevSecOps时代测试工具的进化论:从功能验证到全链路质量保障 在数字化转型加速的今天,软件开发周期持续缩短,安全威胁日益复杂,传统的"开发-测试-部署"线性流程已难以应对当下挑战。随着DevSecOps理念的深入实践&#x…

收藏级!大厂后端面试全流程复盘+大模型从入门到实战学习礼包

对于计算机专业应届毕业生而言,每年初秋的互联网大厂校招季,既是机遇与挑战交织的关键窗口期,更是检验四年专业积淀与技术能力的“终极实战场”。作为去年成功斩获字节跳动、阿里巴巴等多家头部大厂后端开发Offer的亲历者,同时也是…

【Java毕设全套源码+文档】基于springboot的公务员考试管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

基于Arduino的物流分拣控制系统设计

摘 要 为了提高当前物流分拣系统的工作效率和分拣正确率,满足市场对该行业的智能化需求,改善快递行业的经济性,本项目利用机械臂作为分拣工具,抓取物品并送到指定位置;利用光电对管作为扫描识别仪器,检测…

本土DevOps领军者Gitee:如何重塑中国企业研发效能新范式

本土DevOps领军者Gitee:如何重塑中国企业研发效能新范式 在数字化转型进入深水区的当下,研发效能已成为决定企业竞争力的关键变量。根据IDC最新报告,到2025年,采用成熟DevOps实践的企业将比同行实现50%以上的交付速度优势。这一背…

【Java毕设全套源码+文档】基于springboot的新闻发布会管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

收藏!AI焦虑别慌,程序员为啥要学大模型?零基础系统入门指南

近来技术圈的“AI焦虑”持续蔓延,“大模型”“AI替代程序员”这类话题反复霸占热搜与技术社群,不少从业者陷入莫名的恐慌与迷茫。 相信很多程序员都有这样的疑问:在AI浪潮席卷各行各业的当下,到底该不该主动掌握AI大模型相关能力&…

【Java毕设源码分享】基于springboot+vue的水果在线销售系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

listmap数据变驼峰

/*** listmap数据_变驼峰** param list* return*/public static List<Map<String, Object>> convertListToCamelCase(List<Map<String, Object>> list) {List<Map<String, Object>> data new ArrayList<>();if (null list || list…

量产HLW8032串口通讯芯片的三相电参数采集系统项目资料 1主芯片采用STM32F407

量产HLW8032串口通讯芯片的三相电参数采集系统项目资料 1主芯片采用STM32F407 2嵌入式软件使用UCOS2操作系统 3通过3个独立串口实时采集三路三相电参数数据&#xff08;通过HLW8032&#xff09; 4具备TFT液晶显示接口&#xff0c;实时显示三相电参数数据 5为了采集电参数更加精…

Java后端开发学习路线,零基础入门到精通,收藏这篇就够了

此思维导图是从codeSheep那里而来 文章目录 java后端开发学习路线 编程基础 java语言 语法基础JVM并发/多线程 数据结构和算法 数据结构算法 计算机网络数据库/SQL操作系统设计模式 研发工具应用框架 后端 spring全家桶服务器软件中间件分布式/微服务 微服务发现/注册网关服务…

Maven 4 终于快来了,新特性很香!

大家好&#xff0c;我是 Guide&#xff01;在 Java 生态中&#xff0c;Maven 绝对是大家每天都要打交道的“老朋友”。 InterviewGuide 这个开源 AI 项目中&#xff0c;我使用了 Gradle。不过&#xff0c;根据大家的反馈来看还是更愿意使用 Maven 一些。 目前&#xff08;2026…