STAN FU

Stan

Drone-Mercury 从零开始的四轴无人机制作(一)- 项目介绍#

该项目目前还是正在进行的一个状态,Github 中提供了现在最新的进度。如果对您有帮助,请点个星星支持一下!
Github 地址: https://github.com/Xiangyu-Fu/Drone-Mercury

1. 项目介绍#

1.1 引言#

这是一个做了很久的项目了,前前后后到现在已经一年多了。这个项目的主要目标是学习一下嵌入式方向的知识,补全和加深硬件方面的技术栈。其它方面例如获得完整地做完一个项目经验等等。项目主要是基于 STM32C8T6 和 ESP32,因为身在国外,由于价格和获取渠道的限制,很多的模块和解决方法无法轻易实现,所以有很多地方进行了修改。这个项目也是单纯的一个 DIY 的项目,肯定有很多疏漏的地方,也欢迎大家的交流与指正。

整个项目的结构如下所示,目前一下框架的硬件部分已经搭建完成,接下来就是对软件进行一个优化和整合了。所以在未来,这个部分会有所更新。在以后的部分中,我将在其上添加一些高级功能,例如摄像头,或者将无人机与其他机器人结合起来构建集群机器人,以及实现数字孪生等等。
在这里插入图片描述

1.2 参考资料#

这个项目参考了很多资料,如下所示

  • 《四轴飞行器 DIY》
  • STM32 库开发实战指南
  • STM32 HAL 库开发实战指南
  • ESP-IDF Programming Guide
  • ...

以及各种博客和网站在这里无法一一列出。之后博客中用的参考也会在博客中列出。

1.3 项目概览#

该四轴的外观如下图所示,是一个非常简单的四轴无人机。其中控制板为自己定制,剩下部分例如电机,和螺旋桨都是在网上购买的套件。这样能保证飞机整体的坚固性和轻便性。需要注意的是,在 3D 渲染图中,飞机的螺旋桨都是正浆,这在现实中是不可行的。但是为了方便起见,我就没有多画反浆的部分。

至于为什么要创建 3D 模型,主要是为了以后方便导出模型,在模拟器中进行仿真。或者完成数字孪生等一系列后续可能的课题。

![在这里插入图片描述](https://img-blog.csdnimg.cn/50dd08e1fd2c4f5da7244e2ba2edc4e1.png =600x)

实际组装好的模型如下图所示,相比于 3D 模型, 多了很多线的部分。这个版本也没有给无人机单独设计电池仓。电池仓会计划在完成所有软件模块测试后设计。

![在这里插入图片描述](https://img-blog.csdnimg.cn/c93710b86740410c9ea68a11018d9ecb.png =600x)

1.4 PCB 设计#

PCB 采用 4 层板的设计,主要包括了主控单元,NRF24L01 通信单元,数据采集单元,指示灯,供电模块,还有电机驱动模块。主控板采用 STM32F103C8T6, 是一个非常好的入门级的 MCU。因为网上的资料很多,所以遇到什么 bug 也可以更为轻松地找到解决办法。

更为具体的内容会在以后的博客中介绍,例如电路原理图,以及 PCB 需要注意的地方。由于也是第一次画板子,所有一定会有很多疏漏的地方,所以可能很多 bug 在所难免。
![在这里插入图片描述](https://img-blog.csdnimg.cn/010e6906770e4b37b41962571ba12021.png =600x)

1.4.1 STM32C8T6#

STM32F103C8T6 是一个中密度性能线,配有 ARM Cortex-M3 32 位微控制器,48 路 LQFP 封装。它结合了高性能的 RISC 内核,运行频率可达 72MHz, 以及高速内嵌存储器,增强范围的强化输入 / 输出和外部连接至两个 APB 总线. STM32F103C8T6 具有 12 位模数转换器,计时器,PWM 计时器,标准和高级通讯接口。一套全面的省电模式允许设计者设计低功耗应用.

  • 运行电压范围: 2V 至 3.6V.
  • 64K 字节闪存.
  • 20K 字节 SRAM.
  • CRC 计算单元,96 位特有 ID.
  • 两个 12 位,1µs 模数转换器 (高达 10 通道).
  • 7 通道 DMA 控制器,3 个通用计时器和 1 个高级控制计时器.
  • 37 个快速输入输出端口.
  • 串行线调试器 (SWD) 和 JTAG 接口.
  • 两个 SPI, 两个 I2C, 三个 USART, 一个 USB 和一个 CAN 接口.
  • 环境运行温度范围: -40°C 至 85°C

1.4.2 NRF24L01#

RF24L01 收发器模块#

我们采用 NRF24L01 收发器模块作为遥控器和四种之间的通信方式。

让我们仔细看看 NRF24L01 收发器模块。它使用 2.4 GHz 频带,可以在 250 kbps 到 2 Mbps 的波特率下工作。如果在开放空间中使用且波特率较低,则其范围可达 100 米。

该模块可以使用 125 个不同的通道,这使在一个地方拥有 125 个独立工作的调制解调器的网络成为可能。每个通道最多可以有 6 个地址,或者每个单元可以同时与最多 6 个其他单元通信。

在传输过程中,该模块的功耗仅为 12mA 左右,甚至低于单个 LED。 模块的工作电压为 1.9V 至 3.6V,但好处是其他引脚可以承受 5V 逻辑,因此我们可以轻松地将其连接到 STM32,而无需使用任何逻辑电平转换器。

其示意图如下所示,图片来源见水印。

在这里插入图片描述

我们直接为 NRF24L01 模块留了一个插槽,这样我们就可以直接使用该模块了。整个中控板如下图所示。
![](https://img-blog.csdnimg.cn/39123b3b75bf4e178c8a1b7c62950648.png =600x)

1.4.3 MPU6050#

MPU6050 是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。我们在中控板中集成了 MPU6050 来获取四轴当前的姿态。以下是来自网上的介绍。

MPU6050 是集成六轴运动处理模块,即三轴 MEMS 陀螺仪传感器和三轴 MEMS 加速度传感器,相较于多组件方案,集成模块可以免除各个组件时间轴之差的问题,还能大大减小封装的空间。 模块一般在智能手机、手持游戏产品、导航设备、电子稳像等领域发挥重要作用。是集成六轴运动处理模块,即三轴 MEMS 陀螺仪传感器和三轴 MEMS 加速度传感器,相较于多组件方案,集成模块可以免除各个组件时间轴之差的问题,还能大大减小封装的空间。 模块一般在智能手机、手持游戏产品、导航设备、电子稳像等领域发挥重要作用。

1.5 总结#

以上就是比较重要的一些关于项目的介绍,由于也是最近课业压力比较大,可能也会更新很久,但是还是希望能在今年把这个项目完成吧。这个项目前前后后也做了一年有余,但是总是因为各种各样的事情耽搁了。希望这个学期能多挤出一些时间来完成这个项目。

博客内容部分,接下来就会专门的对各个模块开始介绍了,从硬件到软件。软件部分准备分成两个小的部分,首先就是基于最基本的 stm32 库的程序。基于基本 stm32 库的代码已经完成了,也完成了对各个模块的测试,非常可喜的是所有的模块都工作正常。但是为了未来能更快的部署项目,和为了面向这个学期将要做的 FOC 项目,所以我计划将所有程序都更改成基于 HAL 库,这样就更会有统一的代码标准,也更方便以后的代码移植。所以未来要准备多写一些关于 CubeMX 与 CubeMX IDE 使用的博客,留作记录。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。