摘要:为弥补多媒体教学中激光笔的不足,提出了一种基于微加速度计的无线教鞭系统,它不仅具有激光笔上下翻页的功能,而且能在空中自由灵活移动实现高精度点击的功能,该系统以微加速度计ADXL345作为信号检测元件,并采用低功耗低成本微控制器AT89S52和RF芯片nRF24 L01进行信息处理与无线传榆,符合人体工程学设计,最大限度地满足人们使用鼠标时在手感以及舒适度和使用习惯方面的要求。
目前多媒体教学或会议演示中已经用到无线教鞭,但是更多的只能用来文档的翻页,所以使用时还得配合有线或无线的鼠标,正由于这种传统的机械式或光电式鼠标不能脱离平坦有摩擦的工作表面,自身体积大,工作空间受限制,移动不自由,所以我们开发出了基于微加速度计的无线教鞭。
国外和港台地区有一些单位早些年已经开展了这方面的研究,近些年国内对该技术的研究日趋成熟,2002年东南大学的李宏生申请了名为“移动式全电子惯性鼠标”的实用新型专利,它利用加速度计检测到的加速度信号经过积分并分频后产生速度脉冲,再配合专用的鼠标IC芯片实现。2004年清华大学工程物理系张乐平成功设计了一种基于加速度计的惯性鼠标,通过倾斜使用1的方式,获得了很好的效果。2006年上海交通大学微纳科学技术研究院黄得志等人成功设计出了一种基于微加速度传感器的无线鼠标,以上3种鼠标可以说做的很好,但是他们使用专门的编码和解码芯片或专用的AD转换、鼠标IC芯片或高性能的微控制器,这样相应地增大了板的体积,也增加了成本,我们基于此开发出了基于微加速度计ADXL345的无线教鞭,该加速度计集成了AD转换功能可以将采集的加速度信号转换成数字信号,微控制器采用功耗小、价格低的AT89S52,它的无线传输距离能达到30~60 m,是传统鼠标的2~4倍,能在教师和会议室的任何位置遥控主机端光标的动作,完美的结合了传统鼠标和激光笔的功能,体积可以做的很小,便于携带,灵活应用与各种场合,并且该无线教鞭符合人体工程学的设计,能预防鼠标手的出现。
1 系统整体设计
本项目设计分为两部分,远端用户控制子系统和主机端信号接收子系统。远端用户控制子系统负责采集鼠标位移信息和按键信息,并发送给主机端信号接收子系统。主机端信号接收子系统负责对接收到的信息进行编码并与计算机进行通信,控制计算机执行相关操作。
远端子系统由微加速度计、微控制器和无线射频接收器组成。首先,远端子系统采集微加速度计ADXL345的信号,将其通过特殊的积分算法转化为位移量。然后,远端子系统综合位移信号和按键信号,按照无线模块定义的格式对信号进行编码、最后通过无线射频模块将编码好的数据发送给主机端子系统。
主机端子系统由无线射频收发器、微控制器和USB控制芯片组成。USB控制芯片USBPD1D12负责主机端子系统与上位机之间的USB通讯控制。主机端子系统通过USB接口与上位机相连后,上位机操作系统会自动加载HID类设备的驱动程序,完成主机端和上位机的连接。然后主机端微控制器接收无线模块nRF24L01传输的位移和按键信号,进而控制光标的移动和按键的操作。
如图1所示,为远端用户控制子系统和主机端信号接收子系统的结构方框图。
2 系统硬件设计
2.1 远端子系统硬件电路设计
1)微加速度计模块
ADXL345是ADI公司的三轴数字加速度传感器,工作原理是首先由前端感应器件感测加速度的大小,然后由感应电信号器件转为可识e的模拟电信号,ADXL345中集成了AD转换器,可以将此模拟信号数字化,输出的是16位的二进制补码。最值得一提的它集成了一个32级先进先出(FIFO)存储器管理系统,可用于输出数据的缓冲,降低主机处理器负荷,并降低整体系统功耗。
该芯片主要应用于消费电子的微型惯性器件,最大可感知±16 g的加速度,感应精度可达3.9 mg/LSB,倾角测量典型误差小于1°,超低功耗。通过其内置的ADC将加速度信号转换为数字量存放在片内缓冲区,在实际使用中,为提高输出数据的稳定性,设置感应范围为±2g,感应精度为3.9 mg,可以满足人体动作加速度范围与精度要求。
ADXL345可以通过SPI总线或I2C总线与单片机连接,本产品选择的单片机模块AT89S52不具有SPI和I2C接口,所以我们采用I/O口模拟I2C总线或SPI总线接口的方法连接。
2)按键电路模块
按键电路模块主要考虑消抖的问题,我们这里采用软件延时消抖,不过没有采用在主程序中延时,这样很浪费系统资源,而是用定时器延时设置标志变量的方法。
2.2 主机端子系统硬件电路设计
如图2,微控制器通过P1口(P1.4~P1.7)模拟四线制的SPI总线与nRF24L01连接,控制信号的接收与处理,接收的信号通过P0及其他控制端口传给USB接口芯片PDIUSBD12进而控制主机端光标的移动,其中nRF24L01无线射频模块是一款新型单片射频收发器件,工作于2.4GHz ISM频段,最高工作速率达2 Mbps,信号空中传输时间很短,极大降低了无线传输中的碰撞现象和电流消耗,该芯片融合了增强型ShockBurst技术,能自动处理字头和CRC效验码,使用方便。该芯片功耗低,在以-6 dBm的功率发射时,工作电流只有9 mA;接收时,工作电流只有12.3 mA,多种低功率下作模式(掉电模式和空闲模式),使节能设计更方便。
PDIUSBD12是Philips公司的一个性能优化的USB器件,通常用于基于微控制器的系统,并通过高速通用并行接口与微控制器进行通信,而且支持本地DMA传输。PDIUSDB12完全符合USB1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等。PDIUSBD12还集成了SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性。所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的USB功能。
3 系统软件设计
3.1 远端子系统软件设计
3.1.1 发送和接收模块
无线RF射频收发模块nRF24L01通过SPI总线连接用户端和主机端,在使用时要分别对其配置,用户端配置为发射模式,主机端配置为接收模式,并且要严格按照其数据格式及流程发送和接收数据。
3.1.2 微加速度计模块
1)寄存器中数据的重建
微加速度计ADXL345与微处理器之间通过I2C总线连接,它们之间的数据传输需要遵循I2C总线协议,寄存器0x32至寄存器0x37分别保存x、y、z轴输出数据,输出数据为二进制补码,DATAx0为最低有效字节,DATAx1为最高有效字节,其中x代表X、Y或Z。因为ADXL345为16位数据格式,从数据寄存器中获取加速度数据后,用户必须对数据进行重建。我们利用接口函数Multiple_read_ADXL345()多字节连续读取寄存器的数据,然后将高字节左移8位和低字节8位相或的方法对数据重建,且对我们来说,只需X和Z方向的加速度数据即可,程序如下:
ADXL345_DataReconstrution()
{ unsigned int Acceleration[2];
Multiple_Read_ADXL345();
Acceleration[0]=BUF[1];
ACCeleration[0]=(ACceleration[0]8)|BUF[0];
Acceleration[1]=BUF[5];
Acceleration[1]=(Acceleration[1]8)|BUF[4];
}
2)微加速度计ADXL345与普通鼠标精度的比较
现在市面上普通光学鼠标主流分辨率为400DPI,即每移动1英寸可反馈400个不同点的坐标,也即该鼠标的分辨率为25.4 mm/400=0.06 35mm。而ADXL345采用13位或10位的分辨率模式,此模式可以通过DATA_FORMAT寄存器(地址0x31)进行设置,除此之外,该寄存器还可以没置g的范围,有±2 g,±4 g,±8 g,±16 g,该教鞭选择10位模式,±2 g已经能满足对分辨率的要求,此时分辨率为4g/1024LSB=3.9mg/ LSB,我们是将采集到的加速度数据采用16进制数字方式存储在寄存器中,然后取出数据重建划分步长后,通过无线传送至接收端控制鼠标的移动,而USB鼠标报告描述中规定,若接收到的数据为1则移动一个像素,假设尺寸为300mm*190 mm的14寸显示器,分辨率设置为1 024*768,那么横向最小点间距为300 mm/1 024=0.293 0 mm,虽然这个数据没有普通光学鼠标高,但是对于一般教鞭已经足够,最重要的是我们可以通过软件设置步长,可以在教鞭微动的时候做出准确移动,在需要情况下大幅晃动教鞭能够快速将光标移动到屏幕边缘,符合人体工程学的要求,并且我们可以改变g值,分辨率模式及步长来自由调整教鞭的移动。设置的步长程序如下:
3.2 主机端子系统软件设计
图3为接收端主程序流程图,该接收端软件部分主要包括:PDIUSBD12固件驱动,USB设备的枚举过程。为了使软件可移植性强、易维护,采用分层的方法编写PDIUSBD12的驱动程序。USB驱动程序分成接口和设备控制驱动层、协议层和应用层。应用分层的方法编写的程序条理清晰,可移植性好。而USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备。使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。所以我们将USB设备枚举成HID设备,这样就可以不用安装驱动而直接使用。USB设备的枚举过程实际上就是告知PC设备描述类型。当插入USB设备后,主机会向设备请求各种描述符来识别设备,包括5个标准描述符:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和3个HID设备类特定描述符:HID描述符、报告描述符、实体描述符。当主机从它的描述符中知道了能够知道的所有信息后,便开始为这个设备安装驱动程序。此时USB枚举过程结束,设备可以正常使用了。
4 结束语
本文应用微加速度计和无线RF模块,实现无线遥控的鼠标操作。遥控有效距离可达30~60 m,功耗小,成本低,而且遥控无指向性,能大大增强多媒体的人机交互性能。而且该成品外观设计合理,手感舒适,符合人体工程学设计,能防止鼠标手的出现。