張 河,張桂梅,段磊鵬,王婷婷
(南昌航空大學(xué) 航空制造工程學(xué)院,江西 南昌 330063)
隨著時代的進步和發(fā)展,以及社會經(jīng)濟的進一步增長,人們對于日常生活品位和質(zhì)量的要求也愈加嚴格。在環(huán)境方面,人們?yōu)榱俗陨淼慕】敌枰鍧嵡覠o異味的環(huán)境,這不僅僅要求人們擁有良好的素質(zhì),垃圾桶也是不可缺少的設(shè)施。在此基礎(chǔ)上,國內(nèi)外已經(jīng)有很多垃圾桶出現(xiàn),這些垃圾桶不僅能夠?qū)崿F(xiàn)自動開蓋,以及預(yù)警等基礎(chǔ)功能,甚至有的能夠進行人臉識別,具有很高的技術(shù)含量。但是這些垃圾桶造價昂貴,并且不適合于大眾場合,所以不能得到大量普及,通常只是由政府購買放置于一些很重要的場所。
現(xiàn)在家用垃圾桶大部分依然為無蓋或者腳踏兩種方式,就算市場上出現(xiàn)了一些類似的智能垃圾桶但是其中的功能比較單一,大部分僅能自動進行開蓋,只有少部分能夠?qū)崿F(xiàn)自動封裝,但是其價格也相當昂貴并且難以維修。為了與現(xiàn)在的時代潮流同步,并且很好地解決上述問題,文章就力求實現(xiàn)憑借一臺傳感器設(shè)計出一個集自行打開蓋子與自動提示垃圾裝滿等功能為一體的基于51 單片機的智能垃圾箱,其價格便宜,并且采用模塊化設(shè)計,出現(xiàn)故障時可以較快找到故障點,方便維修,可以放置于一般的公共場所和家庭中。
設(shè)計該軟件系統(tǒng)時,為了更好地使該軟件的結(jié)構(gòu)簡單且方便于實際應(yīng)用,因此建議采用一種模塊化的設(shè)計方案,該系統(tǒng)功能分為自動開蓋功能模塊和超重預(yù)警功能模塊,而在兩大功能下又分為不同的模塊,其中自動開蓋功能包含紅外傳感器探查是否有人要丟垃圾模塊和啟動步進電機實現(xiàn)開蓋閉蓋模塊;超重預(yù)警功能包含壓力傳感器感知垃圾是否裝滿模塊和蜂鳴器發(fā)出警報模塊,各模塊獨立工作互不影響。通過模塊化設(shè)計,使得系統(tǒng)整體結(jié)構(gòu)一目了然,也使得程序編寫大為簡化,通過相關(guān)研究表明大部分人都可以獨自進行維修,極大地降低了成本。
圖1 為該系統(tǒng)結(jié)構(gòu)圖。

圖1 智能垃圾桶系統(tǒng)結(jié)構(gòu)簡圖
由于器件是組成各模塊的核心,并且決定整個系統(tǒng)的成本以及復(fù)雜程度,因此器件的選型顯得極為重要。在本系統(tǒng)中,器件的選型遵行價格低廉、使用簡單以及容易購買三大原則,在此三大原則上再考慮其自身特點。
選用STC89C52 芯片作為整個系統(tǒng)的主控芯片。STC89C52 芯片是STC 推出的新一代超級抗干擾、高速、低功耗51 單片機。它是一種具有8051 核心的ISP(In System Programming)系統(tǒng)內(nèi)可編程芯片。該指令代碼與傳統(tǒng)的8051 單片機完全兼容。最高工作時鐘頻率為80MHz。芯片包含4K 字節(jié)Flash 只讀程序存儲器,可重復(fù)擦除1000 次。該器件兼容標準的MCS-51指令系統(tǒng)和80C51 引腳結(jié)構(gòu)。該芯片集成了通用8 位中央處理器和ISP Flash 存儲單元,具有系統(tǒng)內(nèi)可編程性(ISP)的特點,與PC 端的控制程序相匹配。
首先,我們所要進行選擇的紅外信號傳感器是指gp2y0a21yk0f 傳感器,它是一種新型測距式紅外傳感器控制模塊,由psd(對精確位置具有靈敏度的檢測器)、ired(紅外信號發(fā)射控制二極管)和紅外信號采集處理控制電路三個子部分共同組成,其測距功能基于三角測量原理。由于本次采用三角測量計算方法,因此本次測量的物體在所用材料、環(huán)境和物體溫度、測量的持續(xù)時間等各種條件下均不會對本次測量數(shù)據(jù)的準確性結(jié)果造成任何不良影響。選擇電阻應(yīng)變壓力傳感器作為壓力傳感器。導(dǎo)體電阻隨機械變形而變化的現(xiàn)象稱為電阻應(yīng)變效應(yīng)。由于其工作原理是將電阻應(yīng)變片貼在彈性敏感元件上,所以貼在彈性敏感材料上的電阻應(yīng)變片在受壓時也會變形。電阻應(yīng)變片變形后,其電阻也會隨之變形,電阻應(yīng)變片變形后其電阻也會隨之變化,δ 彈性敏感材料的壓縮變形效應(yīng)很小,電阻應(yīng)變片產(chǎn)生的相應(yīng)應(yīng)變和電阻的變化(δR/R)也會很小,難以精確測量且不易處理,因此應(yīng)使用應(yīng)變計的轉(zhuǎn)換電路將δR/R 轉(zhuǎn)換成電壓或電流變化,轉(zhuǎn)換電路通常使用測量電橋。DC 電橋的特點是信號不受元器件和導(dǎo)體分布電感和電容的影響,抗干擾能力強。然而,由于機械應(yīng)變的輸出信號較小,需要高增益、高穩(wěn)定性的放大器進行放大,基于電阻應(yīng)變的壓力傳感器得到了廣泛的應(yīng)用。
本系統(tǒng)采用了兩種數(shù)模轉(zhuǎn)換芯片,一種是HX711AD轉(zhuǎn)換芯片,另外一種是PCF8591AD 轉(zhuǎn)換芯片。
其中HX711 轉(zhuǎn)換芯片采用了海芯科技集成電路專利技術(shù),是一款專為高精度電子秤設(shè)計的24 位A/D轉(zhuǎn)換器芯片。與同類型其他芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其他同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強等優(yōu)點,降低了整機成本,提高了整機的性能和可靠性,并且系統(tǒng)板上無需另外的模擬電源。芯片內(nèi)的時鐘振蕩器不需要任何外接器件。上電自動復(fù)位功能簡化了開機的初始化過程,在本系統(tǒng)中與壓力傳感器配套使用構(gòu)成壓力傳感器模塊。
PCF8591 芯片是一個單片集成、單電源、低功耗的8 位CMOS 數(shù)據(jù)采集器件,它有四個模擬輸入、一個輸出和一個串行I2C 總線接口,PCF8591 三個地址引腳A0、A1 和A2 用于硬件地址編程,8 個PCF8591 器件允許連接到同一個I2C 總線,無需額外的硬件。
該系統(tǒng)結(jié)合紅外傳感器輸出AD 采樣值,構(gòu)成紅外傳感器模塊。
步進電機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。步進電機一般按勵磁方式分為磁阻式、永磁式和混磁式三種,而按相數(shù)可以分為單相、兩相、三相和多相等形式,而步進電機常用驅(qū)動方式為單極性和雙極性驅(qū)動方式。在步進電機模塊中我們通過ULN2003 芯片來實現(xiàn)控制單片機IO 口的電平來控制28BYJ-48 五線四相步進電機。
蜂鳴器是電器設(shè)備中常用發(fā)聲原件,其安裝方便、操作簡單而被廣泛應(yīng)用,結(jié)構(gòu)原理為電磁線圈和磁鐵周期性振動從而產(chǎn)生聲音。蜂鳴器分為有源蜂鳴器和無源蜂鳴器,兩者在封裝上差不多,其中有源蜂鳴器內(nèi)部有振蕩電路,只需要在引腳上接上電壓就可以產(chǎn)生固定頻率的聲音,而無源蜂鳴器內(nèi)部沒有振蕩電路,接上電源后不會發(fā)聲,所以在使用時需要用不同的方波信號來驅(qū)動發(fā)聲。因為這個特點,無源蜂鳴器可以產(chǎn)生不同的聲音進而演奏一些簡單的樂曲。本系統(tǒng)采用的是無源蜂鳴器,令其鳴叫必須用2K-5K 的方波去驅(qū)動它,模塊采用s8550 三極管驅(qū)動低電平觸發(fā),工作電壓3.3V-5V。
在電路設(shè)計中,電源電路設(shè)計極其重要,由于本系統(tǒng)大部分器件所需供電電壓均為5V 電壓,為了保證系統(tǒng)工作穩(wěn)定,需要設(shè)計一個可以穩(wěn)定供電5V 電壓的供電系統(tǒng),所以本系統(tǒng)采用了USB 供電方式。USB系統(tǒng)供電可以連接電腦USB 接口保證供電的穩(wěn)定性,也方便在軟件開發(fā)時調(diào)試程序,我們可以在該電路電源的輸出接口處裝上一個LED 燈,以此判定該電源電路是否正常工作。
圖2 為電源電路設(shè)計原理圖。

圖2 電源電路
預(yù)警電路由PNP 三極管S8050 驅(qū)動蜂鳴器實現(xiàn),由單片機其中一個IO 口控制三極管的基級(本系統(tǒng)蜂鳴器為低電平有效),當IO 口輸出為低電平時,三極管導(dǎo)通,蜂鳴器正極電源接通;當IO 口輸出為高電平時,三極管截止,蜂鳴器正極與電源斷開,此種現(xiàn)象構(gòu)成一種方波,所以可以用2K-5K 的方波驅(qū)動蜂鳴器使之工作。報警指示電路如圖3 所示。

圖3 蜂鳴器電路
系統(tǒng)主控電路由STC89C52 單片機及晶振電路和復(fù)位電路組成,該電路作為整個系統(tǒng)的核心控制各單元模塊工作。
晶振電路,又叫做振蕩電路,晶振是用來為單片機提供時鐘頻率的,由于我們使用的是51 單片機,其時鐘頻率可以在0-40MHz 上運行,所以選用了典型的晶振電路頻率11.0592MHz。晶振頻率越高,單片機運行越快,只有保證晶振電路穩(wěn)定,單片機才能繼續(xù)工作。
復(fù)位電路,當單片機運行時出現(xiàn)系統(tǒng)崩潰或者癱瘓狀態(tài),我們需要復(fù)位電路來使單片機恢復(fù)正常狀態(tài)。復(fù)位電路通常有兩種方式,一種是上電復(fù)位,即電源開啟后自動復(fù)位,另外一種為手動復(fù)位。本系統(tǒng)采用的是手動復(fù)位方式。
圖4 為單片機主控電路。

圖4 單片機主控電路
步進電機是為了實現(xiàn)開蓋及關(guān)蓋功能,但是單片機IO 口的電流很小,難以驅(qū)動步進電機工作,因此采用ULN2003 芯片來擴展單片機IO 口電流使其能夠驅(qū)動單片機工作,圖5 為步進電機驅(qū)動電路圖。

圖5 步進電機驅(qū)動電路圖
本系統(tǒng)在設(shè)計中采用的開發(fā)環(huán)境為KEIL 公司的uVision4 編譯器,程序由該系統(tǒng)編譯器對其進行了編譯以及調(diào)試,成功后將代碼燒錄到整個單片機內(nèi)部,然后由單片機執(zhí)行代碼所指示的內(nèi)容控制各個模塊的工作,通過觀察各模塊是否按照預(yù)期設(shè)想工作修改代碼,此過程可以邊上機進行代碼編寫邊觀察模塊工作,極大方便了程序的編寫、調(diào)試、修改,也為后期改進提供便利通道。在燒錄程序之前,電腦必須安裝并連接好驅(qū)動程序然后將單片機通過USB 接口連接在電腦上,打開STC-ISP,選擇好單片機型號以及單片機連接電腦的串口號,然后找到uVision4 生成的二進制文件,點擊下載按鍵,然后單片機開機,給單片機通電后就可以完成程序燒錄。
程序工作流程如下:紅外傳感器檢測到有人時,單片機控制步進電機正常工作打開垃圾蓋,經(jīng)延時后垃圾蓋將自動關(guān)閉;當壓力傳感器檢測到垃圾超重后,單片機控制蜂鳴器工作,產(chǎn)生一段時間的聲音預(yù)警,以提示該清理垃圾了。本程序采用C 語言編寫,采用了模塊化設(shè)計的思路,根據(jù)系統(tǒng)的功能將程序分成若干模塊并進行獨立編寫,互不干擾,這使得程序思路清晰,抗干擾能力強,便于后期改進。
程序流程圖如圖6 所示。

圖6 程序流程圖
通過測試,本系統(tǒng)已達到預(yù)期結(jié)果,各模塊獨立工作互不干擾,為了簡化實驗我們先控制壓力傳感器,然后再分別放置一個空瓶、一個容量為550ml 裝滿水的瓶子,為了使實驗結(jié)果更加明顯,我們裝上數(shù)碼管以顯示物品重量,然后觀察數(shù)碼管顯示的數(shù)字,當數(shù)字超過500 時蜂鳴器正常工作發(fā)出聲音,實驗結(jié)果如圖7所示。

圖7 超重預(yù)警實驗
實驗結(jié)果顯示,控制壓力傳感器時,數(shù)碼管顯示為0,蜂鳴器不工作;在壓力傳感器上放置一個空瓶時,數(shù)碼管顯示為38,蜂鳴器不工作;在壓力傳感器上放置裝滿水的瓶子時,數(shù)碼管顯示為553,超過設(shè)定值500,蜂鳴器正常工作發(fā)出聲音,實驗結(jié)果表明超重預(yù)警功能達到預(yù)期要求。
我們在自動開蓋中設(shè)定的探測距離為10cm-20cm。為了觀察實驗現(xiàn)象,我們在步進電機上套上一個筆帽,通過觀察筆帽是否轉(zhuǎn)動來判定該模塊是否達到預(yù)期要求。因此實驗分為兩部分,第一部分為在探測器前方10cm-20cm 內(nèi)是否有物體,另一部分為在探測器前方10cm-20cm 處放置物體,觀察實驗的結(jié)果如圖8 所示。

圖8 垃圾桶開關(guān)蓋實驗
實驗結(jié)果顯示當探測器前方10cm-20cm 內(nèi)沒有物體時,步進電機不工作,筆帽指向右方;當探測器前方10cm-20cm 處有物體時,步進電機正常工作,筆帽順時針旋轉(zhuǎn)90°,幾秒后步進電機再次啟動,筆帽逆時針旋轉(zhuǎn)90°回到原來位置。
通過多次實驗調(diào)試,該系統(tǒng)整體工作能達到預(yù)期要求。
本文以51 單片機為中心控制系統(tǒng),設(shè)計一款價格低廉的智能垃圾桶系統(tǒng)。采用模塊化設(shè)計使得該智能系統(tǒng)更加清晰直觀。實現(xiàn)了智能垃圾桶系統(tǒng)的智能開蓋和垃圾容量飽滿的蜂鳴功能。經(jīng)過多次測試,該系統(tǒng)達到了預(yù)定的功能。
但由于時間倉促,經(jīng)驗不足,理論知識缺乏等問題,本系統(tǒng)的設(shè)計還存在以下不足:該系統(tǒng)無保存信息功能,因此必須一直保持上電功能,如斷電一次則必須清除桶內(nèi)垃圾,不然系統(tǒng)會誤以為桶內(nèi)無垃圾;本系統(tǒng)由于未加電源轉(zhuǎn)換模塊,因此必須保持上電電源電壓為5V;系統(tǒng)設(shè)計不夠優(yōu)化,有待改善。系統(tǒng)的超量程信號直接由單片機送入報警電路,沒有設(shè)計保護電路載入單片機進行處理后送入報警電路。