马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这几天用几个帖子介绍了一下MWC飞控做的小飞机,这篇文章继续讲MWC,哈哈。在我刚入坑MWC的时候,买了一大堆传感器,发现再config里面居然没有直接定义,于是乎换列表支持的。。。。其实没这么麻烦,自己研究一下config就可以完美解决这个问题。转贴http://tieba.baidu.com/p/3441325219?bd_source_light=1563095&pn=0&
在Multiwii中团聚的GY-85GY-86 GY-87 GY-88四兄弟镇楼:
Multiwii最大的特点就是极强的DIY性,支持ITG3205 ADXL345 HMC5883L MS5611 BMP085等等一大堆传感器,再根据不同的组合而成的IMU(惯性测量单元)更多,其支持的几款国产GY系列传感器模块,如图:
那么,问题来了,如果你恰好买了一块奇葩的板子,比如我刚入坑时就买了块GY-87,结果发现没有这个支持欲哭无泪,与GY-86的差别只是气压计,显然MS5611双孔气压计精度和价格要高的多,但BMP180的精度还算凑合,当时问了几个老手都不知道,只好重买。
在成功撸出一架小机机后静下心来研究了下源码,找到了解决办法,感兴趣的可以看看: 首先,一块集成IMU上有三个要素:
1.传感器类型
2.传感器轴向
3.传感器驱动方式与地址冲突
只要这三个东西设置对,multiwii就能正常获得姿态。
既然有这个“#define”,那么一定就有“#ifdefined”,这是在固件中的“def.h”头文件中(看名字很容易看出来),从前面看有很多比如MCU,舵机电机数之类的设置,大约在三分之一处是IMC的定义:
继续往下翻找到GY系列传感器的位置:
我们重点看一下GY-86模块的:
Multiwii的定义结构式类似于树状的,很容易理解,一层层的定义:集成板选择——传感器设置——驱动并使用。把gy86的复制一个,改一下重要的地方:
放两张传感器的图,可以看到轴向都是一致的,所以除了气压计类型其他都不改(这里用BMP085是因为BMP085与BMP180兼容!!!)
返回“config.h”文件加入其定义
成功编译!
APM和NAZA很强大,但是mwc的DIY性更强,它是很多人的第一个飞控,让更多人对飞控有更深入的理解,这是拿钱砸航模坑买商业成品飞控的人所不具备的,希望能有更多爱好者一起研究MWC!
最后贴一张Arduino pro mini的图。大家千万不要小看arduino,其实他能做的事情太多了。。养活了一大堆开源项目,个人认为,学arduino比学51有意思得多,因为他操作性更强(当然要升入理解单片机肯定必须入坑51。。),最近这几篇帖子就是对MWC的一些介绍。 参考我之前的利用这块板子做的小飞机: 欢迎大家提问~
|