基于自动控制系统的窗户清洗器设计
2019-10-31崔之博刘辉贾镇林沈桂鑫曹辉
崔之博 刘辉 贾镇林 沈桂鑫 曹辉
摘要:设计一种自动化窗户清洗系统以替代人力清洗。设计基于悬挂运动控制系统、用步进电机作为运动系统的动力、以单片机为核心控制芯片、通过控制施加给电机驱动器的脉冲信号频率控制步进电机的转动,实现了清洗模块的自动控制系统。其次依据数学微分思想,建立此系统的运动控制模型,并编写一个自动化控制程序。经过实际测试表明该系统稳定性较好,误差较小,达到了自动清洗的目的。
关键词:自动化;控制模型系统;步进电机;单片机;自动窗户清洗
中图分类号:TP276 文献标识码:A
文章编号:1009-3044(2019)22-0236-03
开放科学(资源服务)标识码(OSID):
Design of Window Cleaner based on Automatic Control System
CUI Zhi-bo, LIU Hui, JIA Zhen-lin, SHEN Gui-xin, CAO Hui
(School of Physics and Information Technology, Shaanxi Normal University, Xi'an 710000,China)
Abstract: Design an automatic window cleaning system to replace manual cleaning. The design is based on the suspension motion control system, which includes Stepper motor as the power for the motion system and Microcontroller as the core control chip. The system controls the rotation of the stepper motor by controlling the pulse frequency applied to the motor driver, which realizes the purpose of controlling the cleaning module to move on the glass. And a motion control model using the differential idea in mathematics is established to compile an automatic control program. The actual test shows that the system has good stability and small error, and achieves the purpose of automatic cleaning.
Key words:automation; control model system; stepping motor; single chip microcomputer; automatic window cleaning
高層建筑窗户外侧的清洗一直是个困扰人们的难题。现在一般的清洗方式是清洗工人用吊索悬挂在空中,在楼房的外部进行人工清洁。然而这种的做法费时又费力,而且高层建筑外层在大城市雾霾环境下极易变脏,所以需要频繁清洗才能保持干净。
由此,现在急需一种安全的、高效的自动化清洗系统来解决这个困扰人们的问题。于是为解决这种困难,设计了一种安全、高效、自动化的窗户清洗器,能够对高层窗户外侧进行清洗,并且能够节省大量的人力物力财力。
1 系统总体方案设计
总体设计由两部分组成,悬挂运动控制系统和清洗模块。
1.1 悬挂运动控制系统的设计及原理
如图1所示,悬挂运动控制系统由步进电机、滑轮、绳索、清洗块,控制元件等几个基本部件组合而成。
清洗模块通过绳索与步进电机连接,绳索的长短将决定清洗块在窗户面上的位置。用步进电机的转动来操控绳索的伸缩,逐步移动清洗块的位置,达到清洗窗户面的目的。可以通过控制输入步进电机脉冲信号的频率控制电机转动方式,实现对清洗模块运动的有效控制。
1.2 清洗模块设计及原理
在清洗模块的设计中,采用杠杆原理使清洗装置紧贴玻璃面,同时使用单片机控制毛刷、喷雾、清洁剂等器件组合清洗。
在外部结构中采用两组杠杆装置,实现了从重力到接触面正压力的转换,使清洗装置与玻璃面紧密贴合,增大了接触面压力使清洗效果提高。也可以在清洗面板与配重块之间加弹簧使得结构更加稳定,在装置移动时可以避免一些突发状况。同时增大清洗面板的表面积和配重块的质量,配重可以用电源、控制器和清洗剂等组成。具体装置结构如图2所示。
在内部清洗面板使用单片机系统控制毛刷、喷雾等器件工作时,设计采用间歇喷雾,定时刷动,固定擦干的设计思路,控制各器件配合工作。通过模仿人工擦玻璃的动作和工序,保证一遍至两遍以后玻璃干净如初,这样的设计相较于人工将会更加高效便捷。
1.3 系统总体框图
系统两大模块采用一定一动式,在独立完成各自工作的同时,还可以相互配合达到更好的清洗效果。图3为本项目系统总体框图。
2 硬件设计
2.1 步进电机及驱动器
运动系统的驱动电机采用42步进电机,42步进电机是将电脉冲信号变为转子角位移的控制元件。电机的转速和停动取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,控制发送给电机的脉冲总数即可确定电机牵引距离。
采用TB6600专用驱动器作为42步进电机的驱动器,该驱动器带有S1、S2、S3一共3位拨码开关,用于选择8档细分控制(细分数为1、2、4、8、16)。S4、S5、S6,3位拨码开关选择6档电流控制。细分控制用于设定步进电机的步距角,步距角=电机固有步距角/细分数;电流挡位控制输出功率。
2.2 显示模块
显示模块采用有机发光二极管构成的128*64像素OLED屏,通过控制每个像素点的亮灭显示想要的内容,OLED模块采用SSD1306驱动芯片,该驱动芯片通过通信接口接收到显示所需的字模数据后,以循环扫描的方式控制点亮相应的像素点。并且该芯片还支持SPI方式通信,通过SPI通信方式,单片机把系统状态标志信息、清洗状态信息发送给OLED模块,由OLED模块进行显示。
2.3 单片机及控制电路
如图4所示,采用stc89c52单片机作为处理芯片,外接OLED显示屏、步进电机驱动板构成控制电路。P2.1、P2.2口发送脉冲信号,P2.3、P2.4口发送方向信号,P2.5、P2.6、P2.7、P2.8、P3.9用于控制OLED显示器。
3 数学原理
在控制单片机输出电脉冲信号时,需要确定脉冲频率和脉冲数,则需必要的数学原理和数学运算在理论上实现该输出。
3.1 自动行进轨迹设计
清洗模块的清洗轨迹按先上后下,从左到右的方式行进,以直线蛇形的方式走过整个平面。该方式是通过模仿人工擦玻璃的方式,再考虑到高层建筑玻璃很宽很大的特点后,使用点到点的运动,简化并运用到本项目的进行轨迹设计中。
3.2 点到点的运动方式
为实现从两个不规则方向到规则方向的运动,需做一些必要的数学运算。
如图5,设[(x0,y0)]为清洗块初始坐标,[(x1,y1)]为要移动到的坐标。L、h分别为窗户长和宽。L1~L4为两边绳索长度。
[L1=x20+(h-y0)22]
[L2=(L-x0)2+(h-y0)22]
设[?x=x1-x0?y=y1-y0]
有:
[?L左=L3-L1]
[?L左 =(x0+?x)2+(h-(y0+?y))2-x20+(h-y0)2] (1)
[?L右=L4-L2]
[?L右=(L-(x0+?x))2+(h-(y0+?y))2-(L-x0)2+(h-y0)2] (2)
设m为步进电机的步距角、r为电机转子半径、n为步进电机接收到的脉冲信号,则由[(x0,y0)]移动到[(x1,y1)]时需要向电机发送的脉冲数为:
[n左=?L左r×m] (3)
[n右=?L右r×m] (4)
3.3 控制清洗块移动轨迹
由公式(1)(2)(3)(4)推导出了清洗块由点运动到点时需要向步进电机发送的脉冲信号数,但要达到清洗完整玻璃面的目的,就需要控制清洗块的整个平面运动轨迹。可以采用数学上的微分思想来精确控制其运动轨迹。
要走完整个平面,清洗块只需完成横、竖两种直线轨迹即可。可以将清洗块的运动轨迹“微分”为多个小段,每一次只需控制清洗块用点到点的方式移动一个小段,多次移动后即可构成连续运动轨迹。
4 程序设计
虽然在理论上解决了清洗模块在整个平面移动的脉冲数,但具体数据和程序设计还需要使用查表法来实现。
4.1 基于查表法的程序设计
在清洗块的运动过程中,每运动到一个新位置绳索的变化量都不相同,即每次移动都需要单片机向步进电机发送不同的数据。但对于实时控制系统,数据要经过大量的运算后才能发出指令,这显然使运行效率大大降低,大量运算资源被浪费。为提高系统运行效率与稳定性,故采用查表法的程序设计思想。
故将系统在运行使所需要的数据均预先计算好并制成数据表存入单片机中,系统在运行时取出所需数据即可。此方法极大地简化了程序的运算,解决了数据输出的难题,提高了效率。
在实验阶段假设窗户长50cm,宽40cm,电机转子半径1cm,步距角0.01[π]rad,清洗块长度2cm。
令?x=0; ?y=2cm; h=40cm; L=50cm; r=1cm; m=0.01[π];
则
[n左=x2+(40-(y+2))2-x2+(40-y)20.01π]
[n右=(50-x)2+(40-(y+2))2-(50-x)2+(40-y)20.01π]
[n左,n右]即坐標为( x, y) 时向y方向运动每一步时需向步进电机发送的脉冲信号数。使用MATLAB计算出各个坐标点的[n左,n右]值,即可置成数据表。
同理,令[?x]=2cm;[?y=0];用MATLAB制作x方向运动的数据表,将数据表的所有数据放入单片机数据存储器中。
程序运行时按一定顺序取出两个数据表中的数据,经过处理后转换为脉冲信号发送给步进电机,即可使步进电机驱动清洗块自动走完整个窗户面。
4.2 程序逻辑框图
如图6,程序在主函数外分为检测子程序、拖动子程序和OLED显示子程序三个部分,分别对应各个功能模块,当主函数按顺序调用各个子程序时,便可以控制整个系统按预期流程运行。
首先在主函数完成对单片机各引脚、标志位的初始化,并设置好定时器工作模式。然后检测子程序和相关标志位的值是否正确,以确定系统是否工作正常。同时OLED显示系统开始工作,显示当前状态。其次拖动子程序开始运行,如图7所示,其运行过程为:
(1)根据方向标志位输出方向信号给步进电机控制板。
(2)根据数据表指针调用数据存储器存储的行向量步数数据,由引脚输出电机所需的脉冲频率和脉冲数。
(3)根据行向量数据清洗完一列后,修改指针和方向标志位。
(4)重复上述步骤直到清洗完成。
5 系统测试
系统实际测试情况如表1所示。从实验结果看系统还存在一定误差,但仍能按设定自动走完近乎整个面积,而对于清洗窗户的应用场景来说,精度已完全达标。
6 设计总结
根据以上设计,完成了窗户自动化清洗的目标。目前对于建筑物窗户外侧清洗困难的问题仍没有成熟的解决方案,市面上也没有类似的自动化产品。本设计的先进性在于用自动化控制的方式替代了传统人力,节省了大量的人力物力财力;控制系统设计精简便利,造价低廉且维修排错方便,对实际应用具有重要意义;使用自身重力转换为接触面正压力的设计,增强了清洗效果;机械清洗降低了人工对高层建筑物窗户外侧清洗时不安全不方便的因素;设计的思想对于建筑物自动化清洗领域也有着重要的参考意义。
参考文献:
[1] 王家军,齐冬莲.运动控制系统的发展与展望[J].电气时代,2004(10):54-56.
[2] 彭礴,李科举,赵月明,等.基于AT89C52悬挂运动控制系统的设计[J].电子测量技术,2010,33(09):85-87+100.
[3] 张海洪.机器人壁面自动清洗系统的工程研究[D].上海大学,2001.
[4] 党智乾.基于单片机的悬挂运动控制系统的设计与实现[J].计算机与数字工程, 2016,44(07):1365-1370.
[5] 范超毅,范巍.步进电机的选型与计算[J].机床与液压,2008(05):310-313+324.
[6] 张明.步进电机的基本原理[J].科技信息,2007(09):83.
[7] 蒋泉,成建波,林祖伦,等.OLED驱动控制电路的研究[J].光电子技术,2003(04):257-260.
[8] 梁燕,胡浩,卢益民.OLED顯示模块与C8051F单片机的接口设计[J].单片机与嵌入式系统应用,2006(01):48-50+54.
[9] 何立民.嵌入式系统的定义与发展历史[J].单片机与嵌入式系统应用,2004(01):6-8.
【通联编辑:代影】