自制3D鼠标——让鼠标脱离桌面实现控制
2011-02-21
相信喜欢玩游戏的人对在计算机上玩CS等射击游戏一定不会陌生,但是大家在玩的时候是否常感觉到操作不够真实、使用不够方便呢?因为对枪的移动、射击等操作是利用“趴”在桌面上鼠标的移动和点击实现的,然而真实的场面并不是这样。于是笔者就想,能否做一种鼠标出来,它不仅能够在水平方向上来回移动控制,而且还能在垂直平面上操作呢?经过翻查大量的资料,笔者想出了一种利用加速度传感器设计的方法来实现这种功能,读者只需把做好的“鼠标”电路放进仿真枪中,扳机连上鼠标的左键开关就能够在计算机前玩真人CS啦。
我们平时用的鼠标只能够在桌子平面上运动,而 3D 鼠标是一种新型的鼠标器,它不仅可以当作普通的鼠标使用,而且具有以下几个特点:
(1)具有全方位立体控制能力。具有前、后、左、右、上、下 6 个移动方向,而且可以组合出前右、左下等的移动方向。
(2)功耗很低,外形可以比普通鼠 标更小巧,使用更灵活。
本电路主要采用的是MMA7260加速度传感器,这是一个3轴的加速度传感器,当传感器感受到外界加速 度的变化时便会输出3组3维与加速度大小成正比的电压信号。这3电压信号进入单片机AD转换器,转 换成数字信号,然后经单片机处理产生鼠标移动的时序信号,通过 PS/2 接口传给计算机。
一、3D鼠标电路构成
本电路主要分成3部分,一部分是加速度传感器的外围电路,另一部分是 3.3V供电电源以及鼠标与计算机的PS/2接口电路,最后一部分是 MSP430F2013单片机的最小系统。MSP430 系列的单片机可以说是微控制器中的“环保之星”了,之所以说环保是因为它能够节省我们宝贵的电能,是业界上功耗最低的单片机之一。
MSP430单片机不仅有超低的功耗和出色的运算性能,而且有一个高精度AD 转换器,这是3D鼠标能够准确 快速把传感器的输出信号转换成数字量进行处理的基础是本电路设计的关键。电路如图 1 所示。
二、MCU最小系统设计
MSP430中的F2xx系列具有灵活的时钟系统,其芯片内部集成增强型的DCO(数字控制振荡器),并且其频率可以被设定为0~16MHz之间任一数值,这样单片机电路便可在没有外了电路的稳定性和抗干扰能力。只需要分别给Vcc接上+3.3V和Vss接上地,MCU的最小系统便可按照设定的程序 运行。
三、加速度传感器电路设计
本电路采用MMA7260加速度传感器,由于MMA7260的集成度很高,芯片内部已经集成了温度补偿、信号调理等电路,因此芯片外围电路也十分简单。X-out、Y-out、Z-out分别为加速度传感器的3个输出端,输出信号大小与其对应轴上的加速度成线性关系。为了防止高频干扰信号进入单片机的AD转换器,笔者特意在信号输出端分别加上了一阶RC低通滤波器。另外, MMA7260还有2个引脚可以设置不同的量程,电路中此功能是由一个拨动开关来实现的,用户可以根据实际情况来选择不同的量程与灵敏度,设定方法如表1所示。
四 电源及PS/2接口电路设计
由于在PS/2接口中有提供+5V的接部晶振或时钟下正常工作,既降低了成本,又减少了电路的体积,并增强口电源,同样的,与电脑通信的信号线也是+5V电平信号,但是MSP430和MMA7260都是3.3V供电和3.3V电平通信的。为了解决这个问题,笔者 采用了以下方法:
在电源上采用LDO芯片AS1117和若干个电容构成一个5V转3V的线 性稳压电源,而电平转换方面则是是采用一对三极管来实现此功能,原理如图2所示。图中左边是3.3V 电平的MSP430单片机的两个IO口,分 别设置成输出和输入,右边是电脑5V的PS/2接口。当单片机的IO1输出高电平3.3V时,三极管的Ube远远大于三极管的饱和压降,于是此时三级管VT1饱和导通,DATA端的电压接近于0V,所以输出的是低电平。如果IO1输出的是低电平,U be为0V,三极管处于截止状态,这时DATA端就相当于接上一个10kΩ的上拉电阻,其电压处于5V,是高电平。
由上面分析可知,这个电平转换器其实是一个反相器,因此在对单片机编程时需要注意这点,要把电平信号取反才会得到原来的信号。同理,当DATA端为输出时,首先把IO1设置成低电平,把IO2设置成输入,就可以通过IO2来判断DATA的电平信号了。
五、元件的选用
电路中的 IC1、IC2分别是芯片AS1117-3.3 和 MMA7260,笔者都采用的是贴片封装,尤其是MMA7260,采用的是QFN封装,如图3所示。
这种封装并没有一根根的引脚引出芯片外部,它采用的是焊盘结构,把一个个的焊盘放在芯片下方,所以很难在万用板上焊接,为此笔者特意设计了一个加速度传感器的模块(电路见图3,实物图见图4)。这样,一来方便焊接,二来这个模块日后还能运用到其他制作中去。
本电路所有的电阻和小电容都是采用0805封装的贴片电阻和电容(见图5),而10μF的电容采用的是1206封装的钽电容。这些电容、电阻无论焊接到万用板还是自己做的PCB上都 十分容易,而且体积适中,非常节省板上位置。至于电路中的4个三极管VT1~VT4选用直插的、较高β值NPN型三极管即可,例如2N3904、9014等。轻触开关S1、S2和PS/2接线都是笔者从废旧鼠标中拆下的,十分环保。单片机MSP430F2013有两种封装,为了焊接方便,笔者选用的是DIP双列直插的封装,见图6。
六、安装与调试
MMA7260的焊接是本制作的一大 难点,像这种QFN封装的芯片最好用热 风枪来焊接,在焊接前要在芯片焊盘 上用烙铁均匀地焊上少量焊锡,焊锡 不能太多,而且要均匀,高度一致, 否则当芯片放在PCB上时会倾斜,影响 焊接效果。其次,需要注意用热风枪 对芯片加热时要均匀受热,风口要在 芯片上方不断摇动,直到焊锡溶解。
当加速度传感器模块上所有元块,如果输出的电压有变化,则模块工作正常。如果加速度模块工作正常,就可以把所有的元件都按照 电路图在洞洞板上焊接起来,并向单片机烧写程序。制作好 的电路实物见图 7。因为 F2XX 系列的单片机支持 SPY_BY_ WIRE 的两线下载调试方式,所以程序下载调试都十分方便, 通过 IAR 公司的 IDE 环境,可以很轻松地完成程序的编写, 编译、下载、调试等的所有工作。
如果你把上面所介绍的步骤都顺利完成了,那就恭喜你啦,你可以把鼠标插入电脑的PS/2接口,并打开电脑,开始 享受3D鼠标所给你带来全新操作体验了。
后记:笔者制作的这个3D鼠标打破了鼠标只能在桌面上的2D范围内运动的局限,把鼠标的运动范围扩展到空间,使鼠标的操作方式更加多样、更加灵活、更加方便。有 兴趣的读者欢迎一试!本制作所需相关程序可到《无线电》 网站下载。