摘要 CLinux和Microwindows移植到基于ARM的嵌入式系统中后,利用加速度传感器ADXL105达到了用手的动作对GUI菜单进行控制的目的www.cechina.cn,从而实现了更自然的人机交互输入。要:本文提出一种新颖的用手的动作来控制GUI输入接口的思路和具体实现技术。
关键词:GUI;ARM;加速度传感器;动作控制
引言
嵌入式系统在消费类电子产品中的应用发展迅速控制工程网版权所有,已经渗透到生活的方方面面,包括手机、个人数字助理(PDA)等。围绕各种消费类电子产品的嵌入式应用技术也不断引起人们的关注。其中,除PC机中成熟的GUI(图形用户界面)在嵌入式系统中得到广泛应用外,一些新的用户界面也初露端倪。
计算机用户界面是指计算机与其操作者之间的人机交互接口。以GUI为基础的人机交互方式的出现,大大降低了计算机使用的门槛,促进了计算机的普及和应用。随着计算机技术,特别是嵌入式系统的飞速发展,人们对用户界面又有更高要求,希望能够出现更直观自然的用户界面。使用语音、自然语言、行为姿态、动作等更简便而高效的输入方式一直是用户界面所追求的目标,为此本文作了实验性的基础研究,
并在ARM嵌入式系统上实现了基于人手动作的图形界面菜单控制。
图1 系统结构框图
图2 ADXL105与LM339的硬件原理图
用动作控制GUI的工作原理
目前一些利用动作进行识别控制的方法都是基于传统的图像识别方法,通过摄像头拍摄人体的行为姿态或动作,对拍摄的图像进行分析处理,利用相应的识别算法进行识别控制,从而达到利用动作控制GUI的目的。而本文介绍的是另一种基于人体行为姿态或动作的直接识别技术CONTROL ENGINEERING China版权所有,其中最基本和最简单的就是基于人体的肢体动作,特别是人手动作的识别方法。本文设计了利用加速度传感器来识别人手动作的输入方式。
用人手动作控制GUI是指利用加速度传感器判断手腕上下翻动的方向,从而控制GUI中菜单的上下翻动,实现手动控制菜单。当手腕静止时,此时加速度是0 g,输出值为加速度为0 g时的输出电压;当手腕向上翻动90°时,加速度认为是1 g;而向下翻动90°时,加速度就为-1 g。利用加速度传感器测量手腕在上下翻动时加速度的数值变化,就可对手腕翻动的方向做出判断,实现用手腕动作控制菜单的功能。
本文将介绍利用加速度传感器ADXL105,在以基于ARM7TDMI内核的S3C44B0X为处理器的嵌入式系统中CONTROL ENGINEERING China版权所有,通过手腕动作对菜单进行识别控制的实现。
在ARM嵌入式系统中的实现
系统结构
CLinux和Microwindows,利用ADXL105加速度传感器实现了用手腕动作控制菜单的功能。该系统的系统结构框图如图1所示。本研究采用S3C44B0X作为主控芯片,在开发板上移植了
ARM微处理器S3C44B0X
随着嵌入式产品对高处理速度、网络通信、实时多任务、超低功耗等需求的增长,高端嵌入式处理器已经得到了普遍认可和广泛应用。目前比较流行的嵌入式微处理器包括ARM、MIPS、Power PC、68K等系列。其中ARM微处理器由于体积小、功耗低、高性能、低成本等特点,得到了广泛应用。本文采用的S3C44B0X是三星推出的基于ARM7TDMI内核,为手持设备和一般应用提供高性价比的16/32位微处理器。
加速度传感器ADXL105
用于测量加速度和倾斜角度位置的传感器采用ADI公司的集成单轴加速度芯片ADXL105。这是一种利用微电子机械(MEMS)加工技术开发的高性能、高准确度的变间隙差动式结构的差容式力平衡加速度传感器。它具有结构简单、动态响应好、高带宽、能实现无接触式测量、灵敏度好、分辨率高和0g偏差,以及温度漂移较低的特点。
系统软件移植
CLinux针对嵌入式应用的特点,对LinuxCLinux是目前广泛应用的一种面向控制的嵌入式操作系统,它符合GNU/GPL公约,完全开放源代码。 2.0/Linux 2.4内核进行了重新修改和编译,包含常用的API,内核小于512 KB,且保留了原来Linux操作系统的高稳定性、网络功能和对各种文件系统的支持。它专门针对没有内存管理单元(MMU)的CPU而设计,并为此专门做了许多小型化的工作。
C/OS和Microwindows移植到了开发板上。由于篇幅所限控制工程网版权所有,这里就不作详细论述。Microwindows是一个开放源码的图形用户接口,其目标是在嵌入式Linux平台上提供与普通个人电脑类似的GUI。它可提供与X_Windows类似的功能,但占用的内存资源只有100K~600KB左右。本系统中已经成功地将
实现方案
对于本应用的