基于FreeRTOS的STM32四轴飞行器项目介绍与架构设计
基于FreeRTOS的STM32四轴飞行器: 一.项目介绍及架构设计
一.项目需求
本项目是基于STM32的微型四轴无人机,相较于中大型四轴无人机,微型四轴无人机具有成本低、事故代价低、结构简单和量产率高等优势。控制核心采用STM32F103C8T6,姿态运动传感器选择MPU6050。无人机通过Si24R1(NRF24L01)与遥控器进行2.4G无线通信,实现了即时有效地接遥控器指令,通过串级PID进行姿态控制,从而在空间中实现自由移动。
1.一些常用术语
(1)飞控
飞控指飞行器的电子控制部分,硬件包括传感器部分的惯性导航模块和控制部分的MCU。软件主要包括控制算法等。
(2)pitch,yaw,roll
指三维空间中飞行器的旋转状态,对应中文分别是俯仰,偏航,横滚。
(3)惯性导航模块
简称IMU(Inertial Measurement Unit),陀螺仪传感器和加速度传感器提供的三轴运动数据模块。
(4)地理坐标系
指地球所在的坐标系,这个坐标系是固定不变的,正北,正东,正上方分别表示X,Y,Z轴。
(5)姿态解算
英文attitude algorithm,也叫做姿态融合。姿态解算是指把陀螺仪、加速度计、罗盘等的数据融合在一起,得出飞行器的空中姿态。
(6)四元数
四元数是一种扩展复数的数学结构,用于表示三维空间中的旋转。
(7)欧拉角
欧拉角是一种用三个角度描述物体在三维空间中旋转的方法。这三个角度分别描述物体绕固定坐标系的三个轴的旋转。可以根据四元数计算出来欧拉角.
(8)空心杯电机
一种特殊类型的直流无刷电机,因其转子采用空心杯设计而得名。与传统的有铁芯电机相比,空心杯电机在结构、性能和应用上都有显著的特点和优势。
2.飞行动力学原理
我们的四轴飞行器是 X 型的,其稳定性大于十字型的四轴飞行器,它的特征是,机头夹在两个电机之间。
电机 1和电机 3逆时针旋转的同时,电机 2和电机 4顺时针旋转,因此当飞行器平衡飞行时,陀螺效应和空气动力扭矩效应均被抵消。
垂直运动:
同时增加四个电机的输出功率,旋翼转速增加使得总的拉力增大,当总拉力足以克服整机的重量时,四旋翼飞行器便离地垂直上升;反之,同时减小四个电机的输出功率,四旋翼飞行器则垂直下降,直至平衡落地,实现了沿 z轴的垂直运动。当外界扰动量为零时,在旋翼产生的升力等于飞行器的自重时,飞行器便保持悬停或匀速飞行状态。
当 mg>F1+F2+F3+F4,此时做下降加速飞行
当 mg<F1+F2+F3+F4,此时做升高加速飞行
当 mg=F1+F2+F3+F4 此时垂直上保持匀速飞行或者悬停
水平运动:
偏航运动:
正前方为机头,此时以机头为参考做旋转运动。在我们的四轴无人机中,ω4 和ω2 的转向与ω1 和ω3 的转向相反,这是因为螺旋桨旋转会产生水平扭矩。于是当ω4+ω2≠ω1+ω3 就会产生水平旋转,这就是偏航原理。至于是顺旋还是逆旋,要根据实物电机正反转搭配正反桨来决定。
横滚运动:
当 F4+F3>F1+F2 向右飞行
当 F4+F3<F1+F2 向左飞行
俯仰运动:
当 F1+F4<F2+F3 向前飞行
当 F1+F4>F2+F3 向后飞行
二.硬件架构
1.系统总体设计
2.硬件选型
主控芯片:
使用的是ST公司的STM32F103C8T6. 主频最高可达72MHz, SRAM有20K, Flash有64K. 定时器有4个.
电机:
我们使用的是8520空心杯电机. 主要用于单浆遥控飞机和四轴飞行器,具有扭力大重量轻,飞行时间长等优点. 有顺时针旋转和逆时针旋转2种.(注意: 一种空心杯只能有一种转动方向)
尺寸: 8.5mm 直径,20mm 长度.
工作电压:通常为3.7V(单节锂电池)
无负载转速:在额定电压下,通常为几万转每分钟(RPM)
无负载电流:通常在几十毫安(mA)左右.
重量:几克,通常不超过10克.
通常用于驱动小型四旋翼无人机的螺旋桨,提供高转速和高功率密度。
8520空心杯电机因其高效、轻便、快速响应等特点,广泛应用于各种微型设备中。其空心杯设计使得电机在高性能需求的微型应用中表现出色。尽管其制造成本较高,但在需要高性能和精密控制的场景下,其优势是无可替代的。
使用PWM可以方便的驱动电机转动
运动传感器:
我们选用的是非常经典的MPU6050运动传感器.
包含一个 3 轴陀螺仪(角速度)和一个 3 轴加速度计(加速度),并集成了一个数字运动处理器(DMP)。这种传感器广泛应用于无人机、机器人、智能手机和可穿戴设备中,用于姿态检测和运动跟踪。
MPU605x加速度计通过测量施加在传感器上的加速度来确定物体的运动状态,而陀螺仪通过测量角速度来检测旋转运动。
传感器的数据可以通过 I2C 接口读取。
MPU6050 是一种功能强大的 6 轴运动传感器,广泛应用于姿态控制和运动检测。其内置的 DMP 使得复杂的运动算法处理更加高效,适合多种嵌入式应用。
另外, 需要注意的是, 内置的DMP处理的数据不够准确,我们是直接读取原始数据,在外面经过MCU来进行四元素和欧拉角的运算,虽然增加了MCU的运算负载,但是运算结果更精确了.
2.4G通讯:
遥控器是通过2.4G通讯实现的远程控制无人机的飞行.
我们使用的是国产2.4G无线通讯芯片Si24R1.
Si24R1 是由中国公司设计和制造的射频芯片,其设计灵感和功能类似于 Nordic Semiconductor 的 nRF24L01+ 芯片。Si24R1 具有高度集成、低功耗和高数据传输速率的特点。
工作频率:2.4GHz ISM 频段. 数据传输速率:最高可达 2Mbps. 支持自动重传和自动确认. 多达 126数据信道. 低成本、高性能:适用于大规模应用. 传输距离:视环境和天线设计,通常在几十米到数百米范围内.
Si24R1 通过 SPI接口与微控制器通信。
Si24R1 是一款高性能、低成本的 2.4GHz 射频收发芯片,适用于多种无线通信应用。它的低功耗、高数据速率和多通道支持,使其成为无线传感器网络、智能家居、遥控玩具和计算机外设等领域的理想选择。通过 SPI 接口,可以方便地与各种微控制器进行通信,实现无线数据传输。
3.原理图讲解
连接stlink下载程序和DEBUG:
四个LED灯:
方便观察飞行器运行状况。
MPU6050:
Si24R1:
激光测高:
电源:
IP5305T在运行时会自动检测使用情况,如果一定时长内未使用则自动关机,所以每隔时间给key引脚低电平防止芯片关闭。
电机驱动:
使用mos管驱动。
使用四个定时器分别驱动四个电机。
二.软件架构
作者:嵌入式T90S