[深入浅出多旋翼飞控开发]预备篇][一][元器件选型及飞控电路设计]

Github

要让飞控程序跑起来,首先我们得要有一个硬件实体,也就是我们的飞控板。说实话,飞控电路可以很简单,单纯由几个简单的元器件组成,即使是刚学会画PCB的大学生,也能像模像样地设计一款飞控出来。接下来的这个飞控板,暂且命名为天穹V3,也将会由我这个连半桶水都算不上的硬件工程师来设计。

而要设计一款飞控,第一个工作便是元器件选型,即主控芯片和主要传感器的选型。

1.主控选型

十年前,飞控届的前辈们只能在资源少得可怜,运行慢如蜗牛的8位AVR单片机上苦苦挣扎,而如今32位的Cortex-M单片机被用得飞起,速度远超当初,极大方便了我们的开发工作。当然,类似于STM32之类的32位ARM单片机,也仅仅是相对而言快了不少,若碰上了更上层的运算密集型应用也要歇菜。不过主控的选型,要进行多方面衡量,而不仅仅是性能,如价格、购买的便利性、开发参考资料等,而且DIY飞控板时芯片需要自己动手焊接,那类似于BGA之类封装的芯片便可以直接排除了。

先评估性能,从目前现状来看,应用最多的主控芯片应该是STM32F4之类的高性能Cortex-M4单片机,如PX4之类的主流开源飞控使用了180MHz主频的STM32F427。从经验来看,若是一些简单的飞控程序,任务量不大,使用互补滤波之类的低运算量算法,那STM32F1已经足够,可以保证主任务在500Hz以上的高频率运行。但程序规模稍大,或者使用了更复杂的算法如多维卡尔曼之类的,那STM32F4可能正好可以满足要求。

电子产品使用较多的人可能会对跑分软件比较熟悉,而单片机上也有类似的应用:CoreMark,用在嵌入式系统中测量CPU性能的基准程序。
通过搜索引擎查询和官方发布等数据,我们可以看到STM32系列单片机的跑分(估计值,仅为参考)——
STM32F1(72MHz): 100
STM32F4(168MHz): 500
STM32F7(200MHz+): 1000
STM32H7(400MHz): 2000
i.MX RT1052(600MHz): 3000

可以看到,虽然F1和F4的主频相差一倍多点,但F4的跑分却是F1的5倍,主要得益于其所携带的FPU:一个独立于CPU处理的浮点运算单元。不过要注意的是,F4所带的FPU仅仅是单精度浮点运算单元,即仅对float型的数据运算有效,不适用于double型,所以平常程序里对运行速度敏感的地方尽可能避免使用double型,如 a = a * 0.5,即使a已经被定义为float,编译器也还是默认0.5为double型数据,运算时会按照双精度来计算,最后再转为单精度。解决办法是在0.5后面加上f,声明其为单精度浮点数,原式变成a = a * 0.5f。

而F7,虽然主频提升不高,但得益于架构的升级,其速度相对F4提升了不少,只不过价格也相对蛮高,而目前使用Cortex-M7单片机的飞控,数量还不多。而H7则是同样基于M7内核但更高性能的新型号,17年才基本算是完成量产,目前的应用还不多,价格更高。最后一个也是性能最强大的,属于NXP新推出的RT1050系列跨界处理器,其仍定义为单片机,基于M7内核,但主频高达600Mhz,快要追上曾经的Cortex-A系列处理器了。而价格也算是适中,唯一的遗憾便是封装为BGA,杜绝了DIY的可能性,好在已经有不少淘宝店铺推出了核心板。后期若是想开发图像处理类的应用,如光流或视觉里程计等,那RT1052可能比较适合,而对于我们的飞控来说,暂时还不需要用到这么高的性能。

综合考虑,在我们这款飞控上,还是选择了各方面都比较适合的STM32F405RGT6,168MHz主频带FPU,1M Flash,淘宝采购价大约为20元一片,64脚QFP封装也满足了小体积和易焊接的需求。而这个飞控,也会尽可能设计得比较小巧,只预留一些基本接口,方便其安装在一些小机架上。

2.陀螺仪/加速度计选型

当前的MEMS传感器,陀螺仪和加速度计基本都封装到一起,成了六轴传感器,所以这两个传感器的选型便一起了。曾经飞控上最经典的六轴传感器,莫过于MPU6050/MPU6000,这两个除了通信方式有区别,其它完全一样,前者大量用于各种玩具飞机,后者大量用于各类开源飞控。从性能和焊接便利性上来说,MPU6000无疑是我们飞控的最佳选择,可惜担心过段时间后难以购买,且价格偏高,只能无奈放弃。

MPU6000的下一代,MPU6500,也比较经典,除了陀螺仪噪声比前辈稍高一点之外,拥有着更小的封装(然而意味着更难焊接)以及极低的价格,虽然早已被官网列为了不推荐使用的产品之一(年代相对而言也比较久远了)。目前在淘宝上的采购价,有的才不到3元,从这方面看,非常值得我们选择,而且MPU6500在DJI的产品上已经使用了数年之久,直到最新款御air上还在使用,可见其还是有一定优势的。

因此我们的六轴传感器初步选择了MPU6500,只不过这款3x3mm的QFN封装IC,会存在些许焊接上的难度。

而在invensense的官网上(现已被TDK收购),我们还可以看到许多其它型号,不过适用于无人机的不多,而剩下的几款,如ICM20608,ICM20602,在无人机上也有许多应用,若有时间,我们可以搭建一个测试平台,对比一下这些传感器的性能,主要关心陀螺仪的随机噪声大小和固定温度下的零偏稳定性。

3.地磁传感器

HMC5883是曾经在开源飞控上非常流行的一款三轴地磁传感器,不过目前已经停产,一般使用QMC5883作为代替品。在飞控上比较常见的地磁传感器还有AK8975,IST8310等。这些传感器的通信方式均为I2C,速度相比SPI要慢很多。

实际上地磁传感器的选型颇为被动,因为我们并不会直接在飞控板子上板载地磁芯片,主要是为了避免飞机内部走线和电路产生的磁场干扰,DIY多旋翼时,通常都会使用一个带有地磁传感器的GPS模块,并利用支架使其远离干扰源。所以地磁传感器的最终选型,还要看我们所选择的GPS模块。

4.气压传感器

先说结论,在这款飞控上,会采用MS5611作为气压传感器,原因是MS5611为目前市面上能购买到的精度最高的气压计,且其封装比较方便DIY焊接,价格虽然算是比较高的,但如今淘宝20元便能买到,对于一款用于学习和个人开发用的飞控来说,不算什么。

除了MS5611,还有许多厂商也推出了他们的气压传感器产品线,如博世,ST等。博世的气压传感器,可以用在飞控上的,有BMP180、BMP280、BMP380,其中180的精度较差,280的精度稍高,但也明显劣于MS5611,而380的精度更高,可能已经接近MS5611,但至今市场上还买不到散货。而ST的气压计有许多型号,目前使用最多的是LPS22HB,大量用于消费类无人机上,其优势在于具备较高精度的前提下,有着较低的价格(淘宝价格10元左右)。

除此之外还有许多其它公司,包括一些台湾IC厂商,但有一些公司在宣传气压计参数时经常会拿友商的产品来进行对比,有的甚至号称精度高于MS5611,然而事实却是,他们在进行传感器数据对比时,会在自己传感器上进行低通滤波配置,使得出来的数据噪声的确要小于其它气压传感器未经滤波的原始数据。从另一方面来想,如果有一款传感器精度高但价格又很低,那肯定会很快占领市场。新推出的传感器精度普遍不高于前辈MS5611,除了技术方面的原因外,更多的是目前除了小型飞行器,其它方面并没有对气压高度精度要求如此之高的应用场合,尤其是市场最大的智能手机应用,普通消费类电子产品更多地是偏向于低成本和小体积的传感器芯片,精度上满足基本需求即可。 |

预备篇:一.元器件选型及飞控电路设计相关推荐

  1. EMC 2 完美的EMC电路设计攻略之:元器件选型(上)

    目前有两种基本的电子元件组:有引脚的和无引脚的元件.有引脚线元件有寄生效果,尤其在高频时.该引脚形成了一个小电感,大约是1nH/mm/引脚.引脚的末端也能产生一个小电容性的效应,大约有4pF.因此,引 ...

  2. EMC 3 完美的EMC电路设计攻略之:元器件选型(下)

    电磁干扰滤波器的选用 EMC设计中的滤波器通常指由L,C构成的低通滤波器.不同结构的滤波器的主要区别之一,是其中的电容与电感的联接方式不同.滤波器的有效性不仅与其结构有关,而且还与联结的网络的阻抗有关 ...

  3. 一篇很完整的元器件选型指南

    一.元器件选型基本原则 a.普遍性原则: 所选的元器件要是被广泛使用验证过的,尽量少使用冷门.偏门芯片,减少开发风险. b.高性价比原则: 在功能.性能.使用率都相近的情况下,尽量选择价格比较好的元器 ...

  4. 【转】这是一篇很完整的元器件选型指南

    一.元器件选型基本原则: a)普遍性原则:所选的元器件要是被广泛使用验证过的,尽量少使用冷门.偏门芯片,减少开发风险. b)高性价比原则:在功能.性能.使用率都相近的情况下,尽量选择价格比较好的元器件 ...

  5. 嵌入式UWB定位测距设备开发实战(4)硬件之元器件选型

    上面几篇都是关于产品的一些设计思路和简介,从这篇开始就是真正的干货了,接下来的一个主要部分就是设计硬件的开发.第一步,任何做硬件的人都跳不过的一步,方案选型,我个人认为这是一个产品最重要的一步,所谓万 ...

  6. STM32F103ZET6器件功能配置和元器件选型

    STM32F103ZET6 元器件功能配置 元器件选型 元器件功能配置 器件功能和配置图如下,我用的是STM32F103ZET6,有112个GPIO端口,分别为 GPIOA.0~GPIOA.15; G ...

  7. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 提取util公用方法 |基于最新版1.0开发者工具

    iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...

  8. 空调箱项目,恒温恒湿。 暖通程序项目全部资料。 从设计前原理图,元器件选型,控制柜接线图

    空调箱项目,恒温恒湿. 暖通程序项目全部资料. 从设计前原理图,元器件选型,控制柜接线图,程序及上位机,说明书,参数设置,竣工图等. 该项目适合新手学习,全方面提升自己. 1.0自控竣工图纸 1.1自 ...

  9. 数据分析师的编程之旅——Python爬虫预备篇(2)前端设计

    作者:李禹锋,重庆芝诺大数据分析有限公司数据挖掘工程师. 有一个程序猿的岗位叫做前端工程师,当前市场需求量也不小,主要是以HTML5框架(H5).CSS3样式表和JavaScript语言(简称JS)为 ...

  10. 添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)- 概述

    不花钱学计算机及编程 (预备篇) --概述:如何学习计算机及编程 class="video_iframe" height="375" width="5 ...

最新文章

  1. phpMyAdmin FTP iptables Selinux
  2. 运维老鸟告诉你这个经典Zookeeper问题的根因
  3. 2018全球100个最有价值的科技品牌 18个中国品牌上榜
  4. 服务器如何管理?分享九款服务器管理工具
  5. Python 开发工具链全解
  6. .NET定时任务执行管理器开源组件–FluentScheduler
  7. oracle 数据库中执行数据库语句能找到数据,但是程序中却抓取不到
  8. prometheus修改数据保留时间
  9. php通过函数怎么禁止百度蜘蛛抓取,怎么屏蔽百度蜘蛛抓取网站?
  10. 2021年CBA总决赛第三场预测
  11. SpringMVC+Maven开发项目源码详细介绍
  12. 拓端tecdat|用R语言制作交互式图表和地图
  13. 算法音乐往事:二次元女神“初音未来”诞生记
  14. 解决【C++】其他类中友元函数不可访问私有数据--顺序问题
  15. RK3128-android7.1-物联网模块GM196
  16. vuforia 模型识别_汽车的优势:Vuforia模型目标
  17. fiftyone安装使用亲测
  18. RTX 3080和RTX 2080 Ti哪个好
  19. 【Markdown使用技巧总结】-如何在Markdown文档中插入空格?
  20. 【Vulnhub靶场】THOTH TECH: 1

热门文章

  1. 了解数据库索引及其原理
  2. xp系统做无盘服务器,锐起无盘网吧系统无盘XP系统特点
  3. SAS时间序列分析案例--有季节效应的非平稳序列分析
  4. 电感升压(boost电路)感性理解
  5. 全源最短路 Johnson算法
  6. linux版本的caj,同方知网文献阅读器CAJViewer for Linux版本安装说明
  7. 手撕包菜磁力搜索引擎的开源说明
  8. Unity发布Android时需要的Android SDK/NDK的下载
  9. 一个无限批量下载百度美女图片的demo
  10. excel mysql 财务_excel函数 数据库 财务函数 统计函数 信息函数