位置:51电子网 » 技术资料 » 传感与控制

用加速度传感器来进行手势识别器的设计

发布时间:2008/8/20 0:00:00 访问次数:726

引言

  手机、mp3播放器、硬盘播放器、数码相机、pda等设备都是通过导航键对其进行控制的。目前比较流行的导航键控制方式有四维键、摇杆,这是最常见的两种导航键,此外还有一些手机上有很新颖的导航键设计,例如:lg-kg70的滚轴键、lg-ke608的转盘设计、索爱w830的触摸式、多普达d802的飞梭滚轮等等。这里,我们用加速度传感器设计一种看不见的导航键来代替四维键的功能,这种方案更能满足消费者的好奇心,满足消费者追逐时尚的需求。

  手势识别的控制原理

  本系统利用三轴加速度的值来判定对物体运动预定义的六种姿势。首先,分别对三个轴采样,每个轴各获得50个数据;然后,分别对每个轴上的数据进行处理来判定是否发生了预定义的动作。动作定义在下面的部分说明,这里仅用y轴来说明判定的原理。

  获得y轴上的50个数据存放到数组y_data[n]中,将这50个数求和取平均值。若y_data[n]中数据最大值与最小值之差在一个设定的阈值之内,则认为物体在y轴向上是没有动作的、静止的,此时更新y_init值为y_data[n]求得的平均值;否则,y_data[n]中数据最大值与最小值之差超出一个设定的阈值,则认为物体是运动的,y_init值不变,仍然为上一次静止状态时的值。

  图1和图2是y轴分别向左、向右摇动时采样得到的加速度抽样值y_data[n]。图中红线代表上一次静止时的采样值,蓝线代表运动时的采样值。图1为向左摇动时的值,可以明显看出加速度的值较静止时有明显的变化,向着增大的方向变。

  

  

  从图1和图2中可以看出,两条黑线之间的数据很难断定是哪个动作产生的,因为两个动作都可能产生这样的值。所以,利用黑线之外的数据来判定是向右还是向左摇。因为对于这两个动作,黑线之外的数据有明显的差异,数据相差很多。对于图1这些数据大于150,图2中这些数据小于90。因此这些数据至少相差60,可以很容易地将向左、向右的两个动作区分开。

  本系统就是根据这样的原理来实现的,首先分别设定向左、向右摇时的阈值和两个计数器;然后,将新采样得到的50个值存放在y_data[n]中,将每个值与静止时的值y_init比较,如果数据超出某个阈值,则在相应的计数器上累加,直到所有50个数全部比较完毕;最后,根据计数器值的大小来判定执行了某个动作。

  同理,利用z轴的采样值来判定向上、向下摇,利用x、y两个轴来判定执行图片向左翻转还是向右翻转,这里略去。

  系统描述

  系统组成及功能

  系统由三个部分组成:ct-298单片机控制部分、 mm-2860加速度传感器部分、演示终端,系统框图如图3所示。

  

  ct-298单片机控制部分主要负责传感器数据的a/d变换、动作检测、与演示终端进行数据通信。mm-2860加速度传感器部分负责加速度值的测量并将其转换为电压值。演示终端负责处理从单片机传来的动作类型并执行相应的动作,同时向单片机返回进出二级菜单的指令。对于ct-298单片机系统更详细的设计将在下面的部分介绍,这里首先介绍一下本系统设计的动作姿势及代码,以及与演示系统交互的指令。

  预定义的动作

  系统设计了六种动作,他们分别是左摇、右摇、下摇、上摇、图片左转、图片右转。图4中的图形象地说明了其中的两个动作,其它的动作与此类似。

  

  

  系统还为每个动作定义了相应的动作代码,见表1。

  

  当单片机检测到某个动作时会将相应的值赋给变量type_action,之后通过sci将type_action的值发送到演示终端。如果用户执行的动作不在这六个动作之中,则将no_action赋给type_action,表示演示终端不执行任何动作。

  系统还定义了单片机与演示终端交互的指令,用于系统在主菜单和二级菜单之间的界面切换,指令从演示系统通过sci传给单片机,单片机接收到之后进入或退出二级菜单,见表2。

  

  这里仅定义了一个二级菜单,即图片菜单,系统还可以定义更多的二级菜单和三级菜单。此外,需要说明动作move_turn_left、move_turn_right用于图片翻转,仅在图片菜单中可用,在主菜单不可用。动作下摇执行的是换下一幅图片,动作上摇执行的是退出图片菜单

引言

  手机、mp3播放器、硬盘播放器、数码相机、pda等设备都是通过导航键对其进行控制的。目前比较流行的导航键控制方式有四维键、摇杆,这是最常见的两种导航键,此外还有一些手机上有很新颖的导航键设计,例如:lg-kg70的滚轴键、lg-ke608的转盘设计、索爱w830的触摸式、多普达d802的飞梭滚轮等等。这里,我们用加速度传感器设计一种看不见的导航键来代替四维键的功能,这种方案更能满足消费者的好奇心,满足消费者追逐时尚的需求。

  手势识别的控制原理

  本系统利用三轴加速度的值来判定对物体运动预定义的六种姿势。首先,分别对三个轴采样,每个轴各获得50个数据;然后,分别对每个轴上的数据进行处理来判定是否发生了预定义的动作。动作定义在下面的部分说明,这里仅用y轴来说明判定的原理。

  获得y轴上的50个数据存放到数组y_data[n]中,将这50个数求和取平均值。若y_data[n]中数据最大值与最小值之差在一个设定的阈值之内,则认为物体在y轴向上是没有动作的、静止的,此时更新y_init值为y_data[n]求得的平均值;否则,y_data[n]中数据最大值与最小值之差超出一个设定的阈值,则认为物体是运动的,y_init值不变,仍然为上一次静止状态时的值。

  图1和图2是y轴分别向左、向右摇动时采样得到的加速度抽样值y_data[n]。图中红线代表上一次静止时的采样值,蓝线代表运动时的采样值。图1为向左摇动时的值,可以明显看出加速度的值较静止时有明显的变化,向着增大的方向变。

  

  

  从图1和图2中可以看出,两条黑线之间的数据很难断定是哪个动作产生的,因为两个动作都可能产生这样的值。所以,利用黑线之外的数据来判定是向右还是向左摇。因为对于这两个动作,黑线之外的数据有明显的差异,数据相差很多。对于图1这些数据大于150,图2中这些数据小于90。因此这些数据至少相差60,可以很容易地将向左、向右的两个动作区分开。

  本系统就是根据这样的原理来实现的,首先分别设定向左、向右摇时的阈值和两个计数器;然后,将新采样得到的50个值存放在y_data[n]中,将每个值与静止时的值y_init比较,如果数据超出某个阈值,则在相应的计数器上累加,直到所有50个数全部比较完毕;最后,根据计数器值的大小来判定执行了某个动作。

  同理,利用z轴的采样值来判定向上、向下摇,利用x、y两个轴来判定执行图片向左翻转还是向右翻转,这里略去。

  系统描述

  系统组成及功能

  系统由三个部分组成:ct-298单片机控制部分、 mm-2860加速度传感器部分、演示终端,系统框图如图3所示。

  

  ct-298单片机控制部分主要负责传感器数据的a/d变换、动作检测、与演示终端进行数据通信。mm-2860加速度传感器部分负责加速度值的测量并将其转换为电压值。演示终端负责处理从单片机传来的动作类型并执行相应的动作,同时向单片机返回进出二级菜单的指令。对于ct-298单片机系统更详细的设计将在下面的部分介绍,这里首先介绍一下本系统设计的动作姿势及代码,以及与演示系统交互的指令。

  预定义的动作

  系统设计了六种动作,他们分别是左摇、右摇、下摇、上摇、图片左转、图片右转。图4中的图形象地说明了其中的两个动作,其它的动作与此类似。

  

  

  系统还为每个动作定义了相应的动作代码,见表1。

  

  当单片机检测到某个动作时会将相应的值赋给变量type_action,之后通过sci将type_action的值发送到演示终端。如果用户执行的动作不在这六个动作之中,则将no_action赋给type_action,表示演示终端不执行任何动作。

  系统还定义了单片机与演示终端交互的指令,用于系统在主菜单和二级菜单之间的界面切换,指令从演示系统通过sci传给单片机,单片机接收到之后进入或退出二级菜单,见表2。

  

  这里仅定义了一个二级菜单,即图片菜单,系统还可以定义更多的二级菜单和三级菜单。此外,需要说明动作move_turn_left、move_turn_right用于图片翻转,仅在图片菜单中可用,在主菜单不可用。动作下摇执行的是换下一幅图片,动作上摇执行的是退出图片菜单

相关IC型号

热门点击

 

推荐技术资料

滑雪绕桩机器人
   本例是一款非常有趣,同时又有一定调试难度的玩法。EDE2116AB... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!