東南大學成賢學院 李 寵 仝 倩 胡婷婷 吳玉蓮
無論是在家庭空間還是公共場所,如何做到合理性的對垃圾進行分類和收集一直都是不容小覷的問題。在炎熱的夏天,如果不能及時處理食物的殘渣,就會導致其發臭發霉。對于人頭攢動的公共場所,更應該花費時間與經歷解決關于垃圾處理的問題。目前市面上銷售的垃圾桶都帶有蓋子,由于傳統的工藝設計使其在打開過程中需要采取手動或者腳踩的方式,也確實不適用于快節奏下的人類使用。為了更好地適應科技迅猛的發展,更好的解決人們的生存問題,我的設計目標是打造出可以利用傳感器檢測的方式,自行打開垃圾桶蓋的設計產品,并且具有語音功能,能夠極大改善人們的生活質量。
通過查閱的數據分析,我國約有50%以上的城市深陷“垃圾圍城”的困境之中。這些垃圾往往處于露天堆放的狀態,嚴重影響了人們的生活健康,造成水資源、土壤、大氣的污染。實際生活中,當你手上有一塊需要扔掉的香蕉皮,但一想到要用手打開臟兮兮的垃圾桶蓋,立馬就會變得不想靠近,如何解決這一問題,讓垃圾桶變得具有親和力,也是需要考慮解決的問題之一。
在本次設計中主要利用STC89C52單片機作為實驗基礎,致力于設計開發出智能垃圾桶系統。該系統能夠實現智能開蓋的設計,且在垃圾裝滿后具有自動語音報警的功能。此設計的控制中心為單片機,利用紅外傳感器對周圍是否有人做出探測,如果有人經過,單片機會通過對電機的控制,打開卡機桶蓋,在通過延時設定一段時刻后,自動關閉垃圾桶蓋。電機通過線的正反纏繞控制桶蓋的打開與關閉。紅外對管模塊能夠精確檢測出垃圾桶內現存垃圾高度是否超過限定高度,如果已經裝滿,單片機會控制語音播放芯片,以語音播放形式提醒人們及時處理垃圾。
方案的設計運行主要由單片機、紅外對管傳感器、電機驅動模塊、語音報警、穩壓模塊幾部分共同組成。紅外傳感器是單片機最重要的信號輸入源頭,因為單片機需要對輸入進來的信號處理完畢后,才能輸出信號給語音模塊與電機驅動模塊,最終完成系統的總體設計。
人體檢測模塊中紅外傳感器如果監察到有人存在,就會把信號帶給單片機,單片機處理信號后更好的控制電機驅動模塊,人只要一離開系統就會自動關蓋。如果此時垃圾的高度達到原始設定高度,紅外對管傳感器會及時發送信號給單片機,單片機處理信息后控制語音播放模塊,報警提示人們。
單片機得以運行起來的條件有兩個,包括時鐘電路和復位電路兩方面的外圍電路,還有電源參與其中。滿足上述條件之后,才可以進行程序運行和單片機的下載。時鐘電路使用過程中產生的震蕩頻率會操控單片機的運行速度,一般情況下速度越快頻率運轉越高;單片機的復位電路中,電阻和電容的值都可以利用頻率公式計算出來,例如本次設計晶振頻率則控制在12.0123MHz,復位電路的電容值有30pF,電阻值為11KΩ。
紅外對管指的是光敏接收管與發射管結合而成的總稱,傳感器能夠反射紅外線進行目標的探測,被測到的物體外形和反射率兩方面會直接影響距離和測量精密度。研究顯示,黑色物體的最遠距離最小;白色物體能探測的最遠距離最大。紅外線的原理告訴我們,被檢測物體不需要與模塊之間發生碰觸,所以它的反應是十分迅速敏捷的。
當模塊的有效探測范圍內有障礙物時,模塊的綠燈亮起,同時OUT引腳電平變低。模塊檢測距離為2~20cm,檢測角度為40°,可以通過電位器旋鈕調節檢測距離。上圖藍色方塊即為電位器,順時針調節電位器,檢測距離增加,反之則檢測距離減小。模塊的VCC引腳與電源正極相連,GND引腳與電源負極相連,OUT引腳與單片機P2.7口相連。
設計的思路主要是在系統啟動后,在對其進行初始化流程的操作,人體的紅外檢測電路能夠準確探測出一定范圍內是否有垃圾,如果有人在扔垃圾,單片機此時就會迅速做出反應,將桶蓋打開;如果機器沒有檢測到人的存在,此時桶蓋就會一直處于持續保持打開的狀態,直到有人突然離開。當垃圾桶里的垃圾有外溢傾向時,檢測電路就會及時檢測垃圾的高度是否達到上限高度,這時它會提示人們不可以再將里面投入垃圾,程序就會以這樣的規律循環往復。
在進行系統檢測的過程中,單片機每間隔1s會對傳感器的輸出進行檢測,這時需要一個用于定義定時器的中斷函數。程序設計中規定設計循環為20次,每次為50ms的數值,定時器的初始值計算公式為:(216—X)×10—6=50×10—3,X的值為36260=3CB0H。
硬件系統和軟件系統在設計過程中,需要進行拆分研究,所以需要將它們分別調試好后,將程序下載至單片機中進一步查看工作情況,通過不斷調試解決可能出現的問題。調試的過程也很重要,要一遍遍檢查軟件是否能夠有效配合硬件的正常運行,還要考慮運行和運輸的速率是否能夠達到預期的目標。全部調試的過程中不可避免會出現幾類問題:編程邏輯的錯誤、硬件連接不牢靠等等。下文將詳細介紹幾個調試的過程,并記錄出現的問題與解決思路。
本設計便用的單片禮是STc89C52,但是Keil自帶的芯片庫中沒有這個型號的單片機,使用Atmel的AT89C52可以代替使用,結果相同。彈窗右側是AT89C52特性的簡要說明,可見其參數和本設計使用的STC89C52基本相同。之后再點擊確定。
在正反轉的子程序中,通過delay延時函數調節步進電機轉速,延時越大則轉速越慢,但經過調試發現顯低只能設置為2,再低則電機不會轉動已保存到相冊盾環的次數來設置步進電機旋轉的角度,經過反復試驗后,最終確定循環450次可以正好打開桶蓋,約85°左右。
確保了每個元器件都沒有出現故障后,再進行硬件調試。首先需要檢測電路是否存在斷路、焊錫過量或過少的問題,因為焊錫控制不好會引起斷路或者虛焊的情況發生。最后將已經焊接好的電路板進行通電,利用萬能表對引腳的狀態細致檢查,測量每個模塊間輸出的電壓值是否正確。
在調試的過程中,會逐步發現很多細節問題的產生導致系統無法正常運轉與工作,所以只能對每個部分進行檢查檢測,逐個解決問題,這也是模塊化設計的優勢之一。硬件和軟件最終能夠完美的融為一體,并且達到本案設計的目標,但是也遇到一些特殊問題需要解決,例如程序不能下載到單片機中。為了解決這一問題,我對轉換芯片能否正常運行做了深入檢查,不斷嘗試安裝新的芯片進行系統的驅動,不斷重啟電腦和ISP軟件,檢測TXD終端是否接觸好。還會出現紅外對管傳感器輸出指示燈常亮的現象發生,導致其原因一般是由于模塊自身電位器的問題,當把探測距離設置過大時,會造成模塊一直輸出低電平,這是可以嘗試調節電位器減小探測距離,若問題還未解決則,建議更換紅外對管傳感器模塊。
通過本次研究,我們完成了原本預定的目標,設計的成果能夠對一些要求進行滿足:例如,能夠實時監測是否有人存在,它能夠自動型開關蓋子。當人手在垃圾桶上面小于10cm的距離,垃圾桶能夠迅速做出反應且立馬開蓋;當人逐漸離開,它又可以在三秒鐘內關蓋,無需人為操控。當垃圾堆積的總高度超過桶口時間大于3s時,語音報警功能響起,垃圾會被清掃干凈,關蓋時候垃圾桶不會發出聲響。
在此次產品設計中,我們主要使用單片機作為垃圾桶的主控制芯片,在一定的時效內完成對語音報警功能的實現,也實行了垃圾桶的自動開蓋功能,從而完成了設計智能垃圾桶的任務。
當有人將垃圾扔進桶內時,紅外對管傳感器此時就會做出反應,將其信號傳送給單片機,在內部系統的處理后發送脈沖信號,使得電機的驅動模塊能夠打開垃圾桶蓋,人離開時只需要延時幾秒鐘就可以自動關蓋。電機在驅動過程中使用ULN2003模塊,步進電機是開蓋的主要動力源,旋轉角度能夠得到有效控制。垃圾達到一定限制高度時候,紅外傳感器就會對單片機發出信號,信號被處理后語音模塊會及時報警。在軟硬件調試過程中也遇到了一些困難,我們小組成員始終堅持不放棄的原則,細心調整內在問題,最終系統得到完善的設計。
本次設計方案由于時間的緊促,還存在一些不足之處,不夠成熟。垃圾桶雖然能夠開蓋,滿足語音報警的功能,但是內部環節還有很多需要調整提升品控的地方。首先語音質量方面還不能趨向于完美,目前使用中的芯片需要手動錄制音頻,音效不夠流暢,還會受到周邊雜音的干擾。開蓋的機械結構還需要調整設計,由于用料方面受到限制,只能用線拉的方式把桶蓋拉扯開,這樣的方式使得電機運轉速度受到影響,在后面提升過程中可以利用齒輪間的相互配合驅動桶蓋的突然打開。除此以外,還需要更換人體檢測電路的傳感器,因為熱釋電傳感器會因為環境受影響導致輸出狀態并不穩定,在后面的研究過程中會用到紅外對管傳感器進行實踐。