论文部分内容阅读
摘要:设计了一款基于STM32微控制器和六轴运动处理传感器的小型四旋翼无人机。它采用STM32F103C8作为微控制器,利用MPU6050感应无人机的实时加速度和角速度信息,通过Wi-Fi通信获得遥控指令,并结合串级PID控制算法,对姿态信息进行解算,最终生成并输出控制电机转速所需的PWM波,使无人机稳定飞行。
关键词:四旋翼无人机;STM32;飞行控制
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)19-0213-02
开放科学(资源服务)标识码(0SID):
随着信息技术、传感器技术和微机电技术的迅猛发展,无人机技术的研究已成当今的研究热点之一。若以外形结构来分类,无人机可分为固定翼无人机、无人直升机和多旋翼无人机等类型。而多旋翼无人机具有系统安全性好、可靠性高、负载能力强等特点,具有非常广阔的应用前景,其中,四旋翼无人机以其结构简单,操控方便等优点,被广泛应用于军事和民用领域,其应用场景包括如航空测量、航空施药、空中摄影、环境监测、货物投送、灾害现场搜救、电力石油基础设施巡检等领域。
1 总体方案設计
根据机翼与飞行方向的相对布局方式的不同,四旋翼无人机可分为十字型和X型两种模式。十字型无人机的机头方向指向某个旋翼,而X型无人机的机头方向则指向两个旋翼的正中间。十字型无人机因其机头方向明确,飞行控制相对简单;X型无人机三轴的姿态调整至少需要操控两个电机,因此操作更为快速灵活,适合特技飞行,也便于扩展功能。因此,本文采用X型四旋翼无人机方案。
无人机系统由无人机和遥控器两部分组成,用户利用手机APP通过Wi-Fi无线通信实现对无人机的远程控制,无须配备专用遥控器,在Wi-Fi网络环境下,打开智能手机上的专用遥控APP,可对无人机进行遥控。Wi-Fi和蓝牙技术一样,同属于短距离无线技术,与蓝牙技术相比,它具备更高的传输速率,更远的传播距离,已经广泛应用于笔记本、手机、汽车等广大领域中,因此,相对于蓝牙通信,利用Wi-Fi无线通信遥控无人机,具有更快的响应速度和更远的控制距离。无人机系统的研发主要包括智能手机遥控APP软件和无人机软硬件研发,而无人机的飞控系统的研发是本文的研究重点。
2 无人机硬件设计
无人机的硬件由STM32微控制器、直流电机、六轴运动处理传感器MPU6050.Wi-Fi模块ATK-ESP8266和锂电池及其电源管理模块等硬件组成,其基本硬件架构(略去电源管理模块)如图1所示。
作为飞控系统的核心处理器,基于ARM Cortex M3内核的32位微控制器STM32F103C8的工作主频高达72MHz,可满足快速解算四旋翼无人机姿态和位置信息的功能需求。其自带多个nc、SPI和UART高速通信接口,方便与其他模块进行通信,并集成多个时钟定时器,能输出多路PWM波便于控制四个电机的转速。
MPU6050为6轴运动处理传感器,它集成了3轴MEMS陀螺仪和3轴加速度计,用于采集无人机姿态信息,微控制器通过nc接口与MPU6050进行信息交互。四旋翼无人机具有6个自由度,包括沿3个坐标轴方向的线运动和沿3个坐标轴方向的角运动,这些姿态信息可通过MPU6050采集得到。陀螺仪通过测量无人机的角速率、积分得到飞行姿态角来描述无人机的角运动。加速度计通过测量无人机轴向受力得到无人机3个轴向的加速度,通过积分得到飞行速度与距离来描述无人机的运动。
有刷电机具有启动快、制动及时、扭矩大、控制电路相对简单等优点,而无刷电机多用于尺寸偏大的飞机,它无法单独使用,需经无刷直流电调驱动后,才能通过控制PWM波占空比来调节电机转速。空心杯电机常用在尺寸非常小的飞机上,或者用于打舵的舵机上,因本文设计的无人机要求体积小重量轻,所以采用了规格为720的空心杯有刷电机,配备55mm叶片。
3 软件设计
3.1 串口通信模块
系统使用了两个串口:一是利用USART1作为微控制器与PC端调试用的串口;二是利用USART2作为微控制器通过Wi-Fi模块与手机端的通信接口,实现智能手机上遥控APP与无人机之间的信息交互。
首先将两个串口的初始化,配置相应的GPIO引脚。再实现以下3个函数:
uint16_t USART_ReceiveData(USART_TypeDef* USARTx),用来从指定的串口中接收一个字节的数据,并通过返回值返回。
void USART_SendData(USART_TypeDef* USARTx, uint16_tData),用来向指定串口发送1个字节的数据,USARTx指定串口编号,Data为要发送的字节数据。
void USART_OUT(USART_TypeDef* USARTx, char *Data-Addr),用来实现一连串字符的发送,USARTx指定串口编号,DataAddr为要发送的字节数据地址。
利用一是3个函数即可实现串口通信中的数据收发。
3.2 PWM模块
PWM模块实现通过控制定时器输出PWM信号来控制4个电机的转速。PWM输出相关的定时器配置步骤如下:
(1)配置定时器输出通道对应的CPIO引脚。
(2)配置定时器的时基单元。
(3)配置定时器的输出比较器。
(4)使能自动重载计数和自动重载比较值。
(5)开启定时器。
最后编写函数void Motor_SetPwm(int16_t PWMI,int16_tPWM2,int16_t PWM3,int16_t PWM4),用来将PWM信号传送给电机。 3.3 PID控制
四旋翼无人机是一个欠驱动、强耦合的非线性系统。想要改变其飞行动作,只需改变电机转速差即可,而要改变无人机的位置,则需要改变电机的总升力与无人机的姿态才能实现。因此将飞行控制系统分成姿态控制系统与位置控制系统。角度单环PID控制算法仅仅考虑了飞行器的角度信息,如果想增加飞行器的稳定性并提高控制精度,必须控制其角速度,于是就形成了角度/角速度串级PID控制算法,如图2所示。
期望角度来自遥控器,反馈角度来自传感器,二者的偏差作为角度环的输入,角度环PID输出角速度的期望值;角速度期望值减去传感器反馈的角速度得到角速度偏差值,该值作为角速度环的输入,角速度环PID输出姿态控制量,并将其转换为4路PWM波,去控制四个电机,从而控制无人机的四轴。
3.4飞控系统主程序
系统启动与硬件初始化完成后,首先获取实时的三轴加速度和三轴角速度,然后从遥控器接收期望值,并通过PID算法得出各个电机的调整量,将调整量转换成PWM信号传送给四个电机,调整它们的转速来实现控制整个系统的飞行姿态。
本文的微控制器STM32F103C8為裸机工作模式,具体主程序工作流程如图3所示。当系统启动后,无人机的LED指示灯开始闪烁,锂电池为无人机续航提供动力。STM32F103C8获取来自MPU6050传感器的值,结合通过遥控器发送过来的期望值,再通过相关算法计算出控制电机所需的PWM信号控制电机的转速,实现无人机位置和姿态的变化。此外,主程序要单独开启一个线程,用来读取从MPU6050传感器上获得的实时姿态数据和通过Wi-Fi接收的遥控指令。
4 结论
设计了一款基于STM32微控制器和运动处理传感器的X型小型四旋翼无人机。硬件部分包括微控制器STM32F103C8、6轴运动处理传感器MPU6050、Wi-Fi模块ATK-ESP8266、720规格空心杯有刷电机、锂电池及电源管理模块等。软件设计方面,STM32F103C8采用裸机工作模式,程序主要由主程序、串口通信模块、PIC控制模块、nc通信模块和PWM模块等部分组成。实验结果表明,该无人机能通过手机APP遥控使其较稳定飞行。但是由于受到电池容量和所采用无线通信技术等因素的影响,无人机的飞行高度和飞行距离受到了较大限制,因此,增加无人机载荷能力使其功能更强,飞得更高更远将是设计团队下一步的工作目标。
参考文献:
[1]尹艺臻,张立华,邢玉鹏.基于STM32F405RGT6四旋翼无人机设计[J].电子技术,2018,512(08):16,57-59.
[2]王照兵,石佩玉,李凯,等.基于嵌入式开发的小型四旋翼无人机系统设计[J].通讯世界,2019,026(009):210-211.
【通联编辑:朱宝贵】
收稿日期:2020-03-25
作者简介:何枫(1991-),男,湖南常德人,工程师,本科,研究方向为智能电网、智能家居。
关键词:四旋翼无人机;STM32;飞行控制
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)19-0213-02
开放科学(资源服务)标识码(0SID):
随着信息技术、传感器技术和微机电技术的迅猛发展,无人机技术的研究已成当今的研究热点之一。若以外形结构来分类,无人机可分为固定翼无人机、无人直升机和多旋翼无人机等类型。而多旋翼无人机具有系统安全性好、可靠性高、负载能力强等特点,具有非常广阔的应用前景,其中,四旋翼无人机以其结构简单,操控方便等优点,被广泛应用于军事和民用领域,其应用场景包括如航空测量、航空施药、空中摄影、环境监测、货物投送、灾害现场搜救、电力石油基础设施巡检等领域。
1 总体方案設计
根据机翼与飞行方向的相对布局方式的不同,四旋翼无人机可分为十字型和X型两种模式。十字型无人机的机头方向指向某个旋翼,而X型无人机的机头方向则指向两个旋翼的正中间。十字型无人机因其机头方向明确,飞行控制相对简单;X型无人机三轴的姿态调整至少需要操控两个电机,因此操作更为快速灵活,适合特技飞行,也便于扩展功能。因此,本文采用X型四旋翼无人机方案。
无人机系统由无人机和遥控器两部分组成,用户利用手机APP通过Wi-Fi无线通信实现对无人机的远程控制,无须配备专用遥控器,在Wi-Fi网络环境下,打开智能手机上的专用遥控APP,可对无人机进行遥控。Wi-Fi和蓝牙技术一样,同属于短距离无线技术,与蓝牙技术相比,它具备更高的传输速率,更远的传播距离,已经广泛应用于笔记本、手机、汽车等广大领域中,因此,相对于蓝牙通信,利用Wi-Fi无线通信遥控无人机,具有更快的响应速度和更远的控制距离。无人机系统的研发主要包括智能手机遥控APP软件和无人机软硬件研发,而无人机的飞控系统的研发是本文的研究重点。
2 无人机硬件设计
无人机的硬件由STM32微控制器、直流电机、六轴运动处理传感器MPU6050.Wi-Fi模块ATK-ESP8266和锂电池及其电源管理模块等硬件组成,其基本硬件架构(略去电源管理模块)如图1所示。
作为飞控系统的核心处理器,基于ARM Cortex M3内核的32位微控制器STM32F103C8的工作主频高达72MHz,可满足快速解算四旋翼无人机姿态和位置信息的功能需求。其自带多个nc、SPI和UART高速通信接口,方便与其他模块进行通信,并集成多个时钟定时器,能输出多路PWM波便于控制四个电机的转速。
MPU6050为6轴运动处理传感器,它集成了3轴MEMS陀螺仪和3轴加速度计,用于采集无人机姿态信息,微控制器通过nc接口与MPU6050进行信息交互。四旋翼无人机具有6个自由度,包括沿3个坐标轴方向的线运动和沿3个坐标轴方向的角运动,这些姿态信息可通过MPU6050采集得到。陀螺仪通过测量无人机的角速率、积分得到飞行姿态角来描述无人机的角运动。加速度计通过测量无人机轴向受力得到无人机3个轴向的加速度,通过积分得到飞行速度与距离来描述无人机的运动。
有刷电机具有启动快、制动及时、扭矩大、控制电路相对简单等优点,而无刷电机多用于尺寸偏大的飞机,它无法单独使用,需经无刷直流电调驱动后,才能通过控制PWM波占空比来调节电机转速。空心杯电机常用在尺寸非常小的飞机上,或者用于打舵的舵机上,因本文设计的无人机要求体积小重量轻,所以采用了规格为720的空心杯有刷电机,配备55mm叶片。
3 软件设计
3.1 串口通信模块
系统使用了两个串口:一是利用USART1作为微控制器与PC端调试用的串口;二是利用USART2作为微控制器通过Wi-Fi模块与手机端的通信接口,实现智能手机上遥控APP与无人机之间的信息交互。
首先将两个串口的初始化,配置相应的GPIO引脚。再实现以下3个函数:
uint16_t USART_ReceiveData(USART_TypeDef* USARTx),用来从指定的串口中接收一个字节的数据,并通过返回值返回。
void USART_SendData(USART_TypeDef* USARTx, uint16_tData),用来向指定串口发送1个字节的数据,USARTx指定串口编号,Data为要发送的字节数据。
void USART_OUT(USART_TypeDef* USARTx, char *Data-Addr),用来实现一连串字符的发送,USARTx指定串口编号,DataAddr为要发送的字节数据地址。
利用一是3个函数即可实现串口通信中的数据收发。
3.2 PWM模块
PWM模块实现通过控制定时器输出PWM信号来控制4个电机的转速。PWM输出相关的定时器配置步骤如下:
(1)配置定时器输出通道对应的CPIO引脚。
(2)配置定时器的时基单元。
(3)配置定时器的输出比较器。
(4)使能自动重载计数和自动重载比较值。
(5)开启定时器。
最后编写函数void Motor_SetPwm(int16_t PWMI,int16_tPWM2,int16_t PWM3,int16_t PWM4),用来将PWM信号传送给电机。 3.3 PID控制
四旋翼无人机是一个欠驱动、强耦合的非线性系统。想要改变其飞行动作,只需改变电机转速差即可,而要改变无人机的位置,则需要改变电机的总升力与无人机的姿态才能实现。因此将飞行控制系统分成姿态控制系统与位置控制系统。角度单环PID控制算法仅仅考虑了飞行器的角度信息,如果想增加飞行器的稳定性并提高控制精度,必须控制其角速度,于是就形成了角度/角速度串级PID控制算法,如图2所示。
期望角度来自遥控器,反馈角度来自传感器,二者的偏差作为角度环的输入,角度环PID输出角速度的期望值;角速度期望值减去传感器反馈的角速度得到角速度偏差值,该值作为角速度环的输入,角速度环PID输出姿态控制量,并将其转换为4路PWM波,去控制四个电机,从而控制无人机的四轴。
3.4飞控系统主程序
系统启动与硬件初始化完成后,首先获取实时的三轴加速度和三轴角速度,然后从遥控器接收期望值,并通过PID算法得出各个电机的调整量,将调整量转换成PWM信号传送给四个电机,调整它们的转速来实现控制整个系统的飞行姿态。
本文的微控制器STM32F103C8為裸机工作模式,具体主程序工作流程如图3所示。当系统启动后,无人机的LED指示灯开始闪烁,锂电池为无人机续航提供动力。STM32F103C8获取来自MPU6050传感器的值,结合通过遥控器发送过来的期望值,再通过相关算法计算出控制电机所需的PWM信号控制电机的转速,实现无人机位置和姿态的变化。此外,主程序要单独开启一个线程,用来读取从MPU6050传感器上获得的实时姿态数据和通过Wi-Fi接收的遥控指令。
4 结论
设计了一款基于STM32微控制器和运动处理传感器的X型小型四旋翼无人机。硬件部分包括微控制器STM32F103C8、6轴运动处理传感器MPU6050、Wi-Fi模块ATK-ESP8266、720规格空心杯有刷电机、锂电池及电源管理模块等。软件设计方面,STM32F103C8采用裸机工作模式,程序主要由主程序、串口通信模块、PIC控制模块、nc通信模块和PWM模块等部分组成。实验结果表明,该无人机能通过手机APP遥控使其较稳定飞行。但是由于受到电池容量和所采用无线通信技术等因素的影响,无人机的飞行高度和飞行距离受到了较大限制,因此,增加无人机载荷能力使其功能更强,飞得更高更远将是设计团队下一步的工作目标。
参考文献:
[1]尹艺臻,张立华,邢玉鹏.基于STM32F405RGT6四旋翼无人机设计[J].电子技术,2018,512(08):16,57-59.
[2]王照兵,石佩玉,李凯,等.基于嵌入式开发的小型四旋翼无人机系统设计[J].通讯世界,2019,026(009):210-211.
【通联编辑:朱宝贵】
收稿日期:2020-03-25
作者简介:何枫(1991-),男,湖南常德人,工程师,本科,研究方向为智能电网、智能家居。