王彤華,李郁,劉煜,劉小軍,王杰
(西安明德理工學院,陜西西安,710124)
近年來,隨著人們生活水平的不斷提高,生活和工作壓力的不斷增大,越來越多的人也更加注重自己的精神生活[1]。為了緩解壓力豐富生活,寵物已成為我國休閑娛樂的新生力量,飼養(yǎng)寵物的潮流越來越高漲,人們對于寵物喂養(yǎng)的需求也愈來愈高。然而,喂養(yǎng)者工作繁忙無法及時照顧寵物,容易導(dǎo)致寵物生病及死亡[2]。同時,喂養(yǎng)者的專業(yè)知識水平相對滯后,缺乏科學喂養(yǎng)的經(jīng)驗。隨著科學技術(shù)的不斷發(fā)展,人工智能時代的來臨,實現(xiàn)自動化管理的智能化產(chǎn)品已成為一種趨勢。因此開發(fā)一款智能寵物喂養(yǎng)系統(tǒng)成為一種迫切的需求。該系統(tǒng)可以較好地去解決以上問題,讓寵物可以在主人不方便照顧的情況下,能夠被規(guī)律且科學地喂養(yǎng),這樣不僅可以給飼養(yǎng)者帶來便利,也能讓寵物的身體健康得到保障。該智能寵物喂養(yǎng)系統(tǒng)適用范圍廣,不管是老人還是小朋友在操作系統(tǒng)上都容易上手,并且設(shè)計簡單方便,實用價值高。
智能寵物喂養(yǎng)系統(tǒng)主要由單片機最小系統(tǒng)、重量檢測模塊、鍵盤模塊、時鐘采集模塊、電機控制模塊、聲光提示模塊和顯示模塊構(gòu)成。系統(tǒng)的總體設(shè)計框圖如圖1 所示。
圖1 系統(tǒng)總體設(shè)計框圖
該系統(tǒng)主要實現(xiàn)自動喂養(yǎng)和手動喂養(yǎng)兩種功能。
(1)自動喂養(yǎng)模式:主要是系統(tǒng)按指定食物重量進行自動投喂,當達到指定重量后自動關(guān)閉。與此同時,系統(tǒng)按照提前設(shè)置的時間進行寵物喂養(yǎng),到達喂養(yǎng)時間后,蜂鳴器及發(fā)光二極管提醒寵物進行進食,并在顯示屏上顯示進食的剩余時間及喂養(yǎng)食物重量。
(2)手動喂養(yǎng)模式:主要是設(shè)置了手動喂養(yǎng)按鍵,喂養(yǎng)者使用鍵盤模塊來設(shè)置投喂重量和定時間隔,之后喂養(yǎng)者直接按下按鍵模塊的手動喂養(yǎng)按鍵,電機開始轉(zhuǎn)動釋放設(shè)置好重量的食物。到達指定重量之后,蜂鳴器發(fā)出聲音,二極管發(fā)出紅色光亮提示寵物過來進食,流程結(jié)束之后蜂鳴器和二極管恢復(fù)正常狀態(tài),喂食結(jié)束。
2.1.1 主控芯片的選擇
該設(shè)計是以AT89C52 單片機作為主控芯片,AT89C52是一款基于8 位CMOS 微控制器的芯片[3]。它擁有中斷系統(tǒng)、低功耗空閑和掉電模式、軟件設(shè)置睡眠和喚醒功能,適用于各種嵌入式應(yīng)用領(lǐng)域。因此本研究選用了AT89C52 作為主控芯片。
2.1.2 重量測量模塊
該系統(tǒng)在重量測量模塊中采用電位器和轉(zhuǎn)換器ADC0832 構(gòu)成重量檢測電路。ADC0832 為8 位分辨率A/D轉(zhuǎn)換芯片,其芯片有8 個引腳。
2.1.3 時鐘采集模塊
該系統(tǒng)的時鐘采集模塊選擇了DS1302 芯片,DS1302可以用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄[4]。該模塊主要對進食的時間進行實時記錄,然后通過屏幕進行顯示。
2.1.4 顯示模塊
該系統(tǒng)的液晶顯示模塊采用LCD1602 液晶顯示器,它采用 HD44780 控制器[5]。對該模塊電路設(shè)計時還需加入了一個上拉電阻,上拉電阻通過電阻將不確定信號鉗入高電平,同時電阻起到限流作用。
2.1.5 聲光提示模塊
該系統(tǒng)的聲光提示模塊中的發(fā)聲模塊主要采用了一個蜂鳴器,由蜂鳴器發(fā)出聲音來吸引寵物過來進食。發(fā)光模塊電路用的是LED-RED 來進行指示燈提示,由于它的顏色鮮亮更能被寵物發(fā)現(xiàn)和識別。
2.1.6 電機控制模塊
該系統(tǒng)的電機驅(qū)動模塊主要采用直流電機、三極管與電阻構(gòu)成,該模塊連接在主控芯片的P1.7 口。該模塊主要實現(xiàn)寵物的食物投喂功能。
2.1.7 鍵盤模塊
該系統(tǒng)的鍵盤模塊主要對喂食的重量、定時時間和手動喂養(yǎng)模式進行控制。為了能夠簡潔且方便地控制系統(tǒng)的喂養(yǎng)方式,因此該系統(tǒng)將采用獨立式鍵盤,即各按鍵相互獨立,互不影響,且連接便捷[6]。本次設(shè)計只需要5 個獨立按鍵,其中5 個按鍵分別為:K1 鍵為投喂重量增加;K2 鍵為投喂重量減少;K3 鍵為定時時間增加;K4 鍵為定時時間減少;K5 鍵為手動喂養(yǎng)。它們分別與單片機的管腳P1.0、P1.1、P1.2、P1.3、P1.4 相連接。通過按鍵可以隨時增減數(shù)值完成對系統(tǒng)投喂模式的實時控制與設(shè)置。
綜上所述,系統(tǒng)整體硬件電路圖設(shè)計如圖2 所示。
圖2 系統(tǒng)整體硬件電路設(shè)計圖
系統(tǒng)的軟件部分采用Keil 軟件進行了設(shè)計,主要包括主程序和子程序設(shè)計,其中子程序包括LCD 顯示、時鐘、延時、重量檢測等。主程序的設(shè)計首先需要對系統(tǒng)和外部芯片進行初始化,初始化主要對所有的數(shù)據(jù)進行復(fù)位。接下來是鍵盤的讀取過程,一旦有按鍵被按下,將自動轉(zhuǎn)入到相應(yīng)的處理子程序,對其按鍵所代表模塊的固定參考值進行重新賦值,并且該系統(tǒng)設(shè)置了數(shù)值增加與減少的按鍵,可以隨時調(diào)整投喂食物重量及定時時間數(shù)值的大小。當按下K1 鍵時,將轉(zhuǎn)入投喂重量增加設(shè)置狀態(tài);當按下K2 鍵時,將轉(zhuǎn)入投喂重量減少設(shè)置狀態(tài);當按下K3 鍵時,將轉(zhuǎn)入定時時間增加設(shè)置狀態(tài);當按下K4 時,將轉(zhuǎn)入定時時間減少設(shè)置狀態(tài);當按下K5 鍵時,將轉(zhuǎn)入手動喂養(yǎng)模式。喂養(yǎng)者即可通過液晶顯示屏對設(shè)置好投喂重量和時間間隔進行實時顯示,通過時鐘采集模塊記錄剩余時間,等剩余時間為零則電機啟動,投喂定量食物,聲光提示模塊開始工作,吸引寵物進食。系統(tǒng)主程序的流程圖如圖3 所示。
圖3 系統(tǒng)主程序流程圖
對系統(tǒng)進行自動喂養(yǎng)模式的性能測試,其主要分為兩大類分別為投喂重量和定時時間的設(shè)置。設(shè)置投喂重量增加和減少的按鍵如圖3 所示的第一個和第二個按鍵,第一個按鍵K1 表示投喂重量增加,第二個按鍵K2 表示投喂重量減少。設(shè)置時間間隔時需要點擊按鍵模塊的第三個和第四個,第三個按鍵K3 表示時間間隔增加,第四個按鍵K4表示時間間隔減少。測試步驟如下:(1)按復(fù)位按鍵,讓整個系統(tǒng)恢復(fù)初始化;(2)設(shè)置投喂重量的值;(3)按下第一個按鍵,投喂重量的數(shù)值逐漸增加,寵物每次進食的量就會隨之增加,例如將其增加到100g,如圖4 所示;(4)按下第二個按鍵,投喂重量的數(shù)值就會逐漸減少,寵物每次進食的量隨之減少,例如將其減少到99g,如圖5 所示;(5)按下第三個按鍵,時間間隔的數(shù)值就會按照喂養(yǎng)者的操作逐漸增加,寵物每次等待的時間就會加長,例如將其增加到70s,如圖6 所示;(6)按下第四個按鍵,時間間隔的數(shù)值就會逐漸減小,寵物每次等待的時間就會變短,例如將其減小到10s,如圖7 所示。由圖4、5、6、7 可知系統(tǒng)性能測試正確。
圖4 投喂重量增加
圖5 投喂重量減少
圖6 定時間隔增加
圖7 定時間隔減小
手動喂養(yǎng)功能的測試步驟如下:(1)喂養(yǎng)者按下手動喂養(yǎng)按鍵;(2)系統(tǒng)接收指令,判斷電機是否正常轉(zhuǎn)動;(3)判斷發(fā)光二極管、蜂鳴器是否正常工作。其最終的測試結(jié)果如圖8 所示。電機、發(fā)光二極管及蜂鳴器均運行正常。
圖8 手動喂養(yǎng)模式
本文設(shè)計的智能寵物喂養(yǎng)系統(tǒng)適用范圍廣,并且能定時定量地對寵物進行自動喂養(yǎng),可以提供及時、高效且靈活地喂食服務(wù)。智能寵物喂養(yǎng)系統(tǒng)能夠?qū)崿F(xiàn)自動喂養(yǎng)和手動喂養(yǎng)兩種模式。其自動喂養(yǎng)模式設(shè)計了時間間隔、投喂重量的自主化設(shè)置,主要是通過使用鍵盤模塊來控制,同時可以根據(jù)實際情況對寵物進行更加適合寵物身體狀況的喂養(yǎng)。該系統(tǒng)還配備了聲光提示模塊,當?shù)竭_喂養(yǎng)時間,發(fā)光二極管發(fā)出紅色光亮,蜂鳴器發(fā)出聲音,提示寵物來指定的位置進食。同時,本系統(tǒng)還增加了一個手動喂養(yǎng)模式,該模式十分靈活且方便。手動喂養(yǎng)模式可以在特殊時刻方便喂養(yǎng)者臨時為寵物提供食物。喂養(yǎng)者如果希望自己的寵物能夠在自己不方便喂養(yǎng)的情況下,可以自己去使用喂食系統(tǒng)進行進食,就可以將此按鍵位置設(shè)置的明顯一些,并在日常生活中進行人為的引導(dǎo)寵物去學習如何使用這個按鍵進行進食;如果喂養(yǎng)者不希望寵物自己去使用這個按鍵進行投喂,便可以將此按鍵的位置設(shè)置的隱蔽一些,防止寵物觸碰到。