气象站数据,大体有温度、湿度、大气压、风速、风向等。从设计角度看,温湿度,大气压力都有现成的,其实关键就是怎么处理风速和风向。风速这个东西前面已经分析,利用风杯,采用和自行车码表类似的方案,可以测到风速。可是在sensortag上似乎没有开放的IO口,因此先行放弃了。因此,风向测量就是这个设计中的关键部分。在还没看具体资料的时候,觉得简单按照磁力传感器给出的值不就可以得到方向了。结果等看到芯片资料,才发现实际情况远非想象的简单。
首先我们知道电流周围是有磁场的,这个会和地磁场直接组合在一起。因此测量地磁场必须首先把电路板上的磁场强度去除。不同的电路板产生的磁场自然不一样,这个校准就必须自己来完成。
第二,即便已经测到了无干扰的地球磁场强度,如果想单独靠磁力计来求判断方向,那么必须保证芯片是水平放置的,(理论上说只要保证某个轴上没有磁场即可,不过习惯水平放置,让z轴上没有磁场)这样才能从x、y轴的磁场大小求出和正北的夹角。而事实上设备放置时是不可能绝对水平的,尤其是风向本来就要求设备不断旋转,更难保持水平。因此测量方向还必须借助角度传感器(加速度计或陀螺仪),求出板子的倾斜角度,利用倾角补偿才能得到比较准确的角度。
因此总体设计在TI BLE上直接能完成,主要就是怎样结合IMU3000和MAG3110把角度给测准了,也就是如何对得到的磁场强度和角度的数据进行综合处理的问题。这方面freescale倒是提供了一篇参考案例,给出了详尽的原理、算法还有对应C#的code,难道可以直接用到苹果上?话虽如此,正如前面所说,身边两只苹果一只乃LD家版本较低不支持BLE,另一只同事的ipad mini也不好意思拿来长时间调试。因此制作计划一直就此停滞。在这里只能提供大略的参考英文文献,以作交差。
蒙eeworld美声小编提醒,特此谢罪方案一枚。
|