
梁山派-自动窗帘
简介
一个自动开拉窗帘模拟装置,具备以下功能: 1、根据光照强度自动拉合窗帘; 2、根据雨水强度自动拉合窗帘; 3、根据人体接近距离自动拉合窗帘; 4、红外控制拉合窗帘; 5、蓝牙控制拉合窗帘 。。。。。。
简介:一个自动开拉窗帘模拟装置,具备以下功能: 1、根据光照强度自动拉合窗帘; 2、根据雨水强度自动拉合窗帘; 3、根据人体接近距离自动拉合窗帘; 4、红外控制拉合窗帘; 5、蓝牙控制拉合窗帘 。。。。。。开源协议
:GPL 3.0
描述
项目要求:
基于梁山派的智能窗帘装置的设计与实现
1、背景
一叶追随电子科技的孤舟徜徉在一望无际的大海,漫无目的,不知路在何方,茫然之中,遇见一艘大船扬帆远航,愿意为我们指引方向
,愿意带领大家乘风破浪,不说了,果断弃舟登船一路朝阳。。。。。。
2、设计要求与技术指标
设计要求
一个自动开拉窗帘模拟装置,具备以下功能:
①、根据光照强度自动拉合窗帘;
②、根据雨水强度自动拉合窗帘;
③、根据人体接近并逐步靠近自动拉合窗帘;
④、红外控制拉合窗帘;
⑤、语音控制拉合窗帘;
⑥、蓝牙控制拉合窗帘;
⑦、高精度AD采样;
⑧、温湿度采样等。
技术指标
①、可以通过红外遥控、语音设置与蓝牙设置是否打开自动模式;
②、手动模式时,LCD显示当前温湿度;
③、自动模式时,当检测到下雨时,LCD显示下雨关闭窗帘带下雨图片,自动关闭窗帘,此优先级高于温度较低;
④、自动模式时,当检测到温度较低时,LCD显示温度较低关闭窗帘带图片,自动关闭窗帘,此优先级高于光照检测;
⑤、自动模式时,当光照强度很高时,LCD显示明亮打开窗帘,自动打开窗帘;当光照强度很低时,LCD显示昏暗关闭窗帘,自动关闭窗帘,此优先级高于人体检测;
⑥、自动模式时,当检测到人体且逐渐靠近窗帘时,LCD显示人体近窗打开窗帘带图片,自动展开窗帘;
⑦、在任何时候,可以通过红外遥控、蓝牙控制或语音命令展开与关闭窗帘,并打开或关闭自动模式;
⑧、高精度AD采样;
⑨、MCU根据控制命令,驱动电机来回运转实现窗帘的智能开合
3、硬件功能实现
① 雨滴检测原理
雨滴传感器的工作原理一般是通过检测水滴的导电性来判断是否下雨。它是利用两个电极之间的电导性变化来测量水滴的存在。这两个电极之间会 有一个空气间隙,正常状态下是断路状态。当水滴接触到电极上时,水滴的导电性会导致电流通过水滴形成电流回路,从而改变电极之间的电阻值。 通过测量电阻值的变化(其实采的是电压,实物如左下图,接口设计如下中图,实际应用如又下图),就可以判断是否有水滴存在。
② 光照检测原理
扩展板的光照检测功能是通过光敏电阻进行光照强度的识别。光敏电阻是一种特殊的电阻器,它随着光照强度的升高,电阻值会迅速降低,其在 无光照时几乎呈高阻状态,因此暗时电阻很大。
最简单的使用方式就是电源电压接一个固定电阻直接串联光敏电阻到地,通过MCU AD采样采回光敏电阻端电压值,来判断亮和暗。
亦可通过电压比较器加可调电阻电路来调节其灵敏度,如下图
上图中U2.1是一个电压比较器。当电压比较器的2脚电压大于3脚电压时,1脚输出低电平;当电压比较器的2脚电压小于3脚电压时,1脚输出高电 平;R3为光敏电阻,当光敏电阻周围环境很亮时,其阻值会变小,AO的电压也会变小;当光敏电阻周围环境很暗时,其阻值会变大,AO的电压也会 变大;因此通过调整R4滑动电阻的阻值,就可以调整DO输出的灵敏度。
本次设计采用简单使用方式,接口如下:
③红外接收原理及相关介绍
红外线传输协议可以说是所有无线传输协议里成本最低,最方便的传输协议了,NEC协议的频率是38KHZ,但是也有缺点,距离不够长,速度不够 快, 还有个缺点易受灯光、太阳光等干涉,这点也要尤为注意;
NEC协议一次完整的传输包含: 引导码、8位地址码、8位地址反码、8位命令码、8位命令反码。这里我们主要讲解如何接收红外发送端发送的 NEC协议内容。
引导码: 由9ms的低电平+4.5ms的高电平组成。
4个字节的数据: 地址码+地址反码+命令码+命令反码。 这里的反码可以用来校验数据是否传输正确,有没有丢包。
重点: NEC协议传输数据位的时候,0和1的区分是依靠收到的高、低电平的持续时间来进行区分的。这是解码关键。
数据发送0码:0.56m低电平+ 0.56ms的高电平。
数据发送1码:0.56ms低电平+1.68ms的高电平。
所以,收到一个数据位的完整时间表示方法是这样的:
收到数据位0: 0.56m低电平+ 0.56ms的高电平。
收到数据位1: 0.56ms低电平+1.68ms的高电平
还有一个重复码,它是由一个 9ms 的低电平和一个 2.5ms 的高电平组成。当一个红外信号连续发送时,可以通过发送重复码的方式快速发送。
红外线接收头模块输出电平的原理: 红外线接收头感应到有红外光就输出低电平,没有感应到红外光就输出高电平。因此,我们只要检测OUT 端,是否输出低电平,就可以知道是否有接收到红外数据。这里选择接入PB7,使用普通的GPIO即可,接口如下图。
④语音识别模块原理及相关介绍
该语音识别模块是可以由我们自由设计命令词,可以通过在线配置平台进行配置,每个个人账号有30次机会。配置完成之后会生成一个语音识 别固件,我们要将固件下载到模块里,通过模块的B6,B7引脚进行下载。所以下方通过排针的方式引出了B6,B7引脚方便我们下载。还需要注意的 是,在下载 固件时,要先将模块断电。待下载工具识别到模块之后,再给模块通电,才可以正常下载。这个通断电操作,由原理图中的SW1开关 进行控制。
原理图如下,具体可参见官方或者EDA给出的教程https://lceda001.feishu.cn/docx/X2z8dgeRSoguQwxBEsjc3p64n5b?from=from_copylink。
⑤温湿度检测、LCD、人体感应、超声波测距、蜂鸣器、蓝牙透传模块
原理图如下,具体参见梁山派模块移植介绍:https://dri8c0qdfb.feishu.cn/wiki/JNDHwxPWWi99CJk6SkMc6Z3Yn2e?from=from_copylink
不再废话,他们更专业。
⑥步进电机硬件设计
步进电机是将电脉冲信号,转变为角位移或线位移的开环控制电机,又称为脉冲电机。步进电机组成最主要的就是转子和定子部分。
定子,就是由电流控制磁场方向,通电时就会产生磁力;
转子,被定子环绕在中间受定子磁场变化产生转动(下方示意图中转动的指针)
通过给定子通电,产生磁力,将转子吸附过来,那转子就会转一小格;通过给定子连续的通电,就可以实现让转子转动。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数。当步进驱动器接收到一个脉冲信号时,它就可以驱动步进电 机按设定 的方向转动一个固定的角度。因此:
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;
可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的;
可以通过控制绕组通电顺序,达到控制电机正反转的目的。
建议参看EDA官方例程描述,更专业。
步进电机驱动:
使用L9110S作为步进电机的驱动,我们根据数据手册的说明,进行设计即可。
其中BAK控制X4引脚的电平输出;FOR控制X3引脚的电平输出。图中的电机A,接入步进电机的一相即可。按照思路则需要两个L9110S才可以 驱动二相四线步进电机。原理图如下,实际调试发现有个小bug,可以很容易完善,这里留个悬念,有需要copy的自己发现吧。
⑦高精度AD采样着实跟这个项目不太相关,只是闲布板空间浪费,顺带验证下24位AD采样精度,后续可专门出个例程。
简述下原理吧,芯片支持单端采样和差分采样,本次借用仪放把差分信号转成单端信号,这样变相地多出一倍检测口(原来8路单端或者4路 差分),变成8路差分,前端加了低通滤波,这个程序后续上传。
设计图

BOM


评论