首先谈一下对四轴飞行器的向往,近几年无人机火了,连汪峰求婚都用的是国产大疆无人机,各大科技公司也开始推出自己的无人机产品,对于一个无人机来说,我对它一开始还不怎么了解,只是充满无限的向往,我以为要让它起飞要考虑很多空气动力学,和数学建模的问题,而这些对于我来说是不可以想象的,太难了吧!但是你自己不尝试怎么知道自己能不能了,所以开始在百度上搜索四轴飞行器的资料,刚开始只是了解,看了网友大神自己对四轴飞行器的了解。我也开始一步一步的深深扎了进去,对四轴充满无限的的好奇。看了无数的博客,看了无数的论文,也收藏了很多个知名的四轴论坛。我也渐渐明确我应该做些什么准备。其实总结一下就是,只要自己感觉自己能完成本次设计任务,就大胆去做,不要永远停留在想去做,而是要去付出行动,大胆去尝试,就算自己最后失败,你也会收获很多的,这几天在学习Linux操作系统,其实刚开始Unix操作系统是个失败的大工程,可是就是那么一个人把失败的东西转换成了现在非常成功的东西。 刚开始我的计划是做一个小四轴验证算法,找一找成就感。因为对于一个初学者来说,大四轴的难度太大,成本高,也许花了很多钱并没有什么结果,所以就要开始自己学PCB电路板的制作,所以一股闹开始学习郭天祥老师录得一个Altium Designer的视频,说实话。我的单片机很多知识都是从郭天祥的十天征服单片机上面学来的,很有幸能够再次学习到他录得一个PCB电路板制作的一个视频,讲的非常细。对于我这个连英语三级都没过的人来说,用起英文版的软件用起来也得心应手。大概学了半个多月的时间,自以为可以开始了,可是又需要会CAD画出PCB的外形轮廓,后来得知老师那有一个大疆无人机的机架,所以就没有开始对小四轴的设计,而是对飞控板的设计。当时也有很多的人给我说就不要去设计飞控了,难度太大,还是去卖一块飞控板,买个遥控器就自己组装呗,可是这样怎么学习了就算自己失败了,我也要自己去设计飞控板,当我拿到原来无人机的KK飞控板时,怎么这飞控板如此简单。单片机、陀螺仪、各种接口,连电源都没有接。只有一个AMS1117的一个电源芯片,后来才得知电调是可以输出5V电源的,这样我就可以省去12V转5V的电源电路设计,可谓是一大喜事啊!从原理图开始,从STM32最小系统开始和外围电路的连接。到最后的PCB设计,可谓是感受到电路板设计的强大之处,在对PCB检查了很多次之后,发到了厂家开始打样,我也在开发板上测试MPU6050,包括去学习什么是X、Y、Z三个方向的加速度,和X、Y、Z三个方向的角速度,这就构成了6轴立体模型。也开始学习卡尔曼滤波和互补滤波,先后利用匿名四轴上位机观察滤波前后的数据曲线的变化,可是准备了那么多,也学习了利用四元数计算出欧拉角,可是算法我并不是很懂,但是我知道怎么用。也在一个开源电子论坛上面学习到了可以利用MPU6050内部的(DMP: Digital MotionProcessor)硬件加速引擎,可以省去滤波和复杂的四元数数据融合计算,可谓是调高了软件的执行效率,最后我还惊奇的发现DMP居然可以自动校准。实在是太强大了。 在收到打样会来的电路后,开始对电路板进行焊接,这也是我第一次焊接贴片元件,其中还有高难度的QFN的封装,还好我比较机智,有困难找度娘,没错,看了一个QFN的焊接视频之后,我也开始了电路板的攻坚克难阶段。最后在废掉一块电路板之后,我终于完成了电路板的所有焊接和调试。可谓是越战越勇,可不知最难得还是算法的移植问题。 在对无刷电机的驱动,和MPU6050及蓝牙和PC机上面的匿名四轴上位机通信协议搞懂之后,就开始学习串级PID,以前参加2015年全国大学生电子设计大赛时学过单级PID算法,可是这个用的是串级PID,又是一个崭新的概念。其中的学习过程就不一一说明了。可谓是跋山涉水,终于可以整体调试了。我在对PID参数进行调试时,通常会利用蓝牙接受上位机数据后,修改PID变量的值,达到无线,连续的修改参数。在很多个日日夜夜里,没有放弃,最后终于可以让飞行器离开地面,可是稳定性不是很好,因为没有采用地磁传感器,所以利用的是角速度的Z轴数据来进行计算,导致yaw(航向角)有随时间的误差越来越大,导致四轴飞行器会在外界的干扰下发生旋转,导致无法稳定飞行,这个问题由于时间的关系,还没有得以解决,以及NRF24L01模块还没有调试,暂且利用蓝牙进行控制。本次制作可谓是收获满满,也获得了一丝丝的胜利。为接下来的设计打好基础。没有人是一口吃胖的,所以验证了我的那句座右铭:付出努力,不放弃,哪怕是失败,那也是一种收获。加油! |