一种基于微加速度计的无线教鞭系统设计
摘要:为弥补多媒体教学中激光笔的不足,提出了一种基于微加速度计的无线教鞭系统,它不仅具有激光笔上下翻页的功能,而且能在空中自由灵活移动实现高精度点击的功能,该系统以微加速度计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公司的三轴数字加速度传感器,工作原理是首先由前端感应器件感测加速度的大小,然后由感应电信号器件转为可识別的模拟电信号,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)
- 轻松实现交互式机器人小车设计,提供软硬件设计指南(06-03)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)