本章将介绍Micro:bit加速计的使用,可采用Micro:bit进行姿态检测,运动捕捉等。 1.基本介绍 Micro:bit采用的是Freescale MMA8653FC 三轴加速度传感器,I2C接口与外部通信,10位ADC精度,可设置量程为±2g,±4g,±8g,数据最大更新速率为800Hz。 当Micro:bit处于静止或匀速运动状态时,加速计仅检测到重力加速度;将Micro:bit轻微甩动,加速计检测到甩动的加速度远小于重力加速度,可忽略不计,因此,在使用Micro:bit过程中,主要是检测当姿态变化时,重力加速度在x,y,z轴上的变化,并在此基础上应用。 本章,将介绍加速度传感器对几个特殊姿态的检测,之后来查看俯仰,横滚角,最后,查看加速计输出的三轴原始数据。 2.Micro:bit特殊姿态的检测打开makecode,采用积木块的方式编写以下程序: 下载,观察现象: 震动将Micro:bit晃动,则可见Micro:bit显示数字1,表明,只要有晃动,无论朝哪个方向晃动,该条件都将满足。 徽标朝上徽标指的是Micro:bit上Micro:bit这几个字以及Logo,徽标朝上示意图如下所示: 由图可得,当徽标朝上的时候,能够显示数字2。 徽标朝下同理,徽标朝下指的是Micro:bit上Micro:bit这几个字以及Logo朝下,徽标朝下示意图如下所示: 由图可得,当徽标朝下的时候,显示的是数字3(倒立的3): 屏幕朝上 屏幕朝上指的是LED点阵朝上,当LED点阵朝上时,显示数字4。 屏幕朝下 同理,屏幕朝下指的是LED点阵朝下,当LED点整朝下时,显示数字5 向左倾斜如图为Micro:bit向左倾斜示意图: 注意Micro:bit向左倾斜为正面朝上,徽标朝前,然后再往左边倾斜,当向左倾斜时,Micro:bit显示数字6。 向右倾斜同理,Micro:bit向右倾斜的示意图: 注意Micro:bit向右倾斜为正面朝上,徽标朝前,然后再往右边倾斜,当向右倾斜时,Micro:bit显示数字7。 自由落体 举例:当不小心碰到Micro:bit使其从桌面掉落,则为做自由落体运动,此时,满足自由落体的条件,此时,将显示数字8。 3g,6g,8g 如果需要满足此条件,则需要达到3倍,6倍,8倍重力加速度甩动Micro:bit。 3.旋转、横滚角打开makecode,采用积木块的方式编写以下代码: 注意,需要将串行重定向到USB,同时,建议使用离线版本的makecode(可查看串口数据)。 下载程序,待程序下载完成后,可看到makecode的显示数据按钮,如下图所示: 点击该按钮,进入到串口数据显示界面,该界面同时将串口数据以波形的形式显示出来,如下图所示: 正确显示出波形后,将Micro:bit徽标朝前,屏幕(LED点阵)朝上,依次将Micro:bit向前倾斜,向后倾斜,向后倾斜,向前倾斜,得到旋转数据;然后,将Micro:bit依次向左倾斜,向右倾斜,向右倾斜,向左倾斜,得到横滚数据;具体数据变化如上图所示。 4.加速计原始数据 实际上,加速计输出的原始数据是三轴加速度,姿态变化时,重力加速度在三轴上的分布将发生变化,可依据三轴加速度数据变化计算出姿态角的变化,因此,加速计原始数据在项目开发中也有一定的用途,下面将观测加速计原始数据: 打开makecode,采用积木块的方式编写以下代码: 下载到Micro:bit,打开数据显示(设备)按钮: 首先,查阅MMA8653FC数据手册,以及Micro:bit的硬件原理图得知,Micro:bit加速计坐标轴如下图所示: 显示出如下界面:分别显示了加速度在X轴,Y轴,Z轴的分解,以及加速度的合成(重力加速度及其它外力作用的加速度合成): |