极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 77321|回复: 24

解决问题系列(4)——红外编码分析利器使用

[复制链接]
发表于 2013-6-24 15:05:51 | 显示全部楼层 |阅读模式
本帖最后由 瘦网虫 于 2013-8-27 10:47 编辑

续前篇(解决问题系列(3)——红外发射,控制美的空调开 http://www.geek-workshop.com/thread-5001-2-1.html ),偶然从网上搜来美的空调的“开”的编码后,通过程序怎么也dump不出来“关”的编码。

强烈建议没有逻辑分析仪的朋友先尝试下这个帖子:
blueleafxp同学发的《红外线 遥控 空调 测试成功》
http://www.geek-workshop.com/thread-5146-1-1.html

正文开始:

高人histamine的点拨下,通过一个叫“逻辑分析仪”的设备(网购约¥35~¥。。。。)分析出来空调的“关”编码。

为了给他人以帮助,共享此次分析的过程,理论上说,这个东东可以分析出来所有的红外编码(原始码)。


设备是上面的这个样子,也有其他样子,使用起来基本是一样的。

USB接口的,安装驱动、安装配套软件什么的不上图了,没什么悬念。

接线


两根线,分析仪上标了“公共地线”的接arduino的GND,“数字通道1”接红外接收头的数字引脚。
注:红外接收头有3个引脚,vcc(3.3v),gnd(地),输出(我接到arduino的引脚2)
上图中,一个接到数字接收头的GND,一个接到输出了。

然后,然后才加电。逻辑分析仪特别指出要断电接线的。所以要小心,不要把¥35烧了。

运行软件,界面如下:

图中,
标1处是采样的时间长短(越大越占内存),
2是采样频率,
3是上升沿触发,
4是高电平触发,
5是下降沿触发,
6是低电平触发(分析红外就把它按下,红外是低电平触发)

因为抓红外原始数据就一个通道,我只要把数字通道1的“低电平触发”按下就可以开始捕获数据了。


在显示sampling(采样)的时候,对着红外接收头,按下红外遥控器的关,别按错键了。开和关在一个按键上,但是编码不一样。

记得用鼠标滚轮把图例缩小到最小,你能看到一团数据在哪里,看不到的话,多试几次。
嗯,如果你有心,会发现,这个数据团会根据你按键的时间点而往前或者往后移动。

放大,放大放大放大


------------------------------------------------------------------------------------
下面的这种计算方法,经过论证,不如这个帖子里面的取数方法好用。
http://www.geek-workshop.com/thread-5258-1-1.html
------------------------------------------------------------------------------------

我们需要的是每次变化的时间间隔,导出这个变态的数据到csv,导出的选项里面需要改改,要不然出不来需要的数据。


在excel里面看看这些bt的数据,很容易看出这些数据都是时间点,因为他们依次增加


有了时间点,很容易算出来每个间隔。
加个函数,往下一拖就出来了。


看看“开”空调的原始数据
  1. unsigned int rawCodes_ac_open[200] = {4397,4368,561,1578,560,537,557,1581,584,1582,584,486,558,537,584,1554,560,538,558,510,558,1607,557,513,585,511,556,1585,581,.....;
复制代码


离这个原始数据就差一步之遥了。
这一步必须要做。实际上是对你得到的数据向毫秒转换。
对它们做个缩放,并取整。这个系数跟前面的采样频率有关,具体什么样的关系,可以自行研究。


------------------------------------------------------------------------------------
上面的这种计算方法,经过论证,不如这个帖子里面的取数方法好用。
http://www.geek-workshop.com/thread-5258-1-1.html
------------------------------------------------------------------------------------

这么多数字,取哪些呢?
看看原始格式,2个大数字在前,后面跟着一堆小数字,很容易就把头找到了。
转换成arduino的代码
  1. unsigned int rawCodes_ac_close[200] ={4193,4096,595,1451,589,432,588,1453,589,1454,587,432,587,434,563,1475,591,433,564,458,586,1453,587,434,587,433,563,1476,590,1454,587,434,565,1475,566,456,563,1476,590,1453,587,1452,564,1477,566,457,585,1453,567,1477,587,1452,564,460,584,434,564,457,562,460,562,1475,587,434,588,433,562,1476,589,1455,563,1476,588,433,586,436,562,459,586,433,563,458,609,410,563,458,586,433,587,1454,587,1453,563,1477,564,1477,565,1476,581,4858,4237,4074,593,1453,562,460,563,1477,563,1477,565,458,587,434,584,1454,590,433,562,458,587,1453,588,436,584,436,562,1476,588,1453,590,434,562,1480,586,435,586,1453,565,1476,589,1453,589,1451,565,461,583,1453,589,1453,588,1454,564,457,587,434,587,433,587,435,561,1479,586,435,562,458,588,1452,590,1452,565,1476,564,458,587,436,584,433,562,458,588,432,562,461,585,434,584,435,589,1451,588,1453,588,1453,590,1453,590,1451,590};
复制代码


并在代码里发射之:
  1. irsend.sendRaw(rawCodes_ac_close,200, 38);
复制代码


然后就可以听到空调“哔”得一声就关掉了。

抛砖结束。
Enjoy it~

其实上面的计算、转换过程可以更简单的:
详见下面这个帖子中的数据转换部分。
315Mhz模块传输替代315Mhz遥控器 - Powered by Discuz!
http://www.geek-workshop.com/thread-5258-1-1.html

解决问题系列(3)——红外发射,控制美的空调开

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +1 收起 理由
幻生幻灭 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2013-6-24 15:18:36 | 显示全部楼层
very GOOD
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-24 15:23:27 | 显示全部楼层
本帖最后由 瘦网虫 于 2013-7-8 20:58 编辑

延展思考:
if(有这个分析仪&&只要红外数据的话)
{
根本就不需要arduino,只要一个3.3v的电源,一个红外接收头,一个地线,然后把分析仪对应的接上去,顺序操作下来,应该就可以了。;
}

另,发现一个更简单易用的东东,用来抓取红外的原始代码
名字叫“红外遥控编码分析仪”。

附录:
格力空调

开:
8373,4132,630,1507,647,471,646,470,624,1507,648,470,645,471,623,492,624,493,646,470,624,1507,648,470,646,1485,647,471,623,493,623,493,645,470,623,493,623,493,623,493,644,472,645,471,646,1485,626,493,623,493,621,494,623,493,623,492,646,470,623,1507,647,471,623,1508,626,493,623,493,623,1508,648,470,645,18490,634,492,646,470,646,470,623,493,644,471,623,493,646,470,640,477,646,470,645,471,623,493,623,493,644,471,623,1508,625,493,623,493,647,470,645,470,646,470,645,471,640,476,646,470,623,493,623,493,622,493,622,494,622,494,622,494,622,1509,624,1509,625,1510,646,1485

关:
9523,2982,575,1561,571,548,569,546,570,546,570,547,569,546,570,546,570,546,570,546,570,1561,572,546,570,1561,572,546,570,546,570,546,570,546,570,548,568,546,570,546,570,546,570,546,570,1561,572,546,570,546,570,546,570,546,570,546,570,546,570,1561,572,546,570,1561,572,547,569,546,570,1561,572,546,570,18566,579,547,570,546,570,546,570,546,570,546,570,547,569,546,596,520,596,520,596,520,597,520,597,519,597,519,597,1533,599,519,598,519,597,519,597,519,597,519,597,519,597,519,620,496,621,496,621,495,621,498,618,496,621,495,621,495,620,1510,623,1510,623,1509,623,495
回复 支持 反对

使用道具 举报

发表于 2013-6-24 15:34:02 | 显示全部楼层
一定是 哔 的一声么?不能使别的声音?
回复 支持 反对

使用道具 举报

发表于 2013-6-24 16:41:58 | 显示全部楼层
好方法!妈妈再也不用担心我的遥控了
回复 支持 反对

使用道具 举报

发表于 2013-6-24 18:13:36 | 显示全部楼层
那个逻辑分析仪对解决微观世界那些匪夷所思的事情很实用
回复 支持 反对

使用道具 举报

发表于 2013-6-24 19:24:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2013-6-24 20:37:41 | 显示全部楼层
逻辑分析仪、、。。貌似是好东西啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-24 21:12:27 | 显示全部楼层
Alexie 发表于 2013-6-24 19:24
也许你会对这个感兴趣:
http://blog.iteadstudio.com/itead-wifi-ir-repeater-controls-air-conditioning ...

果然感兴趣!谢谢提供链接。
回复 支持 反对

使用道具 举报

发表于 2013-6-25 01:46:35 | 显示全部楼层
话说alex就是itead的alex么?
回复 支持 反对

使用道具 举报

发表于 2013-6-25 01:52:34 | 显示全部楼层
应该可以根据逻辑分析仪里提示的时间来调整,我家的格力空调要乘以10,先导低电平算出来是913,乘以10=9130微妙=9毫秒,跟分析仪提示很接近
回复 支持 反对

使用道具 举报

发表于 2013-6-25 08:04:26 | 显示全部楼层
读出的数据 读懂需要经验
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-25 09:41:14 | 显示全部楼层
bemc 发表于 2013-6-25 08:04
读出的数据 读懂需要经验

可以使用“板凳”楼,3楼提供的那个设备,根本不需要经验。
回复 支持 反对

使用道具 举报

发表于 2013-6-25 09:41:16 | 显示全部楼层
那个 0.77433 的缩放比例是如何确定的呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-25 12:55:59 | 显示全部楼层
本帖最后由 瘦网虫 于 2013-7-10 12:50 编辑
tangrui 发表于 2013-6-25 09:41
那个 0.77433 的缩放比例是如何确定的呢?


网上搜来的正确编码第一个值4397,我读出来的编码第一个值54154,除一下出来的。
这一步为必须步骤。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 13:41 , Processed in 0.050400 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表