熊國棟
(荊楚理工學(xué)院計算機(jī)工程學(xué)院,荊門 448000)
隨著現(xiàn)代城市和科學(xué)技術(shù)的不斷發(fā)展和進(jìn)步,人們的生活水平與過去幾年相比有了很大提高,追求健康生活環(huán)境的時代已經(jīng)開啟。因此,相關(guān)的環(huán)保產(chǎn)品和設(shè)備也不斷涌現(xiàn)。在日常生活中,有相當(dāng)一部分的垃圾箱露天沒有蓋子或是蓋子需要手動打開。通常有蓋子的垃圾箱由于衛(wèi)生狀況不佳,導(dǎo)致人們不愿意用手直接觸摸打開,甚至將垃圾直接放在一邊放任不管。在炎熱的夏天,如果清理不及時,垃圾會散發(fā)出難聞的刺鼻氣味,增加細(xì)菌擴(kuò)散的機(jī)會。同時,一些醫(yī)療機(jī)構(gòu)的廢物會滋生病毒和傳播疾病,從而危及人們的健康。但目前,市場上自動控制垃圾箱開閉及相關(guān)產(chǎn)品非常少見,因此,開發(fā)一種能自動控制開閉并具有一定智能程度的垃圾箱已成為當(dāng)前迫切需要解決的問題之一。
目前世界上許多國家和地區(qū)已經(jīng)實(shí)現(xiàn)了廢物的合理處置,一些太陽能設(shè)施得到了廣泛的應(yīng)用。例如,英國劍橋大學(xué)結(jié)合當(dāng)?shù)丨h(huán)境,開發(fā)了符合當(dāng)?shù)貙?shí)際需要的垃圾箱控制系統(tǒng)。該設(shè)備內(nèi)置了一個小型壓縮機(jī),垃圾被壓縮到一定大小以釋放更多的存儲空間,并由太陽能電池陣列供電。此外,通過手機(jī)和相關(guān)設(shè)備,附近的環(huán)衛(wèi)工人可以快速了解垃圾存放情況,以便及時清理。
進(jìn)入21 世紀(jì),人工智能技術(shù)得到了廣泛應(yīng)用,我國智能家居產(chǎn)業(yè)發(fā)展迅速。作為智能家居的細(xì)分市場,智能垃圾箱的市場規(guī)模也在不斷擴(kuò)大。政策方面,隨著垃圾強(qiáng)制分類的實(shí)施,中國垃圾分類行業(yè)的快速發(fā)展帶動了智能垃圾桶的市場需求。就專利數(shù)量而言,中國約有3000 項與智能垃圾箱相關(guān)的專利,其中實(shí)用新型專利約占60%。自動包裝分類技術(shù)可以提高垃圾分類和垃圾處理的效率,備受青睞。
其目的是開發(fā)一種智能垃圾箱,主要實(shí)現(xiàn)紅外檢測、自動開關(guān)以及聲光提醒等多項功能,以避免其影響人們的日常生活環(huán)境,降低細(xì)菌傳播疾病的風(fēng)險,保障人們的身心健康,而且也方便提供給人們衛(wèi)生、清潔的垃圾投放環(huán)境。
本設(shè)計的控制芯片,可以選擇以STC89C52型單片機(jī)為中心,利用紅外傳感器檢測周圍是否有垃圾拋擲行為。如果有,它會自動打開垃圾箱的蓋子,然后在一段時間后自動關(guān)閉。本設(shè)計的主要框架包括:①紅外傳感器,用于檢測是否有人需要扔垃圾;②垃圾箱裝滿后,打開聲光報警器;③驅(qū)動步進(jìn)電機(jī)的電路設(shè)計。
通過以上分析,基于單片機(jī)技術(shù)設(shè)計智能垃圾箱是可行的。
本設(shè)計經(jīng)濟(jì)壓力小,設(shè)計成本低,市場上同類設(shè)施少。此外,如果這種設(shè)計被正式使用,它將在廢物的儲存和管理方面發(fā)揮積極作用。
該設(shè)計的實(shí)現(xiàn)有利于公共場所和家庭廚房、浴室垃圾的儲存,對于社會來說,具有一定的積極意義。
本設(shè)計的硬件主要基于STC89C52 單片機(jī),采用軟硬件結(jié)合的方式實(shí)現(xiàn)蓋子打開的效果,并添加聲光報警器,提醒此時垃圾箱已滿。主要通過紅外檢測電路、電機(jī)驅(qū)動電路和聲光報警電路三部分來保證系統(tǒng)的正常運(yùn)行??傮w系統(tǒng)框圖如圖1所示。
圖1 總體設(shè)計框圖
3.2.1 STC89C52單片機(jī)簡介
STC89C52 單片機(jī)是近年來推出的新一代51核單片機(jī),51 系列單片機(jī)均屬于8 位的CPU,為確保相應(yīng)的代碼效率穩(wěn)步提升,需要積極地關(guān)注變量長度的合理控制[1]。涵蓋閃存程序存儲器、脈寬調(diào)制、通用異步收發(fā)器、串行外圍接口模塊。由于采用了模塊化設(shè)計,因此該型號的單片機(jī)在擴(kuò)展性和便攜性方面都有良好的性能,在各種工業(yè)控制領(lǐng)域都有廣泛應(yīng)用。其封裝引腳圖如圖2所示。
圖2 STC89C52引腳圖
3.2.2 主要特點(diǎn)
(1)作為8051 單片微控制器的增強(qiáng)版,它有6 或12 個時鐘機(jī)器周期,并與以前的8051 型號的代碼完全兼容。
(2)工作電壓為5.5~3.3 V(5 V 微控制器)或3.8~2.0 V(3 V微控制器)。
(3)工作頻率在0~40 MHz,而普通8051微控制器的工作頻率在0~80 MHz,實(shí)際工作頻率甚至高達(dá)48 MHz。
(4)存儲程序的空間可以達(dá)到8 k 字節(jié),并且有4096位的操作存儲空間。
(5)具有32 個公共導(dǎo)入和導(dǎo)出,P1~P4 復(fù)位后上拉較弱,可用作準(zhǔn)雙向口。漏極開路時可以通過P0 端口輸出,當(dāng)沒有上拉電阻時可以使用總線擴(kuò)展,具有上拉電阻時可以輸入和輸出信號。
(6)該芯片不需要專業(yè)的編程/模擬器。通過引腳P3.0,P3.1 可以在幾秒鐘內(nèi)將程序下載到芯片上。
(7)具有重復(fù)使用功能,并將提供監(jiān)控能力。
(8)有3個16位定時/計數(shù)器。
(9)PowerDown 可通過下降沿或低電平外部中斷喚醒。
(10)通用異步串口、定時器軟件可以實(shí)現(xiàn)完整的多個UART。
3.2.3 引腳功能
VCC(40針):電源電壓。
VSS(20針):接地。
引腳32 至39 分別屬于芯片的P0 端口,為P0.0至P0.7,這是一個具有漏極開路功能的8位雙向I/O 端口。當(dāng)所有引腳驅(qū)動8 個TTL 負(fù)載時,它們可以用作輸出端口。通過為端口P0 輸入“1”,端口P0 也可以用作高阻抗輸入端口。P0端口具有低8位地址和8位多路復(fù)用總線,可以在訪問外部程序和數(shù)據(jù)存儲時提供服務(wù)。由于該接口具有良好的通用性,被廣泛應(yīng)用于各種設(shè)備,如計算機(jī)、打印機(jī)等。當(dāng)需要從外圍設(shè)備或存儲過程讀取或?qū)懭胄畔r,只需從端口將其插入即可。此時,內(nèi)部上拉電阻將啟動電源。使用閃存編程時,此端口起到接收指令信號的功能。在驗證程序是否有問題時,需要使用外部上拉電阻來驗證指令信號輸出。
引腳1 至8 屬于端口P1,對應(yīng)于P1.0 至P1.7。該端口是一個具有上拉電阻的8 位雙向輸入/輸出端口。通過輸出緩沖器的輸入和輸出電流可以實(shí)現(xiàn)4 個TTL 輸入。端口的“1”輸入通過內(nèi)部阻力增加,然后可以用作輸入端口。當(dāng)用作輸出端口時,外部下拉區(qū)域?qū)⒂捎趦?nèi)部下拉而輸出電流信號。P1 端口還具有一些附加功能,比如計時器。
引腳21 至28 統(tǒng)稱為P2 端口,對應(yīng)于P2.0至P2.7。它們用作8 位雙向輸入/輸出端口,具有內(nèi)部阻力以傳輸數(shù)據(jù),必要時可用作更高的8位地址總線。
P3 端口作為標(biāo)準(zhǔn)傳輸接口,每個引腳也有其獨(dú)特的功能,詳見表1。
表1 P3引腳功能表
RST(9引腳):復(fù)位輸入。
表示允許的地址鎖存信號輸出(ALE)的引腳為30,當(dāng)訪問其他外部ROM 時,可以鎖存較低的輸出脈沖。
引腳31 的VPP 是控制外部ROM 訪問的引腳。
引腳18 和19(XTAL1 和2)分別用于連接到外部時鐘電路的輸入和輸出端口。
為了在內(nèi)部執(zhí)行復(fù)位指令,單片機(jī)需要在RST 引腳上輸入高電平信號并保持兩個機(jī)器周期。一般情況下,電路中的復(fù)位電路會在通電時自動復(fù)位并手動復(fù)位按鈕。
在復(fù)位電路中,所謂的上電自動復(fù)位通常通過對外部電容器進(jìn)行充電和放電來實(shí)現(xiàn)。一般來說,將電路電壓上升時間設(shè)置在一毫秒內(nèi)可以達(dá)到自動上電復(fù)位的效果。
在某些情況下,通電復(fù)位的效果往往很差,因此需要選擇按鈕手動復(fù)位。本系統(tǒng)的設(shè)計是使用手動復(fù)位按鈕。按鍵手動復(fù)位有兩種方式,一種是電平復(fù)位,另一種是脈沖復(fù)位。電平復(fù)位可通過RST 和電源連接實(shí)現(xiàn)。按下按鈕手動復(fù)位電路如圖3 所示。時鐘頻率調(diào)整為12 M,電容器選擇為10 uF,電阻為10 KΩ。
圖3 復(fù)位電路圖
本設(shè)計所用的單片機(jī)可以由內(nèi)部時鐘信號產(chǎn)生,也可以由外部來實(shí)現(xiàn)。內(nèi)部時鐘電路圖見圖4。在石英晶體與XTAL1和2連接后,可以形成自激振蕩器以產(chǎn)生內(nèi)部時鐘脈沖信號,此時形成振蕩電路。在電路中,圖4所示的兩個電容器C2和C3啟動穩(wěn)定頻率并快速啟動振動。電容值可從5~300 pF 中選擇,典型值為30 pF。晶體振蕩的范圍通常為1.2~12 MHz,典型值設(shè)置為12 MHz。
本設(shè)計中的時鐘電路采用晶體振蕩器電路,具體電路圖如圖4所示。
圖4 晶體振蕩器電路圖
3.5.1 步進(jìn)電機(jī)簡介
步進(jìn)電機(jī)是一種通過脈沖信號產(chǎn)生角位移的機(jī)械式電機(jī)。電機(jī)的每個旋轉(zhuǎn)角度表示接收到一個脈沖信號。步進(jìn)電機(jī)是按照穩(wěn)定的角度一點(diǎn)點(diǎn)地旋轉(zhuǎn),為了達(dá)到精確的定位效果,可以利用輸入脈沖信號的個數(shù)來控制;同時,可以通過改變輸入脈沖信號的頻率來操縱電機(jī)的速度和加速度,從而達(dá)到調(diào)速的效果。
本設(shè)計使用的步進(jìn)電機(jī)為28BYJ-48 型四相八拍混合式步進(jìn)電機(jī),工作電壓為直流電源電壓,5~12 V 之間。當(dāng)步進(jìn)電機(jī)需要保持旋轉(zhuǎn)時,可以將脈沖信號連續(xù)輸入。轉(zhuǎn)子旋轉(zhuǎn)幅度是一個固定值,因為每個脈沖信號只改變步進(jìn)電機(jī)的功率狀態(tài)一次。當(dāng)轉(zhuǎn)子通過變槳時,表明通電狀態(tài)已完成一個循環(huán)。四相電機(jī)的公共功率模式包括單相繞組四拍(A-B-C-D-A-…),兩相繞組四拍(AB-BC-CD-DA-AB-……)和八拍(A-AB-B-BC-C-CD-DA-A-…)。
驅(qū)動模式如表2所示。橙色、黃色、粉色和藍(lán)色分別對應(yīng)A、B、C和D相。
表2 步進(jìn)電機(jī)驅(qū)動方式
5伏電源連接到紅色線,單片機(jī)P1.3端口連接到橙色線,P1.2 端口連接到黃色線,粉色線連接到P1.1端口,藍(lán)色線連接到P1.0端口。
3.5.2 ULN2003芯片
STC89C52 單片機(jī)端口輸出信號小,無法支持電機(jī)操作,此時可以使用ULN2003 芯片將信號放大后再傳輸?shù)较鄳?yīng)的電機(jī)接口。
ULN2003 芯片是一種高壓大電流集成電路,包含7對達(dá)林頓管,通過高壓輸出和鉗位二極管實(shí)現(xiàn)電感負(fù)載的轉(zhuǎn)換。
芯片與MCU 的接口電路相對簡單:1 針連接到MCU 的P2.3 端口,2 針連接到單片機(jī)的P2.2 端口,3 針連接到MCU 的P2.1 端口,4 針連接到MCU 的P2.0 端口,可用于單片機(jī)與電機(jī)驅(qū)動器之間的數(shù)據(jù)傳輸。
ULN2003芯片特點(diǎn):
(1)輸出的額定集電極電流可達(dá)到500 mA。
(2)高壓輸出:50 V。
(3)與多種邏輯類型兼容的輸入。
(4)可作為步進(jìn)電機(jī)驅(qū)動器使用。
圖5是系統(tǒng)的驅(qū)動電路,它控制著作為整個系統(tǒng)核心的各個模塊的工作。
圖5 步進(jìn)電機(jī)驅(qū)動電路
設(shè)計中使用的紅外傳感器具有同時發(fā)射和接收紅外線的功能,對環(huán)境光具有良好的適應(yīng)性。通過發(fā)射管發(fā)射一定頻率的紅外線,與障礙物接觸后,傳感器的接收管反射并接收到紅外線。在下一步中,經(jīng)過比較器電路的進(jìn)一步處理后,綠色指示燈將點(diǎn)亮,同時,傳感器的信號輸出端口將輸出低電平數(shù)字信號。它具有安裝速度快、干擾因素少、應(yīng)用范圍廣的特點(diǎn)。
人體表面溫度通常穩(wěn)定在一個固定值,因此人體產(chǎn)生的紅外光的波長是恒定的。身體釋放的紅外線被傳感器探頭吸收,然后菲涅耳透鏡將其聚集在熱釋電元件上,打破電荷平衡,然后輸出電荷信號。判斷電荷后,便可知周圍有人,通過電機(jī)打開蓋子。在一段時間沒有感應(yīng)到人體后,垃圾桶將關(guān)閉蓋子。
為了防止人與其他障礙物混淆,可以調(diào)整傳感器安裝的位置,將其固定在垃圾桶的開口處,并與垂直防線的箱壁形成適當(dāng)?shù)慕嵌龋褂秒娢黄髡{(diào)整組件的檢測距離,從而大大降低誤判的概率。圖6是本設(shè)計中紅外傳感器的電路圖。
圖6 紅外傳感器模塊電路圖
3.6.1 配置模塊參數(shù)
(1)當(dāng)部件上的綠燈亮起時,表示部件前面有障礙物。此時,低電平信號將繼續(xù)從輸出端口輸出。該元件可以以35°的角度檢測2~30 cm的范圍。電位器順時針移動,檢測范圍會更大;否則,它會減少。
(2)傳感器的輸出口可以直接將信號傳輸?shù)絾纹瑱C(jī)的輸入口,也可以使5 V繼電器動作。
(3)傳感器的工作電壓應(yīng)保持在直流3~5 V之間。紅色LED 燈亮起時,表示電路已連接到電源。
3.6.2 模塊接口描述
(1)傳感器的VCC 端口可以連接到3.3~5 V的電壓(可以直接連接到5 V或3.3 V的單片機(jī));
(2)GND外接GND;
(3)OUT小板數(shù)字輸出接口(0和1)。
紅外傳感器將低電平信號導(dǎo)入單片機(jī),然后利用單片機(jī)使紅燈亮起,報警裝置的揚(yáng)聲器也啟動。沒有輸入信號會自動關(guān)閉。電路圖如圖7所示。
圖7 報警模塊電路圖
智能垃圾箱的軟件程序大致可分為三部分:步進(jìn)電機(jī)驅(qū)動、紅外傳感器檢測和聲光報警。在本系統(tǒng)設(shè)計中,要對某人進(jìn)行傳感器檢測,垃圾可以自動打開;當(dāng)最后一次沒有檢測到人時,時間將開始5秒計時,然后垃圾箱將自動關(guān)閉。為了提醒人們垃圾桶已滿,系統(tǒng)還安裝了聲光報警器。系統(tǒng)程序的總體流程如圖8所示。
圖8 系統(tǒng)程序總體流程圖
為了實(shí)現(xiàn)垃圾箱的自動抓斗功能,可以利用電機(jī)的正反轉(zhuǎn)來達(dá)到預(yù)期的效果。系統(tǒng)開始工作后,需要確定電機(jī)是否需要向前旋轉(zhuǎn)。如有必要,AB、BC、CD 和DA 的電源應(yīng)實(shí)現(xiàn)正向旋轉(zhuǎn),并在一定延遲后變?yōu)榉聪?,即AB、AD、CD 和CB 充電。圖9 是系統(tǒng)驅(qū)動子程序的流程圖。
圖9 驅(qū)動子程序流程圖
本設(shè)計步進(jìn)電機(jī)驅(qū)動器如下:
在日常生活中,垃圾箱常常是滿的。為了確保環(huán)境衛(wèi)生,當(dāng)垃圾箱裝滿時,有必要將自動模式切換到按鈕打開。此時,可以使用檢測內(nèi)部高度的紅外傳感器輸出低電平信號,并通過判斷程序使垃圾箱只能通過按鈕打開。按下按鈕打開并清潔后,系統(tǒng)將切換回自動模式。圖10是該程序的流程圖。
圖10 模式切換流程圖
切換程序的具體代碼如下:
該系統(tǒng)可以使用指示器和蜂鳴器警告人們垃圾桶已滿。蜂鳴器直接連接到微控制器的P3.4 端口,紅燈連接到P1.0,綠燈連接到P1.1。T0在主功能中配置為16位定時/計數(shù)器,并設(shè)置一定的初始值。模塊的程序代碼如下所示。
以上內(nèi)容完成了各模塊程序的設(shè)計。在這一部分,將幾個模塊的內(nèi)容結(jié)合起來形成一個整體,這是整個系統(tǒng)的核心主程序。以下是主程序的具體代碼。
在軟硬件設(shè)計完成后,有必要對關(guān)鍵部分進(jìn)行系統(tǒng)調(diào)試。通過系統(tǒng)調(diào)試,可以顯示和解決硬件焊接留下的故障和軟件編程中的錯誤。
整個系統(tǒng)的硬件和軟件調(diào)試相輔相成。在調(diào)試過程中可以發(fā)現(xiàn)并糾正一些硬件錯誤。一般來說,一些明顯的硬件故障需要先解決,然后用軟件程序進(jìn)行進(jìn)一步的調(diào)試和解決??梢缘贸鼋Y(jié)論,系統(tǒng)的基礎(chǔ)是硬件,如果硬件沒有通過,軟件程序的設(shè)計就無法啟動。
在硬件方面,找出制造過程中是否存在布線錯誤是調(diào)試的重點(diǎn)。如果電路板存在錯線、虛接或短路、斷開等問題,則需要注意電源和地線是否正確。檢查芯片和組件是否損壞等。
以上故障排除方法是基于原理圖,參考PCB,以確保原理圖與物理板一致。檢查電源是否異常,尤其是電源短路和正負(fù)極連接錯誤。使用萬用表檢查地址總線和控制總線是否正常工作。此外,還需要檢查組件是否出現(xiàn)故障。根據(jù)設(shè)計要求,檢查其型號、規(guī)格和安裝,確保部件不燒壞,安全。此過程可通過替換方法消除。
整個系統(tǒng)的原理圖如圖11所示。
圖11 系統(tǒng)示意圖
系統(tǒng)軟件負(fù)責(zé)管理整個系統(tǒng)中硬件的各個部分,使其能夠協(xié)調(diào)工作,也就是說,軟件決定了整個系統(tǒng)能夠?qū)崿F(xiàn)什么功能,所以軟件調(diào)試就顯得尤為重要。目前在單片機(jī)編程過程中主要有匯編語言和C 語言兩種[2]。該程序是靠C語言實(shí)現(xiàn)的。C語言的開發(fā)工作是單片機(jī)開發(fā)的基礎(chǔ),也是整個開發(fā)環(huán)節(jié)的基本要素[3]。采用“自頂向下、逐步求精”的程序設(shè)計原則,才能使整個應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,滿足單片機(jī)的系統(tǒng)需求[4]。因為系統(tǒng)的設(shè)計可以分為幾個部分,為了避免編程混亂帶來不必要的麻煩,設(shè)計采取模塊化編寫程序。確定每個模塊沒有問題后,將幾個部分組合起來,開始全面準(zhǔn)備。
具體開發(fā)步驟如下:
(1)安裝軟件。在KEIL 的網(wǎng)站上可以下載到軟件KEILC51 的安裝包,跟隨軟件提示安裝即可。
(2)創(chuàng)建C 源文件。首先,建立一個新項目,在新項目中添加已有的程序文件。然后,建立一個新的程序文件,在新文件的文字編輯窗口中編寫程序,生成C源文件。
(3)編譯并調(diào)試。軟件操作者將程序調(diào)整到調(diào)試模式,使用仿真器在源程序一級進(jìn)行程序調(diào)試,對已建立的源文件糾錯,同時編譯源程序,在使用C51編譯器的基礎(chǔ)上生成目標(biāo)文件。
(4)生成.hex文件[5]。
圖12 的外觀表明程序編譯正確,生成了硬件操作所需的.hex文件。
圖12 程序編譯圖
如果軟件程序編譯無誤,則表明語法正確,但不能保證程序能按預(yù)期運(yùn)行。這里測試邏輯是否正確,軟件模擬可以選擇keil進(jìn)行調(diào)試。
在調(diào)試主菜單中debug的start/stop debugSession,以進(jìn)入調(diào)試器的工作模式。調(diào)試界面中的按鈕控制程序的運(yùn)行,左邊是復(fù)位按鈕、程序的連續(xù)運(yùn)行、停止、單步執(zhí)行等。
如果要使程序從頭開始運(yùn)行,可以單擊“重置”來模擬MCU 的重置功能。Keil軟件在調(diào)試模式下,程序可以在單個步驟中執(zhí)行,當(dāng)然也可以連續(xù)執(zhí)行語句。所有指令語句都是按順序執(zhí)行的,不會停止。優(yōu)點(diǎn)顯而易見:執(zhí)行速度快,可以看到執(zhí)行的整體效果,即最終結(jié)果是對還是錯;缺點(diǎn)也很明顯:一旦程序中出現(xiàn)錯誤,就很難確定問題的確切位置。此時,需要使用單步執(zhí)行,每執(zhí)行一條指令即停止,需要手動單擊執(zhí)行按鈕將運(yùn)行以下指令,此時可以查看執(zhí)行此指令后獲得的結(jié)果,以及預(yù)期的數(shù)據(jù)比較和分析,以確定程序問題。當(dāng)程序較大時,效率低下變得更加明顯。因此,對于確認(rèn)無錯誤的程序段,可以連續(xù)運(yùn)行;對于懷疑有錯誤或容易出錯的地方,可以逐步運(yùn)行。這樣,調(diào)試的效率將明顯高于逐行檢查錯誤的效率。
本次設(shè)計的調(diào)試如圖13 所示。程序中未發(fā)現(xiàn)問題,運(yùn)行正常。
圖13 程序調(diào)試圖
仿真可以在Protues軟件中進(jìn)行,作為對電路問題的分析,物理仿真軟件特別可靠,功能極其優(yōu)秀,仿真分析各種模擬器部件以及集成電路等。為了保證芯片和元器件的合理使用,本設(shè)計利用它對整個系統(tǒng)進(jìn)行了全面的檢查和調(diào)試。
整個系統(tǒng)的仿真圖如圖14 所示。由于Protues軟件中沒有紅外傳感器,因此使用兩個按鍵開關(guān)模擬更換。
圖14 系統(tǒng)仿真圖
系統(tǒng)軟硬件按預(yù)期運(yùn)行后,開始系統(tǒng)設(shè)計的整體調(diào)試。在前一部分中,Keil 軟件用于模擬測試,但它畢竟是一個模擬環(huán)境。此時,需要將導(dǎo)入的程序刻錄并記錄到單片機(jī)中,用電源來檢測系統(tǒng)是否能完成預(yù)期的效果。有些硬件問題可能需要導(dǎo)入軟件程序才能發(fā)現(xiàn),軟件也需要硬件配合。
在整個調(diào)試過程中,發(fā)現(xiàn)系統(tǒng)開始運(yùn)行后垃圾箱的蓋子沒有按預(yù)期工作,而且開口太小,垃圾無法正常放入。在檢查電路圖并確保硬件連接正確后,確定電機(jī)運(yùn)行角度不夠,因為程序輸出的脈沖信號數(shù)量太少。經(jīng)過對輸入脈沖信號數(shù)的反復(fù)計算和調(diào)試,整個系統(tǒng)最終達(dá)到了預(yù)期的效果。
在整個調(diào)試完成后,對系統(tǒng)設(shè)計對象進(jìn)行了仿真實(shí)驗。圖15 是設(shè)計的實(shí)物圖,杯子代表垃圾箱。在實(shí)驗中,可以通過在垃圾箱前面放置物體來模擬人扔垃圾的情況,并且可以用廢紙覆蓋垃圾箱來檢測內(nèi)部傳感器。系統(tǒng)接通電源后,系統(tǒng)工作指示燈亮起,紅外傳感器感應(yīng)垃圾桶周圍的物體,電機(jī)旋轉(zhuǎn)90 度,表示垃圾桶自動翻蓋,垃圾拋完后5秒內(nèi)未檢測到人,電機(jī)反轉(zhuǎn),從而實(shí)現(xiàn)人走后蓋子的閉合。
圖15 設(shè)計實(shí)物圖
該系統(tǒng)有兩個紅外傳感器,當(dāng)物體阻擋紅外傳感器盒的高度檢測時,垃圾箱充滿光線,蜂鳴器開始工作,以提醒垃圾箱已滿,應(yīng)進(jìn)行清理。電源關(guān)閉后,系統(tǒng)指示燈熄滅。
在本實(shí)踐中,設(shè)計了一種具有全報警、自動開閉的控制系統(tǒng)。本設(shè)計通過查閱網(wǎng)上相關(guān)資源和書籍,獲得有效的信息,最終確定了系統(tǒng)的總體設(shè)計,并將其分為幾個模塊,以便于更詳細(xì)的分析工作。對系統(tǒng)的總體設(shè)計和各個組成部分進(jìn)行了詳細(xì)的分析和調(diào)試。該系統(tǒng)主要依靠紅外傳感器模塊、電機(jī)驅(qū)動模塊、聲光報警模塊三部分來維持正常運(yùn)行,考慮到有垃圾箱裝滿的情形,還增加了手動按鈕打開功能。
當(dāng)然,智能垃圾箱的設(shè)計還有很多不足之處,本設(shè)計只是對智能垃圾箱內(nèi)部進(jìn)行了一個非常初步的設(shè)計,也可以在此基礎(chǔ)上增加很多實(shí)用功能,比如垃圾自動包裝可以利用電機(jī)驅(qū)動的鏈條來實(shí)現(xiàn),可以通過相應(yīng)的傳感器和組件進(jìn)行自動垃圾分揀,這在將來都是可能的。