片机+ISD1760智能家用语音唤醒系统设计

在节奏过快的生活中,人们承受的精神和心理压力十分巨大,这就使得现代人都希望在当代繁忙而枯燥的工作和学习中能身心愉悦的生活。随着信息化发展水平的逐步提高,智能化系统越来越受到人们的重视。市场上普遍的闹钟只是一种到了人们设定的时间就被令人烦躁的声音而吵醒的机械化闹钟,机械化的闹钟不仅将熟睡的人们从梦中惊醒,影响了人们起床的心情,还影响了人们的身体健康。因此,人性化的唤醒系统显得尤为重要,它以多种方式联动,可对光线亮度、语音提示和人体感应等诸多唤醒元素进行个性化调整或设定,尽可能将对人的刺激减低到最低限度,让睡眠中人在设定的时间里自然醒来[1]。
目前,市场上越来越多小型普遍的电子产品的功能不断地被更替,这一现状由于智能化电子产品的出现, 毋庸置疑闹钟就是一个典型代表。普通的响铃闹钟设计缺乏的是人性化关怀这一理念,比如人们还在熟睡中就会被刺耳的闹铃叫醒,这种唤醒方式不仅会使人感到厌烦、浑身不舒服,更重要的是会影响人们的身体健康,因此,人性化的智能唤醒系统显得相当不可忽视。近年来,智能系统的研究已经带领社会进入了更为人性化的领域,这一现状引起了国内外学者及企业的广泛重视。国内,浙江大学提出了一种人性化控制的智能家居若干关键技术研究;中国信息界提出的一款智能闹钟,每天早上能够温柔的唤醒熟睡中的人们;另外,杭州电子科技大学、吉林大学、山东大学等众多学者也进行了智能唤醒系统的相关研究。其研究成果填补了国内在相关领域的多项空白,为人性化的智能家居设计提供了新的思路和技术支持,在很大程度上推动了国内智能化系统的发展进步[2]。国外有一款地毯闹钟Reggie,这款闹钟功能是在唤醒时倘若不站上去,那么它就会一直响直到将人们唤醒,如此就解决了起床困难户的问题;Baboomi智能闹钟,这款智能化的设计既有为闹钟充电的功能,在一定程度上又有震动的功能。临睡前在枕头下放置智能闹钟的震动设备,早上熟睡的人就会被它人性化地震动声音而慢慢唤醒,这种传达起床信息的方式更加智能化;倘若在智能手机上安装智能闹钟的App,也可以实现智能化的语音闹钟,通过设置起床时间,在早上就能感受到舒适地被唤醒。
针对目前功能比较大众化的闹钟设计中存在的人性化关怀不够,以及没有充分考虑到消费者的使用体验等问题[3-5],本设计做出了进一步的改进,主要体现在在唤醒系统的视觉、听觉等方面。家用智能唤醒系统,可根据人们预先设定的起床时间,慢慢调整周围的光照闹钟响起唤醒熟睡中的人们,同时,以温柔的语音提示当天的室外温度来提醒人们穿衣厚度指数等。本系统不仅能满足普通人的唤醒需求,也能满足老年人以及有耳疾的残疾人的唤醒需求。
2系统的设计方案
一款智能家用唤醒系统必须具备基本的电子时钟功能,这可以根据不同的需求设定不同的操作从而实现不同的功能。智能闹钟在设定的起床时间还没到达之前,自动调光灯由暗变亮,闹钟开始响铃,并进入语音提醒模式,和普通闹钟相比较有很大的创新。如果人们还未从熟睡中醒来,那么闹钟就会持续响起直至手动关闭闹钟。本智能家用唤醒系统核心硬件是以STC89C51单片机为主控芯片,根据主控芯片的外围接口这一特点,在外围加以其他硬件电路,然后根据单片机的指令设计要求,在编译软件中采用C语言设计程序,并通过执行一定的程序来实现此系统的功能。系统设计主要由单片机最小系统、温度检测、实时时钟模块、PWM波调光、具有语音提醒功能的闹钟模块、显示和按键模块等几个部分组成。STC89C51单片机最小系统作为主控模块,时间、日期信息的采集由DS1302时钟芯片来完成,温度的获取用DS18B20温度传感器来实现,时间和温度等的显示主要是在LCD12864液晶显示器中完成的;通过按键完成日期、时间的初始化设置和闹钟的设定;借助PWM波的变化实现唤醒灯自动调光;采用语音模块完成闹钟唤醒和温度提醒功能。家用智能唤醒系统设计原理框图如图1所示。

图1系统原理框图
3系统的硬件设计
根据系统的设计方案,系统的原理图设计如图2所示。总体原理图以单片机STC89C51为核心的控制电路[6],外围辅以时钟电路、温度传感器电路、PWM唤醒灯电路、液晶显示电路及语音播报电路等。通过按键设置闹钟,单片机将温度传感器和实时时钟传来的信息处理后送到液晶显示器显示,在设定的时间提前一段时间单片机控制唤醒灯打开,语音模块与单片机进行通信协议,从而实现各个功能。


图2 系统原理图
3.1控制模块的设计
主控制模块以基于STC89C51单片机为核心,这是智能家用唤醒系统设计的最重要的部分,一个能够正常工作的单片机系统是在核心芯片上加入一些外围电路组成的。最小系统和按键控制电路是控制模块设计中的两个主要部分,控制模块负责整体电路的主要工作,通过操作按键和单片机控制电路的运行。
晶振电路和复位电路是单片机最小系统必不可少的部分[7]。单片机正常工作时的工作速度是由晶振电路提供的,这种工作速度是由晶振电路产生的脉冲信号。在理论上,STC89C51单片机的最小系统本应使用的是和系统相配的晶振,然而在本系统中选取的是比较接近的12MHz晶振。由于单片机内部结构的特殊性,因此,只需要一个晶振和两个电容连接在单片机外面的电路中就可实现时钟电路,电容一般选用的是30pF的容量就可以满足要求,图中C1和C2电容的作用就是为了使单片机能够迅速的起振,并且能够使单片机工作时的频率达到稳定。晶振的一端接XTAL2(19),另一端接的是XTAL2(18),两个电容并联接于振荡源之间,工作时能更好的为单片机服务。智能家用唤醒系统的各个部件在处于初始化状态时,单片机可由此开始工作进行操作,这一系列是复位电路提供的条件,复位电路是单片机的准备工作,包括上电复位和按键复位两种模式。在按键复位中,电容C3取值一般为10uF,电阻R取值约为10KΩ,K5是为实现按键复位而设置的。然而,在上电复位中,由单片机运行后给定的高低电平直接实现复位功能。
按键控制电路中,设置了五个按键实现设计所需的要求,按键在设计中能够起到控制外部电路的作用,不同的操作实现不同的功能。本设计中使用的按键不多,仅需五个按键系统所需要的功能即可完成。按键有四个接脚,两个相连的之间导通,按键其中一端接单片机的I/O接口,另一端可以接电源,也可以接地端,此系统中按键另一端是接地的,低电平完成按键的操作,这样的接法程序是比较简单且系统也相对稳定。五个独立按键实现的功能分别有确认返回、加一、减一、闹钟开关及唤醒灯开关,按键K1、K2、K3、K4和K5分别与单片机的P1.0、P1.1、P1.2、P1.3和P1.4引脚连接,控制模块电路图如图3所示。

图3 控制模块电路图
3.2时钟模块的设计
实时时钟电路的设计是本次设计的基本模块,在数字时钟所具备的功能下才能实现闹钟的设定。时钟模块的设计需要采用时钟芯片DS1302,这款芯片可以精确的计数,具有农历和阳历转换的功能,可以编程接口,与此同时还具有掉电保存等功能,在编写程序时能够对其比较方便的进行程序控制[8]。与直接使用单片机内部定时器实现计数功能相比,DS1302时钟芯片实现的功能很便捷,程序简单易编写,稳定性好、容易控制、时间精度高等。由于单片机内部定时器虽然没有使用芯片,但是实现的时间误差较大,不能满足系统要求。所以系统完成时钟电路的首选芯片就是DS1302时钟芯片。
DS1302时钟芯片与单片机进行通信时,仅需要SCLK、I/O和RST三条线连接的方式,可以实现以一对多的方式传送多个字节的时钟信号或数据。DS1302比同类的芯片性能好,功耗低能更好的为系统的运行减少不必要的负荷。时钟模块有两个电源,在Vcc2 不能正常运行时,时钟依然能在Vcc1的作用下维持原来的状态继续运行。若两个电源大小不一,则使用其中较大的一个电源为电路供电,Vcc1采用3V的纽扣电池,Vcc2主电源使用的是整个系统的电源。DS1302时钟芯片需要使用32.768KHz的晶振,晶振电路可产生计时脉冲。为了对所传送的数据进行初始化,DS1302工作时复位脚就需要被置为高电平,反之,数据的传送就会被停止导致数据不能继续传输。
在本系统的设计中,实时时钟电路主要是为了能够准确的显示电子时钟等信息。通过与单片机连接,将用软件实现功能,然后经过显示器显示需要的时间信息。DS1302时钟芯片与单片机的通信接口由3条线组成,VCC接在系统电源上,GND接在地端, RST复位管脚与单片机的P2.2端口连接,实现了时钟电路在复位时由低电平跳变成高电平并启动一次数据传输的过程,SCLK管脚与P2.1端口连接,时钟输入端将记录的脉冲信号存入时钟芯片,I/O管脚与P2.0端口连接,数据线输入输出记录的时间数据。根据电路的需求,可在三线上加上拉电阻,由于P2口内部的缘故,本系统连接的单片机P2接口也可不加电阻。DS1302时钟电路在设计中的原理图如图4所示。

图4 时钟电路原理图
3.3温度检测模块的设计
为了使测得温度值更加精确,DS18B20温度传感器的高精度性能就成了温度检测模块选取的标准。这款传感器属于数字式传感器,而且在进行数据的传送时仅仅一条数据线就可以实现,最重要的一点是它与单片机连接的时候显得更加简单方便,也鉴于此类传感器的结构简单易懂,不需外围的电路辅助完成所需的功能。若采用热敏电阻和A/D转换器实现温度采集,就需选用标准稳定的电阻才可完成设计要求,并且检测的数值可靠性较差。在经过比较论证后,选用DS18B20能更好的满足设计需求,它的分辨率比起同类型的传感器更高更精确&#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/689185.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AIXcoder eclipse 安装使用

1. eclipse 插件安装界面打开 2. 输入aixcode 插件链接安装 aiXcoder - https://image.aixcoder.com/eclipse-update-site/选择 CodeCompletion 点击next,按照提示完成安装 3.重启eclipse 安装成功 console 出现aixcoder 的log工具栏出现aixcoder windows-> pr…

蓝牙资讯|2024年Q1全球个人智能音频设备出货量达到9000万台

Canalys 发布了最新研究报告:2024 年第一季度,全球个人智能音频设备市场呈回暖的迹象,同比增长 6%,出货量超 9000 万台。数据显示,本季度的增长主要得益于 TWS 真无线蓝牙耳机和无线头戴式耳机的强劲表现,两…

.Net Core 8.0 IIS部署遇到奇怪的部分接口报404的问题解决

本地运行没问题,部署到IIS后,部分接口报404,其它接口都正常。 经和群里讨论,大概意思是接口返回数据比较大的时候,就会出现这个问题。 查看事件查看器,发现应该是数据过大时使用了临时文件夹,…

【Vue】组件化开发

文章目录 一、介绍二、根组件 App.vue 一、介绍 组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为。 好处:便于维护,利于复用 → 提升开发效率。 组件分类:普通组件、根组件。 根组件…

分布式版本控制工具软件——Git概述

目录 一、Git概述1.为什么要学习Git?(1)SCM概念(2)SCM实现 2.什么是版本控制?(1)版本控制软件的基础功能(2)集中式版本控制(3)分布式版…

CentOs7 JDK21 安装

CentOs7 JDK21 安装 准备工作 先检查系统是否之前已经安装了jdk 。如果已经安装的话需要卸载。 方式一:使用压缩包的方式 下载jdk21的压缩包 https://www.oracle.com/java/technologies/downloads/ 将下载的gz压缩包上传到服务器并解压 # 创建文件夹 (你可以自…

在npm发布自己的组件包

目录 前言 正文 npm和git的对比 Node环境的配置 具体发布步骤 ※※需要注意的是 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University of Nottingham Ni…

Allegro X PCB设计小诀窍系列--如何在Allegro X中快速将位号调整到器件中心

背景介绍:我们在进行PCB设计时,为了将位号和元器件对应,从而能够更快速准确的辨别元器件位置,通常需要将位号移动至器件中心。如果由工程师手动完成,不仅工作量大,还极易出错。而通过Allegro X PCB设计工具…

基于简单Agent对医疗数据进行分析

数据表 供应商资格审核规定.pdf 医生名录.xlsx 历史就诊记录.xlsx 患者信息名录.xlsx 药品.xlsx 药品库存管理.xlsx 采购单位基本信息.xlsx Agent测试 模型基于ChatGPT-3.5 问题:帮我找出不达标的供应商 Agent分析过程 [Thought: 0] Key Concepts: - 不达标的供…

SQL Server数据库xp_cmdshell提权笔记

文章目录 一、简介二、搭建环境三、利用条件1、查询 xp_cmdshell 是否开启,返回为1则证明存在2、判断权限是不是sa,回是1说明是sa3、开启xp_cmdshell4、关闭xp_cmdshell 四、获取数据库权限1、成功获取sqlserver,进行登陆2、开启xp_cmdshell权…

进口电动流量调节阀的选型-美国品牌

进口电动流量调节阀的选型需要综合考虑多个因素,以确保所选阀门能够满足实际应用需求。以下是选型时需要考虑的主要方面: 一、明确应用需求 工作介质:了解介质的性质,包括流体类型、温度、压力以及是否具有腐蚀性或特殊性质。流…

C语言野指针、规避野指针、assert宏断言

目录 a.野指针成因 1.指针未初始化 2.指针越界访问 3.指针指向的空间释放 b.规避野指针 1.指针初始化 2.小心指针越界 3.指针变量不再使用时,及时置NULL,指针使用之前检查有效性 4.避免返回局部变量的地址 c.assert宏断言的使用 概念&#xff1…

LeetCode 两数之和 + 三数之和

两数之和 简单题 思路:一个Map,key是数值,value是该数值对应的下标,遍历的时候判断一下当前数组下标对应的值在map里有没有可组合成target的(具体体现为在map里找target-nums【i】),如果有,直接…

【代码随想录】【算法训练营】【第28天】 [93]复原IP地址 [78]子集 [90]子集II

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 28,工作的周二~ 题目详情 [93] 复原 IP 地址 题目描述 93 复原 IP 地址 解题思路 前提:分割问题 思路:回溯算法,确定每次递归回溯的分割位置…

navi_cat查看数据库的连接密码

Navi_Cat 建立连接,来访问数据库。可惜,忘记了数据库密码,没事,这么搞。 首先先导出链接,再从链接里取出被加密的密码,然后找个可在线运行PHP的网站(代码在线运行 - 在线工具)&…

Vue项目安装axios报错npm error code ERESOLVE npm error ERESOLVE could not resolve解决方法

在Vue项目中安装axios时报错 解决方法:在npm命令后面加--legacy-peer-deps 例如:npm install axios --save --legacy-peer-deps 因为别的需求我把node版本重装到了最新版(不知道是不是这个原因),后来在项目中安装axi…

2024 年该如何利用 MidJourney 创作AI艺术(详细教程)

什么是 Midjourney Midjourney 是根据文本提示创建图像的生成式人工智能的优秀范例。与 Dall-E 和 Stable Diffusion 一样,它已成为最受欢迎的人工智能艺术创作工具之一。与竞争对手不同的是,Midjourney 是自筹资金和封闭源代码的,因此对它的…

BPMN开始事件-Activiti7从入门到专家(7)

开始事件类型 bpmn开始事件表示流程的开始,定义流程如何启动,在某种情况下启动,比如接收事件启动,指定事件启动等,开始事件有5种类型: 空开始事件定时器开始事件信号开始事件消息开始事件错误开始事件 继…

如何以非交互方式将参数传递给交互式脚本

文章目录 问题回答1. 使用 Here Document2. 使用 echo 管道传递3. 使用文件描述符4. 使用 expect 工具 参考 问题 我有一个 Bash 脚本,它使用 read 命令以交互方式读取命令参数,例如 yes/no 选项。是否有一种方法可以在非交互式脚本中调用这个脚本&…

探索未来制造,BFT Robotics引领潮流

“买机器人,上BFT” 在这个快速变化的时代,创新和效率是企业发展的关键。BFT Robotics,作为您值得信赖的合作伙伴,专注于为您提供一站式的机器人采购和自动化解决方案。 产品系列: 协作机器人:安全、灵活、…