STM32四旋翼设计——1.系统架构

2023-11-10

一、前言

        历时一年半,终于将STM32四旋翼调通,2023/4/9顺利起飞。现在想将这个设计过程都记录下来,包括板子的设计方案、板卡结构设计、板卡原理图、PCB、各模块调试的过程,但大部分只涉及硬件,软件部分后面看情况整理,因为程序部分我也是参考别人的,只是过程中有自己的一些理解。设计四旋翼其实是从本科就有的想法,那时候搞了51单片机,然后学了STM32,就想自己也设计一个四旋翼玩一下,结果因为当时没啥零钱,后来为了考研,就彻底停下来了;研究生有津贴了,却忙着实验,抽不出时间。终于在2021年11月,下定决心完成自己心中惦念已久的一个设计,那时候已经出来工作一年了,岗位是电子工程师,对产品设计有自己的初步理解,然后就开始从一个完整的开发流程来做这个设计,而不是跟学生时代一样,想到哪里就做到哪里,设计简单还行,一旦复杂了,就行不通了。

        在开始正式的记录之前,我先要讲解一下产品开发流程,希望能对其他人有些许帮助。

        完整的开发流程包括:

        1.需求调研,这个过程就是调查市场的需求,或者说你这个产品想怎么做,具备哪些功能、受众群体、市场份额等等,基本上研发不会参与到这一部分,都是由产品经理、Design Manager等来负责;

        2.产品定义,调研后就要开始锁定需求,然后整理出一个设计方案,这个方案非常粗糙,只是跟你说了你要做一个什么东西出来,但没有跟你说怎么做,例如,我说要设计一个四旋翼无人机,遥控距离>100m,能三轴飞行,详细一点可能就是说采用STM32作为主控,但用什么模块、结构长什么样、程序怎么编写,不会在这里写明,因为那是下一步的工作;

        3.详细设计,或者叫具体设计。这一步就是各个岗位根据设计方案去具体选型和设计,例如硬件开始选择芯片、模块,然后开始原理图设计、PCB layout;软件开始编写程序;结构开始设计等等;这个过程来回沟通,甚至方案推倒重来都是常有的事;

        4.原型机,在详细设计后就要组装原型机了,将板卡、结构件、程序组合在一起,这个过程就是检验设计结果,然后记录问题,持续迭代优化;

        5.测试,原型机组装完成后,除非设计严重失误,否则只要能够跑得起来,就要进行测试,检验问题,然后迭代设计;

        6.生产,这一步其实还需要细分,但总的来说,测试后,设计师对问题进行优化,解决完所有问题后就可以安排生产了;

        总的来说,我这个四旋翼简单,在很多本科生眼里估计都觉得毕业好多年才做出这个,但我认为从一个开发流程出发,设计一个产品(姑且这么定义),是一种全新的体验,把自己的工作经验应用到自己的兴趣中,会让你的能力有一个质的飞跃。整个设计虽然耗时1.5年,但其实我基本每周只有4小时投入,算起来估计工作时长也就2个月。

        前言已经写了很多了,那下面开始讲一下这个设计的系统设计是怎么做的吧。

二、系统设计

1.总体介绍

        这个设计主要分为三部分:硬件+结构+软件,实现四旋翼无人机能够进行三维平稳地飞行,好吧,也许没那么平稳。

        硬件方案是STM32F103C8T6+MPU6050+GT-24模块。STM32是主控,MPU6050是六轴陀螺仪,GT-24模块是直接购买的射频模块。这几个模块是支持四旋翼平稳进行三轴飞行的最简配置,没有陀螺仪就无法进行PID调试让电机转速相等。最初我在设计时定的目标就是让四旋翼能飞,三轴飞行即可,查找资料时,没有看到有一句话直接告诉我:你只需要STM32+射频+陀螺仪就行,因此我看了好多人写的调试心得、去正点原子的官网上看开源资料,查看陀螺仪究竟是什么,MPU9050跟6050、6000、BMP280这些的关系,甚至我最初其实是用9050的,也调通了,但因为自己的愚蠢最终选择现在这个方案。所以我希望在这里跟还没有设计经验的同学说一声,如果你的目标只是让四旋翼飞起来,你只需要STM32+射频+陀螺仪去设计你的板子。

        结构组成是主板+4个空心杯电机+电池+桨叶+机架。这个部分需要注意,你的结构组成需要让机体保持对称,并且不能太重。我一共设计过4个版本,只有V4是飞起来的,就是因为前面板子的设计没有跟机架匹配,拿个胶枪一沾就算固定;然后板子多加了一个CH340电路,板厚1.6,整个板子的重量是现在1倍,可想而知,飞不起来,直接翻机。最后V4下定决心,好好搞结构。

        软件部分其实我没有什么话语权,因为参考被人的程序,甚至于CV过来,不知道会不会涉及版权,就不在这里展开了,但我后面的更新依然会有各模块调试、PID程序这些讲解。

电子

功能

三维自由飞行

主方案

STM32+MPU6050+NRF24L01+RFX2401

结构

构成

主板+空心杯电机+电池+46mm正反桨叶

软件

CAD

软件

模块

MPU6050、NRF24L01+RFX2401、main

语言

C语言

软件

MDK5+Keil

2.系统框图

        这里应该包含两部分框图,一部分是上面讲的整个四旋翼的框图,但因为四旋翼比较简单,所以显示出来的效果并不是能体现系统框图的意义,所以我就不放了,实际上复杂产品的设计有一个系统框图可以让你很好地了解整个产品的组成,直观搞笑。另一部分是单纯板卡的框图和电源架构,这个很直观,对于后面设计板卡有非常大的帮助,建议没有经历过质量体系的工程师采用,先框图,后设计的思路。

        板卡电源部分需要详细列出各模块的电流、电压,这样方便你选择哪个型号的电源芯片,已经PCB布线时考虑通流能力,同时,每一个设计参数保留20%的余量,例如,设计需要10mA,你不能按照10mA去设计,而是要120mA,避免极限设计。电源先升压后降压其实没必要,因为我之前加了CH340,工作在5V模式,所以就没有删除,而且留着5V应对一些模块也是有用的。这里的一个设计思路是,当你不知道这个设计有没有用时,可以先预留,前提是你的板子空间够。

        

3.结构设计

        结构设计参照我买的机架,里面给出了机架的尺寸,如下图所示。

        

        而根据这个我的板卡结构如下图。要注意各种限高和模块堆叠时有没有干涉,一切BUG都是设计出来的,所以在设计时要考虑周全,工作中我需要一直找结构工程师对结构,不然很容易设计出问题。

        

 3.软件

        软件部分我们需要给一份differ表出来,其实就是各引脚的功能,工作中软件需要根据你给的引脚定义去配置各种模式,例如STM32的引脚大多都可以复用,然后选择什么模式去工作,是推挽输出还是开漏输出等等。

        

        以上就是STM32四旋翼整个系统设计的简单介绍,其实看得出来我只是对硬件做了比较详细的介绍,因为我本身是硬件工程,结构和软件大致写了一下,后面会有其他文章来介绍的,我也会持续更新这一部分,毕竟现在类似随笔,想到哪里写到哪里。

 

 

        

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32四旋翼设计——1.系统架构 的相关文章

  • c语言作业:一帮一

    一帮一学习小组 是中小学中常见的学习组织方式 老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组 本题就请你编写程序帮助老师自动完成这个分配工作 即在得到全班学生的排名后 在当前尚未分组的学生中 将名次最靠前的学生与名次最靠后的异性学生分
  • Java课题笔记~ SpringMVC的四种跳转方式

    默认的跳转是请求转发 直接跳转到jsp页面展示 还可以使用框架提供的关键字redirect 进行一个重定向操作 包括重定向页面和重定向action 使用框架提供的关键字forward 进行服务器内部转发操作 包括转发页面和转发action

随机推荐

  • opencv(C++) 视频处理,通过三通道像素值平均 将视频分辨率缩小为原来的一半

    项目要求 将一个 1920 1080 的视频压缩为 960 540 的视频 帧率不变 将每个 2 2 相邻像素点的像素值求平均 变成一个新的像素点 即 2 2 的平均池化 程序中很多代码都来源于 OpenCv 4 快速入门 方法一 分别取出
  • vs2019中 当前上下文中不存在名称“ViewBag”和不存在“model”的解决思路

    如果你已经改了Web config的相关配置 还是没有解决这个问题 你可以尝试保存并退出当前的vs 然后重新启动你的项目 本人通过许多途径找解决的办法 结果还是没有解决 最后还是通过重新启动项目解决的
  • 金融和大模型的“两层皮”问题

    几年前 我采访一位产业专家 他提到了一个高科技到产业落地的主要困惑 两层皮 一些特别牛的技术成果在论文上发表了 这是一层皮 企业的技术人员 将这些成果产品化 商品化的时候 可能出于工程化的原因 会做一些简化 这是另一层皮 两层皮之间 是有g
  • mvc html类的作用域,SpringMVC使用session保存数据以及applicationContext作用域

    使用session保存数据 session是一次会话 里面可以有多次请求 1 HttpSession session 1 1 index jsp Hello World 1 2 success jsp Created by IntelliJ
  • 机器人地面站-[QGroundControl源码解析]-[10]-[Comm]

    前言 因为项目进度排期较紧 并且觉得之前在代码中添加注释的方法有些生硬用处不大 所以从本片开始 着重介绍类的内容和功能 只对重要代码进行粘贴 Comm文件夹下有众多的类 一 LinkConfiguration 这个类处理链路的配置 查看属性
  • 机器学习之PCA算法

    目录 PCA算法 PCA目标 PCA原理推导 基于最大可分性推导 基于最近重构误差推导 PCA算法流程 PCA优点 PCA缺点 基于PCA的人脸识别 PCA算法 PCA 即主成分分析 Principal Component Analysis
  • 校招——2021多益网络软件开发笔试和面试

    多益网络软件开发笔试和面试 要毕业了 临到五月才开始才开始找工作 一方面由于前期做毕设和搞论文拖到现在 期间在二月份就开始有点压力迫切想找工作 越到后面反而平静了好多 所谓破罐子破摔 一开始没想投多益的 是刚好身边有朋友进了多益 他是从三月
  • 代码随想录刷题day13

    239 滑动窗口最大值 给你一个整数数组 nums 有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧 你只可以看到在滑动窗口内的 k 个数字 滑动窗口每次只向右移动一位 返回 滑动窗口中的最大值 示例 输入 nums 1 3 1
  • angularJS 转换UTC时间及DateFormat问题

    filter date milliSec yyyy MM dd HH mm ss 在angularJS 中 date filter会把时间转换为本地时间 即会按照电脑右下角的时间设置的时区来转换 dateObject getFullYear
  • AI支持的自然语言编程

    由开发新编程语言的讨论而突然想到的一些想法 今天在微信上看到了CSDN主办的一个讨论 是魏永明和许式伟两位老总谈新的编程语言 他们两人都是为数极少的中国创造的编程语言的创始人 难得 可贵 在听他们的讨论时 一个想法突然冒了出来 感觉这个想法
  • 热诱导蠕变

    原文链接 https cn comsol com model thermally induced creep 207 蠕变是一种非弹性瞬态变形 材料在足够高的温度 如熔点的 40 或更高 下受应力作用时会发生蠕变 实验蠕变数据 使用恒定应力
  • TCP协议如何保证可靠性

    TCP协议传输的特点主要就是面向字节流 传输可靠 面向连接 这篇博客 我们就重点讨论一下TCP协议如何确保传输的可靠性的 确保传输可靠性的方式 TCP协议保证数据传输可靠性的方式主要有 校验和 序列号 确认应答 超时重传 连接管理 流量控制
  • 机械技术在橡胶工业中的应用概述 机械外文文献翻译

    原文 Mechanical Technology in the rubber industry outlined in the application In the development of human society is the m
  • 性能测试如何做?从0到1性能测试实战(手把手教)

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • 各种排序的比较和使用场景分析

    冒泡排序 冒泡排序重复地走访过要排序的数列 一次比较两个元素 如果他们的顺序错误就把他们交换过来 走访数列的工作是重复地进行直到没有再需要交换 也就是说排序完成 规模比较小的时候应用冒泡排序 主要应用于教学 选择排序 只会移动N次 选择排序
  • 最大熵模型简介[例子+推导+GIS求解…

    这篇文章是结合论文http www cqvip com Main Detail aspx id 7707219对博文 http www cnblogs com hexinuaa p 3353479 html加入自己的理解做了简化重写 另外本
  • 使用jQuery实现显示文字气球的提示

    使用jQuery实现显示文字气球的提示 本文由 arthinking 发表于884 天前 Javascript 暂无评论 被围观 3 115 views 为了使页面效果更绚丽 可以使用文字气球的提示功能 在jQuery中 可以使用简单的几条
  • Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转 (根骨骼动画)的问题

    Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置 方向偏转 根骨骼动画 的问题 目录 Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置 方向偏转 的问题 一 简单介绍 二 实现原理 三 效果预
  • ebay运营思路

    Ebay是一个老牌的跨境电商 目前仍然是稳坐全球前列的平台 也是强手如云的地方 虽然相对于亚马逊他显得没有那么 卷 要在这片市场中抢占一番天地 首先一定要学会一些高效的运营技巧 今天就来分享一些Ebay运营技巧 帮助你更快更好的打造一个高质
  • STM32四旋翼设计——1.系统架构

    一 前言 历时一年半 终于将STM32四旋翼调通 2023 4 9顺利起飞 现在想将这个设计过程都记录下来 包括板子的设计方案 板卡结构设计 板卡原理图 PCB 各模块调试的过程 但大部分只涉及硬件 软件部分后面看情况整理 因为程序部分我也