本帖最后由 trouvan 于 2017-8-20 12:36 编辑
这些记录发了一份给学校老师,希望能给下一届的学弟们一点方向。 这次电设,自我评价做的很不好。最后飞机坏了,但遗憾的是我们竟然不知道是什么地方坏了,在那里瞎修了一天,越修越乱。关于坠机的原因,当时也没能分析出来。
坠机的原因,后面我想通了,可是已经来不及了。 原因是:串口中断的高优先级打断了 陀螺仪的I2C通信,而I2C通信处又没加超时退出。
下面是我们的一些方案: 机架F330, 6寸桨 3S电池
我们使用自己画的飞控板,主控芯片是STM32F103,加自己写飞控代码,主要是怕直接使用成品飞控需要与其他模块联动时不好修改 自己写飞控,所有底层都在自己掌控之中,方便与其他模块交互 但缺点也很明显,调试自己的飞控太耗时间,如果没有充足的时间,尽量用开源的飞控
摄像头我们使用鹰眼+MK60。 鹰眼摄像头的帧率可以达到150帧,且返回的是二值化过的图像。 使用MK60是因为实际上这是智能车竞赛常用的摄像头,以前参加智能车的时候已经有一整套的代码,不必重新移植
飞控板与摄像头模块通过串口进行通信。摄像头模块找出视野中可能是起点、或者小车的东西,将坐标返回给飞控板 飞控板自己决定哪个才是真正的目标。
下面是我给老师发的一些总结:
1、早调试,能早点暴露各种问题。在比赛之前越经常修飞机,比赛时出问题修理就比较有方向性。比如电调油门行程变了, 如果之前不知道这回事,肯定是以为电机或者电调坏了,然后一通乱换,越换越乱。
2、关于四轴调试的安全性,之前在网上看各种恐怖,这也导致了我们很长一段时间不敢拿着飞机进行飞行测试, 一般是放在“烤四轴”上进行姿态环参数调节和空阔地区飞行测试,但到空阔地方飞行很不方便,不可能频繁测试。 烤四轴又只能测试roll pitch的参数,其他还有定高、偏航,都需要反复调试。 实际上比赛常用的F330机架及6寸桨,并没有那么危险,,在装好防撞圈之后,并确保子弹头正反牙正确(不然会射桨,但只要正确是不会射桨的), 托着机腿进行飞行测试是很方便的。 我们直到比赛前几天才发现这件事,浪费了很多时间。
3、关于起飞。起飞时,油门要突然加大,让飞机像有个弹簧一样,直接弹上去,否则会往一边偏。 这是由于近地的时候有地面效应,不是平衡的角度设置不对,不要改错方向
4、工欲善其事必先利其器,在调试之前,应该先做好一个方便的遥控,常见的用NRF24L01来做。 我们当时嫌还要写SPI麻烦,实际上用蓝牙调试更麻烦。在空旷地方用蓝牙调试要注意距离,一旦超过距离蓝牙断开非常危险,如果用2401来做就一般没这个情况。
5、MCU之间的通信,其实挺麻烦的,但又常常需要。如摄像头先用一个单片机处理再发给飞控。 常见的可以用I2C,一个配置成主机一个配置成从机,但配置成从机的资料很少,需要较长的时间来学习调试。 另外是用串口通信,串口要注意帧头、帧尾、丢帧处理。MCU通信最好在比赛之前就调好,否则调试这个太浪费时间了
6、飞控板建议自己设计,一者可以设计自己常用的芯片,二者可以自己做些拓展。但既然是设计为比赛服务,除了飞控功能外,还应多引出一些备用管脚。 我当时设计的飞控板,仅加了几个超声波接口,整个板子仅引出一个串口,导致后期做MCU通信时,串口既要接受命令,又要读取位置,各种冲突,如果当时多引出 一个串口,就可以省下不少时间。另外,电源5V、3V3、GND的管脚也适当引出几个,后期要加板子时非常方便,否则就只能像我们经常要拿线直接焊在板子上。
7、飞控的姿态计算方法,如果用四元数,一般有两种。一种是IMU,一种是AHRs。前者仅用到陀螺仪和加速度计,因此对yaw没有纠正,导致会自旋。后者加入磁力计的矫正,可以得到 绝对的yaw。但当磁力计干扰较大时,AHRs会导致pitch和roll解算出错。对于这个,有两个办法,一是校准磁力计,二是roll和pitch用IMU解算,yaw用AHRS解算。 我当时比较匆忙,直接既调用了AHRs又调用了IMU。但实际上二者的算法几乎是一摸一样的,只是AHRS多了磁力计,因此应该可以在一个函数里做些操作,直接把两个分开。
8、磁力计是需要校准的。每次往飞机上加的大部分东西,只要能通电,都会对磁力计产生或大或小的影响,尤其是BB响,那东西两个蜂鸣器摆在那儿,整个磁场都歪了。 因此如果要用BB响,尽量每次都放在同一个位置。因此每次往飞机上增加东西,都要校准一下磁力计。校准的效果,以将飞机静止摆放,yaw不会偏移为效果好。 另外,每次到一个新的场地,也应该校准一下。109进门地上有一道长方形的铁,对磁场影响特别大。靠近那个地方和其他地方磁场差别较大。这个应注意一下,否则会 怀疑人生。磁力计的校准,可以用软件校准,这种方法需要采集较多的点,运算量比较大,一般是在PC上运行。但比赛的时候电脑不能带进场地,但测试场地很可能需要校准 磁力计,因此最好在单片机里写个简易校准的程序
9、刚开始学习飞控算法时,可以先用一个空心杯电机做个小飞机来调。大飞机的危险性、及测试的繁琐程度决定其测试频率肯定比不上小飞机的。
10、大飞机调试时建议用烤四轴或者万向云台(好像就是监控器的平台?)
11、电调的油门是需要校准的。但好像有的电调受到撞击后油门行程会变。如果突然有个电机变得不怎么爱转,算法上有没有改变,那么很可能是油门行程变了,不是 电调或者电机坏了。
12、超声波、飞控板(其实是陀螺仪等传感器)需要减震,可以直接垫上软泡沫,然后用热熔胶粘上。
13、调试时,最好一个人拿手柄控制飞机的急停、起降,另一个人用蓝牙增减参数,一个人调既要注意参数又要注意防止飞机跑飞,会累死的。
|