本帖最后由 起点116 于 2022-5-5 19:10 编辑
#申请原创# @21小跑堂 @21ic小喇叭
今天我们继续通过米思奇来学习编程。生活中,我们常用的遥控器有很多很多,比如说红外遥控器,2.4GHz无线遥控器,蓝牙遥控器等。我们现在最常见的还是红外遥控器,比如说电视机、空调,等很多很多都是通过红外发射模块发射指令(遥控器),再由红外接收模块(接收头),接收到指令进行分析,并进行相关的操作。我们今天就通过ESP32开发板和红外线接收发模块来学习它的原理和工作方式,以及我们能用它来制作一个可遥控的发光小玩具。
今天需要的主要需要的材料也是非常简单的。下面我们开始准备硬件材料吧。第一个是我们的老朋友了,ESP32开发板一块; 第二个是我们今天要认识的新朋友红外线收发模组一套; 第三个红绿灯模块一个; 第四个就是连接必备神器杜邦线若干。 材料准备齐全。我们玩起来吧。
第一步,先确认所有硬件是好的。(避免了出现问题时无法确认是硬件问题还是编程问题,能快速做出判断。)红绿灯模块和ESP32开发板,我在之前已经测试过了,相信大家也会测试,这里我就不再测试了。不会测试的小伙伴可以关注我之前发的点亮LED小灯那篇**进行测试。
第二步我们先了解一下红外接收头和红外遥控器。
红外遥控器发出的信号是一连串的二进制脉冲码。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的波载频率上,然后再经过红外发射二极管发射出去。而红外线接收装置则要滤除其他杂波,接收该特定频率的信号,并将其还原成二进制脉冲波,也就是解调,内置接收管将红外发射管发射出来的光信号转为微弱的电信号,将该信号由IC内部放大器放大等各种处理还原为遥控器发射的原始编码,再由接收头的信号输出引脚输入到电器上的编码识别电路中。
第三步硬件我们大概了解了,现在开始软件编程部分。软件部分可以说米思奇是相当用心了,在通讯模块中已经为我们准备好了红外收发模块的编程模组。我们点进去看一看,这里经这里已经帮我们做好了模块,我们可以直接使用了。
既然是遥控,我们就得知道发出的指令是什么,通过指令做什么,也就是沟通对不对。不能说,我说吃饭,结果他去睡觉了,对不对?指令的能对上啊 第四步我们将红外接收模块连入开发板,红外接收模块有三个引脚,分别是VCC,GND和信号输出引脚,我们用三条杜邦线即可连入开发板信号接收模块引脚接入开发板输入引脚即可。
我们先看看我们的我们的遥控器都能发出哪些指令。我们将此指令的程序写入开发板确认端口号,开发板型号,引脚信息都正确,我们写出好了,我们按下遥控器看一看。没显示?大意忘打开串口显示器了,我们再试一次???还是不行,为啥板子坏了,红外线收发模块坏了,接线错了,还是遥控器坏了?一大堆问题奔涌而至,幸好之前我们已经确认了开发板是好的。
别急,我们出现了问题就应该解决问题,有问题要上,没有问题创造问题也要上。
我是一个小白,我怕啥?一步一步检查就是了。先确认接线没问题。 再看看遥控器是否正常,红外线用肉眼很难直接看到。我们借助手机摄像头试一试,打开手机摄像头看到遥控器的小红点儿再按下遥控器,小红点儿在闪烁。虽然我看不出它在闪什么?他发生的指令是什么?但我确定他是好的,这就足够了,能发送指。遥控器好用。 我们用遥控器对准接收头再试一次。出来了,这又是啥?
全是乱码。这时你想到了放弃吗?学习向来不会一帆风顺的,我们已经习惯了。通过查看资料,我知道了这里的串口打印。这需要调整波特率,你要保证电脑串口波特率和你写程序的波特率是一致的才行。这里默认波特率是9600 我们进行调整后再试一次。
出来了,看这就是我们想要的。
当遥控器按“1”时,这里显示的FF22DD。
当遥控器按“2” 时,这里显示的FFC23D。
再试一次,没错,我们多试几次,我们将1到8的指令全记下来,一会儿要用到这些指令啊。指令我们找到了,虽说有点小波折,但我们成功了。红外模块正常了。(这里小伙伴一定要亲自测试哦,因为我们的红外线收发模块不是一样的,指令也一定不同的哦)
第五步我们接下来编程,先用“1”控制红色LED灯打开,用“2”控制红色LED灯关。
这里要用到。如果模块和逻辑判断模块当接收到一指令,也就是说接收到“1”指令FF22DD打开红灯当接收到“2”指令FFC23D,关闭红灯。积木我们准备好了,开始盖大楼吧,我们来试一下。
嗯?编译出错?这是为啥指令没问题啊?别急,我们好好想想,我们打印窗口时是16进制的指令,只需要在指令前加0x,注意哦。这里x可是小写的,这样它才能识别你输入指令。
我们修改程序写入开发板,按“1”,红灯亮了,按“2”红灯灭了。
是不是很神奇,我们学会遥控了。下面我们来点好玩的,我们多写几条程序。嗯,程序指令就是1红灯开,2红灯关,3,绿灯开,4绿灯关,5黄灯开,6黄灯关,7全开,8全关。
我们开始编程写入测试,按1 嗯正确按2,没有问题,按3按4 按5......按8完成一切正常。
怎么样很神奇吧,遥控如此有趣。 好了,我们总结一下今天所有的坑。(没有坑,哪来的进步,不爬坑怎能成长?) 一、红外收发模块简单的工作原理。 二、串口打印时要保证程序波特率和串口打印波特率的相同,否则乱给你看。 三、串口打印出的指令是16位,输入指令时需在前面加0x记住x是小写的 四、学会如何确认遥控器是否能发出指令的小技巧。 五、学会了红外遥控模块,如何通过米思奇编程及使用红外模块的编程后的应用。 怎么样?我们成功了,为努力的自己鼓鼓掌吧。 小白不会一直是小白,菜鸟努力终将飞上蓝天。让我们一起努力,加油我们是最棒的。如果你也和我一样也是小白,也想学习物联网,也想提升自己学习编程,那就和我一起学起来吧,我们共同进步互相关心,鼓励,学习,让学习提升的路上不孤单。 大多数人都会选择安逸,可是我们不想做大多数人,我们不想超过任何人,我们只想超越昨天的自己。我们拒绝躺平,我们要不断地提升自我,超越自我。那样成功离我们还会远吗?
|
还是我们的米思齐老朋友,以红外遥控器为指令发出方,ESP32连接红外接收模块解析并执行点灯,案例互动性较好,过程较为详细。