基于【立创·梁山派开发板】智能窗帘项目_立创训练营 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 基于【立创·梁山派开发板】智能窗帘项目_立创训练营

简介:在家居生活中,窗帘占据着重要地位。但无论是手动还是电动窗帘都有不便和局限。为此,我们需要一款智能窗帘控制器,能根据光照自动调节窗帘,通过遥控器和语音实现远程控制。

开源协议: LGPL 3.0

(未经作者授权,禁止转载)

已参加:立创·开发板电子设计训练营

创建时间: 2023-08-16 09:36:45
更新时间: 2023-10-15 21:23:48
描述
# 1. 项目背景 对于追求科学家居生活的人来说,窗帘扮演着不可或缺的角色。但无论是手动窗帘还是电动窗帘,都存在一定的缺陷。手动窗帘需要人工开关,给生活带来不便;而电动窗帘虽然可以实现自动开关,但是无法根据光照自动调节,同时还需要特定的遥控器。因此,一款智能窗帘控制器成为了必要的需求。这款智能窗帘控制器不仅可以根据光照自动调节窗帘的开关状态,还可以通过遥控器进行远程控制,让您随时随地掌控家居遮阳。此外,智能窗帘控制器还具备语音控制功能,让您的家居生活更加便捷和智能化。 * * * # 2. 设计要求与指标 ![立创训练营项目方案 窗帘控制.png](//image.lceda.cn/pullimage/COBu7WYxgWi09kSDaLNsFyG4jroXgwlWnVQr3RQB.png) * * * # 3. 各模块说明 ## 3.1 雨滴模块 ### 原理图设计 ![屏幕截图 2023-10-15 182046.png](//image.lceda.cn/pullimage/Z7CVMVVN2nkqZDcZYseqTDOFhc5y2lPSnC86B5el.png) ### 工作原理 雨滴传感器主要是通过检测水滴的导电性来检测是否下雨。其工作原理是利用两个电极之间的电导性变化来测量水滴。在正常状态下,这两个电极之间存在一个空气间隙,呈断路状态。当水滴接触电极时,由于水的导电性,电流会通过水滴形成电流回路,从而改变电极之间的电阻值。通过测量电阻值的变化,就可以判断是否有水滴存在。 ### 软件设计 #### ① 初始化引脚与ADC 在开始使用雨滴传感器之前,需要对引脚(PF8)和ADC2进行初始化。同时,需要设置ADC的通道(6),以便正确地读取雨滴传感器的输出信号。 #### ② ADC读取 在雨滴传感器正常工作后,可以通过梁山派的ADC模块来读取其输出信号。 #### ③ 返回ADC读取值 在读取完雨滴传感器的输出电压后,需要将ADC的读取值返回给主程序进行处理。 需要注意的是,在处理雨滴传感器的输出信号时,可能需要对数据进行滤波或其他处理,以去除噪声或提高精度。例如,可以采用滑动平均滤波器或其他类型的滤波器来减小随机噪声对数据的影响。 ## 3.2 光照模块 ### 原理图设计 ![屏幕截图 2023-10-15 195157.png](//image.lceda.cn/pullimage/TVGD7IdMseR8yyQ8xSMsV3ITnJgkL2odDESyedhS.png) ### 工作原理 光敏电阻传感器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器,也称为光电导探测器。在光敏电阻中,当受到入射光照射时,其电阻值会随着光强的增加而减小,反之则增大。 为了测量光敏电阻两端电压的变化,可以串联一个电阻进行分压,例如原理图中设计的10kΩ。当光强发生变化时,光敏电阻的阻值会随之改变,从而引起分压电阻上的电压变化。通过测量这个电压的变化,就可以反映光敏电阻所处环境的光照强度变化。 ### 软件设计 软件设计思路与雨滴传感器相同,同样采用ADC功能采集电压变化。 ## 3.3 步进电机模块 ### 原理图设计 ![屏幕截图 2023-10-15 200128.png](//image.lceda.cn/pullimage/PK6zU7Awiie2mpCkTkLnlpVQ51Ci3Jw1OIxUswHI.png) ### 工作原理 步进电机是一种利用脉冲信号进行控制的电机,二相四线式步进电机是其中的一种常见类型。它有两个线圈,每个线圈有两根线,分别被称为A+与A-以及B+与B-。通过连续给线圈通电,可以使其转动起来。 为了使步进电机连续转动,需要采用四拍方式或八拍方式进行通电控制。四拍方式的转动顺序为【A+】->【B+】->【A-】->【B-】,每个步骤之间需要依次间隔一定的时间,以保证电机能够平稳转动。 在实际应用中,通常使用驱动芯片如L9110S来控制步进电机的转动。L9110S是一种双通道步进电机驱动芯片,它具有驱动能力强、噪音低、稳定性好等特点,可以很方便地驱动二相四线式步进电机。通过给L9110S输入相应的脉冲信号,可以控制步进电机的转动方向和速度,从而实现精确定位、调速等功能。 ### 软件设计 首先需要将L9110S驱动芯片的引脚与微控制器进行连接,通常对每一相需要用到微控制器的两个GPIO口来控制驱动芯片的两个输入引脚。另外,还需要配置微控制器的时钟信号,以确保时序正确。 #### ① 设置步进电机启停标志 为了控制步进电机的启停,需要设置一个标志位,一般使用一个变量来表示电机的状态(0表示停止,1表示转动)。在程序中,可以通过读取该变量的值来决定是否向驱动芯片输出脉冲信号。 #### ② 驱动步进电机 采用八拍方式对电机进行控制,根据工作原理,采用逐位移相的方式进行驱动。具体来说,可以分为以下步骤: (1)初始化:在程序开始时,需要初始化微控制器和驱动芯片,并设置相应的参数。 (2)设置初始相序:根据步进电机的结构,初始相序应该是A+、B+、A-、B-。通过逐位移相的方式进行控制,可以实现电机的平稳转动。 (3)逐位移相:在每一个时钟周期内,依次输出A+、B+、A-、B-的脉冲信号,每次移相需要间隔一定的时间,以保证电机能够平稳转动。 (4)检测状态:在电机转动过程中,可以通过读取电机的状态变量来检测电机的状态,以便及时控制电机的启停。 ## 3.4 红外接收模块 ### 原理图设计 ![屏幕截图 2023-10-15 200603.png](//image.lceda.cn/pullimage/ctqapwZI3wCFBA6HKDjg6U3VTtPxFLLZ1c7UnqeD.png) ### 工作原理 红外遥控接收模块是一种常见的无线通信模块,它通过红外光传输数据并由梁山派进行接收和处理。红外遥控发射器以特定的频率发射红外光脉冲,这些脉冲信号被红外遥控接收模块接收。通常情况下,消费类电子产品使用的脉冲频率在30KHz到60KHz之间,而NEC协议的频率为38KHz。 当红外遥控接收模块接收到红外光脉冲信号后,它需要按照约定的协议进行解码以完成数据传输。NEC协议是众多红外线协议中的一种,它的数据帧格式定义与其他协议有所不同,但数据传输原理是相同的。 红外遥控接收模块将接收到的红外光脉冲信号传输给梁山派进行处理。梁山派对接收到的信号进行解码,解析出命令并执行相应的操作。 ### 软件设计 #### ① 初始化引脚与外部中断 首先需要将红外遥控接收模块的信号输出引脚与梁山派的PF7引脚连接,同时将该引脚设置为外部中断模式。在初始化时,需要设置引脚相关的参数,并启动外部中断。 #### ② 读取高电平与低电平时间 当红外光脉冲信号到达微控制器时,会触发外部中断。在中断处理程序中,需要读取该中断的上升沿和下降沿的时间,以便后续判断脉冲的长度和类型。 #### ③ 接收到的码的类型判断 根据NEC协议,通过读取高电平与低电平时间,可以判断接收到的红外光脉冲信号的类型。 #### ④ 红外数据是否正确判断 在接收到完整的数据帧后,需要对数据帧进行校验。使用NEC协议的正反码进行使用正反验位来确保数据的正确性。 #### ⑤ 保存并处理红外数据 如果接收到的数据帧正确,需要将数据帧中的数据保存到缓冲区中,并通知主程序进行处理。主程序可以根据协议规定解析出具体的命令,并执行相应的操作。例如,开/关窗帘和手/自动模式。 ## 3.4 红外接收模块 ### 原理图设计 ![屏幕截图 2023-10-15 203028.png](//image.lceda.cn/pullimage/PmaOSis5zZ9BdwqmxvYwskHLUO4oJw1bKdHqOQLO.png) ### 工作原理 离线语音控制模块的核心部分包括语音采集、预处理、特征提取、匹配和指令输出等环节。在用户发出指令时,模块首先通过麦克风等设备采集语音信号,并进行预处理,如去除噪声、回声等干扰因素。接着,模块将这些语音信号与预定义的指令词进行匹配,以识别用户的指令。一旦识别到特定指令,模块将通过串口等接口将指令发送给梁山派。梁山派在接收到离线语音控制模块发送的指令后,会根据指令执行相应的操作。 ### 软件设计 #### ① 初始化串口与中断 在主程序启动时,需要对串口进行初始化设置,包括选择串口、设置波特率、数据位、停止位和校验位等参数。同时,需要开启外部中断,以便及时接收离线语音控制模块发送的指令。 #### ② 接收串口数据 在初始化完成后,程序进入主循环,不断检测串口是否有数据到达。一旦有数据到达,就通过中断处理程序读取该数据。 #### ③ 对不同语音指令进行响应 在读取到离线语音控制模块发送的指令后,需要根据不同的指令执行不同的操作。这些操作可以是控制窗帘的开关、调整设备模式等。 * * * # 4. 实物验证视频
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP