基于CW32的四轴无人机设计


前言

在立创EDA与芯源半导体合作的开发项目,设计并开源了一款基于芯源CW32的四轴无人机及配套控制软件。
开源链接芯源4轴无人机,包含全部的电路设计 & PCB & 机架 & 程序文件。
特殊声明:该开源工程的部分内容已纳入个人毕业论文,望读者知悉。

在这里插入图片描述


1 CW32无人机

主控芯片:CW32F030C8T6。
传感器:MPU6050 & BMP280。
无线控制:ESP-01模组,基于TCP协议的WiFi通信。
飞控算法:双闭环PID控制,移植自开源飞控算法。

在这里插入图片描述

1.1 飞控电路设计

1.1.1 MCU

CW32F030C8T6芯片,封装规格 LQFP48,供电电压 3.3V,外接 8MHz 贴片晶振 & Reset按键。

在这里插入图片描述

1.1.2 供电

3.7V 1S 400mAh锂电池,尺寸 37mm×20mm×8.8mm,2mm 1×2P 51005接口。
3.7V电源开关 & 稳压;3.7V → 5V 升压;5V → 3.3V 降压。

在这里插入图片描述
在这里插入图片描述

1.1.3 传感器

MPU6050姿态传感器,可输出 3轴加速度 & 3轴角速度 & 温度数据,硬件IIC通信。

在这里插入图片描述

BMP280高度传感器,可输出 气压 & 温度数据,硬件IIC通信。

在这里插入图片描述

1.1.4 通信

无线通信:ESP-01模组,AT指令配置,TCP协议 WiFi传输;通过 2×4PIN排座 接入飞控电路板,实现 3.3V供电 & 串口通信(ESP-01模组 ↔ 飞控电路板)。
本地通信:本地串口通信 & SWD程序烧录。

在这里插入图片描述

1.1.5 电机调速

4颗 8520空心杯电机(搭配 65mm正反桨叶),3.7V供电,4路 PWM信号 控制。

在这里插入图片描述

1.1.6 监测与指示

3.7V锂电池电压 ADC测量 & 机体温度测量。

在这里插入图片描述

1颗 3.3V电源指示灯® & 2颗 可编程信号指示灯(B)。

在这里插入图片描述

1颗 蜂鸣器,1路 PWM信号 调节音量。

在这里插入图片描述

4颗 WS2812B灯珠(RGB),1路 PWM信号 控制色彩。

在这里插入图片描述

1.2 飞控程序设计

1.2.1 基础配置

系统时钟
64MHz,HSE使能 8MHz外部晶振,8倍频。
使能 GPIOA & GPIOB & IIC1 & BTIM & GTIM3 & ATIM & UART & ADC时钟。

UART3_Local
飞控电路板 ↔ PC,波特率 115200,数据位 8,停止位 1,校验位 No。
PA09引脚 - UART3_TX - OUTPUT_PP,PA10引脚 - UART3_RX - INPUT_PULLUP。

UART2_WiFi
ESP-01模组 ↔ 飞控电路板,波特率 115200,数据位 8,停止位 1,校验位 No。
PA02引脚 - UART2_TX - OUTPUT_PP,PA03引脚 - UART2_RX - INPUT_PULLUP。

硬件IIC
PB10引脚 - SCL,PB11引脚 - SDA,通信速率 400Kbps。
主机 CW32F030C8T6,从机 MPU6050 / BMP280。

PWM
电机M1 - PA08引脚 - ATIM_CH1A通道 - 周期 0.5ms - 计数范围 [0, 999]。
电机M2 - PA11引脚 - GTIM3_CH3通道 - 周期 0.5ms - 计数范围 [0, 999]。
电机M3 - PB07引脚 - ATIM_CH3A通道 - 周期 0.5ms - 计数范围 [0, 999]。
电机M4 - PB06引脚 - ATIM_CH2A通道 - 周期 0.5ms - 计数范围 [0, 999]。
蜂鸣器 - PA12引脚 - GTIM3_CH4通道 - 周期 0.5ms - 计数范围 [0, 999]。

BTIM1中断
用于执行 核心任务(传感器数据获取 & 欧拉角更新 & 飞行控制 & 状态监测)。
触发间隔 3ms,计数范围[0, 5999],BTIM_IT_OV标志,优先级 1。

UART2中断
用于接收 & 返送 & 解析 飞控指令。
串口接收触发,USART_IT_RC标志,优先级 0。

ADC
用于测量 3.7V锂电池电压。
PA04引脚 - ADC_ExInputCH4通道 - 1.5V参考值 - 单通道转换模式。

1.2.2 传感器驱动开发

MPU6050驱动
硬件IIC通信,写地址 0xD0,读地址 0xD1,陀螺仪 ±2000deg/s,加速度计 ±4g。
采集 原始数据 → 卡尔曼滤波 → 输出 3轴加速度值 & 3轴角速度值 & 温度值。

BMP280驱动
硬件IIC通信,写地址 0xEE,读地址 0xEF。
读取 出厂校准参数 → 采集 原始数据 → 计算 气压值 & 温度值 → 测算输出 相对高度。

在这里插入图片描述

1.2.3 开源算法移植

姿态控制
双闭环PID结构,内环 角速度,外环 角度。
独立控制 横滚角 ROLL、俯仰角 PITCH、偏航角 YAW。

在这里插入图片描述

高度控制
双闭环PID结构,内环 Z轴加速度,外环 高度。

在这里插入图片描述

1.3 结构件设计

1.3.1 机架

4个 电机臂 固定 4颗 8520电机。
4个 M3通孔 固定 飞控电路板。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.2 电池仓

配合 机架,以卡扣方式固定 锂电池。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2 CW32无人机控制软件

使用 C++语言,基于QT框架开发,已发布 Windows版 V1.2。
基于TCP协议的 WiFi通信,控制软件 - TCP服务端,无人机 - TCP客户端。
全键盘控制;实时显示 机体温度 & 电池电压 & 连接状态 & 飞行日志。

在这里插入图片描述

2.1 飞行控制逻辑

在这里插入图片描述

2.2 状态监测逻辑

在这里插入图片描述


3 装配与操作说明

在这里插入图片描述
在这里插入图片描述

  1. 无人机 水平放置,打开 电源开关。
  2. PC端 运行 CW32 Drone V1.1软件,设置 IP地址 & 端口号,Enter键 启动。
  3. 提示 无人机连接成功, 键盘控制无人机,实时显示 状态信息 & 飞行日志。

后记

感谢 武汉芯源半导体 提供的技术支持和赞助 ❤,近期官方推出了 CW32开发者扶持计划,感兴趣的小伙伴可以关注 官方公众号 CW32生态社区 & 官方QQ群 482146847
感谢 立创EDA 提供的设计平台和元器件支持 ❤。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值