当前位置:首页 >> 工学 >>

无线鼠标制作


基于 315M 收发模块的简易无线串口鼠标
单片机小制作 2009-04-16 21:29:36 阅读 3492 评论 19 字号:大中小 订阅

通常, 鼠标通过 PS2 插口或者 USB 接口以有线的方式将移动的距离和方向转 换成脉冲信号传送给 PC。近些年来,随着无线技术的发展,出现了一种新型的 无线鼠标, 它脱了鼠标线的束缚, 使鼠标随心所动, 尤其是冬天在床上看电影时, 都能享受随意操纵鼠标的乐趣。 但是无线鼠标作为一种新兴产品, 价格居高不下, 作为一个 DIY 者,本着“自己动手,丰衣足食”的原则,根据鼠标的工作原理和 协议,利用老旧的 PS2 鼠标和 315M 无线发射接收模块,配合 PC 串口,制作了一 款简易的无线串口鼠标,成本只有 20 元左右。 硬件设计 本无线鼠标分信号发射与信号接收两大部分。 发射部分电路原理图如图 1 所示:

图 1 发射部分电路原理图 其中鼠标 PS2 接口的引脚定义如图 2:

图 2 PS2 接口示意图

发射部分电路主要由 AVR 单片机 ATMEL Mega8(以下简称为 Mega8)和 315M 发射模块组成。Mega8 是一 款高性能、低功耗单片机:采用先进 RISC 精简指令,1MHZ 时钟能达到近 1MIPS 的运算速度;内部集成了 较大容量的存储器和丰富的硬件接口电路,自带 RC 振荡电路可代替晶振;价格与低档单片机相当,性价比 极高。在这里,Mega8 主要完成 PS2 接口鼠标的控制与数据获取,并通过 315M 发射模块发送位移数据。

市售的 315M 发射模块电路图如图 3 所示:

图 3 发射模块原理图

图 4 接收电路原理图

接收部分电路主要由接收模块和 MAX232 组成,其原理图如图 4 所示: 其中 LED 用于指示无线信号的接收解调情况,有数据接收时 LED 应闪亮。市 售的接收模块电路原理图如图 5 所示:

图 5 接收模块原理图
*注:为了使模块工作在最佳状态,笔者对收发模块进行了一些小的调整,在制作方法 注 为了使模块工作在最佳状态,笔者对收发模块进行了一些小的调整, 中会进行详细叙述。 中会进行详细叙述。

考虑到笔记本电脑已经逐步淘汰串口,可用 PL2303HX 这类 USB 转 UART 芯片 代替 MAX232,如图 6 所示:

图 6 PL2303HX 原理图
该电路的主体是 PL2303HX 芯片,主要完成 USB 与 TTL232 之间的协议转换。详细介绍请参看本刊 2008 年 5 月刊中的《常用 USB 转串口芯片介绍》一文。

图 7 笔者制作的 PL2303HX 做的 USB 转 UART 模块

软件设计 鼠标的工作模式有四种, 分别为 Reset 模式, Wrap 模式, Remote 模式和 Stream 模式。前两种作为测试用,Remote 模式为主机有需要时,发送命令使鼠标回送 位移数据,Stream 模式是上电的初始模式,每当鼠标产生位置或者按键状态的

改变就自动发送数据。显而易见,第四种模式是最合适的。在正常读取鼠标数据 前只需发送命令(0xF4),此命令告知鼠标,主机已经准备完毕,可以接受位移 数据。
PS/2 鼠标与主机间履行一种双向同步串行数据帧协议,每帧为 11-12Bit,如图 7 所示:

图 8 串行数据帧 图 9 标准鼠标数据包 按照标准的三键鼠标的数据包有效数据为 3 个字节,如图 8 所示:
Mega8 将读取的鼠标位移数据通过 315M 发射接收模块传送至 PC 后,需鼠标位移数据进行处理,笔者 利用 VS2005 的 C#编写了一个简单的串口小程序。 该程序将收到的数据进行解释并转换为鼠标运动的轨迹。 经笔者使用,效果良好。

无线鼠标软件流程如下:
(1)Mega8 自身初始化,并通过 0xF4 命令告知 PS2 鼠标准备完毕; (2)等待 PS2 鼠标回送位移数据:Mega8 利用中断按 Bit 进行数据读取,每读取一个数据包,进行正确 性验证,然后根据无线发射模块的发射特性,在数据包头尾分别添加 0xAA 与 0x55 封装成新的数据包,并 通过 UART 端口将位移数据进行发送; (3)接收模块接收的数据通过三极管反相,将数据传送至串口,PC 软件进行解释并转换为鼠标的运动 轨迹。

至此,相信读者对该无线鼠标设计理念已经有了大致的印象,具体代码在此 就不进行详细展开,详见本文的附录代码。 制作方法 本无线鼠标的制作方法与要点:
1、 由于单片机串口不发送数据时为高电平,按图 3 发射模块的电路连接后在串口不发送时也将持续 发送无线信号,因此,笔者将模块中的 Q2(一般是两个中比较小的一个贴片三级管)改为 PNP 型三极管,例 如 8550、9012 等。经这样改造后,发射模块仅在发送低电平数据时才产生 315M 的调制信号,尤其是符合 了串口低电平起始位的特点,并且节省了相当一部分的功耗;

发射模块全貌图

发射模块背部修改处

2、笔者发现部分接收模块的输出信号总在 1/2VDD 附近,这样的信号必然不能被单片机的串口所正确 接收,通过分析,笔者将 LM358 后一级放大器的 IN+与 IN-之间的电阻(R11)去掉,效果就比较满意了:没 有接收信号时为低电平,接收到信号时为高电平。当然,不同接收模块的性能不尽相同,如果读者在制作 时候遇到此类现象,不妨可以试试笔者的方法;

接收模块全貌图

接收模块焊去电阻处

3、发射模块和接受模块的天线可以选用(1/4λ)23.8 cm 左右的硬质的铜线,在铅笔上缠成螺旋形并 适当拉长即可。天线有一定的方向性,这与接收到的信号强弱有很大的关系; 4、由于本代码未涉及精确的延时,对 AVR 熔丝位编程时选择使用内部 RC 振荡 8M 即可。 AVR 系列单片机与 51 系列的单片机端口结构不同,它的输入输出的转换需要通过修改寄存器(DDRx) 来实现, 因此读写时需分清端口的方向。 在本电路中, 笔者只用了 PD3(接 PS2 的 CLK)和 PD4 接 PS2 的 DATA) ( 两个端口,利用 PD3 检测 PS2 的时钟下降沿产生中断,并按 Bit 读取 PS2 的串行数据。当然读者也可以进 行修改以适用更加小巧的 AVR 单片机甚至贴片封装的单片机。 5、笔者的 PC 端软件采用 C#开发,属于.net 环境下的应用程序。考虑到该鼠标制作的简易性,笔者对 数据处理时并未采取驱动开发的方式,而是采用了简单易懂的鼠标 API 控制函数对鼠标进行控制,能够较 好地满足鼠标控制的需求。软件界面如下:

图 10 无线鼠标 PC 端软件 部分读者遇到双击提示错误无法运行的情况时,可以尝试安装微软的 FrameWork 2.0 环境,其下载地址为: http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB -4362-4B0D-8EDD-AAB15C5E04F5&displaylang=zh-cn;
6、如果有需要用到 PL2303HX 代替 MAX232 芯片,则需在 PC 上安装驱动,详情请参照本刊 2008 年 5 月 刊中的《常用 USB 转串口芯片介绍》一文。

制作的图片如下所示:

发射部分电路

接收部分电路

发射电阻组装完成

接收电路组装完成

综述 本文利用 Mega8 完成了鼠标移动数据的读取与 PC 机通信数据的传送,其实 质为 PS/2 到 TTL232 协议的转换,有兴趣的读者可以使用更加小巧、低电压的芯 片进行改造,使结构更加合理,外观更加美观。笔者将包含鼠标定位点的串口数 据包使用无线收发模块为媒介,实现了无线数据传送和接受,从而完成了无线鼠 标的制作,从通用性和易用性上说,具有广泛的应用价值。然而笔者的设计仍然 有诸多不完善的地方,有兴趣的读者可以发送邮件 bsgd_hhxy_0919@163.com 一 起进行讨论研究。


相关文章:
无线鼠标(电子制作大赛)
无线鼠标(电子制作大赛) - 自由制作组 104 无线遥控鼠标的设计 信息工程学院通信工程专业 组员:11203203 陈霞玲 11203219 沈骅 11203315 聂利敏 中国地质...
制作无线鼠标
制作无线鼠标 - 割断,分别找出这 4 根线,利用 MC145026 编码电路的数据传送端 D 6 和 D7 接受鼠标数据线 1 和数据线 2 传来的数据,并在芯片内部编码 后...
基于STM32的USB简易鼠标_图文
基于STM32的USB简易鼠标 - 毕业设计 [ 论文] 题学专姓学 目: 院: 业: 名: 号: 基于 STM32 的 USB 简易鼠标设计 电气与信息工程学院 电子信息...
用光电鼠标作传感器的自动小车1_图文
在获取小车坐标与方向后,计算机发出小车的控制 信号,并经无线模块传输到小车上的...制作的两张测试场地中,场地 2 用布质海报制作,由于是彩色光面, 测得鼠标...
excel复合拼图
excel复合拼图 - 销售报表的最爱: 销售报表的最爱:Excel 复合饼图及其使用技巧 在使用 Excel 制作销售报表时,我们经常会碰到如下场景,在所有的商品销售中,鼠标 ...
Excel复合饼图及其使用技巧
制作销售报表时,我们经常会碰到如下场景,在所有的商品销售中,鼠标的销 售数量...其中鼠标销售中又分为无线鼠标、有线鼠标和蓝牙鼠标,在表格中分别对三 种鼠标...
更多相关标签: