崔之博 劉輝 賈鎮林 沈桂鑫 曹輝



摘要:設計一種自動化窗戶清洗系統以替代人力清洗。設計基于懸掛運動控制系統、用步進電機作為運動系統的動力、以單片機為核心控制芯片、通過控制施加給電機驅動器的脈沖信號頻率控制步進電機的轉動,實現了清洗模塊的自動控制系統。其次依據數學微分思想,建立此系統的運動控制模型,并編寫一個自動化控制程序。經過實際測試表明該系統穩定性較好,誤差較小,達到了自動清洗的目的。
關鍵詞:自動化;控制模型系統;步進電機;單片機;自動窗戶清洗
中圖分類號: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.
【通聯編輯:代影】