前言

无人机是现在一个很火,而且是非常火的一个新兴产品,而且无人机也开始走进各行各业、逐渐出现在大家的视野当中。那么这种飞行器要如何玩的呢?它又是如何制作出来的呢?今天泰泰就来给大家讲一下后者——无人机制作,与大家分享一下之前的设计过程。感兴趣的朋友可以联系我,也可以订阅泰泰站点消息,泰泰会不定期给大家分享更实用的教程哦!说不定后面还有特定的交流论坛呢,敬请期待吧~~~

有一定技术知识的朋友都知道,任何一款智能设备它都是由硬件和软件两个部分组成的,无人机的设计也不例外,我们这篇文章也就这两个方面来展开探讨:

硬件设计软件设计

硬件设计

硬件设计总体思路

整个机架采用PCB板,将四个电机固定在PCB板的四个角,外接电池。

硬件模块

单片机、惯性测量模块(IMU)、无线通讯模块、电机驱动模块、续流二极管、电源管理模块(稳压与充放电)、直流有刷电机、大电流放电电池、遥控器。

硬件选型

硬件工作综述

单片机负责整个系统的协调工作;惯性测量模块(IMU)负责测量四旋翼的姿态;无线通讯模块负责四旋翼与遥控器的通讯;电机驱动模块负责驱动电机;续流二极管负责对电机进行续流;电源管理模块中的稳压模块负责整个系统的供电;电源管理模块中的充放电模块负责对电池充电;有刷直流电机负责提供四旋翼的飞行动力;大电流放电电池负责四旋翼的能量来源;遥控器负责对四旋翼进行遥控和控制。

硬件设计功能模块图

实际效果图

软件设计

软件设计总体思路

惯性测量模块(IMU)测量出当前飞机的三轴加速度与三轴角速度并传送给单片机处理,由单片机进行基于四元数的姿态解算,求解出当前飞机的pitch、roll、yaw三个角度值,然后根据这三个角度经过PID控制运算,输出四路PWM控制四个直流有刷电机的加减速从而达到飞机的平衡悬停。

其中,惯性测量模块(IMU)的加速度计由于噪声比较大,所以需要对其进行滤波处理;而遥控器只是对飞机进行实时的姿态控制;为了让飞行器平稳飞行,这时又引入了一个叫PID的东西,这个东西操作起来相对的麻烦一点,需要不断的在电脑端进行参数调整,各种数据线插拔,真的是心酸啊。不过还好,这里可以泰泰弄个了个蓝牙模块,此后调参的时候直接手机就可以搞定了。

姿态解算

姿态解算属于四旋翼制作的核心部分,如果姿态解算能够实时的反应出飞机的状态,那么对于控制来讲就相对来说比较容易了。而姿态结算所要做的事情就是两个坐标系之间的正确转化(地理坐标系与载体坐标系),这种转化有很多种表示方法,例如欧拉角法、方向余弦矩阵法、四元数法、旋转矢量法等。目前采用最多的应该是四元数法,而旋转矢量法则是一种基于四元数法改进来的升级算法。

四元数本是用于描述四维空间向量的一种方法,对于他的线性变换也就是在四维空间中的拉伸和旋转,显而易见,我们用四元数的向量乘法来表示三维空间中的旋转是绰绰有余的。

通过惯性测量模块(IMU)传送过来的当前飞机的三轴加速度和三轴角速度的值,这样一个三维的向量,转化为四维向量,然后在四维空间中做线性变换(也可以说在三维空间中旋转)后输出,利用四元数与欧拉角的关系(一定要注意旋转顺序),将当前四元数转换为欧拉角pitch、roll、yaw即得到当前飞机的姿态。

PID控制

PID控制属于自动化领域,P是比例,I是积分,D是微分,这是最基本的定义。对于一个系统,我们想要控制他,目前的理论是引入负反馈,这个概念相当重要,是由维纳提出来的。意思是,将输出引入到输入端,并且用输入减去输出,这就是著名的负反馈系统。很显然,我们要做的是输出跟随输入,使得系统可控。也就是说要求输出和输入的误差为0,即输出等于输入。在实际的系统中,输出与输入肯定是存在误差的,这种误差就通过PID来控制使得满足输出与输入误差为0。当系统由于干扰出现误差时,此时的P参数就起到了“立竿见影”的作用,将当前系统误差第一时间反应出来,也就是当前误差多少,我就给你多少输出值来补偿你的误差。这种调节方式的特点是快速而有劲,相应来说就是发散且不稳定的;而D参数则具有一种预见性,这种预见性可以提前预知系统的行为,比如距离设定值是越来越远还是越来越近,前者D的作用越强,后者D的作用越弱。可以发现D参数与P参数具有一定的互补性质,P会引起发散,而D则是抑制发散,使系统非常敏感;最后I参数是积分,在连续系统中是时间的积分,在数字系统中是时间的累加。这种累加无疑会造成系统的不稳定,如果系统长时间处于不平衡的位置,那么由于时间的累计,I的作用会变得越来越强,甚至超过了P的作用,那么系统必定失控。但是他的作用有时候确实不可忽略的:消除静差。

再给大家分析一点:如果此时系统的输出达到了我们给定的期望值,也就是说输出与输入误差为0,即现在的PID控制器输入0,所以输出也是0,也就是说此时的执行机构是不会输出的,让设备处于自由运动阶段。而非我们认为的当你观察到一个系统处于稳定运行并达到给定值的时候,他的执行机构是一直在输出的,这是错误的。

浅谈完PID后,相信大家应该对PID有个初步的认识了,那么对于四旋翼的控制,利用的是期望姿态(pitch=0,roll=0,yaw=0)与当前姿态的误差,通过PID的控制作用输出四路不同的PWM驱动电机让飞机调整自己的姿态满足当前姿态与期望姿态的误差为0的目标,这也是PID控制器的目标。

好了,本篇我们就先聊到这里,关于源代码,这里就不附上了,网上都有,大家就各显神通吧!

最后,再来秀一波照~

最后修改:2022 年 06 月 09 日
如果觉得我的文章对你有用,请随意赞赏