摘 要
近年来工作时间的增加,大部分疲于工作的人常常需要充足的休闲与放松。传统的摇篮有时不能满足被
看护者即婴儿的需求,这个问题给大部分看护者家庭的生活带来了不小的麻烦。但智能家居的兴起与发展带动了智
能摇篮的产生,使其能比传统摇篮在减轻看护者自身的负担和及时了解并照看婴儿的方面发挥出更大的作用。
综上所述,本智能摇篮系统设计以具有强抗静电,强抗干扰等特点的STC89C52作为主控制单元,设有按键模块
对摇篮进行手动、自动、模拟睡眠的功能选择,借由LCD显示屏显示当前状态,通过声音检测模块、水分检测模块实
时采集婴儿所处的环境状态,根据实际情况主控制单元采取不同的措施来帮助看护者看护婴儿。当声音检测模块的
驻极体话筒采集到婴儿的过大声音时,会通过语音模块播放音乐并通过步进电机驱动实现自动摇摇篮;水分检测模块
的水位传感器检测到异常时,会通过语音模块自行播报婴儿尿床的语音提示并停止摇摇篮,及时告知看护者,更好地
解决看护者在照顾婴儿时所遇到的问题,具有一定的实用价值。
关键词:STC89C52;声音检测;步进电机;水分检测
1概述
1.1课题的意义与背景
随着时代的发展和社会的进步,父母对于子女在婴儿时期的培育愈发重视,越来越多的家庭意识到为婴儿提供
一个良好的成长环境是婴儿培育过程中的重要条件。但照顾养育婴儿常常非常耗费大量的时间与精力,与当代社会
中父母快节奏的工作生活冲突巨大,在日常对婴儿的看护方面难免会产生疏忽。有些父母因为长时间照顾婴儿,在
闲暇时刻也不能得到较好的休息,甚至严重干扰了自身健康的生活规律和正常的工作作息。然而在照顾婴儿方面
上,传统的摇篮难以满足生活带来的快节奏,看护者都是借由人力摇动摇篮,在持续安抚的情况下婴儿才安静下来
入睡,摇篮在这样的情况下使用起来仍然会花费大量不必要时间和人力,增加了不必要的劳动负担。同时在生活
中,影响婴儿睡眠的因素诸如所处环境变化和看护精细度等,也使婴儿处在一个较难入睡的环境之中[1]。
因此一款智能摇篮不仅能保障婴儿的健康与茁壮成长,也能很大程度上减少看护者的负担,让看护者不必在工
作或闲暇时耗费过多精力照顾婴儿,随时提供给看护者有关婴儿的环境和睡眠信息,提供看护者科学的看护建议,
进而让看护者与婴儿都获得更高品质的生活,营造更良好的婴儿健康成长环境。
1.2智能摇篮系统的研究近况
随着科技发展水平的不断提高,越来越多的人开始注意日常生活中的种种细节,国内不断涌现出很多不同种类
的智能产品,不仅能够帮助人们享受更好的生活,也能够解决一系列生活中出现的难题。近些年,国内外许多研究
开始着手于开发智能摇篮,此举可为看护者省去不少麻烦[2]。
研究的主要方面是从婴儿摇篮的功能角度出发进行的。摇篮的主要特点是可以凭借外力进行有节奏的摇摆,便
于婴儿入睡。国内市场的部分婴儿摇篮,功能相对较少,达不到智能化,系统的某些功能还需凭借使用者的主观来
决定,不具有科学性,还有很多研究与进步的空间。近年一家国外公司研究出了一种自动婴儿摇篮,当婴儿啼哭
时,摇篮便会自动摇动,同时摇篮自带的录音机可以播放预先录下的音乐。
1.3研究的主要内容
研究的主要内容是利用单片机,设计出一个基于单片机的智能摇篮系统。通过水分检测模块检测到水分时,进
行语音提示,通过声音检测模块检测到声音时,播放音乐,通过显示模块显示当前系统状态,通过电机模块进行摇
摇篮操作。通过按键模块可以选择功能,实现自动、手动、模拟睡眠模式的切换,从而达到摇篮智能化的目的。其
中研究包含以下几个方面:
1.对智能摇篮系统所要实现的功能原理进行深入了解和研究学习,挑选出与功能实现相对应且合适的控制芯片与元
器件。
2.进行硬件电路的设计,主要包括按键电路设计、显示电路设计、语音播报电路设计、电机驱动电路设计、检测电
路设计、单片机外围的相关电路设计等。
3.进行软件程序设计,主要包括LCD1602显示的程序设计、WT588语音播报的程序设计、单片机主程序的设计等。
4.将智能摇篮系统的各个模块组合起来,导入程序,并根据预期的效果进行对应功能的检验测试等。
5.最后对检验测试的结果进行归纳,指出检验测试和归纳过程中存在的不足之处,提出相应的改进与解决方案。
2智能摇篮系统设计的原理与方案分析
2.1电机驱动模块分析
2.1.1 ULN2003A芯片原理
ULN2003A是一种高耐压、大电流集成达林顿晶体管的芯片,是由七个NPN达林顿管构成,具有带载能力强的特
性,能够满足驱动电路所需求的高速大功率,并且能够直接对TTL和CMOS等电路中缓冲寄存器内预存的数据进行处
理,内部为七路反向器电路,
图2-1 ULN2003A内部结构图
ULN2003A输入端输入高电平时,输出端就输出低电平,反之输入端输入低电平时,输出端输出高电平。由于
ULN2003A使用集电极开路输出方式,要让内置的二极管起到续流的效果,必须要把公共端接上对应负载的供电电
源,形成对应的续流回路,以此可以用作驱动步进电机的驱动电路。
2.1.2 28BYJ-48步进电机原理
步进电机是以步进的方式进行运作的电机,运作的主要原理是将电脉冲信息经过转换从而转化形成角位移,进
而达成数字控制的目的。每当接收到一个电脉冲,步进电机就会将此电脉冲信号转变成角位移并转过去一定的角
度,该角度被称之为步进角。本设计采用的是四相五线减速步进电机28BYJ-48,电机内部的轴每转动一圈,外部的
轴只转动5.625°,即5.625/360=1/64,即减速比为1:64,如果外部的轴要完整地转动一圈,就需要大约4096个电脉
冲信号,其结构图如图2-2所示[4]。
图2-2 步进电机结构图
步进电机的速度由脉冲频率、转子齿数与拍数共同决定,电机的角速度和频率形成正比例,因此转子齿数和拍
数处于保持固定的情况下,控制住脉冲的频率就能够得到所需要的速度。步进电机的负载转矩是与速度形成反比例
的,速度越快,则负载转矩就越小[5]。
本设计中四相步进电机采用八拍的驱动方式控制,控制步进电机的正反转只需要改变电流通电的方式就可以进
行实现,控制起来相对简单便利,同时还可以在反转的过程中实现非周期性的反转以实现相应的功能,对应的正反
转表如表2-1所示,其中1表示单片机对应管脚输出高电平,0表示输出低电平[6]。
2.2水分检测模块分析
2.2.1 水位传感原理
Water Sensor水位传感器是一种水位检测识别传感器,此传感器经过凹陷防滑处理设计了半月形的凹陷,表面
设有一系列相互平行的导线,可用于检测水滴或水量的实际大小,具有体积较小,简洁轻便,功耗较低,灵敏性好
等元器件特性。该传感器能够与控制电路进行直接相连,元器件设置了三个不同的引脚,由上至下分别分为GND端
口、VCC端口以及“S”数据输出端口,不仅可以用于测量水位,且可检测是否有水,
Water Sensor的工作电压为直流电产生的3-5V电压,本设计中用于检测是否有水,当检测是否有水时,可根据
检测模拟输出端的输出进行判断,输出的模拟信号为电压信号。输出模拟信号后在LM393的引脚处获得经过放大的一
个电压值,通过与比较电路中的预设电阻进行分压后,再对电压值进行比较,单片机可根据是否存在电压信号进而
判断是否有水[8]。
2.2.2 LM393芯片原理
LM393是一种设有双路电压比较器的集成电路,内部由两个相互独立的精密电压比较器组成,它们的作用主要是
用于将两个输入电压进行比较,依据两路中电压输入的高低变化决定电压输出的高低变化
LM393主要特点包括小于2mV的失调电压、有118V和236v两个可供选择的电源电压范围、对于比较信号的内阻
限制较为宽泛、较宽范围的共模、范围较大的差动输入电压、开路的输出方式以及可供灵活选择的输出电平等特点
。内置的电压比较器可以类比于增益不可调节的运算放大器。电压比较器通过输出电压的高低电平方式表现出来用
于比较两个电压的大小。当输入端“+”的电压大于输入端“-”的电压时,比较器进行高电平输出,反之进行低电
平输出[10]。
2.3声音传感器模块分析
声音传感器是一种将声音信息转化为电信号的传感器元器件,能够使用接触或非接触的方法采集并检测声音信
号,该传感器内有对声音变化灵敏的电容式驻极体话筒,该话筒由声电转换以及阻抗变换两部分组成,构成声电转
换的主要元件是驻极体话筒的振动膜。它的一面是由一层金属薄膜和塑料薄片构成,通过高压电场进行驻极后两边
都会携带一定量的正电荷与负电荷,使得金属薄膜和极板组合形成一个电容。当金属薄膜片接触到声音产生的机械
振动时,会造成两端的电场发生改变,进而使得输出电压也随着声波的改变而改变,
这一微小的电压随后经过LM358放大器,LM358是一种双运算的放大器,内部设有两个独立且具有高增益及补偿
内部频率功能的运算放大器。适用于具有较宽的电源电压范围的单电源使用,也可适用于双电源的工作方式,具有
电压跟随性能良好以及低功耗的特点,
LM358工作在推荐的条件环境下时,其电源电流和电源电压之间并无关系。它的应用范围广泛,涵盖了传感放大
器、直流增益模块以及其他适合用单电源进行供电的运放实际应用环境中[13]。
2.4语音播报模块分析
WT588D语音芯片是一种DIP16封装形式的语音芯片,核心控制部分采用WT588D-20SS,芯片中语音的输出方式分
为DAC与PWM两种方式,能够加载的音频格式为WAV且加载的音频采样频率的范围在6k~22 kHz之间,播放加载的音频
在音质方面无损完好,
2.5智能摇篮系统设计的方案分析
2.5.1 最小系统的单片机选型
单片机最小系统中单片机主要承担的功能包括完成对水分检测模块、声音检测模块以及按键模块的信息采集、
实现对电机驱动模块、LCD显示模块以及语音播报模块的控制与对应功能。
在选择合适的单片机这方面上要兼顾包括单片机自身的控制速度、实用性以及可实际操作性等在内的多方要素
考虑,将备选的两种单片机型号进行参数对比,对比方面如表2-2所示。
表2-2 两种单片机型号参数对比
单片机型号 AT89S51单片机 STC89C52单片机
工作电压 5V 3.3V-5.5V
内部ROM 4KB 8KB
最佳编程方式 SPI通信 ISP通信
根据上表所示备选单片机的相关参数来看,虽然AT89C51和STC89C52都可以完全兼容设计系统,但两者在运行方
面存在很大的不同。STC微控制器拥有十分快速的运作速度,大约为AT的3~30倍,在正电压低于5V的环境下也能正常
工作,证明了STC系列的单片机在工作环境方面的要求并不高,在3~4V的电压环境下也能够正常工作,使用起来十分方便。相比之下,AT系列的单片机不工作时需要通过检验单片机的电源是否正常来确认最小系统是否运作,稍显不
便,且可扩充后续功能的空间有限,而STC系列单片机可以给程序提供足够多的运算空间,因此在本设计中选择
STC89C52作为最小系统的单片机单元[15]。
2.5.2 设计方案分析
本设计采用的方案是由28BYJ-48减速步进电机配合ULN2003A芯片组成电机驱动模块;水分检测模块则由Water
Sensor水位传感器配合LM393芯片来构成,配合以声音传感器为主的声音检测模块,组成智能摇篮系统设计的总体检
测模块;并用STC89C52组成的最小系统、WT588D芯片以及LCD1602液晶显示屏完成界面显示、语音播报等功能,然后
把各部分连接起来,方案系统结构框图如图2-7所示。
图2-7 方案系统结构框图
该方案中采用STC89C52作为控制单元,降低了设计所需的成本。同时,采用可调节灵敏度的声音传感器与平行
铺设检测线路的水位传感器,易于捕获声音与水分信息,减速步进电机更接近于适合摇篮摇动的幅度,是保证摇篮
系统功能正确实现的的成本较低的设计方案。
2.6本章小结
本章主要介绍了智能摇篮系统设计中各模块所需元器件的选择以及原理架构,并确定了课题中系统的整体设计
方案,完成了对各模块所需元器件以及最小系统中单片机类型的选择,最终选择了28BYJ-48步进电机、ULN2003A芯
片、Water Sensor水位传感器、LM393芯片、声音传感器、WT588D芯片、LCD1602液晶显示屏以及更为合适的
STC89C52芯片。
3系统硬件电路设计
系统硬件总体设计框图如图3-1所示,系统上电后,MCU控制完成对系统各模块的初始化,初始化完成后显示模
块显示状态。接着对键盘进行扫描,判断按下的键盘,执行相应状态的程序,根据水分检测模块和声音检测模块接
收到的环境信息,语音模块和电机模块进行相应状态的反馈,再返回键盘继续扫描,依次循环。
图3-1 系统硬件电路设计框图
3.1 MCU最小系统电路
3.1.1 STC89C52外围电路
本设计采用STC89C52作为单片机系统主控制芯片,该芯片是一种配备有8K字节闪烁可编程可擦除只读存储器的
COMOS8微处理器,具有低功耗与高性能的特点,P2为程序下载调试口,用于下载及调试单片机系统所要执行的程
序,该主控制芯片外围电路及程序下载调试口如图3-2所示。
图3-2 外围电路及程序下载调试接口图
单片机的引脚配置如下:
第1、3、5引脚(P10,P12,P14):分别连接三个LED灯L2,L3,L4,用于提示目前智能摇篮系统的所处状态。
第2引脚(P11):连接水分检测电路中的LM393第1引脚(OUT A),用于获取水分检测获得的数字信号。
第6、7、8引脚(P15,P16,P17):分别连接按键电路中的三个按键K2,K3,K4,用于切换目前智能摇篮系统所处的模
式。
第9引脚(RESET):连接复位电路,用于将智能摇篮系统回复到初始状态。
第10、11引脚(P30,P31):分别连接程序下载调试口的第2、3引脚,用于进行程序的下载及调试。
第13引脚(P33):连接声音检测电路,用于获取声音检测获得的数字信号。
第14、15、16引脚(P34,P35,P36):分别连接语音播放电路中的WT588D第12、11、10引脚(D1,D2,D3),分别用于传输
数据信号DATA、片选信号CS以及时钟信号CLK。
第18、19引脚(XTAL2,XTAL1):连接时钟电路,使系统在工作时间上形成一个统一时间标准。
第3239引脚(P07P00):分别连接液晶显示电路中的LCD1602第147引脚(D7D0),用于从MCU获取将要显示的数
据信息。
第2628引脚(P27P25):分别连接液晶显示电路中的LCD1602第4~6引脚(RS,RW,EN),用于进行数据命令的选
择、读写选择以及使能信号的获取。
第2124引脚(P20P23):分别连接电机驱动电路中的ULN2003A第41引脚(IN4IN1),用于从MCU获取电机运作相
关的数据信息。
3.1.2晶振电路
本设计中晶振电路是由两个30pF负载电容和一个11MHz左右的晶体振荡器构成,晶体振荡器在此电路中的作用是
为单片机系统提供一个可供参考的频率,该频率不仅可以影响而且和单片机的运转速度成正比。C2、C3为负载电
容,因其变化会使电路两端的电压不同,导致振荡器发出的正弦波不是对称的,所以本设计中采用两个30pF的负载
电容,配合STC89C52单片机,更为适合进行电路分析,所以选择11MHz左右的晶体振荡器,
3.1.3电源接口及复位电路
单片机在处于上电状态时并不稳定,为应对此问题,一个复位逻辑信号对单片机来说是必要的,它能够将单片
机进行初始化回到某个确定状态。复位电路的运作原理是将电容与电阻外接在单片机的复位引脚RST上,从而达到上
电复位的目的,通过按键实现对单片机系统的复位操作,电路图如图3-4所示[17]。
图3-4 电源接口及复位电路
3.2声音检测电路设计
采用声音传感器采集声音信息,一端接VCC,另一端负责接地,声音检测电路通过外置的声音传感器,在外部环
境产生声音时,对应模块的OUT端输出电平将会从高电平变换成低电平,电路图如图3-5所示[18]。
3.3按键电路及指示灯电路设计
采用弹性机械开关向单片机系统输入数据,控制相应的工作状态,以实现简单的人机互动。考虑到本设计中所
需的按键数较少,所以采用独立按键。本设计中设有三个按键,按键K2进入手动模式,按键K3进入模拟睡眠模式,
按键K4退出睡眠模式,
本设计设有L2,L3,L4三个LED,通过单片机系统进行连接,用于提示系统目前所处的状态。因为LED存在工作电
压大小方面的限制,高于工作电压,会导致正向电流过大,易烧毁LED,于是每个LED均需要串联一个电阻。
3.4液晶显示电路设计
采用LCD1602液晶显示屏进行状态显示,LCD1602液晶显示屏幕是目前广泛使用的一种字符型液晶显示,包含多
个5×8点阵块组成的显示字符块,每个点阵块代表一个字符位,显示屏可支持显示两行,每行各显示16个字符。其
中,VO端用于对比度调节,RS用于选择对应的寄存器,EN为液晶显示屏的使能端,D0-D7为数据总线,由单片机的对
应引脚提供用于现实的具体数据,在单片机和LCD1602之间设置的排阻作为限流电阻,目的是保护单片机、电源以及
LCD1602显示屏,
一般应用中只需往LCD1602中写入数据和指令,因此可将LCD1602的读写选择控制端(RW)直接接地,这样可节省
一根数据线,本设计中RW用于进行数据和指令的读写操作。
3.5电机驱动电路设计
采用步进电机驱动实现模拟摇摇篮,考虑到本设计中所使用的STC89C52单片机输出的脉冲信号并不满足步进电
机驱动的需求,容易使步进电机的工作质量受到影响,因此无法直接将单片机与步进电机连接起来,而是在两者之
间设计一个采用ULN2003A芯片的驱动电路,放大单片机输出的脉冲信号进而驱动步进电机,步进电机通过XH-5A针座
从外部连接到电路当中。当接收到一系列连续不间断的控制脉冲信号后,步进电机可以实现连续转动,每个脉冲信
号都对应着步进电机的对应绕组的通电状态被改变,转子转过一个步距角。当通电状态的改变过程完成一个循环
时,转子转过一个齿距。
3.6语音播放电路设计
采用WT588D芯片进行语音播放,通过语音编辑器将准备播放的语音及音乐转换格式为WAV后写入芯片中。串联两
个IN4007二极管D1,D2接通VCC进行分压。每段语音或音乐作为一个语音文件存储时都对应一个独立的地址,通过解
码后的数字音频信号进行数模转换,产生音频模拟信号,WT588D在本设计中使用串口控制模式下的三线串口控制方
式,此方式由三条不同功能的通信线构成,它们分别是数据端DATA、片选端CS与时钟端CLK,通过直接连接扬声器的
方式并采用PWM输出模式进行音频输出,
3.7水分检测电路设计
采用水位传感器Water Sensor实现摇篮尿床检测,通过P3配置Water Sensor,连接一个电压比较器LM393以及一个电
位器,可通过调整电位器来设置Water Sensor检测的灵敏度,顺时针转则增大,反之则减小。
Water Sensor将采集到的水分信息转换成模拟信号。没有水时,Water Sensor表面干燥,不输出模拟信号,内
置的三极管处于截止状态。当检测到有水时,Water Sensor表面有液体,指示灯发亮,输出模拟信号,产生的信号
触发三极管,三极管进入导通状态,并在LM393引脚处取得一个电压值,经由比较电路中设置的电阻R2、R3分压,将
获得的电压值进行比较,然后将输出的高低电平信号送入单片机进行进一步操作,
3.8本章小结
本章对整体设计的硬件规划进行了详细的介绍,并对设计中的各个功能模块进行了详细的说明,主要包括了MCU
最小系统电路、声音检测电路、按键电路设计、液晶显示电路设计、电机驱动电路设计、语音播放电路设计和水分
检测电路设计,之后根据实际做出了硬件设计实物,证明了本设计硬件方案的真实与可行性。
4系统软件设计
4.1软件设计总体规划
根据实际的硬件电路设计,进行对应的软件程序的编写,硬件方面主要分为MCU最小系统、LCD显示屏、步进电
机、语音模块、水分与声音检测模块部分。相对应地,软件程序也就需要针对这几个部分进行设计,通过对单片机
系统的程序设计完成对各模块的协调与控制,包含LCD显示、按键与指示灯控制、语音播报、电机驱动以及接收声
音、水分检测的信息,总体的软件程序规划设计如图4-1所示。
图4-1 总体软件设计规划图
由上图可知,MCU最小系统主要承担信息输入与功能输出任务,采集用户从按键输入的信息,经由单片机主程序
选择对应的功能模式,液晶显示选择的模式,点亮对应模式指示灯,根据选择的模式决定是否驱动电机转动,通过
从水分、声音模块接收到的高低电平信息经过单片机主程序的处理选择是否中断电机运作以及是否进行语音播报。
这样做有利于分模块单独调试,也减少了各模块程序中端口信息的数量,极大地提升了程序的开发速度,方便系统
进行后续的调试[23]。
4.2主程序设计
主程序设计在整个软件设计中起到核心作用。当系统上电后,程序首先完成对单片机内置的定时器与液晶显示
屏屏的初始化,进入自动模式,代表自动模式的指示灯亮起,液晶显示函数显示自动模式,执行处理函数中自动模
式下的功能,接着通过按键控制函数扫描键盘的输入情况,扫描后,若没有按键输入,那么继续执行自动模式下的
功能,根据电机所处状态判断是否执行步进电机的正转函数或者反转函数;若有按键输入,对按键的输入进行判
断,进入对应的模式,运行处理函数中对应模式的功能,根据电机状态判断是否执行正反转函数,随后返回扫描按
键输入的状态,依次循环,内置的定时器可用于设置中断以及控制电机转动或语音播报的持续时间,主程序设计的
流程图如图4-2所示[24]。
图4-2 主程序流程图
主程序设计开始时,首先确定并完成各模块程序编写所需的相关变量定义,如表4-1所示。
表4-1 相关变量定义表
变量名 类型 作用
sound
sbit
声音检测IO口,无声为高电平1,有声为低电平0
water 水位监测IO口,无水为高电平1,有水为低电平0
led0,1,2 指示灯IO口,灭灯为高电平1,亮灯为低电平0
key1,2,3 按键IO口,正常为高电平1,按下为低电平0
key1,2,3_flag bit
按键标志位,防止按键函数被多次执行
stop_flag 代表启动一次的标志位
zz[],fz[] unsigned char code 固定的电机正转与反转数据,用于在函数中控制电机正反转
open
unsigned char
控制电机的转动,1为正转,2为反转,0为停止
stop_time 设置电机停止时间
续表4-1
变量名 类型 作用
ms
unsigned char
定时器自加变量
A_M 手自动切换变量,1代表自动,0代表手动
again_time 设置语音播报时间,避免一直播报
stop 用于电机转动时,按下按键直接有效
z,loop unsigned int 定义在函数外的用于电机正反转函数的全局变量
4.2.1 液晶显示函数
液晶显示函数用于控制液晶显示电路显示系统状态,该函数中,第一行首先显示“Mode:”,A_M用于表示状
态,随后判断,1:自动时LCD第一行显示“Auto”,0:手动时第一行显示“Manul”,同样地,第二行首先显示
“State:”,open判断电机状态,如open不为1表示电机启动时,则第二行显示“Open”,否则第二行显示
“Close”。
4.2.2 按键扫描函数
采用分支选择语句进行设计,可根据按键状态控制电机或语音播报的运作。key1被按下时进入第一个分支,电
机处于关闭状态,通过对A_M的重新赋值可以切换手自动状态,手动状态时通过低电平0亮起对应指示灯,播报语音
函数0地址中的空语音防止误报,自动时也亮起对应指示灯。key2和key3在A_M=0时即处于手动状态时被按下才有
效,可以操作电机的开启与关闭。
4.2.3 电机转动函数
步进电机的转动分为正转与反转,因此设计函数时也同样分为正转与反转两个部分。调用液晶显示函数显示电
机启动,由于采用的是四相五线的步进电机,设置电机运作循环的初始位z从512开始。开始循环后先将电机的低四
位清空,随后将单片机P2口和正转所需的8个数据按位或,将四根线轮流置一,之后设置延时,调用键盘扫描函数,
循环结束后通过open值变化进入电机反转函数。若电机继续运作,则借助循环将z从512增至1024后反复将z从0~1024
间转换实现自动摇摇篮,若不想继续运作,则将z加或减到512后停止电机。
4.2.4 主函数
主函数设计中先将定时器0与液晶显示初始化,A_M用于表示自动或手动状态,led通过高低电平0或1进行赋值操
作亮灯或灭灯。之后进入循环,先调用液晶显示的函数显示手自动以及电机开闭,由于系统上电后先运行自动模
式,所以先调用处理函数,运行其中自动模式的功能。随后调用按键处理函数,判断是否有按键被按下,若有按键
被按下,则对按下的键进行处理判断,若按键在该状态下有效则相应并调用对应函数,若无效则无响应。最后根据
open判断电机状态,在此判断条件中,open为0时将电机的低四位清零,为1时调用电机正转的函数,为2,3,4,5时调
用电机反转的函数。
4.2.5 状态处理函数
状态处理函数通过定义的A_M进行分支判断将状态处理分为两个模式,以下针对两个模式中对不同检测状态的响
应程序进行说明,具体代码如下:
进入手动状态检测到水时:
if(water0) //判断是否检测到水
{
led2=0; //点亮指示灯
if(again_time0) //判断条件为播报语音变量是否为零
{
Send_threelines(1); //播报语音函数1地址中的语音
again_time=5; //播报语音变量重新赋值防止语音一直播报
}
} else led2=1; //没有水则不点亮
进入自动状态并检测到水时:
if(water0) //判断是否检测到水
{
led2=0; //点亮指示灯
stop_time=0;//电机停止
if(again_time0) //判断条件为播报语音变量是否为零
{
Send_threelines(1); //播报语音函数1地址中的语音
again_time=5; //播报语音变量重新赋值防止语音一直播报
stop=1; //电机处于停止状态
}
进入自动状态并检测到声音时:
led2=1; //不点亮指示灯
if(sound0) //判断是否检测到声音
{
open=1; //电机开启1状态
stop=0; //电机处于启动状态
stop_time=30; //电机转动
if(stop_flag1) //判断条件为电机停止标志位是否为1
{
stop_flag=0; //停止标志位清零
Send_threelines(0); //播报语音函数0地址中的语音
delay(10); //延时
}
}
4.3主程序设计相关配置文件
语音播报的配置采用了头文件的形式,时序依据SPI通信的标准通信方法,在发码前先将复位信号拉低5ms,随
后拉高等待20ms,工作过程中RESET需保持高电平。片选信号则拉低5ms负责唤醒WT588D,接收数据时低位在先,处
于时钟的上升沿时接收数据,时钟周期在本设计中采用150us。成功接收数据后,忙信号在输0200230ms之后作出回
应,输出低电平时表示语音未播报完毕并等待,置高完成后发送下一个地址数据放音。数据发送时遵循先低位后高
位,在发送时,不必先发送命令码后指令,时序图如图4-3所示[25]。
图4-3 三线控制时序图
4.4本章小结
本章首先介绍了系统软件设计的总体规划,然后对主程序设计的框架以及主要程序的实现进行了介绍,详细介
绍了状态处理函数软件设计的具体流程,接着对程序运行所需的配置文件进行了概述,达成了系统硬件与软件设计
之间的协调一致,从而完成智能摇篮系统预期的功能。
5智能摇篮系统设计的仿真及测试
5.1系统仿真与调试
如图5-1所示为智能摇篮系统的仿真电路图。首先根据硬件电路设计将各个功能模块连接组合起来,然后按照系
统软件设计进行对应的程序编译,完成上述步序后开始进行整个系统的仿真调试,水分检测与声音检测部分用高低
电平切换进行实现,语音播报无法仿真故不调试[26]。
图5-1 仿真电路图
开始仿真后,智能摇篮系统开始运行,上电后默认进入自动模式,如图5-2所示。
图5-2 自动模式图
在自动模式下,检测到声音时,电机左右旋转模拟摇摇篮,液晶显示电机开启,一段时间后电机停止。检测到
水分时,停止电机运作,对应指示灯亮起,液晶显示电机关闭,如图5-3、图5-4所示。
图5-3 声音检测图
图5-4 水分检测图
由上至下设有三个按键,按下第一按键后系统由自动切换为手动,液晶显示手动状态,手动指示灯亮起,可通
过第一个按键切换手自动模式,如图5-5所示。
图5-5 手动模式图
按下第二按键后进入模拟睡眠模式,电机自动进行左右转动模拟摇摇篮,按下第三按键后退出睡眠模式,如果
在此状态下检测到水分,对应指示灯亮起,如图5-6、5-7、5-8所示。
图5-6 模拟睡眠图
5.2实物实际测试
如图所示为智能摇篮系统设计的实物图,经过仿真验证了硬件电路设计和系统软件设计的可行性,进行实物的
实际测试。按照系统硬件和软件设计将各模块进行组装并进行程序编译,完成后对整个系统进行测试。
进入自动模式后,如果检测到声音,语音播放音乐“小星星”并驱动电机旋转模拟摇摇篮,液晶显示电机状态
为开启,一段时间后电机自动停止并回到初始状态,若转动过程中检测到水分则立即停止电机,对应指示灯亮起,
语音播报“请注意,宝贝需要更换尿不湿”,液晶显示电机状态为关闭,如
按下第一个按键后系统进入手动模式,可多次按动用于切换手自动模式,液晶显示手动状态
手动状态下电机停止运作,按下第二个按键后系统进入模拟睡眠状态,电机会自行进行转动,语音不播放音
乐,按下第三个按键后电机会回到初始位置并停止运作,如果在此状态下检测到水分,则对应指示灯亮起,语音播
报“请注意,宝贝需要更换尿不湿”,液晶显示电机状态为关闭,
5.3本章小结
本章主要进行了智能摇篮系统的整体仿真与实物测试,首先进行系统整体的仿真验证了系统的可行性,然后是
对智能摇篮系统的实际功能进行了实物测试,最后得到了预期的一系列成果,所有的功能测试结果以及实物演示图
都在本章中进行了一一演示。
结论
本系统是以STC89C52单片机为系统的主控制单元,搭配具有各自不同功能的模块电路例如水分与声音检测电
路、电机驱动电路和语音播报电路,实现了水分与声音检测、模拟摇摇篮以及语音播报提示等功能的智能摇篮系
统。STC89C52控制单元通过自身引脚对应的功能以及对应的程序通过与各模块电路连接,使用者能从LCD显示屏上对
系统所处的模式状态进行了解,通过模块对环境信息如水分、声音等的检测和反馈,经由控制单元内设的程序处
理,从而实现系统的整体操作。
本课题所设计的智能摇篮系统具有结构简单和成本较低的优点,可实现的功能基本上满足了设计要求与实际需
求,具备一定的实用价值,能够改进的点包括使用精度更高的传感器,优化检测模块的设计,使其能更快响应环境
的变化并及时做出反馈。
本课题能够模拟智能摇篮在现实中的各种实际应用场合,体现了课题的研究价值和实际意义。