引言
随着计算机网络及电子技术的发展,新技术的应用逐渐进入生活中的方方面面。一直以来,电脑鼠标都比较大众化,使用最多的有线鼠标脱离不了空间和感应底板的限制,这就在一定程度上限制了人们对电脑的操纵范围,不能给更多电脑用户提供更方便的服务。即便现在比较流行的无线鼠标也存在一定弊端,虽然能摆脱有线鼠标移动范围的束缚,但是离开感应底板还是不能方便操纵。
更远的使用距离在早期并不被重视,随着电脑的多元化发展,更多的人意识到电脑的别样功能,电脑的使用距离也成为众多用户关注的一个点[1]。随着大批优秀多媒体课件的涌现以及大量教学软件的开发,利用多媒体教室开展教学越来越受到人们的重视。但是,人们在肯定多媒体教室教学作用的同时,也注意到它的一个重要缺陷:教师在讲课时往往被禁锢在计算机前,教学内容和教学形式受到教学软件和设备的制约[2]。
本设计采用LPC1227处理器完成姿态解算、无线通信、USB接口等,经过算法处理后实现了通过人手部动作或者按键,方便地与电脑进行交互,解决了有线鼠标空间活动范围有限的问题。
1 基于LPC1227的软硬件总体设计
系统分为发射与接收两部分,发射部分采用LPC1227芯片负责手部姿态解算,通过无线模块将数据发送到接收端,接收端向电脑发送操作指令功能,负责与电脑的USB进行通信,从而实现对电脑的各种操作。图1给出了总体设计方案流程图。
图1 系统总体设计方案
1.1 加速度计及陀螺仪
选用飞思卡尔公司生产的MMA7260三轴加速度计,使用模拟输出方式,结合LPC1227的DMA外设,可以高速访问陀螺仪输出值[3]。陀螺仪选用MPU6050,因为MPU6050可以使用I2C总线进行通信,而LPC1227内部集成高速的I2C总线规划和数据速率为1 M/s的超快速模式;具有多地址识别和监控模式,且I2C总线引脚具有可编程干扰滤波器FIFO,可以绕过CPU,直接让主机和设备交换数据,极大程度地提高了转换速率;并且MPU6050是内部集成陀螺仪和加速度的六轴传感器,成本较低,市场应用广泛。
1.2 无线收发模块
选择NORDIC公司生产的无线通信芯片nRF24L01。其采用FSK调制,内部集成NORDIC自己的Enhanced Short Burst协议,并且可以实现点对点或是1对6的无线通信,无线通信速度可以达到2 Mb/s,非常适合用来为MCU系统构建无线通信功能[4]。
2 实现原理
2.1 系统工作原理
本设计采用LPC1227芯片负责手部姿态解算,通过无线模块将数据发送到接收端,接收端向电脑发送操作指令等功能,负责与电脑的USB进行通信。在LPC1227芯片实时采集MPU6050的数据并且经过算法处理得到最优姿态之后,通过nRF24L01无线模块发送到接收端。
接收端接收到信息之后进行处理,通过三轴扩展卡尔曼滤波算法对六轴的数据噪声进行滤波和实时估计,得到最优估计之后,采用基于(互补滤波)四元数的AHRS航姿参考系统姿态解算算法,得到人体的最优姿态。
通过最优姿态的实时更新,这个值会被实时更新到电脑的屏幕上,光标会跟随人体移动而移动。在此基础之上可以方便对人体的动作进行识别,实时扫描是否有体感动作指令输入,最后经过USB协议来控制电脑光标的移动。接收端直接通过USB口接到电脑上就可以方便使用,无需提前安装任何驱动。接收端接收到信息后进行处理,并通过USB协议传输到电脑上,从而控制光标移动。
2.2 姿态解算与控制方法
使用MPU6050对人的手部动作进行解算,经芯片的处理分析,得到人体手部的最优姿态。使用手腕的转动和移动,并结合设置在鼠标上的按键控制电脑,根据不同的需求,在电脑上实现鼠标指针的上下左右自由移动,同时鼠标上的按键还可以实现一键打开、一键播放、一键画笔等功能。
针对现在大部分高校老师上课采用PPT教学存在的一些弊端,比如每次想翻页PPT都要走到电脑前、无法轻易向同学指示现在所讲知识的位置等。本设计的智能无线体感鼠标可以解决这一系列问题。
2.3 四元数姿态解算算法原理
2.3.1 四元数简介
为什么使用四元数,先来看看一般关于旋转(面向)的描述方法——欧拉描述法。它使用最简单的x,y,z值分别表示在x,y,z轴上的旋转角度,其取值为0~360(或者0~2 π),一般使用roll,pitch,yaw来表示这些分量的旋转值。
需要注意的是,这里的旋转是针对世界坐标系的,这意味着第一次旋转不会影响第二、三次的转轴。简单地说,三角度系统无法表现任意轴的旋转,只要一开始旋转,物体本身就失去了任意轴的自主性,这也就导致了万向轴锁(Gimbal Lock)的问题。因为欧拉描述中针对x,y,z的旋转描述是世界坐标系下的值,所以当任意一轴旋转90°的时候会导致该轴同其他轴重合,此时旋转被重合的轴可能没有任何效果,这就是Gimbal Lock。利用四元数可以很好地解决这个问题。
2.3.2 如何利用四元数进行旋转变换
如果矢量R相对固定坐标系旋转,并且该旋转可以用四元数q描述,新矢量记为R′,则R和R′之间的变换可以表示成下述四元数运算:
R′=q×R×q-1
矢量R相对固定坐标系旋转,旋转的角度和轴向由q决定,在上述运算中,R被当成一个标量部分为0的四元数,即:
R=0+Rxi+Ryj+Rzk
一个矢量V相对于坐标系OXYZ固定:
V=xi+yj+zk
从坐标系OXYZ转动了q,得到一个新坐标系OX′Y′Z′,V分解在新坐标系 OX′Y′Z′中:
V=x′i′+y′j′+z′k′
矢量V在两个坐标系之间的坐标变换:
V′e=x′i+y′i+z′k
Ve=xi+yi+zk
所以
V′e=q-1×Ve×q
表示坐标系旋转,其中:
Ve=xi+yi+zk
V′e=x′i+y′i+z′k
如果一个矢量V固定,坐标系旋转按照四元数q进行了旋转,得到了一个新坐标系,则该矢量分别在新旧坐标系中投影表达式间的关系,借助映像方式可以表示为:
V′e=q-1×Ve×q
如果一个坐标系固定,一个矢量VE按照四元数q相对该坐标系进行了转动,得到一个新的矢量VE′,则新旧矢量之间的关系为:
VE′=q×VE×q-1图4无线传输控制原理图
3 系统硬件设计
3.1 发射模块与接收模块
本系统的硬件设计相对简单,只有LPC1227和STM32两个主控芯片分别控制电脑鼠标的发射部分和接收部分,人的手部姿态经内部陀螺仪对欧拉角度的采集。
发射部分通过LPC1227芯片对手部姿态解算,最后经nRF24L01无线收发器将数据发送到接收端。具体的连接如图2所示。
图2 系统硬件发射部分框图
接收端收到无线发送的指令信号后,随即通过STM32主控芯片与USB协议将信号发送到电脑端,电脑识别指令信号后,实现各种操作功能。具体的连接如图3所示。
图3 系统硬件接收部分框图
3.2 无线传输控制芯片
STM32为本次制作的无线控制芯片,它主要负责无线传输部分,接收陀螺仪的姿态解算数据,通过与LPC1227主控芯片的完美结合,从而实现操作者想实现的功能。其原理图如图4所示。
主控部分为STM32最小系统电路图,直接用USB数据线接电脑,通过XC6206稳压芯片转为3.3 V给系统供电。上电后,发光二极管会变亮,在此起指示灯的作用。
图4 无线传输控制图
4 系统软件设计
人们根据自己的需要对鼠标进行不同方位的移动,加上对鼠标按键的操作,经过内部姿态解算,对电脑发送不同的指令信号,从而实现对电脑的不同操作。发射部分软件流程图如图5所示。
无线接收部分接收到人们的手部动作姿态与按键的指令操作信号后,通过USB协议将操作指令发送到电脑端,从而实现对电脑的操作。接收部分软件流程图如图6所示。
图5 系统发射部分软件流程图
图6 系统接收部分软件流程图
结语
本设计的智能无线体感鼠标无需任何驱动,用户可直接将该产品的发射端拿在手中,通过手势的变化在空中完成光标移动,既摆脱无线鼠标无法离开桌面的束缚,又改变了传统鼠标翻页笔利用大拇指操控“轨迹球”移动鼠标的繁琐。
同时集成一键标注的强大功能,可以实现手势控制在PPT上标注和书写,而且可以任意更换线条颜色。除实现普通翻页笔的上下翻页功能,还可“一键”实现PPT的全屏播放和退出功能,而且对PPT勾画的痕迹可以随时进行清除。
本设计几乎实现了有线鼠标所具备的所有功能。同时,此鼠标具有科学的外观设计,符合人体功能学,手感更舒适,操作更便捷。