技术标签: 红外遥控 嵌入式学习 【单片机学习】 单片机学习
2.2.1.红外遥控背景知识
本节讲述人机界面的概念以及红外遥控相关的背景知识,目的是拓宽大家的视野和知识面,为进一步深入学习指点方向。
2.2.2.原理图电路分析
本节分析红外接收部分的原理图和工作原理,同时拆解了红外遥控器并讲解其工作原理。
2.2.3.NEC协议讲解
本节主要讲解NEC协议,重点是协议的理解和时序图的解析方法,理解了协议的时序图就可以接着去分析解码代码了。
2.2.4.官方示例代码解析1
本节开始讲解官方示例代码,主要是通过软仿真方式确定精确延时的方法,以及从头到尾读一下官方示例代码。
2.2.5.红外接收程序的移植和调试1
本节开始做程序移植和调试,主要是时间相关的部分需要注意。
2.2.6.红外接收程序的移植和调试2
本节对移植中的问题进行总结,并且提出现有程序的漏洞和修复方法,在项目中会实际去做。
2.2.1.1、人机界面
(1)当面操作的:按键、旋钮 / 触摸按键、触摸屏
(2)遥控操作的:红外遥控、433M-2.4G无线通信、蓝牙-WIFI-Zigbee-4G-LoRa等无线网络
2.2.1.2、红外遥控相关知识
(1)红外线基本知识
(2)红外发射和接收2部分
空调、电视遥控等等,红外遥控器和红外发光二极管如下图所示:
(3)38KHz载波、数字信号和调制
(4)红外遥控器通信协议
之前我们接触的协议有哪些?有什么特点?红外遥控通信协议和他们有什么不同?
红外遥控通信协议很多很多!比如NEC公司的NEC协议、Philips的RC5协议、Sony的SIRC协议等等,本节课程学习NEC协议!后面会详细介绍!
2.2.2.1、原理图和接线
(1)接收端原理图
主要是三个引脚:即电源正( VDD)、电源负(GND)和数据输出(VOUT)
VOUT就是把编码后的二进制脉冲信号通过引脚输出到微处理器
(2)外观图
(3)IR接收模块原理。
(4)接线
2.2.2.2、红外遥控器全解析
(1)功能演示
(2)拆解
(3)芯片Wire-Bonding工艺
2.2.2.3、红外遥控系统工作过程综述
(1)发射端—红外遥控器,不需要操作,里面已经做好处理了,按下之后,发出来的是红外信号
(2)传播:通过空气传播
(3)接收端:需要用协议解调,生成二进制信号,这里就需要学习NEC协议,看下一小节!
2.2.3.1、红外遥控协议原理
(1)红外遥控协议的作用:从二进制层面上定义了如何传输一帧数据
(2)解析协议的关键点:把握好时间—delay函数
(3)不同协议的差异:定义‘1’和‘0’的调制方式、帧的格式
2.2.3.2、NEC协议的关键点
(1)学会看图:载波和信号
(2)关键点:1和0分别是如何表示的
– 逻辑1为2.25ms,高电平0.56ms,低电平1.69ms
– 逻辑0为1.12ms,高电平0.56ms,低电平0.56ms
(3)数据是一帧一帧的整帧传递的
NEC协议中,
以上是一个指令码的序列,但当长时间按住遥控按钮,在这这种情况下,使用NEC协议的红外遥控器将会发射一个以110ms为周期的重复码。也就是说,每一次用户按下遥控器按钮,遥控器在发送一次指令码后,就不会再发送指令码了,而是发送一段重复码。如下图:
重复码由9ms高电平和2.25ms的低电平以及560us的高电平组成,如下图所示:
(4)这是个串行协议
(5)写代码时时序中的时间仍然是关键点
(1)如何得到一段代码的精确延时时间?
(2)利用keil的软仿真确定精确延时
遥控器上面的键值:
电源 | 0x45 | Mode | 0x46 | 静音 | 0x47 |
快进 | 0x44 | 上一曲 | 0x40 | 下一曲 | 0x43 |
EQ |
0x07 | VOL- | 0x15 | VOL+ | 0x09 |
0 | 0x16 | RPT | 0x19 | U/SD | 0x0D |
1 | 0x0C | 2 | 0x18 | 3 | 0x5E |
4 | 0x08 | 5 | 0x1C | 6 | 0x5A |
7 | 0x42 | 8 | 0x52 | 9 | 0x4A |
(1)延时时间配合
(2)屏蔽无效数据的正确姿势
(3)程序缺陷和改良方案
ABCDEF怎么显示出来
本节课程序下载链接:红外遥控
本节课结束!
1.去官网注册天地图秘钥 天地图官网2.做成如下图首先必须得有个分类,如下:<ul> <li @click="liClick('red')" style="margin-left:45%;"> <span>小红</span> <div :class="redToggle ? '' : 'none'" style="backgrou...
elasticfusion和kinect v2实时连接github的issue和这个教程https://github.com/mp3guy/Kintinuous/issues/5#issuecomment-215896353https://blog.csdn.net/qq_34622997/article/details/85262344cd libfreenect2mkdir...
安装Samba1. sudo apt install samba2. 创建共享目录(工作目录)# 切换到用户(家)目录cd ~# 创建目录mkdir samba_share# 如果是多级目录(如a/b/c)加 -R(递归), chmod -Rchmod 777 samba_share3. 创建samba配置文件# 先备份原始配置文件, 用于恢复sudo cp /etc/sa...
摘要:本节主要来讲解Android10.0 selinux、kernel日志在logd中的实现,包括LogAudit、LogKlog的源码分析阅读本文大约需要花费15分钟。文章首发微信公众号:大猫玩程序专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢![Android取经之路的源码都基于Android-Q(10.0) 进行分析]系列文章:[...
这一次要分享的是类型的转换,也就是时间DateTime类型转换成String字符串类型的转换,一般来说,时间的类型一般都是DateTime的类型,也就是说,一开始建数据库的时候,时间这一个的字词可以说是,都是DateTime的类型。在项目中,新增的时候,时间都是按DetaTime的类型进行保存进入数据库的,所以在新增的时候。不会在意类型的。但是,在查询的时候就需要把DetaTime类型转换成...
思路就是使用computed,先初始化一个表头根据某个变量,这里是this.getTypeCode给表头增加行数据。 <a-table rowKey="id" size="small" :pagination="false" :columns="tableHeader" :dataSource="tableData" :bordered="t
为了利用debug工具,大多数程序猿开发的时候使用AS的debug版本,最终发布版本是release版本,但是在这个转变的过程中可能会出现一些意外。1、releas版本与debug版本的applicationId不一样为了客户端上两个版本共存,通常debug设置不同applicationId,这会导致需要填写applicationId申请的第三方平台使用不正常,比如小米推送和微信分享等。
package com.minrisoft;import java.util.Scanner;public class StudentDemo { public static void main(String args[]){ Scanner sc = new Scanner(System.in); int num_1 = 0;//记录人数 dou
一.数据清洗1.预处理:理解数据及数据特征(很重要)2.异常样本数据:将时间、日期、数值等转为统一格式 去除文本中不需要的特殊字符等 去除内容与字段不对应的情况,如:字段为性别,描述为姓名 数据去重 替换不合理值 核验多数据源数据关联时是否正确3.采样:数据不均衡问题:设置损失函数权重,少数类别增大损失系数 下采样/欠采样:从多数类别数据中随机抽取样本数据,使...
Java中线性表List接口的插入方法有三大类,add、addAll和set,他们之间到底有什么区别呢,我们一一来看一、add方法,有2种重载方法1、boolean add(E element):用于向集合的末尾插入新的元素,是List接口中最常用的插入方法List<String> list = new ArrayList<String>(); list.add("小汪"); list.add("小王"); list.add("小旺"); for (.
控制器:app/Controller/User/DoctorController.phphyperf中的控制器,可以通过注解的形式来完成依赖注入hyperf 是完全开放的,本质上没有规定必须基于某种模式下去实现请求的处理,可以采用传统的 MVC 模式,亦可以采用 RequestHandler 模式 来进行开发。依赖自动注入是 hyperf 提供的一个非常强大的功能。hyperf 提供了两种注入方式,一种是大家常见的通过构造函数注入,另一种是通过 @Inject 注解注入,以下代码注释中我有写到。&.
Spring websocket+Stomp+SockJS 实时通信详解转自https://blog.csdn.net/LeiXiaoTao_Java/article/details/79982309一、三者之间的关系&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Http连接为一次请求(request)一次响应...