Arduino红外遥控系列教程2013——红外转码

教程三:红外转码教程——用电视遥控器取代机顶盒遥控器


IMG_3384.JPG

2013-2-20 20:36 上传
(99.43 KB)





前言

前段时间看到了使用红外遥控的X-Bot机器人[链接],感觉很有意思。最近开始玩Arduino与红外,一方面打算将来用于BOXZ的之间的通讯控制。另一方面源自对家里机顶盒遥控器粗糙手感的小抱怨,而市面上所谓的万能遥控器,不论是做工质量还是识别性能实在都让人不爽。本教程基于Arduino的IRremote库,将教大家用电视红外遥控取代机顶盒遥控器,来操作电视。



关于红外的发射与接收的基础和硬件接线,请参考上一篇 Arduino红外遥控系列教程2013——发射与接收[链接]



控制原理

如图所示,本程序除了主程序负责进行映射运算以外,其他的子程序都是数组,保存了红外发射和接收的编码,按键信息和电脑按键编码。然后通过Mapping.h来实现对数组索引的映射。通过模块化让程序更灵活,如果更换遥控器只需对更换的部分进行代码的更新即可。

overview.jpg

2013-2-20 20:35 上传
(43.89 KB)





对于数组定义如下

  1. 数组范围ID[0 to 255]
  2. 其中[0 to 99]为默认设置,包括电视机/机顶盒/影碟机等常用按键的定义
  3. [100 to 255]为用户自定义设置



    准备工作分别用电视遥控器和机顶盒遥控器记录红外编码

    用串口助手AccessPort按顺序记录遥控器的按键,即使有重复按键的也没关系

IMG_3392.JPG

2013-2-20 20:36 上传
(120.21 KB)





Arduino红外遥控系列教程2013——发射与接收[链接]



视频教程



视频链接:http://v.youku.com/v_show/id_XNTE2NjU1NTYw.html



正文

本教程主要讲解IR_Lib的操作

IR_lib.png

2013-2-20 21:07 上传
(76.97 KB)





第一步 将记录后的红外接收编码全部复制到Step01表中

复制自串口助手AccessPort



第二步 将记录后的红外发射编码全部复制到Step02表中

复制自串口助手AccessPort



第三步 在表main中点击Step03按钮,更新数据

注意,部分编码可能被Excel误识别成诸如1.23E+07的错误代码,是因为代码中特殊位置含有E,需要手工修正

在按键编码前面加入单引号(’)即可解决



第四步 手动输入设备有关信息,并对编码进行Comment的匹配

Comment列根据AccessPort记录的编码按键顺序对号入座即可

Comment的下拉菜单如无,可在lib表的100以后进行自定义



第五步 在Mapping的Fixed栏内对编码匹配进行修正

自动匹配(Atuo Mapping)可以降低Mapping的工作量

但目前只能将红外发射与接收中已有的Comment进行自动匹配定义。

对用户自定义或者无法匹配的则不输出,需要用户手动在Fixed列中修正添加



第六步 点击Step05按钮进行配置导出

点击对应的复制按钮,直接在Arduino对应的子程序中覆盖粘贴即可





待完善的部分

由于本人Excel的水平有限,还无法做到更自动化的操作。

我会努力研究的,但同时也希望有高人指点,大家一起来丰富Arduino的红外应用。

  1. Step 05暂不支持批量导出(宏运行代码有问题,暂时屏蔽)
  2. Step 05宏未完成,导出中文乱码(需要导出ANSI as UTF-8)
  3. 对IRremote库默认编码以外的自定义编码不支持,感兴趣的可以参考的IRremote样例IRrecord



    总结

    在做红外系列教程之前,在网上也借鉴了大家的红外程序。

    于是有通过模块化编程来提高本教程的灵活性,并通过Excel帮助大家自动生成代码。

    相信通过时间的积累,大家分享各自家里红外遥控器的编码,实现真正的万能遥控器!



    下一篇

    Arduino红外遥控系列教程2013——红外转码扩展应用1[链接]

    via - 极客工坊

标签: Arduino教程