在正式开始记录微型四旋翼飞行器设计的学习笔记之前,感觉自己很有必要先给自己一个总结,也希望能够帮到更多的朋友少走弯路(虽然不知道帮助大不大)。
去年九月下旬开始了微型四旋翼飞行器的学习与设计,在12月底的时候初步实现了稳定的遥控与飞行,后续又增加了一些常规的辅助的功能,失控保护、姿态微调等等,之后又利用OLED屏幕,设计了一个三级菜单,把各种参数的设置,飞控锁定与通讯的状态等等一些信息都整合在一起,利用相应的按键,可以很方便的查看、设置。通过一次一次的优化一些细节,飞行器的飞行效果令人满意。

 

在此真心要感谢喵呜实验室的开源四旋翼项目,我最初的学习标杆就是在参考喵呜实验室的小四轴。当然,也有很多朋友参考匿名,圆点博士等等,都是可以的,本人也对比参考了一部分。感谢这些团队的开源精神。

在开始之前,先吐槽!!!!!!!!!!!!!!!

8位机做多旋翼飞控!?
8位机做飞控!?这是我在设计飞行器期间听到的最多质疑。甚至很多“德高望重”的老古董老师,从头到尾把你批判一番,理由是什么8位机的PWM输出只有256宽度的计数周期,分辨率不够。。。更有甚者直接放话说8位机就是专科生玩的玩意,本科生用8位机做设计简直就是xxx。。。面对这样的言论,我只能选择呵呵一笑,老古董你可知道MWC飞控,APM飞控的主控ATmage328P也是8位的,但是这并不影响人家引领全球DIY多旋翼的热潮啊,而且谁告诉你当下的8位机就是你那个年代的8051或者8086?讲真,做四旋翼的这个过程,让我认清了很多东西。至少我们院系是这样的:喜大好功、什么东西只认准最高端的、功能只看是不是天花乱坠而不管实际的学习成本。一个老师甚至说,做四旋翼,要把DSP、FPGA、ARM、操作系统神马的全都搞上。。。但是初期学生学习的时候会遇到什么具体问题?怎么能让他们快速上手少走弯路?四旋翼学习的真正核心在哪里?很少有人真的关心这些实际问题。“你没有用STM32,那你就是低端的”,这种言论真的是受够了。。。
个人认为,不管做任何设计,芯片本身没有高低端之分,只有适用于不适用之别,根据设计需要不同(时间因素,成本因素,开发难度等等)选择最合适的芯片和方案,就是最好的。如果说只是因为别人的芯片位数不高或者不够“高大上”就以此去把别人批判一番,我觉得不是真正搞技术的人该有的心态。
对于初学者来说,尤其是像我这种渣渣,大四本身已经没有多少学习时间了,并且因为种种原因我没有实验室可以进,手边的STM32学习板是借童鞋的不好一直占为己用(穷),而且自己学习四旋翼的计划重点在于姿态与控制算法的学习,因此我必须让自己在最短的时间内设计出软硬件,并且能够掌握理论知识,那么综合考量,我自己用8位机可以节省我自己的时间,把更多的经历放在学习算法上,这样岂不是很高效?我不知道自己的这种学习安排有什么不好,就因为8位机就不高端了、简直是笑话。什么叫8位机只是专科生玩的?老古董就会带着有色眼镜看人,专科生比本科生强的,一抓一大把。私以为,只要技术强的,都是应该尊敬的,别管人家是专科还是什么,技术才是硬道理,学历真的不能说明什么。
吐槽半天,到底8位机能不能做多旋翼飞控?答案当然是可以的,在此真的感谢喵呜实验室!喵呜团队的飞行器恰好就是用8位机作为主控的,型号的STC15W4K32S4系列。我用过这个芯片做平衡车,还是很强大的。网上有一段它和ATMage328P的性能对比:现在的51早已不是当年的51,6路15位硬件PWM+2路CCP的16位硬件PWM,相当于是8路15位硬件PWM,mega328都可以直接秒掉,而mega328却正是市售MWC飞控的主控,mega328速度16MHZ,等效16MIPS,IAP15W4K61S4@28MHZ,等效25MIPS,运算速度也秒了mega328,也就是说,用51单片机做四轴绝对不成问题。
(来自:http://bbs.mydigit.cn/read.php?tid=1115916)
老古董打脸不?谁告诉你8位机的PWM计数周期只有256?高速八位机PWM不光是15位的,而且还是硬件PWM,非常好用。

不吐槽了,毕竟是负能量,说句公道话。如果是进阶的朋友,需要搞更复杂的功能,比如机器视觉啊,更复杂的算法啊之类的,傻子都知道当然还是选择ARM内核的啦。对于初学者,想学习基本算法,实现基本的飞行,不搞那些高端的玩意的盆友,相信我,这款8位机足够让你快速开发四旋翼的软件了,而且能够节省很多时间用来学习算法!根据需求不同,大家合理选择芯片,才是最好的。千万不要像我们系的老古董一样,喜大好功。

以下是经验谈!!!!!!!!

一、四旋翼的学习核心在什么地方?

这个问题我觉得是每一个想学习四旋翼的盆友都要考虑明白的,四旋翼是一个非常综合的项目,涉及到了很多专业知识,甚至于非电子专业的知识。因此我们在学习之前,必须先搞清楚我们学习的核心在什么地方?如果学习四旋翼,只是为了学习硬件编程,电路设计,配置一些寄存器,调试一下IIC通讯,无线通讯之类的,那么我觉得,这些还不足以是四旋翼学习的核心所在。我个人认为,四旋翼学习的前期,是上面说的到那些部分,需要认真对待,好好调试。但是到了后期,等这一切都完成了,真正的核心应该回归到算法上。如果说硬件电路是骨骼,那么算法就是是一个控制系统的灵魂所在。

 

以微型四旋翼飞行器来说,核心算法大概分为两个部分:姿态解算算法与控制算法。其中姿态解算算法是核心中的核心!它在很大程度上决定了四旋翼飞行的准确性与稳定性!试想,如果飞行器无法正确计算出自己飞倾角,那么再好的控制算法也无法使之保持稳定。

因此,有很多盆友跟我说,做四旋翼,主要就是调PID,我只能说你们太不踏实了。我参考了好多个团队代码,真正的姿态解算的核心部分大家几乎都用的是同一个IMU.C文件,其实这样也无所谓,问题的关键是,不能只是调用人家的核心算法,在调通代码的基础上,一定要深入了解这个算法是如何把姿态正确计算出来的!知其然一定要尽可能的去知其所以然,否则学到头,自己依然只是会配置个寄存器,控制外设而已,那么这样一来,好像做四旋翼与不做四旋翼并没有本质的提升,因为输出PWM,配置个中断,调试个通讯协议,开发板就能做到,还需要四旋翼干什么?
对于控制部分的算法来说,用的最广泛的就是PID控制了,在此我还是很想跟即将开始设计四旋翼的童鞋们来说,PID控制不应该只是会调试参数。我们应该尽可能的去理解自动控制原理,去理解反馈的感念,去理解为什么四旋翼上最常用的是串级PID而不是单级PID。这些内容推荐入门的盆友稍微学习一下《自动控制原理》(胡寿松)会有很多好处的。上一次的一个文章是以温度系统为例,利用Simuink来仿真对比一下不同PID的效果,为的就是能够动手感受一下不同PID不同参数下的响应特点,使学习PID控制有一个感性的认识。
(链接:http://blog.csdn.net/rick_grimes/article/details/75095315)

二、设计制作四旋翼有什么快速上手的方法?

这个问题应该也是出初学者最头疼的问题,市面上飞行器一大堆,航模级别的飞控更是一抓一大把。打着开源旗号的飞控也是很多,但是航模级别的飞控只适合玩,真正想学习的话,APM、MWC之类的真心不合适。以我个人设计方案来说,首先我的学习时间短,不允许我有很多时间去浪费,其次我的方案是想选择8位机。因此我选择了先软件,后硬件的学习计划。也就是说,我先买一套成品小四轴,主控芯片跟我的方案一样,然后再这个硬件平台上先调试自己的软件程序,等一切调好之后,再着手设计自己的硬件,这样出现问题,可以更快速的解决。试想如果从一开始就软硬件自己来,出现问题需要把软硬件都排查一遍,耽误时间会很多,也会走很多弯路。
我选择的喵呜实验室的小四轴,硬件设计很完善,前期让我可以很放心的去调试软件而不用担心硬件问题。当然,也有很多童鞋使用别的芯片例如STM32来设计的,大家也可以选择别的硬件平台。道理都是一样的。学会站在巨人的肩膀上学习!

三、新人应该从什么地方开始学习?

我想,能够来尝试四旋翼的盆友,至少都是有软硬件设计基础的,排除什么都不会的真小白,下面我就假设所有的盆友都已经有基础了,以此来谈谈我认为应该从什么地方开始动手。
四旋翼飞行器的核心前面已经说过了,是姿态算法。所以上手四旋翼的第一步,首先应该明确姿态传感器,我想大家一般都选用的是MPU6050,所以我就用它来说。首先在设计之初,至少需要利用IIC通讯,读取出6050传感器的数据,并且去学习读取出的数据如何转化成我们需要的真实数据单位。这一步我认为是最关键的,因为只有传感器的数据读取准确了,才能使后续算法的计算有一个稳定的数据来源。因此学习四旋翼的第一步,应该是搞定MPU6050!
搞定6050传感器其实是有很多技巧的,比如最重要的数据手册,必须要了解其中关键的一些部分,比如量程的选择,精度的选择,速度的配置等等。IIC通讯也是比较头疼的比个地方,尤其是在电平时间的控制上,很容易出现问题。因此需要花时间去试错。调着调着经验就有了。

四、如何高效设计四旋翼飞行器的软件程序?

这个问题其实对于任何一个系统来说都是适用的,因为有盆友问过我这个问题,在设计飞行器某一个部分的程序的时候,出现问题无法及时确定出问题所在,或者无法正确排除没有出问题的部分。所以单独把这个小问题拿出来说说,本人也是个渣渣半吊子,在这方面没什么真正有用的经验,我的一贯方法是:分模块各个击破!对,很传统的方法,但是我觉得比较适合自己。
举个栗子:比如飞行器的程序,现在需要调试2.4G无线通讯,那么我只需要先写好飞行器接收2.4G信号的程序在开发板上,然后利用我购买的飞行器的遥控器,给开发板发数据,如果开发板收不到数据但是配套的飞行器可以收到,说明自己的程序有问题啦,对照飞行器的2.4G接收部分,自己程序和人家程序不一样的地方,很有可能是出现错误的地方。这种方法挺笨的,但是我自己一直是在寝室独自学习,没设备、没老师。所以每次都是这样一块一块自己摸索,因为有可供参考的标准硬件平台,所以一个部分一个部分的来,还是很高效的!

总结
不一定有用的一些经验和吐槽,但愿能够帮助到一些朋友吧。后续继续总结,慢慢更新相关部分的学习笔记。

微型四旋翼飞行器设计经验之瞎扯淡相关推荐

  1. 四旋翼飞行器设计指南(原理、程序、电机资料)

    四旋翼飞行器采用四个旋翼作为飞行的直接动力源,旋翼对称分布在机体的前后.左右四个方向,四个旋翼处于同一高度平面,且四个旋翼的结构和半径都相同,旋翼1 和旋翼3 逆时针旋转,旋翼2 和旋翼4 顺时针旋转 ...

  2. 四旋翼飞行器5——各类方案设计及参考

    下面几篇文章及资料是这两天看到的比较好的资源,可以多看看,对于新手来说,是个不错的提升自己的一些资料.可以分析每一种方案的特点,主控啊,传感器啊,不过到最后肯定要自己实践,才能得到最好的控制效果. 文 ...

  3. 四旋翼飞行器的研究方向

    毕业设计选的四旋翼飞行器设计的题目,顺便了解了下四旋翼飞行器有哪些值得研究的点. 四旋翼飞行器在高空检测(如电线,桥梁),灾害搜救,娱乐以及军事上都会有应用.相关研究的点也有很多,主要有飞行器的姿态估 ...

  4. 四旋翼飞行器2——自己设计四旋翼飞行器的硬件准备和基础知识

    四旋翼飞行器2--自己设计四旋翼飞行器的硬件准备和基础知识 文章目录 四旋翼飞行器2--自己设计四旋翼飞行器的硬件准备和基础知识 DIY四轴需要准备什么零件 [基本原理与名词解释] 1.遥控器篇 什么 ...

  5. 【飞控理论】四旋翼飞行器控制原理

    该篇博客是对锡月科技无人机飞行控制原理教学内容的整理 1.四旋翼飞行器的两种结构: "×"字模式: Pitch和 Roll与1,3.2,4两组电机呈 45°夹角 . "十 ...

  6. 多旋翼飞行器设计与控制·绪论(笔记001)

    这部分的笔记主要是按照北航全权老师的课件来的,只是进行相关的记录和总结,具体的资料在 可靠飞行控制研究组主页课程中心 ( 全部课件下载)--------------------------- 这里都可 ...

  7. 四旋翼飞行器平衡传感器数据 处理方法探讨

    四旋翼飞行器平衡传感器数据 处理方法探讨 [摘要]四旋翼飞行器的制作与研究日渐火热,而且其应用价值日渐凸显,当今四旋翼飞行器大都使用飞控板控制,其优点是操作简单,稳定性比较好,但好多的复杂功能无法自定 ...

  8. 多旋翼飞行器设计与控制(一)—— 绪论

    多旋翼飞行器设计与控制(一)-- 绪论 前言: 最近我在学习控制技术在机器人设计上的应用.毫无疑问多旋翼无人机是验证控制模型和滤波算法最佳的实验载体.我找到了北航的可靠飞行控制研究组的课程,并打算用博 ...

  9. 可变形的四旋翼飞行器——无人机

    无人机的了解 四旋翼飞行器是无人机的一种,其结构简单.体积小.容易操纵,可以垂直起飞与降落,拥有很好的空中灵活机动能力.近些年来,四旋翼飞行器被应用到了许多领域,如航拍.地质监测.环境评估.运送快递等 ...

最新文章

  1. 释放联接新价值,华为提出“1+N”5G目标网,推动运营商构筑四大数字化转型的核心能力
  2. 测试hadoop安装是否成功
  3. 重定位(搜索KERNEL32.DLL得到API地址)
  4. 站长图卦:每天坚持搬砖 定有美好明天
  5. iOS - app 进行安全加固
  6. POJ 3268 Bookshelf 2 动态规划法题解
  7. 十大ERP系统排行榜—2022年
  8. java word文档内容比较_Java 比较两个Word文档差异
  9. 过滤dt中重复的记录
  10. 如何撰写数据中台蓝图方案
  11. TPshop学习(1)Windows下安装TPshop
  12. 应用计算机怎么弹ink,Win10不小心按W键结果弹出INK工作区的处理方法
  13. DevOps落地实践:BAT系列:ALI:企业研发效能解决方案
  14. echarts 折线图,无数据时不显示灰色线条
  15. 这份Java Web必读书单,值得所有Java工程师一看!
  16. 图像处理技术之八:点云图、深度图像
  17. 华三交换机配置三权账号(V7版本)
  18. HUD市场探析:困顿30年后现转机,未来2-3年或迎爆发期
  19. oracle清空表数据之后id从1自增
  20. 敏捷转型如何抓住人心:钱多事少离家近?

热门文章

  1. 软件分享系列之【PS2020下载安装】并持续分享中...
  2. 日语学习之——浊音半浊音
  3. 关于戴尔电脑一直显示“正在关机”的问题解决记录
  4. window10分屏微信截图偏移
  5. C语言程序设计-机房收费管理系统
  6. KVM从入门到懵逼 第二天 kvm部署
  7. 攻防世界crypto篇
  8. 镇江企业SEO:百度关键词收录小妙招!
  9. 中厂,面试就问了4道题,凉了!
  10. ThinkPad X230i安装ACHI