Linux 红外遥控 (LIRC) 项目
Linux 红外遥控 (LIRC) 允许您使用廉价的硬件通过电视遥控器控制您的 Linux PC。您为什么要用电视遥控器控制您的 PC 呢?有很多可能的原因,最明显的是 MythTV,我之前为 LJ.com 撰写过相关文章。您可能希望将 LIRC 用于演示文稿,这样您就可以走到观众席中,仍然可以切换笔记本电脑上的幻灯片。或者,LIRC 可以用于将机器放置在不显眼的地方,但仍然希望对其进行控制的情况。
举个例子,离我不远的一家餐馆 Linuxcaffe 计划设置一台 PC 来运行室内显示屏。这个盒子将悬挂在天花板下方。Linuxcaffe 的老板 David Patrick 希望员工能够随时更改显示内容,而无需爬梯子。使用 LIRC,这可以实现。
在这里,我将演示如何构建一个 LIRC 系统。对于硬件,您需要一个红外接收器(您可能已经有了)和一个遥控器。少数 PC 配备了 LIRC 软件支持的红外接收器。许多笔记本电脑都配备了用于红外网络的 IrDA 标准接口,以及一些 IrDA 接口,但并非所有接口都与 LIRC 兼容。许多电视调谐卡都配备了 LIRC 支持的红外端口。此外,Creative Labs 过去曾生产一系列包含 LIRC 支持的红外端口的 CD-ROM 驱动器。但是,如果您还没有 PC 的红外端口,则需要考虑其他选项,我稍后会介绍。
少数基于无线电的遥控器已经可以与 LIRC 配合使用,但基本上,LIRC 是一个红外系统。对于遥控器,几乎任何“通用”红外遥控器都可以与 LIRC 配合使用。唯一以问题而闻名且应避免使用的遥控器品牌是 Bang & Olufsen。
请仔细考虑您希望/需要对 PC 进行多少控制。例如,如果您计划进行演示文稿,而您需要的控制仅限于上一张/下一张幻灯片,那么您可以优先考虑可以放在口袋里的小遥控器,而不是带有大量按钮的遥控器。另一方面,如果您想运行 MythTV 机顶盒,您可能需要电视、DVD 播放器等的所有功能,这意味着需要更多按钮。因此,更大的遥控器是可以接受的折衷方案。无论哪种方式,您的选择都非常广泛。
遥控器的价格范围可以从免费(如果您有一个旧的 VCR 遥控器)到几百美元的彩色显示屏遥控器(几乎可以完成所有操作,请参阅罗技 Harmony 系列遥控器)。考虑到 MythTV,我在一家电子产品清仓店以不到五美元的价格买了一个工厂翻新的 RCA 遥控器,还附带了电池。
假设您还没有红外探测器,您必须购买或构建一个。您可以在 LIRC 网站上找到几个红外探测器的设计图,包括使用串行端口、USB 端口或并行端口的设计图。在这里,我将逐步介绍如何在 DB9 外壳内构建简单的串行端口探测器。这种串行端口设计并不完全遵循 RS-232 标准,但对于大多数台式 PC 来说已经足够接近了。对于通常不完全遵循 RS-232 标准的笔记本电脑来说,这种设计可能会有问题。电路图如图 1 所示。在图 2 中,您可以看到在万用板上的一种可能的布局。

图 1. 电路图
要构建您自己的探测器,您需要一些零件
IC1 - SFH 5110-38 红外探测器,或兼容型号
IC2 - 78L05 稳压器
D1 - 1N4148 二极管
R1 - 4.7 千欧 0.25 瓦碳膜电阻
C1 - 4.7 微法 16 伏电解电容器
DB9 母头焊接连接器
DB9 外壳
其他:万用板、连接线、松香芯焊锡、助焊剂清除剂
您可以预料到,找到合适的红外探测器会有些麻烦。其余部件都很常见且容易找到。上述所有部件的总成本应低于 15 美元。
就我而言,我有一些几年前的项目剩下的红外探测器 IC。但是,我不再有数据表,并且 IC 上的标记没有用处。因此,我需要确定引脚排列。在我的本地用户组邮件列表中,Peter L. Peres 建议在原型板上设置如图 3 所示的电路。这背后的想法是,您可以设置各种可能的连接,并且所涉及的电压设置得非常低,以至于 IC 几乎不会损坏。在设置好每种组合后,用一个已知的良好红外遥控器对准传感器 IC,看看 LED 是否闪烁。对于测试设置,您最好使用 5 mA 红色 LED;否则,闪烁可能非常微弱。无论如何,您应该在光线昏暗的房间里进行这些测试。

图 3. 测试设置
我的神秘红外探测器的引脚排列与 Osram SFH-5110 系列探测器相同。该系列布局假定使用 SFH-5110 或兼容探测器。该电路可以与数十种探测器配合使用,但并非所有探测器都具有相同的连接布局,因此请仔细检查您自己的兼容性。
除了上述零件外,您还需要准备一些工具
低功率烙铁(20-40 瓦)
烙铁架
剪线钳
剥线钳
小螺丝刀
小锯
可选但推荐:夹式散热片、第三手零件夹持器、焊锡去除工具
说到烙铁,有 100 瓦和 200 瓦的版本可供制作彩色玻璃窗等物品的人使用。这些高功率烙铁的问题在于它们升温非常快,并且计算机零件可能会因过热而损坏。因此,不要使用功率超过 40 瓦的烙铁,我建议使用接近 25 瓦的烙铁。电视上宣传的“冷热”烙铁在某些工作中有其用武之地,但这里不是。它们存在的几个问题之一是,它们的焊头对于本项目所需的小型精密工作来说太大了。
热量是整个项目中的一个问题。如前所述,本项目中的零件可能会因过热而损坏,但我们需要足够的热量来熔化焊锡。经验丰富的焊接人员可以足够快地将所有这些零件焊接在一起,以至于热量不会积聚,因此他们可以在不使用散热片的情况下完成工作。但作为一名偶尔焊接的业余爱好者,我发现夹式散热片可以提供很大的余地,并避免大量零件被损坏。
有几个网站专门解释如何制作良好的焊点。我建议参考 这个 或 这个。
助焊剂是一种添加到焊锡中间的清洁剂,有助于确保良好的焊锡连接。市场上销售两种含有助焊剂的焊锡:酸性焊锡和松香芯焊锡。酸性焊锡专为散热器维修等工作而设计;在电子工作中应不惜一切代价避免使用它。
尊重您正在处理的东西;如果处理不当,烙铁可能会烫伤。北美销售的大多数焊锡都含有铅,这是一种已知对健康有害的金属,因此您应尽量减少接触。助焊剂清除剂通常含有酒精,因此请勿在明火或其他热源附近使用。最后,焊锡中的助焊剂在您工作时会燃烧掉,产生细小的烟雾。因此,请在通风良好且光线充足的区域工作。
请提前收集您需要的零件和工具,如图 2 所示。因为我在厨房的桌子上工作,所以我铺了一些报纸来保护桌面。
电阻的安装方式无关紧要,但对于所有其他零件,位置很重要。电容器在一个导线旁边有一个负号,以识别哪个导线是哪个。二极管在一端有一条黑线,以识别哪一端是哪一端。从上方看,78L05 稳压器看起来像半个月亮,并且导线相对于平边的位置很重要。红外探测器的一侧有一个透镜,导线相对于该透镜的位置也很重要。DB9 连接器上的引脚旁边应模制有数字。
穿孔板,或万用板,是业余电子工作的奇迹。它是一块薄薄的非导电、耐热塑料,上面以 0.1 英寸的间隔钻有孔。我使用的万用板在每个孔周围都绑定有小的铜环,这有助于确保零件牢固地连接到板上。
第一步是将万用板切割成合适的大小。我为此工作使用了小钢锯,但可以使用 Dremel 或其他小型电动切割工具。我们需要一个 4x5 孔的网格,因此沿着距一边缘六个孔和距另一边缘五个孔的线切割。
第一步是将万用板连接到 DB9 母头连接器。放置板,使其位于引脚的顶部和底部行之间,并且铜环与引脚 6 到 9 的焊杯对齐。然后,将引脚 6、8 和 9 焊接到板上的铜环上。
您需要将二极管末端没有黑线的导线穿过万用板上的一个孔 (C1) 并将其连接到 DB9 连接器中的引脚 7。修剪二极管导线,使其适合 DB9 连接器。在放置二极管时,请记住万用板上方没有太多空间,因此请使所有部件都靠近板。将散热片夹到连接到二极管的导线上,并将其焊接到 DB9 连接器中。等待一分钟让其冷却,然后将二极管焊接到孔 C2。将来自二极管黑线端的导线穿过孔 D1,向上到孔 D2 并修剪掉多余的导线。重新定位散热片,焊接孔 D1,然后取下散热片。
电阻接下来安装。将一端放在孔 D2 中,另一端放在 D3 中。请记住,您需要使电阻靠近板,但要为导线留出足够的空间进入孔 D4。电阻具有很高的耐热性,因此我跳过了此部件的散热片使用。定位通过孔 D2 进入的电阻导线,使其在孔 C2 处结束,并修剪掉多余的部分。进入孔 D3 的电阻导线应在孔 D4 处结束。暂时不要管孔 D3,焊接孔 D2。
使用从二极管上修剪下来的一段导线,我们制作一个小跳线。需要弯曲导线,使一端进入 DB9 连接器的引脚 5,穿过孔 B1,然后向上,使其刚好接触孔 B4。焊接 DB9 连接器中的引脚 5 和孔 B1。
现在,将稳压器放入孔 A2、A3 和 A4 中。请记住注意稳压器的方向。将组件侧的导线留得足够长,以便您可以夹入散热片,并在以后折叠稳压器,使其靠近板。夹上散热片,焊接孔 A2、A3 和 A4,然后取下散热片。
下一个部件是电容器。注意哪个导线是负极,并为散热片和折叠电容器留出足够的空间。夹上散热片,焊接孔 A3 和 B3,然后取下散热片。
我们的第二个跳线接下来出现,由一小段约 0.75 英寸(2 厘米)长的连接线制成。剥去两端的绝缘层,并将一端焊接到 DB9 连接器的引脚 1 中。另一端连接到孔 D4。它可能有点紧,您可能需要移动电阻以适应,这就是电阻之前没有焊接的原因。跳线就位后,在孔 D3 处焊接电阻。
最后,我们来到红外传感器。您将不得不进行一些测试安装,以确保引线足够长,以便传感器刚好位于塑料 DB9 外壳的孔后面。这种安装也可能需要您将电容器稍微推到一侧,避开障碍物。调整好长度后,弯曲穿过孔 C4 的导线,使其横穿到孔 D4。夹上散热片,焊接孔 A4、B4、C4 和 D4,然后取下散热片。
现在您可能想花一分钟时间清理一下。按照制造商的说明,在万用板的焊接侧涂上一些助焊剂清除剂,以清除组装后留下的任何助焊剂残留物。
最后的构造工作是将 DB9 外壳组装到项目周围。完成后,将接口插入计算机上的串行端口并启动机器。这样就完成了项目的硬件部分。
我在软件方面作弊了一点,并使用了 Jarod Wilson 提供的一个快捷方式,他在 记录 MythTV 和 Fedora Core 4 方面做得非常出色。在使用 up2date 将您的系统更新到最新的安全补丁后,启动一个终端会话并输入
su <enter the root password> echo "export KVER=\`uname -r\`" >> /etc/profile.d/kver.sh cd /etc/yum.repos.d/ wget http://wilsonet.com/mythtv/atrpms.repo wget http://wilsonet.com/mythtv/freshrpms.repo yum install lirc-kmdl-$KVER yum install lirc-lib wget --no-check-certificate https://svn.wilsonet.com/svn/mythtvology/trunk/rc.sysinit-mm.diff patch /etc/rc.d/rc.sysinit < rc.sysinit-mm.diff yum install lirc
假设您将探测器连接到 ttyS0,请在文件 /etc/modprobe.conf 中输入以下行
install lirc_serial /bin/setserial /dev/ttyS0 uart none ; /sbin/modprobe --ignore-install lirc_serial alias char-major-61 lirc_serial options lirc_serial irq=4 io=0x3f8
如果您将探测器连接到 ttyS1,请输入以下行
install lirc_serial /bin/setserial /dev/ttyS1 uart none ; /sbin/modprobe --ignore-install lirc_serial alias char-major-61 lirc_serial options lirc_serial irq=3 io=0x2f8
要测试您是否有一个工作的红外探测器,请键入mode2。将工作的遥控器对准您的探测器并开始按按钮。如果您看到类似
pulse 1187 space 596 pulse 598 space 623 pulse 553 space 643 pulse 630 space 603
您有一个工作的探测器。如果不是,则需要打开外壳并开始进行故障排除。首先要检查的是冷焊点,即焊锡没有与零件正确结合的地方。寻找表面暗淡的连接。将散热片夹到附近的相应零件上,重新加热这些焊点,并使用焊锡去除器去除旧焊锡。然后,使用新鲜焊锡重新焊接。
假设现在一切正常,您需要开始配置您的系统以与遥控器配合使用。但那是另一个重要的项目,是另一篇文章的主题。
Colin McGregor 在多伦多地区一家慈善机构工作,兼职做咨询,并曾担任多伦多自由网络总裁。他还是大多伦多地区 Linux 用户组会议的秘书和偶尔的客座演讲嘉宾。