项目简介
本项目基于STM32F4xx微控制器构建无人机飞行控制系统。借助多种传感器收集数据,采用互补滤波器、PID控制器和卡尔曼滤波器处理并调整无人机姿态,实现对无人机飞行状态的有效控制。系统支持与地面控制站的无线通信,还具备碰撞避免功能。
项目的主要特性和功能
- 传感器数据处理:读取加速度计、陀螺仪、磁力计、超声波传感器和GPS数据,计算姿态角与位置信息,用于碰撞避免。
- 姿态控制:采用PID控制回路,依据姿态角输入调整电机速度,保障无人机稳定飞行。
- 滤波算法:运用互补滤波器和卡尔曼滤波器融合多传感器数据,提升姿态估计准确性;复杂互补滤波器可应对系统振动。
- 无线通信:通过XBee S2模块建立ZigBee无线通信,实现与地面控制站的数据交互。
- 碰撞避免:利用超声波传感器检测障碍物,辅助无人机避开碰撞。
- 状态控制:通过全局变量和USART中断控制无人机状态,可按需调整行为。
安装使用步骤
硬件准备
- 确保无人机的传感器(MPU6050、HMC5883L、HC - SR04、uBlox 6M)、电机和XBee模块正确连接到STM32F4xx微控制器。
- 参考飞行控制板的原理图和布局:https://drive.google.com/drive/folders/0B2tfhqDjs2sUbGIwY3VqNENHMXc?resourcekey=0 - GNewtWUQ41s4zKd1zg4sSA
软件配置
- 系统时钟配置:在
system_stm32f4xx.c
文件中,调用SystemInit()
函数设置微控制器的系统时钟源、频率和相关时钟参数。 - 接口初始化:在
main.c
文件中,初始化GPIO、USART和I2C接口,用于传感器读取、电机控制和无线通信。 - 算法配置:在
main.c
文件中,配置PID控制器和互补滤波器参数,以实现稳定的姿态控制。 - 中断处理:在
stm32f4xx_it.c
文件中,添加代码处理USART1的接收中断,根据需求调整无人机姿态或参数。 - 移除校准代码(可选):若ESC已校准,移除
main.c
文件中的Init_Motors();
行。
导入代码
若使用Atollic TrueStudio开发环境,可按以下链接中的说明直接导入代码:https://drive.google.com/drive/folders/0B2tfhqDjs2sUR3ZyVWlXNWNlNWM?resourcekey=0 - F12EURgQ542_msKS_zL9HQ
运行程序
编译并下载程序到STM32F4xx微控制器,启动无人机,可使用终端程序进行测试,或连接地面控制站(Windows或Android)控制无人机。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】