其他分享
首页 > 其他分享> > STM32实现水下四旋翼(二)硬件与软件准备

STM32实现水下四旋翼(二)硬件与软件准备

作者:互联网

目录

一. 引言

上一篇我们写了四旋翼的飞行原理,这一篇我们继续做准备工作,主要是讲解一下操作系统,我们的代码是基于操作系统实现的。为什么要用操作系统呢?你的电脑可以同时运行多个程序,得益于操作系统的运转。对于单片机来说是一样的,使用操作系统的单片机可以同时运行多个程序。你能忍受你的电脑同时只能运行Word或浏览器或其他什么东东的单个程序吗?显然不能,那么为什么你可以忍受单片机只有一个main函数呢?因为在此之前你的功能单一简单,或者是你不知道还有操作系统这个东西。如果你一直都让你心爱的板子裸奔的话,从今天开始希望你能给它装备上强大的武器——嵌入式操作系统,它可以最大限度的发挥CPU的性能,实现多任务运行,在实时性要求高的场合它是最为适用的

如果之前没有操作系统基础的童鞋不要气馁,操作系统很难,但是你不需要纠结于难的部分,只把它当成一个工具就行了。就像你用电脑,你需要明白Win10系统内部怎么运行么?你需要自己去实现win10系统么?答案是不需要,会用就行了!手里边有STM32的板子的建议去学一下原子哥的FreeRTOS或UCOS-III操作系统的教程,边学边练。实在不会也没关系,后面的文章我会淡化操作系统,它只是一个框架,我们更关注的是核心代码部分。

二. UCOS-III操作系统简介

嵌入式操作系统有很多,常用的有FreeRTOS和UCOS-II、UCOS-III操作系统。笔者不做过多研究与讲解,只简单介绍它的使用。使用操作系统首先一件事是移植操作系统,移植的过程会稍微麻烦,不同的板子会不一样。本项目使用的自主开发的基于STM32F767IGT芯片的主控器,笔者直接使用了正点原子的阿波罗开发板移植好的工程模板,可以点击下载

操作系统的知识点很多,我们重点需要理解任务的创建、挂起、删除,任务调度,任务优先级,时间片轮转调度等内容。在我的代码里面没有使用信号量与消息传递机制,使用的都是全局变量,实际上很不规范也不安全,这种设计方法不推荐使用。以笔者的体会,STM32的操作系统不好用,技术要求很高。使用嵌入式操作系统只是一个过渡,笔者后期将会将主要算法集中于树莓派、英伟达等高性能Linux主板上,将STM32作为驱动板。这种上下层控制器的好处是用户只需专注于应用与算法,不需要耗费过多精力于底层实现,当然硬件成本也会高出许多。

三. 设计水下四旋翼的多任务系统

下面我们设计水下四旋翼的多任务系统。四旋翼是一个典型的完整的机器人架构,包含了实现一个机器人所需的全部核心要素,从通信、传感、控制、电源到硬件电路、机械等,如果你从头到尾搭建起了一个四旋翼(包括自己写代码与调试),你将能够胜任一般的机器人设计应用场合了。

这里我们创建5个任务,开始任务(StartTask),通信任务(RadioLinkTask),传感任务(SensorTask),姿态控制任务(StabilizationTask),数据传输任务(TransmissionTask)。系统的层次如图所示,如我之前说的,操作系统只是一个工具,我们的核心是在应用层——应用程序。操作系统能够向下最大程度的发挥CPU的功能,向上最高效最稳定的实现用户的应用程序。开始任务负责创建其他所有任务,完事之后将自己挂起(就是自己不再起作用了)。通信任务(RadioLinkTask)负责与遥控器通讯,解析遥控器的数据、按照指令动作。传感任务(SensorTask)负责解析所有传感器的数据,包括原始数据读取、滤波、融合。姿态控制任务(StabilizationTask)负责三轴姿态角与高度环的PID计算,输出控制量并进行电机控制。数据传输任务(TransmissionTask)包括上传和下传——上传四旋翼的所有当前状态(姿态、油门、电量等信息),同时解析地面站下传的数据进行相应动作或调整参数。
在这里插入图片描述
整个工程的代码量较大,文件较多,他们的关系我大致表示如下:
在这里插入图片描述

四. 硬件电路设计

这一小节包括硬件电路的介绍,主要是列出使用的器件和使用的STM32的板子的资源。如下表所示是使用的硬件清单。
在这里插入图片描述这里面机架部分请自行设计,简单起见可以去淘宝买机器人专用的密封舱,然后自己设计机架,不然密封会很难做。继电器的作用是为了安全起见,因为四旋翼的电流较大,普通的开关承受不了那么大的电流。

硬件连接示意图如图所示。
在这里插入图片描述从下一章开始我们开始写代码,依次实现遥控器通信、传感器数据融合、姿态控制、数据传输等功能。看到这里了,点个赞再走呗!

标签:硬件,操作系统,UCOS,STM32,任务,旋翼
来源: https://blog.csdn.net/qq_30267617/article/details/113786168