模拟电梯模型设计探讨.docx
《模拟电梯模型设计探讨.docx》由会员分享,可在线阅读,更多相关《模拟电梯模型设计探讨.docx(86页珍藏版)》请在冰豆网上搜索。
模拟电梯模型设计探讨
一、设计任务
设计并制作一个电梯控制模型。
示意图如图1所示。
图1中:
电梯间竖井模型部分可由有机玻璃粘成无上盖板的六面体ABCDEFGH,高度AE为1.2m;电梯轿厢模型J通过滑轮悬挂并由电动机M牵引,可在电梯间竖井模型的空间内上下运动。
电梯间竖井模型间隔均为24cm自下向上分成5层,其楼层编号如图1所示。
二、设计要求:
基本要求:
1.当某层有呼叫并有呼叫信号显示时,轿厢模型作相应的运动,并准确平层,平层的位置误差£5mm。
2.平均每层运行时间不超过4秒,平层结束时给出提示信号。
3.当有多层呼叫时,轿厢模型将按说明中的电梯模型运行规则作相应的运动,并依次在呼叫的楼层停留3~8秒;
4.增设模拟轿厢内表示乘客欲到达层数的按钮,轿厢模型将按照电梯模型运行规则作相应的运动
5.能显示轿厢模型当前到达的楼层编号。
扩展要求:
1.增设可以延长和缩短轿厢楼层停留时间的按钮(用于延长开门时间或缩短开门时间);
2.停电时紧急操作。
当市电电网停电时,用备用电源将电梯运行到最近楼层待机并开门。
3.播放语音提示,包括报告楼层、电梯运行方向、问好等。
4.采用适当的人机界面(如采用触摸屏、语音辨识等),使界面与用户的交互性良好,操作简易,运行迅速,适合各类人群。
三、题目要求的说明
1、控制电机类型不限,其安装位置及安装方式自定。
2、要电路板、关键电路版必须是自行制作的模块。
3、电子版论文必须附完整的程序代码、电路原理图(PROTEL格式)、元器件清单等相关文件;
4、电梯竖井间部分也可简化,由一垂直平面代替,如图2所示。
5、平层的要求是以轿厢模型J的底平面(或自定标志)与表示楼层的标志线平齐。
6、要有措施保证平层过程中轿厢模型J移动方向保持不变。
7、要有措施保证轿厢模型J起动、停止时不出现震荡。
8、关于电梯模型运行规则的说明:
(1)电梯有两种类型的按钮:
第一种为各楼层上的“向上”、“向下”按钮;第二种为电梯轿厢内表示要到达楼层编号的数字按钮。
实际制作时,按钮的安装位置不作任何限制。
(2)各按钮呼叫时应有指示灯显示,电梯响应该按钮的呼叫后,其指示灯应自动熄灭。
(3)电梯运行时响应按钮的优先顺序如下:
①方向优先:
电梯按某方向运行时,优先响应该运行方向的按钮;
②距离优先:
同一方向有多个按钮呼叫时,优先响应最近的楼层。
摘要
国民经济的飞速发展,现代化程度日益提高,科学技术的日新夜异,人们物质文化生活水平的逐步提高,建筑业得以迅速发展,大批的高楼大厦拔地而起,十几层至几十层的宾馆、饭店、办公楼、住宅楼等鳞次栉比。
伴随建筑业的发展,为建筑内提供上下交通运输的电梯工业也在日新月异地发展着。
电梯已不仅是一种生产环节中的重要设备,更是一种工作和生活中的必需设备,完全可以预想到,随着社会的发展,电梯产品在人们物质文化生活中的地位将逐步提高,成为重要的运输设备之一。
本次设计主要是模拟电梯运行及控制方式,自行设计出电梯模型,来实现电梯工作的相关功能。
该电梯系统,以STM32单片机为核心控制元件及外围响应电路组成高度为五层楼的电梯控制系统模式。
通过对各楼层用户按钮信号的检测和处理,按预定的运行规则和程序,发出控制信号对电机进行调节,从而控制电梯的启停、速度和运行时间。
同时系统介绍了电梯控制系统的硬件设计方法、系统构成以及软件的设计,详细说明了系统的组成及工作原理。
关键词:
电梯模型、STM32、楼层控制系统、tft液晶屏、数码管、人机界面、语音提示、直流电机、红外/压力/温度传感、电源、电路图
一、系统方案总体设计
1.
电梯模型总框图
图1.11电梯模型系统总框架图
本电梯模型系统是以STM32FB103芯片作为系统控制核心,自成一个最小系统模块,与其他功能模块交流。
显示模块包含有tft人机界面交流系统,内含有一块TFT240320显示屏,带触屏功能,用于显示当前楼层位置以及点击输入所要到达的楼层,显示当前温度等功能,另外,楼层控制模块上还带有数码管,用以显示电梯所在楼层以及前进的方向等。
这其中,关于检测电梯轿厢所在楼层,是由红外检测来实现的。
电机控制模块使用减速电机,额定工作电压为6V,由直流电源供电,能平稳带动电梯轿厢启动、平层、停止等功能。
语音播放模块,采用ISD1760芯片,带有独立按键模式和SPI模式,支持播放,录音,快进等功能,语音提示所在楼层,报告楼层、电梯运行方向、问好等,功能更加人性化。
电源模块连接在市电电网上,使用变压器及稳压电路给电梯控制主板和直流电机供电,同时电源模块上还带有掉电保护功能,在市电停止供电后,由电梯备用电池给各模块上电,保证电梯正常工作。
二、系统硬件电路设计
1.楼层控制模块
如下图所示,为楼层控制板的硬件连接原理图。
图中显示的是二三四楼控制板的原理图,均带有上下两按键(右下角),而一五楼控制板上均只有一个按键(除按键外其他部分均相同,这里没有再重复给出)。
各按键呼叫时,由指示灯led_up和led_down显示,电梯响应该按钮的呼叫后,其指示灯应自动熄灭
图中右上角的数码管用来显示当前电梯所在的楼层,左下角的两箭头指示灯用来指示电梯的运行方向,key_up表示向上运动,key_down表示向下运动。
总运行机制:
各楼层的控制板,是通过左上角的排针连接在一起的,当单片机检测出当前所在的楼层之后,通过信号线给所有的楼层控制板传递所在楼层信号以及运行方向,随即板做出相应的显示。
而板上的每个按键,其被按下的信号由主控单片机外部中断来响应,由单片机处理,并反馈给其他响应模块。
每个按键对应一个外部中断,保证按键信号不干扰,都能被准确响应。
图2.11楼层控制板原理图
下面的电路原理图是用来驱动数码管和按键指示灯,以及箭头指示灯,采用74HC595芯片锁存数据,实现所有数码管等的驱动。
图2.12数码管驱动原理图
2.TFT人机界面模块
如下图所示,为人机界面模块的原理图,所有部分均为排针,可与TFT240320液晶屏和主控单片机连接实现通信。
P3为TFT连接引脚插座,只需将TFT液晶屏插上即可。
另外P1,P2,P4,P5,P6是从STM32主控板上引出来的引脚,用来连接外设。
该原理图独立成一模块,使用双面板制作。
图2.21TFT人机界面模块原理图
TFT实物模型:
响铃
开门
关门
楼层数字
图2.23TFT人机交流主界面2
图2.22TFT人机交流主界面1
如上图所示,各图形所标注的名称为其代表的功能,其中用“楼层数字”来代替按键。
一开始上电之后,TFT液晶显示屏显示“人机交流主界面”(单一界面),带有触摸功能,点击主界面上的“楼层数字”,可到达相应的楼层。
电梯到达某一楼层时,可按主界面含有时钟显示,“楼层数字”,以及电梯所在楼层位置显示、电梯运行方向显示。
如图“TFT人机交流主界面2”中所示,当电梯运行时,在TFT显示屏右下角部分会显示电梯当前所在的楼层位置以及电梯运行的方向。
在主界面左边部分的“楼层数字”显示处,用户根据自己需要到达哪个楼层,按下相应的数字,点击后相应的数字变色,直至电梯收到信号并做出反应到达相应的楼层位置时,数字才恢复原先的颜色。
同时,该用户也可根据需要取消按键选择,只需要在原先的数字键上再点击一次,数字键恢复颜色,表示已取消选择。
3.语音提示模块
该模块采用ISD1760语音芯片,该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示,双运作模式,以及可制定的信息操作指示音效,芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等全方位整合系统功能。
该电路与单片机通讯采用SPI方式,工作电压为3.3V,外接一个咪头可实现人工录音,也可通过Analn引脚录音,为了减少外界干扰,需接较多滤波电容,而且要尽量靠近端口;芯片的采样可以通过外部振荡电阻了调节,外接振荡电阻为80K,即采样频率可达8KHz,可以录音约60s。
该模块设计成一块独立PCB板,硬件连接图如下图所示。
图2.31语音提示模块原理图
4.电源供电及保护模块
该模块是打算用来分别给主电路板和减速电机供电,需经过掉电保护模块之后才能实现电源供电及保护两项功能。
4.1.电源供电模块
该模块直接由市电供电,输入端直接接220V的电源,经过变压器输出15V,20W的交流电,进而分出两支路,分别经过4个二极管组成的整流桥整流,LM317稳压输出直流电,同时两条支路上均带有输出电压可调的功能,可以根据实际需要输出合适的电压。
设计成两支路的原因是由于若既给主电路板和减速电梯供电的话,电机的驱动力不足,不能平稳地带动电机运动。
是故做成两支路来分别供电。
实际上,做电源供电模块时,并没有按照下图做出PCB板。
因为我们发现我们在大一招新时就已经做过“可调直流稳压电源”电路板了,电路设计基本上和下图相同,而且原先的板现在还可以用,就直接把电路板拿过来用。
图2.41电源供电原理图
4.2.掉电保护模块
该模块主要是在市电掉电的情况下,为保护电梯稳当地运行而采取的紧急临时措施。
在该模块上,主要使用的是继电器HK4007来实现该项功能的。
继电器使用说明:
1,6为公共端,始终是连通的。
工作原理:
在用市电供电时,通过给继电器线圈(2,5管脚)供电,继电器内部开关打在3管脚上,电源电压接在1,5管脚上,输出电压从5,6管脚引出;当市电掉电时,线圈没有电路流过,继电器内部开关打在4管脚上,此时电源供应切换到由电池来供电,电池电流从4脚输入,输出电压仍从5,6管脚引出。
下图中的P1,P2是电压输入端,分别是接在电源供电模块电压输出端上,经过继电器实现电源掉电保护功能,再输出电压。
即外设供电是由图中P3,P4接出的。
图2.42掉电保护模块原理图
5.红外检测模块
该模块采用RPR220光电对管来检测电梯所在的楼层。
在电梯轿厢的背面后贴上一条比较宽的黑线,用来反射红外对管发射的红外线,反射后的红外由光电对管上的接收器来接收。
红外检测模块一开始接在电梯运行通道的内部墙壁上,与每一层底部相对其,当电梯运行到某一层时,自然会反射红外光到检测模块上,由红外对管接收,产生一个信号,并反馈给单片机,并由单片机处理,对其他响应模块发送响应的信号。
图2.51红外检测模块原理图
6.温度检测模块
温度提示功能采用DS18B20数字温度传感器,该传感器提供9位二进制温度读数,信息经过单线接口与主机CPU连接,数据口需接10K上拉电阻;
图2.61温度检测模块原理图
7.电机模块
该模块采用减速电机来带动电梯的运行、停止、平层等操作,通过STM32单片机给定信号来控制电机的转动速度和方向。
电机转动并将线绕在齿轮上。
图2.71电机模块实物图
8.主系统模块——STM32FB103单片机
图2.81STM32主控板原理图
如上图所示,为STM32主控板电路。
主板上除了上述所有模块引脚插槽外,还包含许多外围引脚电路,如JTAG模块,USB模块,MAX232串口模块、电源模块等,其中在本次设计中用到的模块有:
1、JTAG模块,该模块是用来下载程序用的,通过JLINK下载器与STM32单片机对接实现程序下载。
2、电源模块,主系统各模块基本工作在3.3V电压下,主要由该电压来供电,另外板上还带有5V供电引脚,可为有需要的模块供电,如上图右下角所示。
说明:
该板为STM32学习板,非自行设计的。
三、系统软件设计
1.
图3.11楼层控制流程图
楼层控制模块
2.TFT人机界面模块
图3.22TFT人机界面模块流程图
2.2触摸屏控制
图3.22触摸屏流程控制图
3.电机模块
图3.31电机模块流程图
4.红外检测模块
图3.41红外检测模块流程图
5.语音播放模块程序设计
ISD1760语音芯片有两种控制方法(独立按键模式、SPI模式),在此只用程序控制法,即ISP模式,通过单片机控制芯片,使其完成语音提示功能,语音为通过人工录音获得。
图3.51语音播放子程序流程图
四、系统测试
1.系统测试目的和方法
系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符获矛盾的地方,从而提出更加完善的方案;考察系统整体性能是否达到设计要求,发现问题并找到可行的解决方法。
系统测试的方法:
1、系统各模块测试阶段。
此阶段主要着眼于局部,验证各模块功能是否符合设计要求,检查各电路是否正确连接,是否正常工作,是否有遗漏或错误;编写测试程序逐项操作,根据结果判断各模块的性能。
2、系统整体性能测试阶段。
此阶段主要考察系统总体是否符合设计要就,每个功能是否能完整实现,检查系统之间的协调性和可靠性。
各项测试完后,仔细分析测试结果,评估系统的性能,对不足的地方加以修改,未完成的功能努力去实现。
2.模块测试
系统各基本模块测试是系统正常工作的基础,模块测试分两步:
一,用万用表测量电路线路是否连接正常、是否存在短路现象;二,给模块通电,然后将模块控制引脚接至现有实验板上,通过简单例程测试模块是否能正常工作。
若模块成功通过这两步测试后,即可安插在底板上组装成系统。
1、TFT人机界面模块测试
测试步骤
测试结果
是否正常
电路检测
线路连接正常
是
点击触摸屏
对应按键显示正常
是
实时时钟显示
时钟显示正常
是
欢迎字体显示
字体显示正常
是
当前楼层显示
楼层能够显示
电梯运行方向
运行方向箭头能够显示
结论:
由于是模块测试,所以当前楼层显示、电梯运行方向只能判别它能不能正常显示,关于是否正确显示还需要在总模块来测试。
故综上测试,说明TFT人机界面能工作正常。
2、楼层控制模块测试
测试步骤
测试结果
是否正常
电路检测
线路连接正常
是
按键检测
按键反应正常
是
LED指示灯检测
LED灯显示正常
是
数码管显示
数码管显示正确
是
结论:
楼层控制模块能够正常工作。
3、电机模块测试
测试步骤
测试结果
是否正常
电路及连线检测
电路连接正常,拉线绕线正常
是
电机正转检测
转动正常
是
电机反转检测
转动正常
是
结论:
减速电机能够正常工作。
4、ISD1760语音模块测试
测试步骤
测试结果
是否正常
电路检测
线路连接正常
是
播放音量
声音响亮
是
上电后通过按键方式录音并播放
成功播音,音质稍微有损
否
通过ISP方式控制录音
成功播音,音质稍微有损
否
结论:
经过反复测试,均发现录入的声音与实际声音稍微有点变化,但关系不大,因为我们要实现的是语音提示功能,只要能保证声音正常,音质良好,用户能听得清、易懂即可。
所以综上说明,可知语音模块能正常工作。
5、电源供电及掉电保护模块测试
测试步骤
测试结果
是否正常
电路检测
线路连接正常
是
市电供电检测
上电正常,能输出理想的电压
是
掉电保护检测
能启动备用电池供电,但稍有延迟
否
结论:
经过反复测试,电源供电能够达到理想要求的状态,而关于掉电保护功能的实现,每次在掉电之后,启用备用电池会有点延迟,大概延迟1秒的时间。
关于这问题的所在,在了解供电模块的原理图之后,发现出现这问题的原因便是供电模块上有大容量的电容,它们在上电后不可避免就储存了部分电量,在供电电源突然下电后,电容还会继续放电,导致继电器延迟打向备用电池开关。
由于我们使用的是以前做过的电路板,所以对这方面的要求不是很高。
同时对于这一短时间的延时,对系统的影响不大。
故综上说明,电源供电及掉电保护模块能够正常工作,能满足所需要求。
6、温度模块测试
测试步骤
测试结果
是否正常
电路检测
线路连接正常
是
温度检测
测得温度与实际大致接近
是
结论:
温度模块能正常工作。
7、压力传感模块测试(待测试)
测试步骤
测试结果
是否正常
电路检测
压力检测
结论:
3.总模块测试
系统总体测试是为了验证系统的功能和检测系统的性能,测试的步骤是先把各模块整合在主电路和子电路上,上电后向系统烧写已编译好的系统程序,然后根据实际电梯的运行方式来模拟系统的效果,逐步重复检验系统性能和功能,发现问题后找出问题原因所在,解决问题再重复检验,直到系统按预期结果正常运行,至此,系统测试方可算完成。
测试步骤
测试结果
是否正常
主控板上电
LED提示灯点亮,模块电源供电
是
烧写已编译系统程序
烧写成功
是
TFT显示屏欢迎界面
显示年月日等时间、触摸坐标值、温度值和欢迎文字,时间和温度正常跳动
是
菜单界面和按键检测
正确显示三个菜单图片(开门、关门、响铃),触屏下方有触摸按键,并正常工作,
响铃按键能发出响铃的声音
是
楼层控制板按键及数码管显示检测
数码管显示楼层;
按下4楼按键,LED指示灯发光
是
减速电机上电
电机运行带动电梯轿厢运动
是
电梯运行检测
电梯缓慢上升,平均每层运行时间不超过4s
是
运行方向检测
各楼层箭头指示灯均指示向上运动
是
多层呼叫检测
电梯向运行方向最靠近的楼层(3楼)运动
是
平层检测
电梯平稳停止,平层误差在允许范围内
是
平层结束信号提示
发出叮咚的声音
是
3楼控制板上指示灯检测
平层完后,3楼指示灯灭
是
语音提示功能检测
播放提示音“各位乘客,三楼到了”
是
延长和缩短轿厢楼层停留时间按键检测
TFT上开门、关门按键变颜色,电梯再次运行时,按键颜色恢复
是
显示轿厢模型当前到达的楼层
各楼层控制板上数码管显示“3”
是
电梯再次启动检测
播放语音提示问候,报告运行方向,电梯运行方向为向4楼运动
是
掉电保护检测
备用电池启用,电机再次启动
是
结论:
通过以上步骤重复测试后,可确定系统正常且稳定工作,并能实现我们预设的所有功能。
五、参考文献
1.《ISD1700中文使用手册》中青世纪
2.网上参考资料
六、附录
1.电梯模型程序
2.各模块原理图
(见附录文件)
/**********台日电梯程序*************/
//主函数(main函数)
#include"init.h"
#include"led.h"
#include"motor.h"
#include"sensor.h"
#include"common.h"
#include"isd1760.h"
u16time1=0,time2=0,tim=0;//定时器2中断计数
u16tim4_kai=0;//开门时间计时
u16tim4_guan=0;//关门等待一秒计时
u16OPEN_state=0,CLOSE_state=0,WARNING_state=0;//功能按钮状态函数
externvoidTime(void);
externvoidRTC_Time(void);
//语音芯片有关函数
voidisd1700_init(void)
{
ISD_GPIO_Configuration();
ISD_Init();
}
//tft有关函数
voidlcd_init(void)
{
TIM2_Configuration();
LCD_Configuration();
touch_init();
lcd_display();
RTC_Time();
}
voidlcd_display(void)
{
inti;
for(i=0;i<7;i++)
{
LCD_ShowChnise(16+16*i,0,i,RED,WHITE);//显示欢迎字体
}
OPEN_mie();
CLOSE_mie();
WARNING_mie();
F1_mie();
F2_mie();
F3_mie();
F4_mie();
F5_mie();
TIM_Cmd(TIM2,ENABLE);//使能TIM2外设
TIM_Cmd(TIM4,ENABLE);//使能TIM4,开始定时计数4秒后门重新关闭
}
voidlcd_clear_state(u16floor)//清除tft按键响应状态
{
switch(floor)
{
case1:
F1_mie();break;
case2:
F2_mie();break;
case3:
F3_mie();break;
case4:
F4_mie();break;
case5:
F5_mie();break;
}
}
voidfloor_init(void)//取初始楼层
{
while(ADC_judge_floor()==0)
motor_change_dir(motor_down);
ele_posit=ADC_judge_floor();
motor_change_dir(motor_stop);
}
//////////////////////////////////////////////////////////////////////
///以下为程序结合区,需慎重写(另外还有TIM4_IRQHandler这个函数也是)////
//////////////////////////////////////////////////////////////////////
/**以下数组的下编号均与楼层号对应,例如一楼的停留请求状态为floor_want_state[1],而非floor_want_state[0],以此类推.
u16floor_up_state[10]={0,0,0,0,0,0,0,0,0,0};//各层楼电梯外向上的请求状态,0:
无,1:
有
u16floor_down_state[10]={0,0,0,0,0,0,0,0,0,0};//各层楼电梯外向下的请求状态,0:
无,1:
有
u16floor_want_state[10]={0,0,0,0,0,0,0,0,0,0};//各层楼电梯外对电梯停留的请求状态,0:
无,1:
有
u16inside_want_state[10]={0,0,0,0,0,0,0,0,0,0};////电梯轿厢内各层楼的请求状态,0:
无,1:
有
*/
u16check_up(u16dir)//查询上行目标层函数
{
u16flr=0;
if(dir==dir_up)
{
for(flr=ele_posit;flr<=5;flr++)
{
if(floor_up_state[flr]||inside_want_state[flr])
returnflr;
}
}
if(dir==dir_down)
{
for(flr=1;flr<=ele_posit;fl