Forgotten 发表于 2019-5-12 00:50:57

掌控板加速度传感器小记及摇一摇功能

本帖最后由 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。

这个模块最常用的应用就是“摇一摇”的功能了,因为是三个方向的合力,因此只要这个值大于某个值,那么就是板子在摇一摇的状态了。

使用如下程序测试:

如何实现随时感应而不是每次都要循环判断?偷懒点的做法当然是使用“多线程”功能了。

先记录到这里,以后有时间再补充。

KIKIYA 发表于 2019-5-12 01:01:45

亮哥 该睡觉了

Forgotten 发表于 2019-5-12 23:10:58

KIKIYA 发表于 2019-5-12 01:01
亮哥 该睡觉了

{:5_153:}{:5_153:}{:5_153:}

Storm 发表于 2020-2-10 15:40:42

看懂了摇一摇的原理,哈哈。

youjingisland 发表于 2020-2-11 23:09:31

参考一下{:5_191:}

DFandi 发表于 2020-11-29 16:36:03

想知道把加速度单位改成mg有哪些好处?

Forgotten 发表于 2020-12-1 15:13:57

DFandi 发表于 2020-11-29 16:36
想知道把加速度单位改成mg有哪些好处?

方便低年级学生理解吧

肖申克 发表于 2023-10-1 18:14:08

您好,我按照您这个程序,出现的现象是:加载之后屏幕显示乱码,只有在摇晃的时候蓝色灯亮,屏幕才正常显示
页: [1]
查看完整版本: 掌控板加速度传感器小记及摇一摇功能