崔之博 劉輝 賈鎮(zhèn)林 沈桂鑫 曹輝
摘要:設(shè)計一種自動化窗戶清洗系統(tǒng)以替代人力清洗。設(shè)計基于懸掛運動控制系統(tǒng)、用步進電機作為運動系統(tǒng)的動力、以單片機為核心控制芯片、通過控制施加給電機驅(qū)動器的脈沖信號頻率控制步進電機的轉(zhuǎn)動,實現(xiàn)了清洗模塊的自動控制系統(tǒng)。其次依據(jù)數(shù)學(xué)微分思想,建立此系統(tǒng)的運動控制模型,并編寫一個自動化控制程序。經(jīng)過實際測試表明該系統(tǒng)穩(wěn)定性較好,誤差較小,達到了自動清洗的目的。
關(guān)鍵詞:自動化;控制模型系統(tǒng);步進電機;單片機;自動窗戶清洗
中圖分類號:TP276? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)22-0236-03
開放科學(xué)(資源服務(wù))標識碼(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
高層建筑窗戶外側(cè)的清洗一直是個困擾人們的難題?,F(xiàn)在一般的清洗方式是清洗工人用吊索懸掛在空中,在樓房的外部進行人工清潔。然而這種的做法費時又費力,而且高層建筑外層在大城市霧霾環(huán)境下極易變臟,所以需要頻繁清洗才能保持干凈。
由此,現(xiàn)在急需一種安全的、高效的自動化清洗系統(tǒng)來解決這個困擾人們的問題。于是為解決這種困難,設(shè)計了一種安全、高效、自動化的窗戶清洗器,能夠?qū)Ω邔哟皯敉鈧?cè)進行清洗,并且能夠節(jié)省大量的人力物力財力。
1 系統(tǒng)總體方案設(shè)計
總體設(shè)計由兩部分組成,懸掛運動控制系統(tǒng)和清洗模塊。
1.1 懸掛運動控制系統(tǒng)的設(shè)計及原理
如圖1所示,懸掛運動控制系統(tǒng)由步進電機、滑輪、繩索、清洗塊,控制元件等幾個基本部件組合而成。
清洗模塊通過繩索與步進電機連接,繩索的長短將決定清洗塊在窗戶面上的位置。用步進電機的轉(zhuǎn)動來操控繩索的伸縮,逐步移動清洗塊的位置,達到清洗窗戶面的目的??梢酝ㄟ^控制輸入步進電機脈沖信號的頻率控制電機轉(zhuǎn)動方式,實現(xiàn)對清洗模塊運動的有效控制。
1.2 清洗模塊設(shè)計及原理
在清洗模塊的設(shè)計中,采用杠桿原理使清洗裝置緊貼玻璃面,同時使用單片機控制毛刷、噴霧、清潔劑等器件組合清洗。
在外部結(jié)構(gòu)中采用兩組杠桿裝置,實現(xiàn)了從重力到接觸面正壓力的轉(zhuǎn)換,使清洗裝置與玻璃面緊密貼合,增大了接觸面壓力使清洗效果提高。也可以在清洗面板與配重塊之間加彈簧使得結(jié)構(gòu)更加穩(wěn)定,在裝置移動時可以避免一些突發(fā)狀況。同時增大清洗面板的表面積和配重塊的質(zhì)量,配重可以用電源、控制器和清洗劑等組成。具體裝置結(jié)構(gòu)如圖2所示。
在內(nèi)部清洗面板使用單片機系統(tǒng)控制毛刷、噴霧等器件工作時,設(shè)計采用間歇噴霧,定時刷動,固定擦干的設(shè)計思路,控制各器件配合工作。通過模仿人工擦玻璃的動作和工序,保證一遍至兩遍以后玻璃干凈如初,這樣的設(shè)計相較于人工將會更加高效便捷。
1.3 系統(tǒng)總體框圖
系統(tǒng)兩大模塊采用一定一動式,在獨立完成各自工作的同時,還可以相互配合達到更好的清洗效果。圖3為本項目系統(tǒng)總體框圖。
2 硬件設(shè)計
2.1 步進電機及驅(qū)動器
運動系統(tǒng)的驅(qū)動電機采用42步進電機,42步進電機是將電脈沖信號變?yōu)檗D(zhuǎn)子角位移的控制元件。電機的轉(zhuǎn)速和停動取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,控制發(fā)送給電機的脈沖總數(shù)即可確定電機牽引距離。
采用TB6600專用驅(qū)動器作為42步進電機的驅(qū)動器,該驅(qū)動器帶有S1、S2、S3一共3位撥碼開關(guān),用于選擇8檔細分控制(細分數(shù)為1、2、4、8、16)。S4、S5、S6,3位撥碼開關(guān)選擇6檔電流控制。細分控制用于設(shè)定步進電機的步距角,步距角=電機固有步距角/細分數(shù);電流擋位控制輸出功率。
2.2 顯示模塊
顯示模塊采用有機發(fā)光二極管構(gòu)成的128*64像素OLED屏,通過控制每個像素點的亮滅顯示想要的內(nèi)容,OLED模塊采用SSD1306驅(qū)動芯片,該驅(qū)動芯片通過通信接口接收到顯示所需的字模數(shù)據(jù)后,以循環(huán)掃描的方式控制點亮相應(yīng)的像素點。并且該芯片還支持SPI方式通信,通過SPI通信方式,單片機把系統(tǒng)狀態(tài)標志信息、清洗狀態(tài)信息發(fā)送給OLED模塊,由OLED模塊進行顯示。
2.3 單片機及控制電路
如圖4所示,采用stc89c52單片機作為處理芯片,外接OLED顯示屏、步進電機驅(qū)動板構(gòu)成控制電路。P2.1、P2.2口發(fā)送脈沖信號,P2.3、P2.4口發(fā)送方向信號,P2.5、P2.6、P2.7、P2.8、P3.9用于控制OLED顯示器。
3 數(shù)學(xué)原理
在控制單片機輸出電脈沖信號時,需要確定脈沖頻率和脈沖數(shù),則需必要的數(shù)學(xué)原理和數(shù)學(xué)運算在理論上實現(xiàn)該輸出。
3.1 自動行進軌跡設(shè)計
清洗模塊的清洗軌跡按先上后下,從左到右的方式行進,以直線蛇形的方式走過整個平面。該方式是通過模仿人工擦玻璃的方式,再考慮到高層建筑玻璃很寬很大的特點后,使用點到點的運動,簡化并運用到本項目的進行軌跡設(shè)計中。
3.2 點到點的運動方式
為實現(xiàn)從兩個不規(guī)則方向到規(guī)則方向的運動,需做一些必要的數(shù)學(xué)運算。
如圖5,設(shè)[(x0,y0)]為清洗塊初始坐標,[(x1,y1)]為要移動到的坐標。L、h分別為窗戶長和寬。L1~L4為兩邊繩索長度。
[L1=x20+(h-y0)22]
[L2=(L-x0)2+(h-y0)22]
設(shè)[?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)
設(shè)m為步進電機的步距角、r為電機轉(zhuǎn)子半徑、n為步進電機接收到的脈沖信號,則由[(x0,y0)]移動到[(x1,y1)]時需要向電機發(fā)送的脈沖數(shù)為:
[n左=?L左r×m]? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
[n右=?L右r×m]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4)
3.3 控制清洗塊移動軌跡
由公式(1)(2)(3)(4)推導(dǎo)出了清洗塊由點運動到點時需要向步進電機發(fā)送的脈沖信號數(shù),但要達到清洗完整玻璃面的目的,就需要控制清洗塊的整個平面運動軌跡??梢圆捎脭?shù)學(xué)上的微分思想來精確控制其運動軌跡。
要走完整個平面,清洗塊只需完成橫、豎兩種直線軌跡即可??梢詫⑶逑磯K的運動軌跡“微分”為多個小段,每一次只需控制清洗塊用點到點的方式移動一個小段,多次移動后即可構(gòu)成連續(xù)運動軌跡。
4 程序設(shè)計
雖然在理論上解決了清洗模塊在整個平面移動的脈沖數(shù),但具體數(shù)據(jù)和程序設(shè)計還需要使用查表法來實現(xiàn)。
4.1 基于查表法的程序設(shè)計
在清洗塊的運動過程中,每運動到一個新位置繩索的變化量都不相同,即每次移動都需要單片機向步進電機發(fā)送不同的數(shù)據(jù)。但對于實時控制系統(tǒng),數(shù)據(jù)要經(jīng)過大量的運算后才能發(fā)出指令,這顯然使運行效率大大降低,大量運算資源被浪費。為提高系統(tǒng)運行效率與穩(wěn)定性,故采用查表法的程序設(shè)計思想。
故將系統(tǒng)在運行使所需要的數(shù)據(jù)均預(yù)先計算好并制成數(shù)據(jù)表存入單片機中,系統(tǒng)在運行時取出所需數(shù)據(jù)即可。此方法極大地簡化了程序的運算,解決了數(shù)據(jù)輸出的難題,提高了效率。
在實驗階段假設(shè)窗戶長50cm,寬40cm,電機轉(zhuǎn)子半徑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方向運動每一步時需向步進電機發(fā)送的脈沖信號數(shù)。使用MATLAB計算出各個坐標點的[n左,n右]值,即可置成數(shù)據(jù)表。
同理,令[?x]=2cm;[?y=0];用MATLAB制作x方向運動的數(shù)據(jù)表,將數(shù)據(jù)表的所有數(shù)據(jù)放入單片機數(shù)據(jù)存儲器中。
程序運行時按一定順序取出兩個數(shù)據(jù)表中的數(shù)據(jù),經(jīng)過處理后轉(zhuǎn)換為脈沖信號發(fā)送給步進電機,即可使步進電機驅(qū)動清洗塊自動走完整個窗戶面。
4.2 程序邏輯框圖
如圖6,程序在主函數(shù)外分為檢測子程序、拖動子程序和OLED顯示子程序三個部分,分別對應(yīng)各個功能模塊,當主函數(shù)按順序調(diào)用各個子程序時,便可以控制整個系統(tǒng)按預(yù)期流程運行。
首先在主函數(shù)完成對單片機各引腳、標志位的初始化,并設(shè)置好定時器工作模式。然后檢測子程序和相關(guān)標志位的值是否正確,以確定系統(tǒng)是否工作正常。同時OLED顯示系統(tǒng)開始工作,顯示當前狀態(tài)。其次拖動子程序開始運行,如圖7所示,其運行過程為:
(1)根據(jù)方向標志位輸出方向信號給步進電機控制板。
(2)根據(jù)數(shù)據(jù)表指針調(diào)用數(shù)據(jù)存儲器存儲的行向量步數(shù)數(shù)據(jù),由引腳輸出電機所需的脈沖頻率和脈沖數(shù)。
(3)根據(jù)行向量數(shù)據(jù)清洗完一列后,修改指針和方向標志位。
(4)重復(fù)上述步驟直到清洗完成。
5 系統(tǒng)測試
系統(tǒng)實際測試情況如表1所示。從實驗結(jié)果看系統(tǒng)還存在一定誤差,但仍能按設(shè)定自動走完近乎整個面積,而對于清洗窗戶的應(yīng)用場景來說,精度已完全達標。
6 設(shè)計總結(jié)
根據(jù)以上設(shè)計,完成了窗戶自動化清洗的目標。目前對于建筑物窗戶外側(cè)清洗困難的問題仍沒有成熟的解決方案,市面上也沒有類似的自動化產(chǎn)品。本設(shè)計的先進性在于用自動化控制的方式替代了傳統(tǒng)人力,節(jié)省了大量的人力物力財力;控制系統(tǒng)設(shè)計精簡便利,造價低廉且維修排錯方便,對實際應(yīng)用具有重要意義;使用自身重力轉(zhuǎn)換為接觸面正壓力的設(shè)計,增強了清洗效果;機械清洗降低了人工對高層建筑物窗戶外側(cè)清洗時不安全不方便的因素;設(shè)計的思想對于建筑物自動化清洗領(lǐng)域也有著重要的參考意義。
參考文獻:
[1] 王家軍,齊冬蓮.運動控制系統(tǒng)的發(fā)展與展望[J].電氣時代,2004(10):54-56.
[2] 彭礴,李科舉,趙月明,等.基于AT89C52懸掛運動控制系統(tǒng)的設(shè)計[J].電子測量技術(shù),2010,33(09):85-87+100.
[3] 張海洪.機器人壁面自動清洗系統(tǒng)的工程研究[D].上海大學(xué),2001.
[4] 黨智乾.基于單片機的懸掛運動控制系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與數(shù)字工程, 2016,44(07):1365-1370.
[5] 范超毅,范巍.步進電機的選型與計算[J].機床與液壓,2008(05):310-313+324.
[6] 張明.步進電機的基本原理[J].科技信息,2007(09):83.
[7] 蔣泉,成建波,林祖?zhèn)?,?OLED驅(qū)動控制電路的研究[J].光電子技術(shù),2003(04):257-260.
[8] 梁燕,胡浩,盧益民.OLED顯示模塊與C8051F單片機的接口設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2006(01):48-50+54.
[9] 何立民.嵌入式系統(tǒng)的定義與發(fā)展歷史[J].單片機與嵌入式系統(tǒng)應(yīng)用,2004(01):6-8.
【通聯(lián)編輯:代影】