当你躺在床上,正用电脑看着电影时,电话铃响起…无奈只好先跑去暂停了电影,再回来接电话,不然错过了精彩剧情岂不可惜?如果我们能给电脑安装一个遥控器那该多好,这样躺在床上也一样能操作电脑,给我们看电影和欣赏音乐带来了极大的便利。现在的电视卡都带有配套的遥控器并在卡上集成接收器,可以实现遥控换台以及一些其他的电视/电脑操作,但是,难道没有电视卡的朋友就无缘遥控了吗?
遥控接收器制作过程
其实,自制一个电脑遥控接收器,是非常容易的。首先,我们制作的电脑遥控器必须使用红外方式的(不能是射频的遥控器),一般电视、影碟机的遥控器都可以使用,如果手头没有闲置的遥控器,可以到小商品市场购买,一般的电视机遥控器即可,售价在十几元。注意,不要使用空调的遥控器,尽管它也是红外发射的,但是每次按键后,它都会把空调当前所有状态(模式、温度、风速、风向)发送一遍,导致每次发送的码串很长,会导致软件辨识错误。
经过比较,我们选择了Girder(v3.3.7)这个遥控软件,它功能全面,而且支持外挂插件,以支持新的遥控接收器和新的操作,从功能上可以说是“只有想不到,没有做不到”。除了日常操作,此外在幻灯片展示时如果运用遥控器,可以把演讲者从计算机旁边解放出来,从而与观众进行更加灵活亲近的互动,达到更好的展示效果。
(图1)遥控接收器的电路方案
我们的遥控接收器的电路方案取自Girder的第三方插件:“SFH-56 plugin for Girder”。该电路图(图一)简单到只有六个元件,而且可以直接去掉发光二极管(电源指示灯)和100Ω保护电阻以进一步简化电路。主要元件有 HS0038A红外遥控接收头、5V稳压管(1/4W)、发光二极管、9针串口插头、电阻(3.3KΩ和100Ω各一)、电解电容(0.1μF,10V以上)、万能印刷电路板、线材(至少3芯)以及电池盒(充当外壳)等一共不超过10元。
(图2)
只要有焊接简单电路的能力,按照电路图,很快就可以完成电路的制作
(图3)
之后把电路板装到拔去触点铜片的电池盒里,并在电池盒的相应位置开孔,因为整个电路都很轻,所以可以在电池盒空着的一边放入一节没电的电池(虽然没电,但还是要防止电池短路,否则电池漏液导致短路,可能通过串口损坏主板),硬件制作即告完成。
(图4)
测试遥控器
经过测试,该接收器的有效接收范围在7米左右,而且灵敏度非常高。试验发现,原本步步高DVD的遥控器必须正对DVD机操作才有效,而与自制的接收器配合使用时,可以实现非指向操作(即接收器可以接受经过墙壁多次反射的红外线信号),大大方便了我们的使用,也使接收器的摆放更加灵活。最后,综合考虑按钮数、按钮排布、手感、大小等各方面因素,我选用了闲置的建伍桌面音响的遥控器(49键)
软件设置
下面的软件设置工作是最重要的,首先,把“SFH-56 plugin for Girder”这个插件(文件名“igor SFH-56P lug.dll”)拷贝到Girder安装目录下的plugins文件夹下,然后进入Girder,先点击File菜单中的Settings,在 Settings窗口中的User interface标签页中把Language改为Chinese,点“Apply”按钮
(图7)
在“插件”标签页中选中“Igor SFH-56 device”,确定后,
(图8)
再次进入这个位置,点“插件”标签页中的“设置”按钮,弹出一个Igor Config窗口,里面按照实际情况选择COM1或COM2口
(图9)
点“OK”退出,到此设置工作完成。
接下来,我们就可以根据自己的需要添加命令了,在这里,我们选择一些比较有代表性的命令供大家参考,其余的就可以触类旁通了。
公共操作:在Girder窗口左侧的命令区点击右键,选择添加命令;选择要执行的操作,点击右上方的“学习事件”按钮,然后按下遥控器上面你想要定义成该功能的按钮,暗红色的长条区域中会出现接收到的红外命令码
(图10)
如“1D807A85”,而且同一操作可以多次学习,使其支持多个遥控器;最后在“防按键重复等待时间”栏中填写200,这样,当一次按键命令发生后的200毫秒内,忽略同样的按键事件,以防止重复执行操作。
1.运行程序。这里以Media Player Classic为例,点击右边操作区的“系统”标签页,选择下拉菜单中的“执行”,点击“浏览”按钮,在弹出的打开文件窗口中选择我们相应目录中的“mplayerc.exe”,最后点击“应用”按钮。
(图11)
2.模拟键盘按键。前几步同上,只是改为点击右边“键盘”标签页,在“句子”文本框中输入要模拟的按键,并根据需要决定是否选中Ctrl、 Shift和Alt,如果要定义无法打出的按键,可以在“特殊键”下拉菜单中进行选择,特别要注意回车键是“RETURN”而非“Enter”。配合播放软件的热键功能,通过按键模拟就可以实现影/音文件的播放/暂停/下一首/快进/全屏等功能。
3.更改音量。打开“系统”标签页中的下拉菜单,选择“调整音量”,点击右边的“音量”按钮
(图12)
选择“主音量”,点确定按钮
(图13)
“步长”填写“2621”(2621代表增大一格音量,-2621代表降低一格音量),并勾选“屏显OSD”
(图14)
用类似的方法还可以实现同样实用的静音功能。
4.光驱托盘弹出/关闭。这是一组互逆的操作,如果设在遥控器的两个按钮上自然简单,可是要多记一个按钮的定义,而且要多占用一个按钮,不如把他们设在同一个按钮上面,还能多空出一个按钮用来定义别的操作。同一个按钮要定义成轮流执行的两个操作,设置上也有一些区别,首先,添加时要用“添加命令组”而非 “添加命令”,然后在命令组内再添加一个命令,为了方便识别,改名为“弹出”一类的名字(对功能无影响),然后在“系统”标签页中选择“弹出媒体”,并在 “文件”文本框中填写光驱的盘符(只写字母,不要冒号),点击该命令
(图15)
按“F6”弹出一个“调整命令响应次序”窗口,把“最大状态值”改为“2”,“初始状态值”改为“1”。
(图16)
另外,在命令组中添加一个命令,命名为“屏显--弹出”,点击“Girder”标签页,选中“Simple OSD”,在下面的“图标/设备”文本框中写入“光驱弹出”一类的提示语
(图17)
“最大状态值”和“初始状态值”也同样分别设为“2”、“1”。因为同一命令组中的命令是顺序执行的,所以用拖拽的方法将“屏显--弹出”命令拖至 “弹出”命令之前,使其先显示提示,再弹出托盘。类似地,创建关闭光驱命令,只不过把“弹出媒体”改为“载入媒体”,并把“最大状态值”和“初始状态值” 分别改为“2”、“2”,同样建立“光驱关闭”的提示语,“最大状态值”和“初始状态值”也是“2”、“2”。最后选中该命令组,点击“学习命令”,把操作定义到遥控器按键上,注意要将“防按键重复等待时间”设为1000毫秒以上,否则肯会连续执行弹出和关闭命令,至此任务即告完成。这样,按下定义好的光驱弹出/关闭按钮时,状态值在1和2之间循环,并且在屏幕上显示状态提示消息。
5.鼠标操作。从“鼠标”标签页下拉菜单中的项目里面选择需要的功能,进行设定,包括鼠标移动、点击、双击和滚轮的操作,移动/滚动类的项目应在下面的文本框中设定每次移动的步长值(以象素为单位)。
总结
总之,Girder支持的操作是十分多样的,再加上插件的支持,不仅可以响应遥控器的操作,甚至支持游戏手柄和键盘。许多更有用、更好玩的功能还有待我们去发掘、去创造。