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