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

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

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

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

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

准备工作  分别用电视遥控器和机顶盒遥控器记录红外编码
用串口助手AccessPort按顺序记录遥控器的按键,即使有重复按键的也没关系

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

视频教程

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

正文
本教程主要讲解IR_Lib的操作

第一步 将记录后的红外接收编码全部复制到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. Arduino红外遥控系列教程2013——发射与接收

    教程一:红外接收教程本教程共四步操作,将教大家如何收集电视红外遥控器的编码 视频链接:http://v.youku.com/v_show/id_XNTE2NjQ5NTcy.html 第一步:电路连接, ...

  2. 基于Arduino、STM32进行红外遥控信号接收

    catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...

  3. 基于FPGA的红外遥控解码与PC串口通信

    基于FPGA的红外遥控解码与PC串口通信 zouxy09@qq.com http://blog.csdn.net/zouxy09 这是我的<电子设计EDA>的课程设计作业(呵呵,这个月都拿 ...

  4. 红外遥控接收发射原理及ESP8266实现

    红外遥控是利用近红外光进行数据传输的一种控制方式.近红外光波长0.76um~1.5um ,红外遥控收发器件波长一般为 0.8um~0.94um ,具有传输效率高,成本低,电路实现简单,抗干扰强等特点, ...

  5. S5P4418裸机开发系列教程--源代码下载

    S5P4418裸机系列教程之stdio S5P4418裸机系列教程之shell命令行 S5P4418裸机系列教程之串口回显 S5P4418裸机系列教程之复位測试 S5P4418裸机系列教程之led跑马 ...

  6. 自定义View系列教程01--常用工具介绍

    站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定 ...

  7. 自定义View系列教程08--滑动冲突的产生及其处理

    深入探讨Android异步精髓Handler 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Andr ...

  8. 自定义View系列教程07--详解ViewGroup分发Touch事件

    深入探讨Android异步精髓Handler 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Andr ...

  9. 自定义View系列教程06--详解View的Touch事件处理

    深入探讨Android异步精髓Handler 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Andr ...

随机推荐

  1. C# Url编码 HtmlUrl编码

    今天看了Artwl的一片关于编码的文章,感觉写的非常好,而且人家那博客园的样式都比哥的好看得多,一幕了然,尤其是那黑色背景的H1,妈个B了,哥太喜欢了.既然如果,就来就着它的文章跟样式,顺便来总结一下 ...

  2. 【转】 linux内核移植和驱动添加(三)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED ...

  3. Course Schedule II 解答

    Question There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may ...

  4. Unity 改变类模板-为你的类添加一个命名空间

    之前在写代码的时候,就很疑惑为什么创建类的时候.没有命名空间呢?   后来自己的类终于和别人写的类名字有冲突.... 如何修改Unity创建类的模板呢?  找到下面这个文件 然后修改 保存文件在Uni ...

  5. UIScollView Touch事件

    customScrollView.h #import <UIKit/UIKit.h> @interface customScrollView : UIScrollView @end cus ...

  6. Old Sorting(转化成单调序列的最小次数,置换群思想)

     Old Sorting Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit S ...

  7. 【Unity3d】【项目学习心得】从资源server下载资源(一)

    项目里面的很多资源都是从资源server载入的,这样子能够减小client的包大小. 所以我们须要一个专门的类来管理下载资源. 资源分非常多类型,如:json表,txt文件,image文件,二进制文件 ...

  8. iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解

    (1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...

  9. Java String类具体解释

    Java String类具体解释 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,非常多时候,我们对它既熟悉又陌生. 类结构: public fin ...

  10. 反对网抄,没有规则可以创建目标"install" 靠谱解答

    在ubuntu下遇到这个问题,原因其实很简单,你不能用WINDWOS下的方法用图形方式打开,然后点了一下按扭"解压缩",生成了一个文件夹. 的确,这个文件夹看起来和正常的没有什么区 ...