18704| 7
|
[讨论] 掌控板加速度传感器小记及摇一摇功能 |
本帖最后由 Forgotten 于 2020-8-28 11:28 编辑 记录一下对于加速度传感器的了解,仅供参考。 使用硬件为:掌控板 软件为:Mind+ 使用如下程序,直接显示加速度传感器数值: 将板子放置不同的状态: 1、水平躺下屏幕朝上,Z值偏离0最大,接近-1左右。(注意:最新版Mind+已经将输出单位从g改成了m-g,因此输出值在本文基础上乘以1000) 类推水平躺下屏幕朝下,应该是1左右(最新版则是1000左右) 2、左短边侧立,Y值偏离最大,接近-1。(最新版则是-1000左右) 类推右短边侧立,接近1(最新版则是1000左右) 3、长边侧立按键在上,X轴偏离最大,约为1.(最新版则是1000左右) 类推长边侧立按键在下,则x轴接近-1(最新版则是-1000左右) 原因: 此加速度芯片受到向下的重力加速度影响,向下的方向是1g的加速度,因此: 当板子水平放置时,z轴就会收到1g左右的加速度。 同理板子竖直放置时,x轴有1g左右加速度,侧立放置时,y轴有1g左右加速度。 那么这个功能有什么用呢? 答案是姿态感知,当你知道xyz三个方向上的加速度时(静止状态),通过三个方向上的分力即可得知当前板子的姿态(因为合力也就是重力加速度总是朝下的) 以上为板子静止(相对地球)时的加速度,如果把板子甩起来呢?那么对应方向上就会出现加速度增加(正负)的情况,这样就知道当前板子是静止还是运动了。 发现还有一个“强度”的选项,这个其实是三个分量的矢量和,如果板子静止的时候,这个值总是接近1g。 这个模块最常用的应用就是“摇一摇”的功能了,因为是三个方向的合力,因此只要这个值大于某个值,那么就是板子在摇一摇的状态了。 使用如下程序测试: 如何实现随时感应而不是每次都要循环判断?偷懒点的做法当然是使用“多线程”功能了。 先记录到这里,以后有时间再补充。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed