littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于STM32F4xx微控制器的无人机飞行控制系统

项目简介

本项目基于STM32F4xx微控制器构建无人机飞行控制系统。借助多种传感器收集数据,采用互补滤波器、PID控制器和卡尔曼滤波器处理并调整无人机姿态,实现对无人机飞行状态的有效控制。系统支持与地面控制站的无线通信,还具备碰撞避免功能。

项目的主要特性和功能

  1. 传感器数据处理:读取加速度计、陀螺仪、磁力计、超声波传感器和GPS数据,计算姿态角与位置信息,用于碰撞避免。
  2. 姿态控制:采用PID控制回路,依据姿态角输入调整电机速度,保障无人机稳定飞行。
  3. 滤波算法:运用互补滤波器和卡尔曼滤波器融合多传感器数据,提升姿态估计准确性;复杂互补滤波器可应对系统振动。
  4. 无线通信:通过XBee S2模块建立ZigBee无线通信,实现与地面控制站的数据交互。
  5. 碰撞避免:利用超声波传感器检测障碍物,辅助无人机避开碰撞。
  6. 状态控制:通过全局变量和USART中断控制无人机状态,可按需调整行为。

安装使用步骤

硬件准备

  1. 确保无人机的传感器(MPU6050、HMC5883L、HC - SR04、uBlox 6M)、电机和XBee模块正确连接到STM32F4xx微控制器。
  2. 参考飞行控制板的原理图和布局:https://drive.google.com/drive/folders/0B2tfhqDjs2sUbGIwY3VqNENHMXc?resourcekey=0 - GNewtWUQ41s4zKd1zg4sSA

软件配置

  1. 系统时钟配置:在system_stm32f4xx.c文件中,调用SystemInit()函数设置微控制器的系统时钟源、频率和相关时钟参数。
  2. 接口初始化:在main.c文件中,初始化GPIO、USART和I2C接口,用于传感器读取、电机控制和无线通信。
  3. 算法配置:在main.c文件中,配置PID控制器和互补滤波器参数,以实现稳定的姿态控制。
  4. 中断处理:在stm32f4xx_it.c文件中,添加代码处理USART1的接收中断,根据需求调整无人机姿态或参数。
  5. 移除校准代码(可选):若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】