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模型,主要是为了以后方便导出模型,在模拟器中进行仿真。或者完成数字孪生等一系列后续可能的课题。

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

1.4 PCB设计

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

更为具体的内容会在以后的博客中介绍,例如电路原理图,以及PCB需要注意的地方。由于也是第一次画板子,所有一定会有很多疏漏的地方,所以可能很多bug在所难免。

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模块留了一个插槽,这样我们就可以直接使用该模块了。整个中控板如下图所示。

1.4.3 MPU6050

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

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

1.5 总结

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

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

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

  1. Drone-Mercury 从零开始的四轴无人机制作(二)- 硬件与PCB

    Drone-Mercury 从零开始的四轴无人机制作(二)- 硬件与PCB 该项目目前还是正在进行的一个状态,Github中提供了现在最新的进度.如果对您有帮助,请点个星星支持一下! Github地址 ...

  2. 基于stm32的四轴无人机和智能车编程实践目录

    智能车那些事 前言:智能车制作的那些事 智能车那些事 1 初学者如何选择元器件? 智能车那些事 2 从软硬件区别角度分析如何使用数据手册? 智能车那些事 3 常用电子元件之电阻 智能车那些事 4 常用 ...

  3. STM32 四轴无人机的设计——基于HCSR04超声波模块的距离检测与警报设计

    1.系列总述 从现在开始将会进入四轴无人机的制作,我是第一次制作四旋翼,从前没有接触过这个方面,手边的参考资料只有一本四轴的设计书和正点原子F405飞控的源码,所以代码逻辑设计方面肯定有所欠缺,大家可 ...

  4. 搭建室外四轴无人机(一)

    搭建四轴无人机的这个想法是早些时候看到一些无人机的文章想到的.于是我就看到了很多牛人的无人机,发现制作成本是个大问题.然后我就向学校无人机工作室的学长求救,发现学校的无人机工作室有很多可以利用的资源. ...

  5. 如何用PPT实现属于自己的第一架四轴无人机~

    ~~图片谁不会 ~~ 在不使用已有素材的前提下,仅用绘制和动画的方法做一个四轴无人机.旋翼能转,机身能动,想想就很兴奋呢~ 先看成果图 看啊,旋翼.机架.防护圈一样不少,还能动~ 制作软件标题已经说了 ...

  6. 基于STM32四轴飞控制作笔记

    基于STM32四轴飞控制作笔记 前言 大四选了个四轴飞控作为毕业设计的题目,近来没事,把之前的制作做个总结开源出来. 硬件设计 1.遥控MCU模块和飞控的MCU模块都采用stm32f103c8t6单片 ...

  7. 飞越650四轴无人机安装全程详解(多图)

    飞越650四轴无人机安装全程详解(多图) 本文根据自己的安装实际过程,总结了开箱后一个比较合理的650四轴无人机安装顺序,以及各个步骤的注意事项,主要内容包括: 系统基本配置 机架安装 安装机臂与机架 ...

  8. 学习无人机-C01小四轴无人机初体验

    开机时,M3对应的蓝色指示灯先亮,M4那头对应的LED09一直亮(只要板子上电,就会一直亮). 充电时,红色LED11一直亮,没有变暗或者灭掉的现象.并且,LED10有时会微微冒蓝光. C01小四轴无 ...

  9. 基于ArduPilot的旋翼式无人机飞行器开发系列(三,四轴无人机的组成)

    注意:以该系列的案例样机 --- 四轴无人机为例开展: 一,四轴无人机的硬件构成 通常以一个四周无人机的硬件组成如下: 1.一个四轴机架,4个浆叶(F450机架+脚架) 2.四个动力马达(QM2821 ...

最新文章

  1. 多大、谷歌大脑获ICML 2021杰出论文奖,田渊栋、陆昱成获荣誉提名!
  2. android gridview item 点击,Android-取消GridView/ListView item被点击时的效果
  3. linux日志按照时间切割,Linux下把tomcat日志按日期自动分割
  4. HUE Schedule 定时调度 - 启动时间设置问题(执行次数过多,时区问题)
  5. 计算机乘积函数讲解,计算机函数算法7
  6. 编程游戏:划拳机器人比赛-{ 咱们园子是否应该设立一个算法挑战/编程竞赛的平台? }...
  7. 用户需求分析:背后隐藏的门槛
  8. 百度人脸识别文档冲突,facetype应是face_type
  9. CMU15213 Intro to Computer Systems学习笔记(14) Exceptional Control Flow: Signals and Nonlocal Jumps
  10. 海思Hi3519AV100sensor移植之二-- imx586 sensor
  11. 大漠插件注册使用方法教程
  12. 模拟登陆webqq总结(二)
  13. 访问网络共享找不到网络名的解决方案
  14. 计算机中常见的循环,电脑系统提示数据错误循环冗余检查的解决方法教程[多图]...
  15. 腾达fh307没有显示服务器名,腾达(Tenda)FH307路由器无线WiFi密码和名称设置 | 192路由网...
  16. PC端打不开微信公众号文章、微信图片加载超缓慢的处理方法(最全的解决方法)
  17. Rhel7.3_Oracle12cR2的RAC搭建安装
  18. TOEFL wordlist 28
  19. 工作多年,我对架构的一些理解
  20. 如何用Visio画数据库实体关系图

热门文章

  1. 2019软工实践_作业3_2(团队介绍博客)
  2. python抠图算法 百度_基于深度学习的一键AI抠图项目:PyMatting
  3. 微信小程序-场景值得运用与理解
  4. 叮咚小区VS小区无忧
  5. 采用电源墙的无线电能传输
  6. MQTT协议简介及协议原理
  7. 小明系列故事——师兄帮帮忙
  8. 【基于侧扫声呐和SFS方法的地形三维重构】(一)增益补偿和斜距校正
  9. 02-4设置第一启动项--U盘装系统中bios怎么设置USB启动
  10. 探索有交易成本的环境下期权Delta对冲频次与定价效果的关系