片机+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能更好的满足设计需求,它的分辨率比起同类型的传感器更高更精确&#

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】Redis主从复制(一)————主从搭建

目录 背景主从复制主从复制的工作流程主从复制的优点 配置 redis 主从结构复制配置文件,修改配置主从结构启动 redis 服务备注 查看复制状态 背景 单节点服务器的问题问题: 可用性:如果这个机器挂了,意味着服务就中断了.性能&am…

重回1990短视频全集:成都鼎茂宏升文化传媒公司

重回1990短视频全集:时光之旅的温情回顾 在数字技术的浪潮中,短视频以其独特的魅力迅速崛起,成为我们记录生活、分享故事的新方式。而当我们回望过去,那些充满怀旧情怀的年份总是让人心生感慨。今天,就让我们一起踏上…

JavaScrip轮播图

前言 在网页设计中,轮播图(Carousel)已经成为一种常见的元素,用于展示一系列的图片或内容卡片。它们不仅能够吸引用户的注意力,还能节省空间,使得用户可以在有限的空间内获得更多的信息。今天,我…

承德露露“不进则退”的十年:毛利率持续下滑,如何实现南北通喝?

《港湾商业观察》廖紫雯 日前,承德露露发布2023年年报及2024年一季报,披露营收、净利均取得一定增长的大好局面,然而时间线拉长来看,2014年、2015年,公司营收已超27亿,小十年时间过去,公司2023…

flask_sqlalchemy时间缓存导致datetime.now()时间不变问题

问题是这样的,项目在本地没什么问题,但是部署到服务器过一阵子发现,这个时间会在某一刻定死不变。 重启uwsgi后,发现第一条数据更新到了目前最新时间,过了一会儿再次发送也变了时间,但是再过几分钟再发就会…

RE_Python

python的exe文件解包 要确保使用工具的环境是和Python version一样(我这里是需要3.11) 不然,ezpy.exe_extracted文件夹点进去,类似PYZ-00.pyz_extracted的文件夹会是空的!! pyc反编译问题 ImportError:…

3588麒麟系统硬解码实战

目录 安装deb 查找头文件 .pro文件添加 检查库是否已安装 error: stdlib.h: No such file or directory 安装deb sudo dpkg -i package_file.deb其中,package_file.deb是你要安装的deb文件的名称。 使用终端命令和apt工具:打开终端,使用以下命令安装deb文件并解决依赖…

如何执行VMware P2V迁移|VMware Converter和替代方案

VMware中的P2V是什么? 我们常说的VMware P2V其实指的就是“物理到虚拟”,将工作负载从物理机器转换或迁移到虚拟机(VM)的过程,能够使您无需从头开始费力地创建和配置新虚拟机。 就像您可以使用Disk2vhd执行Hyper-V物理…

Python爬虫环境设计:构建高效且灵活的数据抓取生态

Python爬虫环境设计:构建高效且灵活的数据抓取生态 在当今信息爆炸的时代,数据已经成为一种宝贵的资源。Python爬虫作为一种高效的数据抓取工具,受到了广大开发者的青睐。然而,设计一个稳定、高效且灵活的Python爬虫环境并非易事…

mac node版本切换 nvm install nvm ls-remote N/A问题

mac 使用nvm 切换node版本失败或者 nvm install &nvm ls-remote N/A问题 一、出现情况 输入 nvm install v16.18.0输出结果 Version 16.18.0 not found try nvm is-remote•to browse available versions.输入 nvm ls-remote输出结果 N/A二、原因分析 1. 镜像包获取…

关闭文件及使用with语句

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 1 关闭文件 打开文件后,需要及时关闭,以免对文件造成不必要的破坏。关闭文件可以使用文件对象的close()方法实现。close()方…

QGraphicsWidget与QWidget的主要区别是什么?

QGraphicsWidget 和 QWidget 都是 Qt 框架中用于创建用户界面的类,但它们在功能和用途上有一些关键的区别: QGraphicsWidget 属于图形视图框架:QGraphicsWidget 是 QGraphicsItem 的子类,它是 Qt 图形视图框架的一部分&#xff…

C++青少年简明教程:C++函数

C青少年简明教程:C函数 C函数是一段可重复使用的代码,用于执行特定的任务,可以提高代码的可读性和可维护性。函数可以接受参数(输入)并返回一个值(输出),也可以没有参数和返回值。 …

嵌入式Linux系统编程 — 2.4 标准I/O库:I/O缓冲详解

目录 1 I/O 缓冲简介 1.1 什么是I/O 缓冲 1.2 I/O 缓冲的目的 2 文件 I/O 的内核缓冲 3 刷新文件 I/O 的内核缓冲区 3.1 什么是刷新文件 I/O 的内核缓冲区 3.2 控制文件 I/O 内核缓冲的系统调用函数 3.3 示例程序 4 控制文件 I/O 内核缓冲的标志 4.1 O_DSYNC 和 O_SY…

(深度学习记录)第TR4周:Pytorch复现Transformer

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 🏡我的环境: 语言环境:Python3.11.4编译器:Jupyter Notebooktorcch版本:2.0.…

奇思妙想02-高考

又到高考的日子了。 离我的高考已经过去一年了。 2023年的今天,我也在为高考而紧张着。 2024年的今天,我还在为高考紧张着。 或者说在因为高考焦虑吧。 在我的高考中我并没有取得自己的理想成绩,也没有进自己的理想院校。 在读了一年大学…

51.线程池大小

问题 1.线程池太小会导致程序不能充分利用系统资源、容易导致饥饿。 2.线程池过大导致更多的线程上下文切换,占用更多的内存。 情况一:CPU密集型运算 应用程序是做一些数据分析,需要大量的使用cpu,程序代码全部都是跟cpu相关的&#xff0…

fastadmin/thinkPHPQueue消息队列详细教程

thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性: 消息的发布,获取,执行,删除,重发,失败处理,延迟执行,超时控制等队列的多队列, 内存限制 ,启动,停止,守护等消息队列可降级为同步执行1、通过composer安装thinkPHP消息队列 …

Java概述 , Java环境安装 , 第一个Hello World

环境变量,HelloWorld 1.会常用的dos命令 2.会安装java所需要的环境(jdk) 3.会配置java的环境变量 4.知道java开发三步骤 5.会java的入门程序(HelloWorld) 6.会三种注释方式 7.知道Java入门程序所需要注意的地方 8.知道println和print的区别第一章 Java概述 1.1 JavaSE体系介绍…

GPT-4 和类似的先进语言模型正在重塑人类与人工智能(AI)互动的方式

GPT-4 和类似的先进语言模型正在重塑人类与人工智能(AI)互动的方式,主要通过以下几种方式: 1. 自然语言理解和生成 GPT-4 能够理解和生成自然语言,使得与 AI 的对话更加自然和人性化。它可以进行多轮对话,理解上下文,生成符合语境的回复。这种能力使 AI 不仅仅是一个工…