3221| 3
|
三轴加速度传感器的体感控制 |
体感控制 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg 1、认识三轴加速度传感器并了解其工作原理; 2、掌握加速度传感器采集数据的方法; 3、通过编程实现体感控制。 一、 三轴加速度传感器——Science 三轴加速度传感器是基于加速度的基本原理去实现工作的,具有体积小和重量轻特点。它可以测量空间加速度,能够全面准确反映物体的运动性质。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif 二、三轴加速度传感器原理及应用——Engineeringand Technology STEAM百科 三轴加速度传感器工作原理 三轴加速度传感器是一种测量加速度的电子设备,用于将物体受重力作用和外力作用而产生的加速度这个非电量转换为电量输出,根据电量变化的大小获得加速度值的大小。 根据三轴加速度传感器的工作实现方式分类,包括压阻式、压电式和电容式,加速度值分别正比于电阻值、电压值和电容值的变化,继而通过放大和滤波电路进行处理,从而获得包含加速度信息的电压值。 三轴加速度传感器应用 1、虚拟现实领域 三轴加速度传感器将数据传给电脑,再通过电脑处理这些数据,其应用有游戏手柄、三维空间鼠标、三维空间画笔等。 2、健身运动领域 通过三轴加速度传感器测量人的动作姿势,应用有虚拟手套、可穿戴电脑锣盘、人体步态检测装备等。 3、工程测量领域 测量被测对象的运动参数,获得被测对象的的运动状态,其应用在导航定位、运动轨迹跟踪、自由落体运动测量等。 4、军用领域 通过对载体的姿态测量,确定载体的运动数据,广泛用于飞机、水下设备、导弹制导等方面。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif 三、试验与科学——Technologyand Math 1、三轴加速度数据采集 三轴加速度传感器的接口是IIC接口,其中数据线SDA占用管脚21,控制线SCL占用管脚22。为了方便大家的使用,在Aifish软件里面,我们将三轴加速度传感器相关的算法以及代码块做了封装处理。 三轴加速度传感器的相关指令代码块在“科创板v2.0”模块中。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif “初始化三轴传感器”代码块功能是将三轴加速度传感器的管脚号、管脚类型等信息告知科创板,使用该代码块后科创板就可以读取三轴加速度传感器的信号了。 “获取x轴”代码块的作用是读取三轴加速传感器x轴上的加速度值,我们可以点击“x”右边的倒三角,可以更换为“y”或“z”。 接下来我们要做的是检测科创板x轴上加速度的值,调整科创板的位置,观察x轴加速度值的变化,以此来判断科创板x轴的正方向: file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif 我们在转动科创板时,发现x轴的最大值与最小值并不是反向相等的,这是因为加速度传感器的初始数值是有偏差的,本节课只是做一个解释,让同学们明白这一点,下节课的时候我们会详细讲解。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg 通过转动科创板,结合x轴加速度的读数变动,我们可以判断出科创板x轴平行于科创板向上。 按照这种方法,我们在分别对y轴和z轴进行检测,可以得出科创板y轴平行于科创板向左,科创板z轴垂直于科创板向下: file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif 我们已经知道科创板的坐标系布置,这样我们就可以通过三轴加速度传感器的数据变化来制作一些有趣的小创意了。 2、体感控制 同学们之前有没有玩过游戏啊,那体感游戏呢?想想就很酷是不是。其实体感控制距离我们并不遥远,我们用科创板就可以做一个简单的手势体感控制。 考虑到三轴加速度传感器测得的数值存在一定的误差,且读数不断波动,我们把判定条件的阀值设定成-0.1和0.1。也就是说只有当科创板倾斜的角度足够大时,方块才会移动。 我们首先在OLED显示屏的中间位置点亮一个4*4的小方块: file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif 这里我们用到x跟y两个变量,是为后期程序做准备,最简单点亮4*4小方块的方法是直接在起点(x,y)处输入对应值。 这里需要注意的是OLED显示屏的坐标系与三轴加速度传感器的坐标系是不一样的。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif 我们以三轴加速度传感器的y轴举例,当三轴加速度传感器y轴测得的数据大于0.1的时候,也就是科创板是往左倾斜的,此时4*4小方块应该是要往左移动的,也就是说小方块要向OLED屏幕x轴的反方向移动,所以OLED屏幕x轴的数值要减小: file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif 因为屏幕的横向范围为0~127,纵向范围为0~63,方块边长为4,所以屏幕x轴的约束范围为0~123,y轴的约束范围为0~59,这样4*4方块就不会超出屏幕了。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif 以此类推,我们可以写出当科创板是往右倾斜的程序块以及科创板上下倾斜时的程序块: file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif 接下来我们要做的就是将点亮4*4小方块的程序与控制小方块移动的程序相结合了,将两块组合在一起,我们就可以通过手势去控制小方块在OLED屏幕中的移动了: file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif 将上述程序下载到科创板后,就可以实现体感控制了,如果你觉得小方块的移动速度慢的话,可以修改file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif 里的参数,修改成2或者3尝试一下。 四、延伸与扩展——Arts 想一想,能不能使用三轴加速度传感器结合OLED显示屏做一个可以利用手势控制的飞机大战小游戏呢,怎样去实现? file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image030.jpg 请以小组的形式进行合作,尝试做一个手势控制的飞机大战小游戏。 设计要求: (1)可以利用手势控制飞机的移动方向,躲避敌军的飞机; (2)保证控制方式安全可靠。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image032.jpg |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed