【ST SensorTile】传感器的参数获取及上位机
首先说声对不起吧,脱更太久,年底的事实在是一个接一个。再加上之前测评的路走弯了,这回算是纠正方向重新走。
由于ST SensorTile给的资料太多,想完成的东西超出自己能力范围,想了半天也想不明白。其实就是安卓这个应用,说来官方给了安卓的dome,并且有现成的库,然后我也能在Android studio上运行跑起来,但是想要改成自己想要的样子,还是比较困难的,比较0基础啊
。
官方提供了“DataLog”这个dome工程,这个工程的功能主要是获取传感器数据写到SD卡上,并通过USB虚拟的串口发出去。发送的内容为加速度传感器3轴,陀螺仪3轴,磁力计3轴以及大气压值。这四组值已经可以满足我本次测评的需要。
接下来就是把这个程序下进模块中。把模块扣在母板上,插上SWD下载线,将程序LOAD进去。附件是ST的虚拟串口的驱动。将ST虚拟串口的驱动安装好之后便可以看到ST的串口了。
ST的串口的波特率是9600,用串口助手看看发的是什么内容。见下图。
可以看得出,ST模块在循环输出在各个时间下的传感器值,还有时间戳。
接下来就该进入正题,如果用这个数据来进行我的测评主题。首先,有了数据后先得获得解析数据。于是我用labview做了一个简单的数据解析程序。
通过这个程序,就可以把串口信息都获取出来,以备之后算法的使用。这个程序附件有2010版本的。
接下来就是如何通过算法来算出现在的天气状况。
第一步,先要了解一下我们用的这些传感器。
我从网上找了一些供大家了解一下。
一、陀螺仪
陀螺仪(Gyroscope、GYRO-Sensor)也叫地感器,传统结构是内部有个陀螺,如下图所示(三轴陀螺),三轴陀螺仪的工作原理是通过测量三维坐标系内陀螺转子的垂直轴与设备之间的夹角,并计算角速度,通过夹角和角速度来判别物体在三维空间的运动状态。三轴陀螺仪可以同时测定上、下、左、右、前、后等6个方向(合成方向同样可分解为三轴坐标),最终可判断出设备的移动轨迹和加速度。
也就是说陀螺仪通过测量自身的旋转状态,判断出设备当前运动状态,是向前、向后、向上、向下、向左还是向右呢,是加速(角速度)还是减速(角速度)呢,都可以实现,但是要判断出设备的方位(东西南北),陀螺仪就没有办法。
传统的陀螺仪属于机械式的,随技术发展,还有出现了振动式陀螺仪、激光陀螺仪、微机电机械陀螺仪等,无论是在体积微型化、测量精度和易用性上都有大大提高。
二、加速计
加速计(Accelerometer、G-Sensor)也叫重力感应器,实际上是可以感知任意方向上的加速度(重力加速度则只是地表垂直方向加速度),加速计通过测量组件在某个轴向的受力情况来得到结果,表现形式为轴向的加速度大小和方向(XYZ),这一点又有点类似于陀螺仪,但陀螺仪的更多关注自身旋转情况(原位运动),加速计则主要是测量设备的受力情况,也就是三轴运动情况,尽管加速计也可能在某个小范围换算出角速度的可能,但设计原理决定似乎更适合于空间运动判断。
三、磁力计
磁力计(Magnetic、M-Sensor)也叫地磁、磁感器,可用于测试磁场强度和方向,定位设备的方位,磁力计的原理跟指南针原理类似,可以测量出当前设备与东南西北四个方向上的夹角。所以,陀螺仪知道“我们转了个身”,加速计知道“我们又向前走了几米”,而磁力计则知道“我们是向西方向”的。
所以在实际应用中,由于应用、误差修正、误差补偿需要,往往会结合使用上述传感器,充分利用每种传感器的特长,让最终的运算结果更准确,比如在Android中,会同时使用磁力计和加速计来运算出Orientation(方位计),运算出的方位信息需要同时结合磁场方向和方向运动情况才能得到。
注意:
上述三种实际使用中,还会延伸出重力感应器(重力传感器,Gravity Sensor,GV-Sensor)、线性加速度传感器(LA-Sensor)、旋转矢量传感器(RV-Sensor)等综合类型传感器(虚拟)。实际上,方向传感器(O-Sensor)也属于综合类型传感器,这类综合类型传感器,就是下面参考资料中提到的"传感器融合"概念。
上面是对加速度,陀螺仪和磁力计的介绍。今天就先更新这么多吧。之后会接着更新这些传感器的值如何运用