基于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&…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...