智能婴儿摇篮车Word格式.docx
《智能婴儿摇篮车Word格式.docx》由会员分享,可在线阅读,更多相关《智能婴儿摇篮车Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
ABSTRACT
Theintelligentcradle-carisaperfectcombinationbetweenthecradleandtheintelligentcar.ItisbasedonthechipofSTC89C52RC,thestepmotorisusedasthepowerofthecradleandthecar.Atthesametime,theintelligentcarisinstalledsomedevicesthatcanmakeitselfavoidsomeobstaclesandletitselfbeinfreedommovementthroughinfraredremotecontrolorbuttons.Secondly,thestatesofcradlearecontrolledthroughtheinfraredremotecontrolorkeys.Inaddition,thereisadigitaltemperature-humiditysensor(DHT11)totestthestatesofhumidityandtemperatureinthecradle.Forexample,ifsomeabnormalthingsishappened,thenitcanvoicepromptorgiveanalarm.
[KeyWords]Intelligent,Cradle-car,Mcu,Infraredremotecontrol,Temperature-humiditysensor
一、引言
(一)开发背景
据医学研究表明:
婴儿需要摇晃,经常接受摇晃的宝宝,大脑的发育速度喜人,故将摇篮誉为孩子聪明才智的“加速器”。
根据国家统计局主页2011年度人口统计表可知,2010年中国婴儿出生率为11.9‰。
由于中国人口基数大,每年出生的婴儿很多,故摇篮车的市场需求很大。
现在市面上已经开发出了智能摇篮,但是没有一种摇篮与遥控车相结合的产品,本智能车载摇篮正好弥补了这个市场缺口。
(二)系统的创新与新颖
1、摇篮车的创新
智能车载摇篮最大的亮点是摇篮与车的完美结合。
车载着摇篮可以自由运动,同时解决了婴儿需要的摇摆和车运动的问题。
智能车载摇篮装有光电传感器、温湿度传感器、按键和红外遥控,这样大人不仅可以通过遥控器控制车或摇篮的运动,而且还可以通过按键设置使摇篮摇摆或车凭借自身的避障装置自由运动而不撞到物体。
2、智能摇篮车具有的功能和特点
①小车在行进或者摇篮摇摆过程中,如果孩子尿床,或者所处环境温度有大的变化,摇篮会减慢到停止,语音提示或报警,提示父母及时处理;
②数码管时刻显示摇篮环境中的温度和湿度;
③摇篮摇摆有多种档位,对应孩子清醒和熟睡等不同的状态;
④如果大人因有事恰好不在,可以设置车子在家自由运动,使小孩子始终处于运动中,使小孩不因枯燥而哭泣;
⑤系统所用电源为可充电的12V蓄电池,电压低,噪音低,安全;
⑥定时关机功能,可根据孩子入睡时间设置相应的关机时间,在孩子睡着后摇篮和小车自动停止运动;
⑦MP3播放音乐,车载婴儿玩具;
⑧手推车功能,大人可以手推着车子前进,增加了车子的灵活性。
二、系统设计与论证
(一)系统框图
系统以单片机控制电机的转动,用电机驱动小车的运动和摇篮的摇摆。
应用温湿度传感器检测摇篮环境中温度和湿度的变化。
并且用显示器显示温度和湿度的值。
当温湿度传感器检测到摇篮环境有大的变化时,应用声光报警装置报警。
根据设计要求,系统框图如图1所示。
图1系统框图
(二)方案论证与选择
1、控制器模块的选择
根据系统要求,控制器主要用于各个传感器信号的接收和步进电机的控制,从而控制小车的运动状态和摇篮的运动状态。
对于控制器的选择,有以下两种方案。
方案一:
凌阳公司的SPCE061A单片机。
SPCE061A是16位结构的微控制器,内置有2K字的SRAM和32K字的内存FLASH,主频可以达到49MHz,能满足很多任务对速度的要求。
微控制器内核,是标准的混合信号片上系统。
这个单片机功能多,但是价格昂贵。
方案二:
采用STC公司的STC89C52RC作为系统控制核心。
89C52芯片算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,能方便地实现系统所要求的功能,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
本系统考虑到成本和功能需求,故选择方案二。
2、小车和摇篮动力模块的选择
方案一:
采用直流电机控制小车,直流电机力量大,能获得较大的启动转矩,转动速度快。
直流电机的工作可分为两种状态:
开环状态和闭环状态。
直流电机工作在开环状态时,电路相对简单,但其定位性能太差。
直流电机工作在闭环状态时,其性能精确,但相对与开环状态又要增加很多检测器件,使用元器件多,电路较复杂。
采用细分二相步进电机控制物体的准确运动。
步进电机不需要使用传感器就能精确定位,而且通过给定的脉冲周期,能够以较慢速度转动,定距运动较精确。
本系统不要求小车有较快的运动速度,为准确控制运动,小车运行和摇篮摇摆选择步进电机,故选择方案二。
3、小车和摇篮动力驱动模块的选择
步进电机驱动是把控制系统发出的脉冲信号转化为步进电机的角位移,即控制系统每送一个脉冲信号,通过驱动器就使步进电机旋转一个步距角。
关于步进电机的驱动有以下两种方案。
采用互补硅功率达林顿晶体管TIP142实现步进电机的驱动。
采用该方法实现步进电机的驱动,电路连接比较简单,但其工作可靠性与L298N的驱动相比,可靠性较低。
采用与步进电机相匹配的L298N成品驱动装置。
采用与步进电机相匹配的L298N成品驱动装置,使用该方法实现步进电机驱动,其优点是工作可靠,节省制作与调试时间,同时L298N也能驱动直流电机,输出驱动能力强,故选择方案二。
4、显示模块的选择
采用LCD进行显示。
液晶显示屏(LCD)具有轻薄,短小,耗电量低,无辐射危险,平面直角显示以及影像稳定不闪烁,可视面积大,画面效果好,既可以显示图形,也可以显示汉字,分辨率高,抗干扰能力强的特点。
缺点:
占用资源较多,其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易保护。
采用LED数码管进行显示。
数码管具有低能耗,耐老化,寿命长,对外界环境要求低,精度比较高等优点。
缺点,数码管与单片机连接时,需要外接锁存器进行数据锁存,使用三极管进行驱动等,电路连接相对比较复杂。
此外,数码管只能显示少数的几个字符,显示内容较少,基本无法显示汉字。
本系统只需显示温度值和湿度值,显示的内容比较简单,数码管可以满足要求,故选择方案二。
5、环境监测模块的选择
选用温湿度传感器(DHT11),DHT11数字温湿度传感器是一款含有已校准熟悉信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
6、遥控模块的选择
红外线遥控是目前使用最广泛的一种通信和遥控手段。
由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。
工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
遥控发射器专用芯片很多,这里用应运比较广泛且解码比较容易的一种芯片。
日本NEC的UPD6121G,当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。
这种遥控码具有以下特征:
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;
以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。
三、硬件电路的设计与实现
(一)L298N驱动步进电机电路设计
本系统以二相的步进电机作为动力源,以L298N作为驱动电机的芯片,它是一种恒压恒流桥式2A驱动芯片,可以方便的驱动一个两相的步进电机。
L298N可以接受标准的TTL逻辑电平信号,输出电流可达2.5A,可驱动电感性负载。
本系统用三个L298N驱动三个两相的步进电机,L298N驱动步进电机电路如图2所示。
图2L298N驱动电路
(二)DHT11电路设计
温湿度传感器(DHT11)具有单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为该类应用甚至最为苛刻的应用场合的最佳选择。
产品为4针单排引脚封装,连接方便。
技术参数,供电电压,
;
输出,单总线数字信号;
测量范围,湿度
,温度
;
测量精度,湿度
分辨率,湿度
。
温湿度传感器(DHT11)的外接电路如图3所示。
图3DHT11外接电路
(三)电源电路设计
根据分析,系统需要的电源为12V和5V。
而镍氢蓄电池组为12V,所以需要通过三端稳压集成电路进行电源转换。
用78XX系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
所以用7805和7812对电压进行转换,为系统各部分提供电源,电源电路如图4所示。
图4电源电路
(四)数码管驱动电路设计
用两个74LS595级联驱动8位共阳极数码管,这样则只占用单片机3个管脚,大大的节省了单片机接口资源。
数码管驱动电路如图5所示。
图5数码管驱动电路
四、系统电路图及部分功能电路仿真
本系统部分电路图用Protel99se画,部分仿真电路用Proteus7.5完成。
最后系统电路框图由软件Altiumdesigner6完成,系统电路框架图见附录1。
(一)最小系统电路图
本智能摇篮车用STC89C52单片机控制整个系统,单片机最小系统如图6所示。
图6单片机最小系统
(二)功能仿真电路图
实践操作前,首先进行电路的仿真和功能的验证,从而得出电路设计中的一些参数要求和注意事项,部分子电路用Proteus软件仿真如下。
1、L298N驱动步进电机仿真电路如图7所示。
图7L298N驱动步进电机仿真电路
2、数码管驱动电路仿真如图8所示。
图8数码管仿真电路
五、软件设计及程序流程图
(一)总体规划
软件任务分析环节是为软件设计做一个总体规划。
本系统要实现小车的运动,摇篮的摇摆,温湿度的监测,按键控制和光电开关的监测等功能。
系统实现的功能比较多,所以首先规划整体程序流程,最后分模块编写每个功能函数。
功能函数分为小车运行控制程序,温湿度监测显示程序,摇篮摇摆程序,遥控接受程序,光电开关检测障碍物程序,键盘检测程序设计。
系统整体程序流程图见附录2。
(二)主要程序模块设计
1、小车自由运动状态程序设计
摇篮车设置了自由运动状态。
根据光电开关检测到的信号去控制车的运动。
当车左前方的光电开关检测到有障碍物时,小车左转后退一段距离后再前进。
当车右前方的光电开关检测到有障碍物时,小车右转后退一段距离再前进。
当前面中间的光电开关检测到障碍物时,小车后退一段距离再前进。
在小车自由运动中,温湿度传感器始终检测温度和湿度状态,如果出现异常,则声光报警并且小车停止运动。
装在车后面的光电开关同装在前面的一样去检测障碍物。
小车自由运动状态程序流程图如图9所示。
图9小车自由运动状态程序流程图
2、遥控接收程序设计
遥控接收首先需要对发射来的信号进行解码。
具体解码过程为,先初始化外部中断0(或者1)为下降沿中断,再进入外部中断服务程序,同时关闭外部中断。
对引导码进行判断。
如果引导码正确,准备接收下面的一帧遥控数据,以查询方式判断遥控的数据是0还是1。
如果非引导码,则退出外部中断。
这样先后依次接收地址码、地址反码、数据码、数据反码。
当接收到32位数据时,说明一帧数据接收完毕。
比较数据码和数据反码,若数据码取反后与数据反码不同,则表示为无效数据,应放弃本次接收数据。
最后开启外部中断,准备下一次遥控接收。
遥控接收程序流程图如图10所示。
图10遥控接收程序流程图
3、摇篮摇摆程序设计
摇篮摇摆分为三个档位,分别对应不同的按键,同时摇篮中装有DHT11,当其中温度或湿度有大的变化时,则声光报警,此时摇篮停止摇摆,如果大人不处理,则一直报警。
摇篮摇摆及报警程序流程图如图11所示。
图11摇篮摇摆及报警程序流程图
六、结论
(一)系统小结
本文设计了基于STC89C52单片机控制的智能车载婴儿摇篮系统的原理与实现方法,包括硬件设计与软件设计。
系统已经考虑了可靠性设计问题,但这也只是针对部分问题做了解决,一些详细的设计还有待于解决。
系统实现了一些基本功能,但是一些好的功能还没实现。
例如像摇篮车MP3播放音乐,定时开关机,车载婴儿玩具,这些功能还都没实现。
但为了以后的升级和功能扩展,在硬件和程序上留出了一定程度的余地。
另外该系统目前设计还只停留在模型化的实际操作,距离真正的产品还有一定的距离。
现在的系统还没有达到真正的智能化和安全化,还需要增加很多新的功能和先进的科学技术,才能达到真正意义上的智能化控制。
摇篮车的程序和实物图分别见附录3和附录4。
(二)注意事项
1、运动状态
用红外遥控控制小车的运动状态,通过遥控器控制车的前进,后退,转弯等,使车根据人的操作去运动。
此摇篮车定义在家中使用,所以车子的速度设置的很慢,一方面考虑到孩子的安全,另一方面防止车子走到一些检测不到的死区。
2、避障装置
摇篮车的四周安装有光电开关,通过遥控或按键设置使车子进入自由运动状态。
小车处于运动状态且在无人操作的情况下,通过避障装置可以避开物体,保证小孩的安全,减轻大人的负担。
但是在此同时,大人不能长时间离开孩子所处的环境,以防避障装置出现问题。
3、摇篮摇摆
一方面可以用遥控器控制摇篮的摇摆,另一方面可以通过按键控制摇篮摇摆。
摇篮摇摆设置有三个档位,一档比较慢,适合于孩子半睡半醒状态的摇摆。
二档和三档比较快,适合孩子在清醒状态娱乐使用。
4、摇篮环境检测
摇篮中装有温湿度传感器,当检测到小孩有尿湿或温度异常时,则声光报警。
当声光报警后,大人换了摇篮中的湿布,这时需要关闭温湿度传感器一段时间,因为前一次的湿度风干需要一定的时间,如果不关闭而直接开机,将出现错误报警。
参考文献
[1]张毅刚.单片机原理及应用[M].第一版.北京:
高等教育出版社,2009
[2]黄智伟.全国大学生电子设计竞赛系统设计[M].北京:
北京航空航天大学出版社,2006
[3]郭天祥.新概念单片机C语言入门教程[M].北京:
电子工业出版社,2010
[4]康华光.电子技术基础(模拟部分)[M].第五版.北京:
高等教育出版社,2005
[5]何利民.单片机高级教程应用与设计[M].第四版.北京:
北京航空航天出版社,2000
[6]北京三恒星科技公司.AltiumDesigner6设计教程[M].第一版.北京:
电子工业出版社,2007
[7]老虎工作室.Protel教程[M].第一版.北京:
人民邮电出版社,2004
[8]朱清慧,张凤蕊,翟天嵩,王志奎.Proteus教程[M].第一版.北京:
清华大学出版社,2008
[9]刘福太.电子电路498例(绿版)[M].第一版.北京:
科学出版社,2007
[10]国家统计局.2011年人口统计表[DB/EL]
致谢
本系统设计是在我的导师路永华老师的亲切关怀和细心指导下完成的,在设计过程中,自始至终凝聚着导师的心血。
恩师那治学严谨的态度,渊博的学识感染着我。
他那诲人不倦、宽厚朴实的作风给我们留下了不可磨灭的影响,是我学习的榜样,使我终生受益无穷。
在此论文完成之际,特向恩师表达诚挚的谢意同时以最崇高的敬意。
除此之外,在系统设计和制作当中,还得到了李海燕老师的细心指导和诸多帮助,同时还得到了贺荣和杜邦安同学的无私帮助。
再此我向他们表示由衷的感谢。
真诚的感谢所有的帮助过我的老师们,同学们、家人和朋友们。
感谢对本设计进行评审的专家们,感谢他们给我提出的宝贵意见和建议。
附录
附录1
系统电路框架图
附录2
系统程序流程图
附录3
程序
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineNOP_nop_()
/****************************电机控制编码*************************/
ucharcodeFWL[]={0xF1,0xF9,0xF8,0xFc,0xF4,0xF6,0xF2,0xF3};
ucharcodeBWL[]={0xF1,0xF3,0xF2,0xF6,0xF4,0xFc,0xF8,0xF9};
ucharcodeBWR[]={0x1F,0x9F,0x8F,0xcF,0x4F,0x6F,0x2F,0x3F};
ucharcodeFWR[]={0x1F,0x3F,0x2F,0x6F,0x4F,0xcF,0x8F,0x9F};
ucharcodetable[]={//LED共阳
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0xff};
ucharcodetableL[]={//LED共阳带小数点
0x40,0x79,0x24,0x30,
0x19,0x12,0x02,0x78,
0x00,0x10};
ucharcodewei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
//11111110111111011111101111101111110111111011111101111111
/******************************************************************/
/*变量声明P1口电机*/
/*sbitST_CP=P0^7;
//上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变
sbitSDA=P0^6;
//串行数据输入端
sbitSHIFT_CP=P0^5;
//
sbitST_CP=P1^7;
sbitSDA=P1^6;
sbitSHIFT_CP=P1^5;
sbitkey0=P0^0;
sbitkey1=P0^1;
sbitkey2=P0^2;
sbitDHT=P2^7;
sbitBeep=P2^6;
sbitFL=P2^5;
sbitFM=P2^4;
sbitFR=P2^3;
sbitBL=P2^2;
sbitBFM=P2^1;
sbitBR=P2^0;
uintBack_Length=40;
uintBTurn_corner=40;
uintForword_Length=20;
uintFTurn_corner=40;
ucharirtime;
//红外用全局变量
bitirpro_ok,irok;
//irpro_ok为在中断中红外数据处理完毕标志位
//irok红外数据接收正确标志位
ucharIRcord[4];
//处理后的红外码,分别是客户码,客户码,数据码,数据码反码
ucharirdata[33];
//33个高低电平的时间数据
/*dht11*/
ucharshiZ,shiX,wenZ,wenX,check;
uchartr_shiZ,tr_shiX=11,tr_wenZ,tr_wenX=33;
ucharflag;
uintm;
ucharcount,temp;
ucharnuma,numb;
/*函数声明*/
voidstr_obs(void);
voidTIM0init(void);
voidEX0init(void);
//遥控
voidIr_work(void);
voidIrcordpro(void);
voiddelay_us();
voidDelay(uintms);
voidcarsports_ir(void);
//按红外结果控制小车运动
//运动
voidForward();
//前进
void