资源描述
基于凌阳单片机的声控智能化燃气灶设计
摘要:文章以凌阳公司16位单片机SPCE061A为核心,与传统电子燃气灶结合,设计出家庭厨房应用的声控智能化燃气灶。该燃气灶是用语音控制点火、火力大小调节以及熄火。在硬、软件设计中,系统采用SPCE061A型单片机为控制核心,使用C语言为编程语言,提高了系统整体的稳定性。
关键词:普通燃气灶;SPCE061A;步进电机;脉冲点火器,光耦隔离器;声控燃气灶是家庭普及率非常高的厨房电器,科技在不断发展,燃气灶也在不断更新换代,百姓的生活逐步走向自动化、完美化。电子燃气灶正在朝着自动化、智能化方向发展。本文设计的智能燃气灶实现了语音控制燃气灶的电火、火力大小以及熄火等功能。设计并实现智能燃气灶,对于实现厨房智能化、自动化有着重要的现实意义。
一、工作原理
该燃气灶系统由普通燃气灶、SPCE061A单片机、步进电机、脉冲点火器,光耦隔离器、51单片机等组成。
图片1:普通燃气灶 图片2:SPCE061A单片机 图片3:步进电机
图片4:光耦隔离器 图片5:脉冲点火器
智能燃气灶系统的工作原理:
1. 系统接收来自使用者的“点火”语音信号,由单片机给出相关信号控制步进电机打开燃气阀给燃气灶通天然气,同时控制脉冲点火器点火;
2. 当系统接收到来自使用者的“右转”(大火)语音信号时,由单片机给出相应信号控制步进电机正转合适角度调节燃气阀增大燃气进气量,来达到增加火力的目的;
3. 当系统接收到来自使用者的“左转”(小火)语音信号时,由单片机给出相应信号控制步进电机调节反转合适角度燃气器阀减小燃气进气量,从而实现减小火力;
4. 当系统接收到来自使用者的“熄火”语音信号时,由单片机给出相应信号控制步进电机调节燃气阀停止供气,以达到熄火目的。
二、硬件设计
我们选择凌阳公司(Sunplus)开发的16位SPCE061A,它的突出优点是低功耗和功能集成,内部的语音资源可实现语音控制功能,并适合于自动信号采集、自动控制电机、点火器等领域应用。
该系统的控制部分电路,主要由SPCE061A单片机、步进电机、脉冲点火器、光耦隔离器构成,其中通过步进电机来控制燃气阀的开断。控制部分以凌阳SPCE061A单片机为控制核心。
(一)点火部分
点火部分由两部分组成,包括光耦隔离器模组和脉冲点火器部分。光耦隔离器模组用于实现弱电控制强电,其目的是减小脉冲点火器产生的高压脉冲对单片机的影响。该模组接单片机端有三个接线端,分别GND、VCC、IN三个端口,IN端接单片机相应IO口;接脉冲点火器端有两个端口分别为COM、CK,COM端接脉冲打火器的GND端,CK端接脉冲打火器的VCC端。脉冲点火器产生电火花点燃燃气,完成点火需要外接电源,外接电源由三节1.5V干电池提供。光耦隔离器制板图
(二)火力控制部分
火力控制主要有两种方法,一种是通过传统旋钮进行对火力大小进行控制,另一种是通过控制步进电机来控制火力大小,从大火力转到小火力控制时通过单片机发出控制信号,控制步进电机,然后再控制燃气阀调节进气口的进气量来调节火力大小和关断燃气灶的。控制火力过程如下,通过单片机控制启动点火装置与步进电机,将燃气灶点燃并让火力处于中火位置。当需要大火时,使用者发出“大火”语音信号,CPU接收到语音信号并给出相应控制信号,控制步进电机产生相应动作,调节燃气阀增大进气量,从而增加火力。当需要小火时,使用者发出“小火”语音信号,CPU接收到语音信号并给出相应控制信号,控制步进电机产生相应动作,调节燃气阀减小进气量,从而减小火力。
三、软件设计
本系统使用凌阳单片机支持的C语言进行编写,程序采用模块化的编程方法,将程序分为主程序、脉冲点火程序、火力大小调节程序等几部分。
(一) 主程序流程图
51单片机程序流程图:开始
扫描点火信号
P1^0
1点火
扫描p1^1~p1^3
熄火
左转(小火)
右转(大火)
结束
(二)程序设计
SPCE061A语音控制程序
#include "bsrsd.h"
#define NAME_ID 0x100
#define COMMAND_ONE_ID 0x101
#define COMMAND_TWO_ID 0x102
#define COMMAND_THREE_ID 0x103
#define COMMAND_FOUR_ID 0x104
#define RSP_INTR 0
#define RSP_NAME 0
#define RSP_FIRE 1
#define RSP_GUARD 2
#define RSP_AGAIN 3
#define RSP_NOVOICE 4
#define RSP_NAMEDIFF 5
#define RSP_CMDDIFF 6
#define RSP_STAR 7
#define RSP_MASTER 8
#define RSP_HERE 9
#define RSP_GUNSHOT 0
#define RSP_PATROL 11
#define RSP_READY 12
#define RSP_COPY 13
#define RSP_NOISY 14
//..................全程变量....................
int gActivated = 0; //该变量用于检测是否有触发命令,当有识别出语句
//为触发名称则该位置1
int gTriggerRespond[] = {RSP_MASTER, RSP_HERE, RSP_MASTER};
int gComm2Respond[] = {RSP_PATROL, RSP_READY, RSP_COPY};
extern void ClearWatchDog();
int PlayFlag = 0;
void PlayRespond(int Result)
{
BSR_StopRecognizer();
SACM_S480_Initial(1);
SACM_S480_Play(Result, 3, 3);
while((SACM_S480_Status()&0x0001) != 0)
{
SACM_S480_ServiceLoop();
ClearWatchDog();
}
SACM_S480_Stop();
BSR_InitRecognizer(BSR_MIC);
BSR_EnableCPUIndicator();
}
int TrainWord(int WordID, int RespondID)
{
int res;
PlayRespond(RespondID);
while(1)
{
res = BSR_Train(WordID,BSR_TRAIN_TWICE);
if(res == 0) break;
switch(res)
{
case -1: //没有检测出声音
PlayRespond(RSP_NOVOICE);
return -1;
case -2: //需要重新训练一遍
PlayRespond(RSP_AGAIN);
break;
case -3: //环境太吵
PlayRespond(RSP_NOISY);
return -1;
case -4: //数据库满
return -1;
case -5: //检测出声音不同
if(WordID == NAME_ID) PlayRespond(RSP_NAMEDIFF);//两次输入名称不同
else PlayRespond(RSP_CMDDIFF);//两次输入命令不同
return -1;
case -6: //序号错误
return -1;
}
}
return 0;
}
int main()
{
int x,res, timeCnt = 0, random_no = 0;
InitIO();
BSR_DeleteSDGroup(0); // 初始化存储器RAM
// PlayRespond(RSP_INTR); // 播放开始训练的提示音"请输入触发名称"
//..........训练名称..............................
while(TrainWord(NAME_ID,0) != 0) ;
//..........训练第一条命令.......................
while(TrainWord(COMMAND_ONE_ID,1) != 0) ;
//..........训练第二条命令.......................
while(TrainWord(COMMAND_TWO_ID,2) != 0) ;
//..........训练第三条命令.......................
while(TrainWord(COMMAND_THREE_ID,12) != 0) ;
//..........训练第四条命令.......................
while(TrainWord(COMMAND_FOUR_ID,13) != 0) ;
//..........开始识别命令.........................
BSR_InitRecognizer(BSR_MIC); //辨识器初始化
BSR_EnableCPUIndicator(); //启动实时监控
PlayRespond(RSP_STAR); //播放开始辨识的提示音
while(1)
{
random_no ++;
if(random_no >= 3) random_no = 0;
res = BSR_GetResult();
if(res > 0) //识别出命令
{
if(gActivated)
{
timeCnt = 0;
switch(res)
{
case NAME_ID: //触发命令响应
PlayRespond(gTriggerRespond[random_no]);
break;
case COMMAND_ONE_ID: //识别第一个命令
PlayFlag = 1;
LED_RED_ON();
PlayFlag = 0;
gActivated = 0;
break;
case COMMAND_TWO_ID: //识别到第二条命令
LED_RED_OFF();
gActivated = 0;
break;
case COMMAND_THREE_ID: //识别第三条命令
LED_GRE_ON();
for(x=500;x>0;x--);
LED_REDD_OFF();
gActivated = 0;
break;
case COMMAND_FOUR_ID: //识别第四条命令
LED_GRE_OFF();
for(x=500;x>0;x--);
LED_REDD_OFF();
gActivated = 0;
break;
}
}
else
{
if(res == NAME_ID)
{
PlayRespond(gTriggerRespond[random_no]);
gActivated = 1;
timeCnt = 0;
}
}
}
else if (gActivated)
{
if (++timeCnt > 450) //超出定时
{
PlayRespond(RSP_NOVOICE); //在设定时间内没有检测出声音
gActivated = 0;
timeCnt = 0;
}
}
}
}
51单片机控制程序部分
#include <reg52.h>
sbit D1=P0^0;
sbit D2=P0^1;
sbit D3=P0^2;
sbit D4=P0^3;
sbit openfire=P0^7;
unsigned char a[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
void delay(int x)
{
int m,n;
for(m=x;m>0;m--)
for(n=10;n>0;n--);
}
void dianjiz(int x)
{
int z,i=0;
int cishu;
cishu=x;
while (cishu--)
{
for(z=50;z>0;z--)
{
for(i=0;i<8;i++)
{
P1=a[i];
delay(12);
}
}
}
}
void dianjif(int x)
{
int z,i=0;
int cishu;
cishu=x;
while (cishu--)
{
for(z=50;z>0;z--)
{
for(i=7;i>=0;i--)
{
P1=a[i];
delay(12);
}
}
}
}
void dianhuo()
{
delay(2000);
openfire=0;
delay(1000);
openfire=1;
}
void main()
{
unsigned int fire=0,huoli;
while (1)
{
if((D1==0)&&(fire==0))
{
huoli=2;
dianjiz(2);
dianhuo();
fire=1;
}
if((D2==0)&&(fire==1))
{
dianjif(huoli);
fire=0;
}
if((D3==0)&&(fire==1)) //大火调节
{
dianjiz(1);
huoli++;
}
if((D4==0)&&(fire==1)) //小火调节
{
dianjif(1);
huoli--;
}
}
}
四、结语
采用基于凌阳单片机的语音智能燃气灶,是在传统的燃气灶的基础上加入了智能控制功能,其智能控制功能是由单片机来实现的。该设计很好的解决了传统燃气灶只能用手动大火、手动调节火力问题,同时利用凌阳单片机提供的语音功能,可以方便实现声控功能,从而实现厨房的智能化、自动化。该产品有广泛的应用前景,既适用于家庭,也适用于各种餐厅。
目 录
第一章 总 论 1
第一节 项目背景 1
第二节 项目概况 2
第三节 可研报告编制依据及研究范围 4
第二章 项目建设的必要性 6
第三章 外部和内部环境分析 8
第一节 外部环境分析 8
第二节 xx镇社会经济环境分析 11
第三节 xx镇发展的机遇与挑战分析 14
第四节 xx镇发展的优势与劣势分析 16
第五节 项目风险分析 18
第四章 建设条件 20
第一节 项目选址 20
第二节 场址条件 20
第五章 发展战略和总体规划 22
第一节 发展战略目标 22
第二节 战略实施措施 22
第三节 规划原则 23
第四节 总体规划 24
第六章 基础设施建设内容 30
第七章 环境保护 32
第一节 项目场址现状 32
第二节 项目建设与运营对环境的影响 32
第三节 环境保护措施 33
第四节 环境评价结论 36
第八章 组织机构和项目实施进度 37
第一节 组织机构 37
第二节 人力资源配置 38
第三节 项目实施进度 39
第九章 投资估算及资金筹措 41
第一节 投资估算 41
第二节 投资使用计划与资金筹措 45
第十章 财务评价 47
第一节 财务评价基础数据与参数选取 47
第二节 经营收入估算 47
第三节 成本费用估算 50
第四节 财务评价 51
第五节 财务评价结论 55
第十一章 社会评价 56
第一节 项目对社会的影响分析 56
第二节 项目与所在地互适性分析 57
第三节 社会评价结论 58
第十二章 结论与建议 59
第一节 结论 59
第二节 建议 59
展开阅读全文