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

news2024/11/18 11:25:38
在节奏过快的生活中,人们承受的精神和心理压力十分巨大,这就使得现代人都希望在当代繁忙而枯燥的工作和学习中能身心愉悦的生活。随着信息化发展水平的逐步提高,智能化系统越来越受到人们的重视。市场上普遍的闹钟只是一种到了人们设定的时间就被令人烦躁的声音而吵醒的机械化闹钟,机械化的闹钟不仅将熟睡的人们从梦中惊醒,影响了人们起床的心情,还影响了人们的身体健康。因此,人性化的唤醒系统显得尤为重要,它以多种方式联动,可对光线亮度、语音提示和人体感应等诸多唤醒元素进行个性化调整或设定,尽可能将对人的刺激减低到最低限度,让睡眠中人在设定的时间里自然醒来[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.coloradmin.cn/o/1799532.html

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

相关文章

通过Excel,生成sql,将A表数据插入B表

文章目录 投机取巧的方式,进行表数据初始化通过navicat搜索A表数据,然后复制进excel中通过excel的函数方式,将该批量数据自动生成插入B表的sql语句然后一次性拷贝生成的sql语句,放进navicat中一次执行,直接完成数据初始化

安全风险 - 组件导出风险

在安全审查中关于组件导出风险是一种常见问题,不同组件都有可能遇到这种问题,而且从一定角度来看的话,如果涉及到三方业务,基本处于无法解决的场景,所以我们需要说明为何无法避免这种风险 组件导出风险能不能规避&…

python的最小二乘法(OLS)函数

1、作用 pandas提供了一些很方便的功能,比如最小二乘法(OLS),可以用来计算回归方程式的各个参数。 2、Python导出的OLS模型的结果 下面是如何解读Python导出的OLS模型的结果。 1. 回归系数: 代表每个自变量对因变量的影响程度&#xff0c…

文本审核纠错

探索高效文本审查利器:Word Checker-CSDN博客 GitHub - shibing624/pycorrector: pycorrector is a toolkit for text error correction. 文本纠错,实现了Kenlm,T5,MacBERT,ChatGLM3,LLaMA等模型应用在纠错…

Facebook与AI:探索人工智能在社交平台上的应用

随着人工智能(AI)技术的飞速发展,社交媒体平台正利用这些先进技术为用户提供更为个性化和高效的体验。作为全球最大的社交媒体平台之一,Facebook在AI应用领域的探索和实践尤为引人注目。本文将深入探讨Facebook如何在其平台上应用…

jupyter notebook使用conda环境

pycharm中安装过可以使用的库在jupyter notebook中导入不进来 1 检查pycharm中安装的库的位置 2 检查jupyter notebook中安装的库的位置 3 查看jupyter notebook内核名字 可以看到jupyter notebook中内核名字叫ipykernel 4 安装ipykernel 在pycharm的terminal中 pip instal…

【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘

🔥 个人主页:空白诗 文章目录 引言一、变量1.1 基础知识1.2 包级变量的声明形式深入解析📌 声明并同时显式初始化📌 声明但延迟初始化📌 声明聚类与就近原则 1.3 局部变量的声明形式深入探讨📌 延迟初始化的…

深度学习每周学习总结P10(车牌识别)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 数据链接 提取码:ppv1 –来自百度网盘超级会员V5的分享 目录 0. 总结1. 数据导入、查看数据分类,自定义transform…

米尔NXP i.MX 93开发板的Qt开发指南

1. 概述 Qt 是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。米尔 NXP i.MX 93 开发板(MYD-LMX9X开发板)使用 Qt6.5 版本进行应用开发。在 Qt 应用开发中,推荐使用 Qt…

初级网络工程师之入门到入狱(一)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、交换机二、路由器三、DHCP(动态主机配置协议)四、路由器配置 DHCP自…

OpenAI发布GPT-4思维破解新策略,Ilya亦有贡献!

OpenAI正在研究如何破解GPT-4的思维,并公开了超级对齐团队的工作,Ilya Sutskever也在作者名单中。 论文地址:https://cdn.openai.com/papers/sparse-autoencoders.pdf 代码:https://github.com/openai/sparse_autoencoder 特征可…

【Qt秘籍】[009]-自定义槽函数/信号

自定义槽函数 在Qt中自定义槽函数是一个直接的过程,槽函数本质上是类的一个成员函数,它可以响应信号。所谓的自定义槽函数,实际上操作过程和定义普通的成员函数相似。以下是如何在Qt中定义一个自定义槽函数的步骤: 步骤 1: 定义槽…

贪吃蛇游戏的编程之旅:在Windows PyCharm中使用Python

在电脑游戏的发展史中,贪吃蛇游戏无疑是其中的经典之作。许多人对其简单而上瘾的游戏玩法念念不忘。对编程爱好者来说,重新编写一个贪吃蛇游戏不仅是对青春回忆的一种致敬,也是一个极佳的学习机会。本文将引导你在Windows系统的PyCharm环境下…

写入文件内容

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在实例01中,虽然创建并打开一个文件,但是该文件中并没有任何内容,它的大小是0KB。Python的文件对象提供了write()…

MFC实现子控件focus焦点上下移动父控件ListView和Gridview也跟着向上下移动

项目中要实现mfc功能,然后子控件焦点下移,LIstView和Gridview父控件不会下移,所以就有这个文章。废话不多说直接上代码。 MFCGridView.java import android.content.Context; import android.util.AttributeSet; import android.view.View;…

【Cityengine】Cityengine生产带纹理的建筑模型导入UE4/UE5(下)

【Cityengine】Cityengine生产带纹理的建筑模型导入UE4/UE5(下) 一、导出数据(2022中文版案例)二、安装datasmith插件三、导入数据四、检查导入材质是否正常五、编辑替换材质六、安装模型编辑插件七、编辑替换建筑规则 一、导出数…

LLM的基础模型7:Positional Encoding

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

路径

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 用于定位一个文件或者目录的字符串被称为一个路径。在程序开发时,通常涉及两种路径,一种是相对路径,另一种是绝对…

关闭文件及使用with语句

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

学习算法笔记(7.5)-贪心算法(股票售卖问题)

学到这里的大家应该都非常清楚贪心算法到底是怎么一回事了,说白了就是动态规划的一种特例,没有动态规划的使用范围广,但是效率却比动态规划效率高,贪心算法不考虑之前的情况,只考虑当前的最优选择以期达到最优的结果。…