基于stm32的四旋翼无人机控制系统设计系统设计与实现
文章目录
- 前言
- 资料获取
- 设计介绍
- 功能介绍
- 设计程序
前言
💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
资料获取
文章底部名片,详细资料联系我。
设计介绍
基于stm32的四旋翼无人机飞行控制器设计的目的是通过对四旋翼无人机系统软件的优化设计,不断提高无人机的研发技术,使无人机更加智能化、人性化,从而降低无人机的操作难度,使无人机的适用范围不断扩大,为各行各业提供便利。本文从实际应用角度出发,研究和设计了四旋翼无人机的飞行控制器,通过采用高性能 stm32 单片机作为无人机主控芯片完成了无人机的机体控制总体结构、电源和控制电路以及各种通信电路等相关技术的设计,重点探讨了无人机的外形及飞行装置。在四旋翼型无人机自动控制系统中,电机可以作为其主要的动力源,通过给出不同的信号传感器来自动控制各个旋翼的运转速度,并根据各个旋翼的反馈信号来自动调整各个旋翼的运转角度。本文主要通过对四旋翼无人机余度飞控系统、无人机系统软件程序编辑以及飞控系统硬件设计等方面进行了研究与实现。
功能介绍
飞行控制系统本身是一个多状态、多参数、非线性、多任务的动态耦合系统。系统设计需要满足高精度、高可靠性和高实时性的要求。在原有硬件电路实现的条件下,软件设计和编码则需要考虑采样周期和计算周期的协调、数值溢出、边界条件等问题。飞控联动系统的设计方案采用的是实时联动性较强、可靠性较高的新型多任务联动软件飞控系统,涉及多个子程序系统的数据流。主要任务有:传感器数据采集、航路引导计算、控制律计算、航路点与指令信息数据通信。首先要保证无人机运动姿态的平衡稳定和位置的正确,并按照之前设定的路线图进行准确飞行。同时,一定要接受远程指令,及时进行更改[13]。本文软件系统采用模块化设计,主要任务模块如图4-1所示。
图4-1 飞控系统任务
飞机控制系统是飞机控制的核心部分。其最重要的功能之一是实时接收传感器的数据,并能利用软件算法对飞行器的姿态进行分析,对飞机姿态异常的校正,关键的校正算法是PID控制算法。在这个冗余飞行控制系统中,姿态角是由主控
STM32F103RB读取的每个传感器的返回值来计算的。计算机获取的姿态角与遥控信号进行融合,输出到电机控制部分。飞机的姿态控制是通过调节电机状态来完成的[5]。整体系统框图如下图2-2所示。
图2-2 整体系统框图
设计程序
`int main(void)
{
Stm32_Clock_Init(2); //系统时钟设置
IO_shangla_init();
delay_init(72); //延时初始化
Adc_Init(); //AD 模块初始化
PWM_Init(4000,4,4000,4); //PWM 模块初始化
LCD_Init(); //液晶初始化
Ov7725_Init(); //ov7725 初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//设置 NVIC 中断分组 2:2 位抢占优先级,2 位响应优先级
uartInit(9600); //串口初始化位 9600
while(1){
model(); //模式选择
if(target()) //检测是否有目标
attack(); //收集目标信息
check(); //检查自身状态
}
}``
# 具体实现截图
# 参考文献[1]林超文,李奇. 基于STM32系统的四旋翼无人机姿态解算方法的设计与研究[A]. 中国高科技产业化研究会智能信息处理产业化分会.第十三届全国信号和智能信息处理与应用学术会议论文集[C].中国高科技产业化研究会智能信息处理产业化分会:中国高科技产业化研究会,2019:4.
[2]田昌,邓文涛,赵娟.基于STM32的四旋翼无人机设计[J].科技创新导报,2019,16(30):61+63.
[3]童江.基于双STM32多旋翼无人机控制系统设计[J].科学技术创新,2019(22):39-40.
[4]申祖辉. 基于STM32的四旋翼无人机控制系统设计[D].河南科技大学,2019.
[5]宗意凯,曾宪阳,施子凡,杨红莉,陈春春,徐长城,孙钢,张宇昕.基于STM32单片机四旋翼无人机自主飞行设计[J].电子技术,2018,47(06):84-87.
[6]蒋红阳. 基于STM32的多旋翼无人机飞行控制器的多余度系统研究[D].吉林大学,2018.
[7]周健,王远航,黄创绵,杨剑锋,严拴航,闫攀峰.基于STM32的四旋翼无人机在线监测系统研究[J].电子产品可靠性与环境试验,2018,36(01):43-48.
[8]李志广. 基于STM32单片机的四旋翼无人机姿态的数据采集研究[D].安徽理工大学,2022.
[9]潘春荣,许化.基于STM32的X型四旋翼无人机设计[J].工程设计学报,2017,24(02):196-202+210.
[10]袁安富,徐金琦,王伟,马浩.基于双STM32多旋翼无人机控制系统设计[J].电子技术应用,2020,39(11):136-138.
[11]王博. 基于STM32的微型无人机飞行控制器研究[D].长春工业大学,2018.
[12]杨磊. 基于STM32的小型无人机飞行控制系统设计[D].东北农业大学,2016.
[13]胡庆. 基于STM32单片机的无人机飞行控制系统设计[D].南京航空航天大学,2022.
[14]邓其龙,朱耀钟.基于STM32的四旋翼无人飞行器控制系统[J].电子世界,2015(19):171-172.
[15]杨才广,姚志兴,谭永镇,凌子嵌,凌永国,黄设新.基于STM32的无人机飞行控制系统[J].电子世界,2019(01):130-131.
[16]肖远鹏.基于STM32的无人机飞行控制系统设计[J].电子技术与软件工程,2020(14):90-91.
[17]徐信,陈聪.基于STM32的无人机飞行器设计[J].信息通信,2018(12):128-130.
[18]Tanabe Yasutada,Sugawara Hideaki,Sunada Shigeru,Yonezawa Koichi,Tokutake Hiroshi. Quadrotor Drone Hovering in Ground Effect[J]. jrobomech,2021,33(2).
[19]PliegoJiménez Javier. Quaternion‐based adaptive control for trajectory tracking of quadrotor unmanned aerial vehicles[J]. International Journal of Adaptive Control and Signal Processing,2021,35(5)
# 设计获取><font face="微软雅黑" color=#FF0000 size=4><strong>文章下方名片联系我即可~</strong><br>
><font face="微软雅黑" color=#0099CC size=4>精彩专栏推荐订阅:在下方专栏👇🏻</font><br>
<font face="微软雅黑" size=4><a href="https://blog.csdn.net/qq1928499906/category_12766262.html" target="_self">**毕业设计精品实战案例**</a></font><br>
><font face="微软雅黑" color=#FF0000 size=4>**收藏关注不迷路!!**</font><br>
><font face="微软雅黑" color=#FF0000 size=4>**🌟文末获取设计🌟**</font><br>
相关文章:

基于stm32的四旋翼无人机控制系统设计系统设计与实现
文章目录 前言资料获取设计介绍功能介绍设计程序 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业…...

【原理图PCB专题】案例:原理图设计检查为什么要检查全局网络?
本案例发生在新人的PCB设计文件中,当然就算硬件老人们,其实只要不注意也很容易出现这种全局网络乱用的问题。 如下所示是给新人的接口参考图纸,要求使用嘉立创绘制16个相同的接口做一个工装板。同时还要增加单片机实现切换控制功能。可以看到座子的24个管脚中使用到了3.3V、…...
Java 之 IO流
一、IO流概述 在计算机编程中,IO流(Input/Output Stream)是处理设备间数据传输的关键技术。简单来说,IO流就是以流的方式进行输入输出,数据被当作无结构的字节序或字符序列来处理。在Java等编程语言中,IO流…...

计算机毕业设计 健身房管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件
uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件 日历期间、年期间、月期间及时分期间组件在不同的应用场景中发挥着重要的作用。这些组件通常用于表单、应用程序或网站中,以方便用户输入和选择特定的日期和时间范围。以下是这些组件的主要作用&a…...

GAMES101(10~11节,几何)
Geometry implicit隐式几何表示: 函数f(x,y,z): 根据函数fn描述几何,遍历所有空间内 的点,如果带入xyz到函数f(x,y,z)结果0那就绘制这个点 如果xyz求值结果>0表示在几何外,0在表面,<0在几何内 构造几何csg(…...
家电制造的隐形守护者:矫平机确保材料完美无瑕
在家电制造业中,产品的美观和耐用性是消费者选择的关键因素。然而,在生产过程中,材料的翘曲问题往往成为影响产品质量的隐形杀手。幸运的是,矫平机的出现,为家电制造商提供了一个有效的解决方案,确保每一件…...
软件设计师考纲及笔记
1. 计算机系统知识(分值占比:10%,重要程度:★★★★☆) 1.1 计算机系统基础 计算机组成: 中央处理器(CPU):计算机的核心部件,执行指令并处理数据。内存&…...

基于SpringCloud的微服务框架
1. 服务架构演变 1.1 单体架构 开发部署方便,维护扩展难。 1.2 垂直分割 将应用拆分成多个垂直部分,每一部分负责一组相关功能。 1.3 SOA(Service-Oriented Architecture) 面向服务的架构,引入了服务的概念。通过…...

C++速通LeetCode简单第19题-只出现一次的数字
方法一:暴力求解,排序后两个两个比较,两者不同时前者为答案: class Solution { public:int singleNumber(vector<int>& nums) {if(nums.size() 1) return nums[0];list<int> l;int ans 0;for(int i 0;i< n…...
AutoSar AP中Proxy Class中Methods描述的总结
☞ 返回总目录 5.3.6 Methods(方法) Proxy Class 与方法包装类 代理类与方法成员:对于远程服务的每种方法,Proxy Class 包含特定于该方法的包装类成员。例如示例中有 Calibrate、Adjust 和 LogCurrentState 三种方法对应的成员。…...
如何在本地计算机中打开远程服务器的Jupyter notebook
1. 在你的本地计算机上打开终端。 2. 使用SSH命令创建一个隧道: ssh -L 8888:localhost:8888 your_usernameyour_server_ip 这里,your_username 是你的服务器用户名,your_server_ip 是你的服务器IP地址。 其中,-L 8888:localhos…...

实习项目|苍穹外卖|day11
Apache ECharts 前端技术。 营业额统计 还是比较简单的。 用户统计 订单统计 以上所有需求。难点在于对时间类的处理: // 接收格式 GetMapping("/turnoverStatistics")ApiOperation("营业额统计")public Result<TurnoverReportVO>…...

easy_cloudantivirus
0x00前言 必须安装在virtualbox 攻击机:kali 靶机 easy_cloudantivirus 链接: https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/ 0x01信息搜集 经过测试发现靶场IP为192.168.56.106 进一部对IP搜集信息 发现8080端口youhttp服务。…...
python中Web API 框架
Python 中有几个非常流行的 Web API 框架,它们让你可以轻松地构建和部署高效的 Web API。下面我将为你介绍几个最受欢迎的 Python Web API 框架,及其使用方法和特点。 1. FastAPI FastAPI 是一个现代、快速(非常高性能)的 Web 框…...

Linux(6)--CentOS目录
文章目录 1. 根目录2. cd目录切换命令3. CentOS目录介绍4. pwd命令介绍5. ls命令介绍5.1 ls5.2 ls -a5.3 ls -l 1. 根目录 Windows电脑的根目录是计算机(我的电脑),然后C盘、D盘。 Linux系统的根目录是/,我们可以使用cd /进入根目录,然后使…...
标准C++(二)
一、名字空间 什么是名字空间 在C语言中定义的全局变量、函数、结构、联合、枚举、枚举值、宏都在全局作用域下,所以当项目比较庞大时,非常容易造成命名冲突(以模块名作前缀、后缀),所以C中选择把全局作用域进行拆分…...

硬件工程师笔试面试——保险丝
目录 10、保险丝 10.1 基础 保险丝原理图 保险丝实物图 10.1.1 概念 10.1.2 保险丝的工作原理 10.1.3 保险丝的主要类型 10.1.4 保险丝的选择和使用注意事项 10.2 相关问题 10.2.1 保险丝的额定电流和额定电压是如何确定的? 10.2.2 保险丝的熔断速度对电路保护有何…...
本地安装Ollama+WebUI
本地安装OllamaWebUI B站教程地址:https://www.bilibili.com/video/BV1Kz421h7Jk/?spm_id_from333.337.search-card.all.click&vd_source42b07826977d09765ec11b9fa06715e5 一、下载Ollama https://ollama.com/download 支持mac、linux、windows 选择在ubu…...

请求响应-05.请求-日期参数JSON参数
一.日期参数 当浏览器发起的请求参数类型是日期参数时,我们通常使用LocalDateTime对象来接收,前面使用DateTimeFormat注解来完成日期的格式转换(日期时间格式有多种,需要哪种就设置为哪种:如yyyy-MM-dd HH:mm:ss&…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...