自制电脑红外遥控接收器
红外电脑遥控接收器

自制红外线电脑遥控器当你躺在床上,正用电脑看着电影时,电话铃响起………无奈只好先跑去暂停了电影,再回来接电话,不然错过了精彩剧情岂不可惜?如果我们能给电脑安装一个遥控器那该多好,这样躺在床上也一样能操作电脑,给我们看电影和欣赏音乐带来了极大的便利。
现在的电视卡都带有配套的遥控器并在卡上集成接收器,可以实现遥控换台以及一些其他的电视/电脑操作,但是,难道没有电视卡的朋友就无缘遥控了吗?电脑遥控接收器电路及制作其实,自制一个电脑遥控接收器,是非常容易的。
首先,我们制作的电脑遥控器必须使用红外方式的(不能是射频的遥控器),一般电视、影碟机的遥控器都可以使用,如果手头没有闲置的遥控器,可以到小商品市场购买,一般的电视机遥控器即可,售价在十几元。
注意,不要使用空调的遥控器,尽管它也是红外发射的,但是每次按键后,它都会把空调当前所有状态(模式、温度、风速、风向)发送一遍,导致每次发送的码串很长,会导致软件辨识错误。
经过比较,我们选择了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元。
自制电脑红外线遥控器

装配。最后用三根连线将电
路板和串口插头连接好,焊
接串口插头一端时千万要注
意不要搞错引脚号。
用一个火柴盒大小的塑
料盒将电路装在里面,塑料
盒上开一个小窗口,把红外
接收集成电路的接收面固定
图3
在窗口处,使其能接收外面射进的红外线信号。对应发光
然后为 4条命令定义程序中对应的快捷键,选中命令
“上一张”,在右边的“特殊键”下拉列表框中选中对应的
快捷键“PAGE UP key”,如图 6,再按一下“应用”按钮。
图5
钮后,按遥控器上你想设定的按钮。在右边的输入窗口中 会显示该命令的红外编码,这就是你定义的遥控器编码, 接着单击“应用”按钮。用同样的方法可以设置其它几条 命令,每设置一条命令后都要单击“应用”按钮,否则刚 才设置的命令无效。设置完命令后按一下“保存”按钮。 在设置鼠标上移、下移、左移、右移等命令时要选择“允 许重复”复选框,在设置鼠标左键、右键命令时不要选择 “允许重复”复选框。通过以上设置你就拥有一个实用的 遥控鼠标了。
图6
同样地依次将“下一张”、“第一张”、“最后一张” 的快捷 键 定 义 为 “ PAGE DOWN key”、“ HOME key”、“ END key”。
最后将上述 4 条命令定义到遥控器的 4 个按钮上,按 一下“保存”按钮。
需要说明的是:用遥控器控制运行程序时,此程序必 需是当前活动窗口,否则命令无效。
脑内的 “PC 红外线遥控器”软件对数据进行判断处理,对
电脑执行相应的操作。
红外接收集成电路 IC1 使用电视机遥控接收电路中常
用的 TL0038 或 HS0038,这是将红外接收管和放大处理电路
SB口电脑遥控器自己做三

SB口电脑遥控器自己做三―红外电脑遥控器的制作三、测试1、安装下列所需的软件和驱动IRCtrl(PC用的,相当于D900上的NR Deluxe)IRCtrl.rar (736.41 KB)IRCtrl.rar (736.41 KB)红外线接收端驱动(电脑端安装)PC Driver.rar (1.65 MB) PCDriver.rar (1.65 MB)2、将做好的(未组装)接收器插入电脑USB口,电脑自动安装识别硬件;3、打开软件IRCtrl,选择工具-运行-设置,钩选“开机自动运行”、“装入所有命令文件”、选择设备端口的下拉菜单的COM(5)口(我的是COM5注意插入不同USB口com口是不一样的,如果不知道可以到“计算机管理-设备管理器-端口”查找。
)、选择language为中文;再点选“应用”,OK!电脑端设置完毕。
4、确保D900安装了NR Deluxe并学习了红外遥控器命令,打开它,让D900的红外口正对接收头,再点击其任一命令按键,可看到任务栏的IRCtrl闪烁,说明成功了,否则请自行检查:连线、电路是否正确,元件是否完好。
四、组装测试成功后就剩下组装了如下图:五、遥控器按键码学习以“关闭计算机”为例,具体如下:1、打开IRCtrl,按“Ctrl+N”新建一个文件并命名为:关闭计算机;1.选中命令树中的“新命令”(添加新命令的快捷键:shift+ins)命名为:关闭计算机;2.按下学习按钮(输入中那个i),使它变为灰色,这时可以按遥控器上的"关闭计算机"按键(按任一按键都可以,随自己使用方便),其按键代码就会被学习到“学习按钮”下的输入代码编辑框中3.学习完输入代码,按下“应用按钮”把数据保存到内存中数据保存到“缺省控制”文件中去4.再按遥控器上的"关闭计算机"按键就可以控制电脑的关机了,其它按键码学习就可以重复上述操作.至于IMCE按键码的学习,大家就参照上面的就OK了!!!先说到这里,水平有限不好请指正!!!如有人看不明白也可问我;先说到这里,其它的按键码学习等以后有时间再叙.第一次发贴,水平有限不好请指正!!!如有人看不明白也可问我;QQ:690396733旺旺:严明达。
电脑红外遥控接收器的制作

红外 线是 肉眼觉察不 到 的一种 光线 ,任何物 体均 向外 辐射红外 线 ,只是辐射 出 的红外 线波长
和强度 有 所 不 同 ,红 外 线 遥 控 是 利 用 波 长 为
头 ,这就使得红 外接 收 电路不 仅简单 而且 可靠 性
大 为提高 ,红外 信号 经过集成 化接收 头的接收放 大和解 调之后 ,会 在输 出端直 接 输 出原 始信 号 ,
电脑 红外接 收 器接 收 到这 个 脉 冲信 号 之后 , 就发送 给红外解码 程序 ,电脑就会 根据这 些不 同
的红外脉 冲信号执 行不 同的指令 ,从而达 到红外 线 遥控 电脑 的效果 。红外 接收器 的硬件 电路 原理 图如 图 2所示 ,电脑 的串 口在打开后 ,其 7脚有
[ 稿 日期 ] 2 1 0 收 00— 8—1 3 [ 作者简介]丰海 (9 6一 ) 17 ,男 ,湖北潜江人 ,厦门城市职业学院工程技术学部讲师 。 [ 基金项 目]厦门城市职业学院重点课题 :“ 厦门城市职业学院嵌入式 Lnx系统应 用中心建设对策研究” ( 目批准 iu 项
号 :K 1 0 ) Y 0~ 5 。
・
9 ・ 0
第 4期
丰
海 :电脑红 外 遥控 接 收器 的制 作 配 置 红 外 解 码软 件 WiLR 。首 先 我们 到 Wi. nI C n
一
—
—
【 c1. — — — + 卜 a . {
ll 0 ^=“ ‘ l ;
UR 的 主 页 ( t :/ wni . ore ren t C ht p / i r sucf g. e) le o
t5 ∞ s
… 一 …
茧 避幽 L 幽隧 嚣豳
50 s 6“ 一 I*
制作红外线简单方法

制作红外线简单方法红外线技术在现代社会中得到了广泛的应用,它可以用于遥控器、红外线感应器、红外线摄像头等设备中。
如果你对红外线技术感兴趣,想要制作一些简单的红外线设备,那么本文将为你介绍一种简单的方法来制作红外线发射器和接收器。
首先,我们需要准备一些材料,红外发射器LED、红外接收器模块、电阻、导线、面包板等。
接下来,我们将按照以下步骤来制作红外线发射器和接收器。
首先,我们来制作红外线发射器。
首先将红外发射器LED插入面包板中,然后接上一个适当大小的电阻,再用导线连接到电源。
需要注意的是,红外发射器LED的正负极需要正确连接,否则将无法正常工作。
接下来,我们可以用遥控器来测试一下红外发射器是否正常工作。
当我们按下遥控器的按钮时,如果红外发射器LED能够发出红外线信号,那么就表示制作成功了。
接着,我们来制作红外线接收器。
首先将红外接收器模块插入面包板中,然后连接到电源。
同样地,我们也可以用遥控器来测试一下红外接收器是否正常工作。
当我们按下遥控器的按钮时,如果红外接收器模块能够接收到红外线信号并输出相应的电信号,那么就表示制作成功了。
通过以上简单的步骤,我们就可以制作出红外线发射器和接收器了。
这些制作出来的红外线设备可以应用于很多方面,比如遥控器、红外感应器等。
当然,如果你想要进一步深入研究红外线技术,还可以学习更多关于红外线技术的知识,比如红外线通信、红外线遥控等方面的内容。
总之,制作红外线设备并不难,只要掌握了一些基本的电子知识和技能,就可以轻松地制作出自己想要的红外线设备。
希望本文能够对你有所帮助,也希望你能够在红外线技术的世界中有所收获。
祝你好运!。
自制PC机红外线接口(Irda)

基础知识:自制PC机红外线接口(Irda)红外线通讯是一种廉价、近距离、无连线、低功耗和保密性较强的通讯方案,在PC 机中主要应用在无线数据传输方面,但目前已经逐渐开始在无线网络接入和近距离遥控家电方面得到应用。
鉴于红外线通讯的诸多好处,现在的主板几乎全部提供了红外线接口,以便用户利用它进行与带红外线接口的设备通讯,如笔记本电脑、打印机、Modem、掌上电脑、移动电话等等。
但计算机主板上仅仅提供了红外线接口,并未提供完整的发射接收装置,所以用户在想使用红外线通讯时,仍然需要购买红外线连接器。
目前市面上较少有商品化的连接器销售。
下面就介绍三个DIY 方案,以供大家参考。
一、主板红外接口主板上的红外线接口大多是一个5针插座,其管脚定义依次是:1. IRTX(Infrared Transmit,红外传输);2. GND(电源地线);3. IRRX(Infrared Receive,红外接收);4. NC(未定义);5. VCC(电源正极)。
根据IRDA(Infrared Data Association,红外数据协会)提供的“异步串行通讯标准”资料显示,IRTX引脚能提供>6.0mA 的输出电流,而IRRX 引脚在吸收<1.5mA 电流就能对输入信号作出反应。
资料同时显示红外线接口的发射部分已将传输数据进行38k Hz 的载波,而接收部分将进行信号分离处理,所以在制作接口电路时无须再考虑载波和分离电路。
二、标准红外接口下图为IRDA 提供的红外通讯电路标准方案。
红外发射电路由红外线发射管L2和限流电阻R2组成。
当主板红外接口的输出端I RTX输出调制后的电脉冲信号时,红外线发射管将电脉冲信号转化为红外线光信号发射出去。
电阻R2起限制电流的作用,以免过大的电流将红外管损坏。
当R2的阻值越小,通过红外管的电流就越大,红外管的发射功率也随电流的增大而增大,发射距离就越远,但R2的阻值不能过小,否则会损坏红外管或主板红外接口!红外接收电路由红外线接收管L1和取样电阻R1组成。
--自己做红外遥控接收装置

自己动手,其乐无穷--自己做红外遥控接收装置红外遥控接收装置的硬件电路有很多种,它们各有特色。
如果你是一个狂热的电子爱好 者,那么你肯定热衷于自己动手来制作这样一个装置,其中的乐趣是别人所无法理解的。
如 果你仅仅是一个电脑爱好者,而对电子技术并不熟悉,那你可以购买这样一个装置,同样能 享受到坐在沙发上遥控电脑的乐趣。
1.完全采用数字电路的版本元件列表:U1 - 74HC14U2 - 74HC132U3 - IS1U60L or GP1U52XU4 - 74HC393U5 - 74HC165U6 - DS14C232 or MAX232电阻 R1,2 - 1K 微调电阻 R3 - 22K电容 C1,2 - 1 nF / C3 - 4.7 nF / C4-7 - 1 uF该电路在远距离使用时,工作效果较好。
你可以试着去掉外接电源,从串口获得电源, 从而简化电路(未测试)。
简单说明电路检测数字信号的每个周期并发送到计算机串口。
时钟电路由U1-c、R3、C3组成。
当 U1a的反相输出端产生一个从低电平到高电平的跃变时,U2a的与非门与C1-R1组成的电路将产生一个窄的低电平脉冲。
这个脉冲将影响移位寄存器从而载入记数器数据,并自动送入串 口。
同时,这个脉冲经U1b反转,这个高电平到低电平的跃变通过U2b、C2、R2后产生一个窄的高电平脉冲,此脉冲使记数器复位。
时序图如下所示,并非真实比例(实际上,红外信号 的周期远大于脉冲周期)这是两个不同的数据:这是两个相同的数据:2由图可见,给出允许的误差范围,程序就可以识别相同的数据。
疑难解析“我的接收装置无法区分同一遥控器的任意两个按键?”首先需要确认时钟电路的频率是否为19200Hz左右。
如果你无法获得信号,请试一下另外的软件,如SerialWatcher,并且改变时钟电路中微调电阻的阻值。
我的电路最后确定的阻值是15500欧,由于电子元器件的离散性,这个阻值会有所不同。
自制PC遥控器

自制PC遥控器Frontfree是否想过像使用电视一样使用电脑,躺在床上遥控MP3的播放,遥控程序的执行或者系统的关闭——为实现这些功能,我们当然可以自己DIY一套PC遥控器。
电路的基本原理就是通过红外接收头收集红外信号,当有红外信号进来时,单片机12C509软件执行中断并对采集到的红外信号进行解码,并从串口送到PC,PC端软件Girder收到串口发来的字符再根据定义做出相应的命令操作。
Girder 是一套国外编写的强大的遥控软件,通过和遥控器的配合,它可以实现遥控键盘鼠标,控制系统等各种操作,并可以方便的通过插件来扩充他的功能。
这个软件是免费的并具有中文的界面,可以到www.grider.nl下载最新的版本。
硬件部分在了解完遥控器的功能和原理后,我们开始硬件的组装,首先介绍一下所需的元件和电路图:红外接收组件1个12C509 1个二极管1N4148 2个5.1v稳压二极管2个电解电容10u 25V 1个电容15u 2个9针串口插座1个4Mhz晶振1个万用板1个遥控器1个8针芯片插座1个电路图:这里的遥控器可以是家里电视或者空调的遥控器,但这样做必定会和这些电器的遥控功能产生混乱,但我们也可以去电子市场单买一个遥控器,可以避免不少麻烦。
在组装电路之前,要仔细观察一下各个元件的引脚的顺序,要是焊反或者焊错会是件很麻烦的事情。
例如,4个二极管带有黑色圆环标记的一端是负极,电解电容外皮上标有负极的记号…这套电路只有13个元件,只要稍微有点焊接基础,将他组装好并不是件难事。
在完成电路的焊接,我们还要使用编程器向单片机内烧入程序,如果没有编程器也可以到电子市场花钱烧写。
程序可以到网站上写在。
最后将写有程序的单片机插入插座,注意芯片上的凹口对准插座的上的凹口,插反芯片会烧毁。
到这里硬件方面的工作就基本完成了,在确认焊接无误后,准备加电测试。
用串口电缆将遥控接收器和电脑串口相连接,进入windows系统,为了测试,我们使用一个叫Serial Watcher的软件,它可以接收到串口发来的数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自制电脑红外遥控接收器(PC软解码)分类:〖嵌入式〗〖智能家居〗2009-10-14 09:52 4649人阅读评论(9) 收藏举报网上有很多介绍红外遥控接收器制作的文章,但其中大部分是用单片进行红外解码,然后再通过串口或USB把解码后的按键信息传入到PC的。
这样的电路制作起来,不仅造价相对偏高,而且需要对单片编程,这会令大部分软件开发爱好者望而却步。
最近看到一篇仅需要7个简单元器件的红外接收器,只需拿起烙铁,不需硬件编程就可以制作完成,原理图如下:由原理图我们可知,红外接收头把接收的红外信号转换为高低电平通过串口的DSR管脚传入到PC,PC软件通过对DSR高低电平信号的时间曲线进行分析,从而获得相对应的按键信息。
红外遥控器一般采用脉宽调制的串行码,经38kHz的载频把红外信号发射出去。
其编码信息一般由三部分组成:引导码、地址码和数据码。
一般信号长度大约100ms左右,持续按键则重复发送(中间会有10ms以上的间歇)。
常态下,红外接收头的输出(OUT)都是高电平,引导码信号首先会令红外接收头输出一个大约10ms左右的低电平(不同遥控器有不同的时延),这可令接收设备从容判定信号的到来,而后面的地址码和数据码其电平高低变化就相对较快了,大概在几十或几百个微秒之间。
PC红外遥控软件一般选用Girder,在使用之前需要安装“SFH-56 plugin for Girder”这个插件(文件名"igor SFH-56P lug.dll"),否则不能正常处理我们这种电路的红外接收器信号。
可悲的是我至今没找到这个插件,网上提供的很多链接都是坏的。
即使找到了这个插件,要想在我们自己编写的程序中使用也是困难的,因为Girder并没有为我们开发者提供API接口。
既然Girder能用软件实现红外解码,我们为什么不能呢?凡事都要开动大脑,积极行动才对,下面就是我自己焊接的一个红外接收器(元器件是在中发买的,一共不到10元钱,还富裕好多电阻、电容!)(图下方的红外遥控器的接收器是基于USB的,仅支持Vista以上版本,并且不支持个人开发,不过今天它终于发挥了它应有的作用。
当然用电视或VCD遥控器也是可以的)硬件有了,但程序该从何编起呢?1、由于接收到的红外信号在微秒级别中变化,对系统实时性要求较高,所以具备垃圾回收功能,实时性没有保证的C#,似乎完不成这种信号的接收功能,所以我们选择的是VC,由它实现高优先级的线程去进行信号接收。
2、由于红外遥控信号是脉宽调制的串行码,所以我们需要采集信号的宽度,显然采用一般的时钟函数来获取时间间隔是不可行的,因为精度太低,所以我们需用采用多媒体时钟和高精度计时的API函数。
3、一般我们按键持续时间为几秒钟,并且由于按键发出前有一个10ms左右的引导信号,所以我们的程序很容易判断出信号起始点,这样我们一次仅需要接收一定量的原始数据就可以完成初步信号采集工作。
4、对于我们的红外接收程序来说并不需要实际解码出红外信号到底包含了那些具体的信息,只要其能够区分出红外遥控上的各个按键就行。
5、由于红接收器是通过串口RTS管脚供电,且通过DSR传递红外信号的,所以我们的程序即使不接收数据,也要打开串口,不过仅需要处理RTS和DSR管脚的信号即可。
好了,动手去做,下面是用VC实现的一个DLL,其功能就是接收并记录红外信号的持续时间。
核心代码如下:DWORD WINAPI ThreadProc(LPVOID pParam){LARGE_INTEGER litmp;LONGLONG QPart1,QPart2;double dfFreq;int iTime=0; //微秒// 获得计数器的时钟频率QueryPerformanceFrequency(&litmp);dfFreq = (double)1000000.0/litmp.QuadPart;DWORD ModemState,oldModemState=MS_DSR_ON;//EV_BREAK or EV_CTS or EV_DSR or EV_ERR or EV_RING orEV_RLSD or EV_RXCHAR or EV_RXFLAG or EV_TXEMPTY//SetCommMask(HSC_COM_Handle,EV_DSR);//DWORD EvtMask,dwError;//COMSTAT cs;while(HSC_Thread_RunFlag){//等待DSR信号发生变化//WaitCommEvent(HSC_COM_Handle,&EvtMask,&HSC_Ovread);//ClearCommError(HSC_COM_Handle,&dwError,&cs);//获得DSR的状态GetCommModemStatus(HSC_COM_Handle,&ModemState);ModemState = (ModemState & MS_DSR_ON);if(ModemState == oldModemState) continue;oldModemState=ModemState;//清计数InterlockedExchange(&HSC_NUM,0);//开始接收数据if(HSC_State == 0 && ModemState == 0){QueryPerformanceCounter(&litmp);QPart1 = litmp.QuadPart;HSC_State=1;//复位计数InterlockedExchange(&HSC_NUM,0); InterlockedExchange(&HSC_Index,0);//开启定时器HSC_TimerID =timeSetEvent(10,HSC_Accuracy,MMTimer,NULL,TIME_PERIODIC);continue;}//接收数据状态if(HSC_State == 1){QueryPerformanceCounter(&litmp);QPart2 = litmp.QuadPart;//--if(ModemState == 0){iTime = (int)((QPart2-QPart1)*dfFreq);}else{iTime = (int)((QPart1-QPart2)*dfFreq);}if(HSC_Index < HSC_BufferSize)*(HSC_Buffer+HSC_Index) = iTime;InterlockedIncrement(&HSC_Index);//--QPart1=QPart2;}}return STILL_ACTIVE;}如果采用WaitCommEvent函数,你会发现CPU使用时间会很低,不过它会让接收程序无法正常退出,所以只好注释掉该函数了,此时你会发现CPU使用时间会很高。
原始数据一旦采集完毕,剩下的就由C#程序大显身手吧。
C#中DLL的接口函数如下:const string DllPath = @"YFHSCollect.dll";[DllImport(DllPath)]public static extern Int32 HSCStart(Int32 COM, Int32 delay, Int32 BufferSize);[DllImport(DllPath)]public static extern Int32 HSCEnd();[DllImport(DllPath)]public static extern Int32 HSCData(int[] intData);我封装了一个类,一旦有按键信息,就会触发一个Click事件。
此外程序还具备自学习功能,并且可以把学习后的结果序列化到一个XML文件中去,这样下次再按键就可以识别出键名了。
主程序中测试代码如下:public partial class frmMain : Form{YFHWCollect hw =null;int[] hwData = null;public frmMain(){InitializeComponent();hw = new YFHWCollect(this, 1);hw.Click += new YFHWCollect.HWEventHandler(hw_Click);}void hw_Click(object sender, HWEventArgs e){string strInfo = "";for (int i = 0; i < e.lstData.Count; i++){for (int j = 0; j < e.lstData[i].Length; j++){strInfo += e.lstData[i][j].ToString() + " ";}strInfo += "/r/n";}txtInfo.Text = strInfo;lblKeyName.Text = e.KeyName+ " (" + (e.Interval /10).ToString() + "ms)";hwData = e.Data;picBar.Refresh();}private void btnCommand_Click(object sender, EventArgs e){if (btnCommand.Text == "开始"){btnCommand.Text = "停止";hw.Start();}else{btnCommand.Text = "开始";hw.End();}}private void btnStudy_Click(object sender, EventArgs e){hw.Study(txtKeyName.Text);}private void picBar_Paint(object sender, PaintEventArgs e){int width = picBar.Width, height = picBar.Height;e.Graphics.DrawLine(new Pen(Color.Gray), 0, height / 2, width, height / 2);if (hwData != null){float Len=0;foreach(int l in hwData){Len+=l;}float dx = width / Len,DX=0;Pen p = new Pen(Color.Green);float Y=0, Y1=height/4,Y2=(float)(height*3.0/4.0);float X=0;for(int i=0;i<hwData.Length;i++){Y = ((i % 2)==0 ? Y2:Y1);DX = hwData[i] * dx;e.Graphics.DrawLine(p, X, Y, X + DX, Y);X += DX;e.Graphics.DrawLine(p, X, Y1, X, Y2);}}}}测试程序运行结果如下:(上面显示的数据为高电平和低电平的持续时间(低高低高…),单位为1/10毫秒)注意事项:1、红外遥控器按键偶数次和奇数次的编码是不同的,程序需要学习两次,才能正常识别按键信息。