西北民族大學電氣工程學院 黃 冰
基于STC單片機的水上清道夫
西北民族大學電氣工程學院 黃 冰
【摘要】本文介紹了基于STC89C52單片機的水上垃圾清理船。利用定時器中斷模擬PWM輸出以及串口藍牙發送接收數據等,設計出一套水上清理垃圾裝置。本裝置環保、節能、高效、設計簡單、成本低及適應性廣。僅需對現有船進行簡單改裝即可實現自動清理。與現有的人工清理方法相比,節約人力資源,減低成本,節約能源,結構簡單,易于大規模推廣。
【關鍵詞】串口通信;模擬PWM;數據處理
近幾年隨著經濟的快速發展,人們生活質量不斷提高,然而忽視了對環境的保護,這就使得環境日益惡劣,帶來了各種各樣的環境問題,如湖泊、河流中隨處可見的垃圾等。各種污染物會通過不同的渠道進入江河,導致河面的漂浮物越來越多。潮起潮落時,河面的棄置物或水草等也會流入其它的水面、港灣,污染物的集結造成水面污染,影響市容衛生,甚至阻礙航道。但是我國現在打撈力量與垃圾數量的矛盾十分突出,大部分湖泊河流僅靠人工打撈漂浮物,但這種作業方式勞動強度較大,工作環境惡劣,安全性很差,效率低下,無法及時達到保潔的要求。經濟效益預測著隨我國城市化的加快,垃圾的產量會迅速增長。因此本設計是為水上漂浮垃圾清理而設計,可有效利用現有船舶資源,結構簡單。若大規模推廣,不僅對我國廢棄垃圾回收清理有很大益處,還可產生較大的社會經濟效益。
2.1 系統硬件總體設計
基于STC單片機的智能船,以STC89C52單片機為核心,實現對串口單元模塊、藍牙模塊、電機驅動模塊、舵機和機械臂的控制,使用藍牙模塊進行界面化操作和串口通信的編程,初步形成硬件和軟件結合為一體的綜合水上垃圾清理裝置。
2.2 系統硬件模塊的設計
2.2.1 主控單元
本設計采用STC89C52單片機,它是STC公司生產的一種功耗較低、具有高性能的CMOS8位微控制器。他還有8K可編程Flash存儲器,8K字節Flash,512字節RAM,4組8位I/O口總線(P0、P1、P2和P3),另外還有看門狗定時器、MAX810復位電路、2個16 位定時器/計數器、4個外部中斷和全雙工串行口。
2.2.2 動力系統
動力系統由蓄電池和推進裝置。鑒于該作品設計的目的是研制一種具有環保、高效、技術先進的環保型水面垃圾打撈船,故選用蓄電池作動力源。蓄電池在這次設計中有兩方面的作用,一方面是帶動便攜式船用推進器(電機),以實現船在水中的行駛和轉向;另一方面是驅動電機,進而帶動垃圾輸送裝置,以實現垃圾的輸送。推進裝置是船舶上提供推力的工具(槳),它的作用是將電機動力裝置提供的動力轉換成流體推力,推進船舶。
2.2.3 垃圾清理系統
垃圾收集系統主要由垃圾抓取爪和垃圾倉組成,垃圾倉材料選用硬塑料,以減輕重量并達到防腐蝕的效果。同時,當垃圾倉收集滿時,工作人員可將倉體拎出,而不用將整個船體搬上岸,達到方便的效果。抓取爪由爪和舵機組成,當垃圾進入傳送系統工作范圍時,由舵機控制爪部,將垃圾抓入爪中,再將其送至船末的垃圾倉內,完成垃圾清理。
2.2.4 供電系統
整個硬件系統采用模塊式供電方案,分為3.3V、5V和6V。其中3.3V和5V給系統板和各種傳感器供電,6V給舵機供電。本次系統采用三端穩壓芯片LM1117、LM2940和7806作為穩壓芯片,其中LM2940穩壓輸出接到LM1117輸入引腳以穩3.3V電壓。注意,本次設計的舵機較多,如果穩壓發燙,可添加多個7806穩壓電路分別給舵機供電,各個穩壓模塊均要共地。
3.1 系統的軟件設計
首先分別對藍牙、串口、定時器和舵機進行初始化,然后通過操控者在遠處觀察到水面有垃圾后,通過遙控器控制船槳使小船移動,遙控器按下1號按鍵時,小船前進;按下2時左轉;按下3時右轉;按下4時停止;按下5時,進入舵機工作模式,舵機帶動機械臂自動將垃圾撿起放入指定的垃圾筐內。舵機帶動機械臂有兩個工作模式,一是待命模式,二是工作狀態模式。當接收到控制指令時,進入工作狀態模式一次后待命,開機默認為待命狀態。
3.2 部分軟件設計說明
3.2.1 PWM輸出控制舵機
由于沒有硬件PWM通道,故而本次設計采用軟件模擬PWM輸出,即利用定時器中斷控制引腳電平模擬輸出。舵機的周期和占空比設置為:周期20ms,高電平持續時間為0.5ms到2.5ms。由于此精度較高,因此設置定時器初始值要大,這樣定時時間才會變小。利用定時器中斷計數進行周期控制和PWM占空比控制。
程序燒寫成功后將模擬輸出引腳接入到示波器中,觀察示波器中的幅值。起初,PWM波形非常完整,但是將舵機的數據線接到該引腳時,幅值為零。這說明,該引腳的驅動能力不強,需要加上拉電阻增強驅動能力。再次測試,PWM波形恢復,舵機成功被控制。
3.2.2 按鍵控制方式
控制端共有6個按鍵,除了前文出現的5個控制按鍵外,另設一個復位按鍵。按鍵共有兩個狀態,按下和釋放。分別對每個按鍵進行模塊化編程,產生連個函數,Keypress()和keyrelease()函數。當按鍵按下時,進入第一個函數內,串口發送控制指令,一旦按鍵松開時,進入另一個函數中,停止當前動作。例如,當按下1號按鍵時,船體前進,松開按鍵時船體停止當前運動狀態。這里為每個按鍵設置兩個狀態標志位,即按下狀態標志位和釋放狀態標志,利用它們可以方便調用函數以控制小船的運動狀態。
3.2.3 數據發送接受處理
由于本設計使用藍牙串口發送和接受數據,因此,數據量不能太大,故而把六個控制數據存放在一個字節當中,即每次控制端發送8位數據,低五位存放小車運動狀態控制位和機械臂的工作模式控制位,最高位存放復位控制指令。指令識別方法有兩種,第一種是先將接收到的指令進行編碼,當船體接收到控制數據時,與提前設置的編碼進行匹配校對,根據匹配結果執行相應的動作,如果控制數據在編碼范圍外,則保持當前狀態;第二種是將接收到的數據的每一位提取出來,將每一位的數值賦到控制函數的形參當中。但由于處理時間有限,而且要及時對控制端做出反應,因此本設計采用第一種識別指令方法。
進行船體各個部分的整體研究設計,通過控制舵機的轉動,可以使機械臂做出抓取、移動等動作。通過遙控器發射信號使接收器接收信號,然后由主控控制機械臂做相應的動作。通過遙控器控制船體的前進、后退和垃圾收集系統,通過按下遙控器上的“前進”、“停止”、“左轉”、“右轉”鍵,打撈船相應作出前進、停止前進、左轉彎、右轉彎的動作。當操作者發現前方有垃圾時,將打撈船移動至垃圾正前方,然后按下“清理”鍵,機械臂自動抓取垃圾,并移動到船體后方,將垃圾放入垃圾筐中,完成打撈。
本設計提出了一種基于STC9C52單片機的水上清理船的研究,該設計采用了模塊化的設計理念,將整個系統分為四個大模塊,具有節能環保、遠程控制、控制方便、安全實用、應用前景廣泛等優勢,區別于傳統的人工打撈。在一定程度上能提高打撈效率,達到及時保潔的效果。
參考文獻
[1]劉彥飛,王成,余成波等.基于 ATMEGA32U4的數據透明傳輸系統的設計[J].計算機科學,2009,36(4A)∶76-77.
[2]高守偉,吳燦陽.ATMEGA32U4技術實踐教程[M].北京航空航天大學,2009∶354-369.
[3]張俊謨.單片機中級教程原理與應用[M].北京∶北京航空航天大學出版社,2006.