朱賴紅,張少懷
(陜西科技大學(xué) 鎬京學(xué)院,陜西西安,721046)
隨著時代的快速發(fā)展,在人們物質(zhì)需求得以滿足的前提下,越來越多的人開始追求精神方面的需求,開始飼養(yǎng)各種各樣的寵物。寵物是小朋友的玩伴,上班族會把寵物當(dāng)作朋友以便緩解壓力,老年人或許會把寵物當(dāng)作一種寄托。然而由于工作的繁忙,很多人不得不把寵物整天關(guān)在家里,這樣就無法得知寵物的狀況,像因疫情而起的特殊情況,導(dǎo)致很多寵物獨(dú)自在家,并且長時間無法得到照顧,無法進(jìn)食飲水。于是,遠(yuǎn)程寵物照顧系統(tǒng)便應(yīng)運(yùn)而生。
本文設(shè)計基于Qt的寵物照顧系統(tǒng),通過Qt平臺進(jìn)行程序設(shè)計并封裝,再由設(shè)計好的程序控制樹莓派上的CSI攝像頭以及舵機(jī)控制器,來達(dá)到遠(yuǎn)程監(jiān)控照顧寵物的目的。系統(tǒng)由樹莓派模塊,攝像頭模塊,舵機(jī)模塊,Qt軟件編程模塊組成。經(jīng)過測試,系統(tǒng)功能齊全、運(yùn)行穩(wěn)定。
基于Qt的寵物照顧系統(tǒng), Qt平臺進(jìn)行程序設(shè)計并封裝,由設(shè)計好的程序控制樹莓派上的CSI攝像頭以及舵機(jī)控制器,達(dá)到遠(yuǎn)程監(jiān)控照顧寵物的目的。文中方案涉及到的主要技術(shù)有遠(yuǎn)程視頻監(jiān)控,舵機(jī)驅(qū)動,Qt軟件平臺編程以及樹莓派。
系統(tǒng)在軟件方面選擇了Qt作為軟件開發(fā)平臺,Qt是一個由Qt Company開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它不僅可以開發(fā)GUI程序,還可以應(yīng)用于開發(fā)非GUI程序。與其他的軟件創(chuàng)作平臺相比,Qt Creator 提供了一種簡單快速的設(shè)計UI的方法,即通過簡單的拖拽就能在“.ui”文件中設(shè)計各種功能的界面,配合上一些相對簡單的代碼,就可以設(shè)計出一些基本的UI界面。它還擁有很好的跨平臺特性,市面上的主流系統(tǒng)像Microsoft Windows,Linux,Solaris,SunOS,HP-UX,Digital UNIX等都被包含在內(nèi),這就讓使用者能夠更加便捷的進(jìn)行設(shè)計和創(chuàng)作。
系統(tǒng)在硬件方面選擇了樹莓派。樹莓派的英文名字是Raspberry Pi是一種基于ARM的微型電腦主板,用SD/MicroSD卡作為其內(nèi)存硬盤,主板上有1到4個USB接口,一個以太網(wǎng)接口,能夠連接鼠標(biāo),鍵盤,網(wǎng)線。它還擁有視頻模擬信號的電視輸出口,以及HDIM高清視頻輸出口。在連接顯示屏,鼠標(biāo),鍵盤的情況下,可以當(dāng)作電腦來使用,執(zhí)行一些簡單的任務(wù)。與其他的硬件開發(fā)板相比,樹莓派具有很便捷的開發(fā)環(huán)境,有可視化圖形界面與代碼界面兩種方式可以選擇,也有更大的開發(fā)空間,便于后續(xù)開發(fā)。
寵物照顧系統(tǒng)是由用戶登錄界面、攝像頭模塊、舵機(jī)模塊、樹莓派模塊所組成,其中各個模塊的功能如下:① 用戶登錄界面:用戶在登陸界面輸入相對應(yīng)的用戶名和密碼,在錯誤的情況下需要重新輸入,在正確的情況下就可以登錄到視頻查看界面;② 攝像頭模塊:拍攝視頻圖像并且保存到設(shè)置好的地址中,使得用戶可以通過地址來調(diào)用攝像頭所拍攝到的視頻圖像;③ 舵機(jī)模塊:通過程序控制舵機(jī)轉(zhuǎn)動,從而達(dá)到對寵物糧和飲用水的定量投放;④ 樹莓派模塊:連接攝像頭和舵機(jī)驅(qū)動,使得這兩者可以通過程序進(jìn)行調(diào)用。
在樹莓派中,常用的攝像頭有兩種,一種是USB接口的攝像頭,直接通過樹莓派上的USB接口進(jìn)行連接,然后在樹莓派上通過指令下載驅(qū)動,安裝好即可使用,是一種比較通用的攝像頭。另外一種是CSI攝像頭, CSI攝像頭電路板通過一條15芯的排線與樹莓派進(jìn)行連接,藍(lán)色標(biāo)記對準(zhǔn)網(wǎng)絡(luò)接口,用卡座來固定排線。
CSI攝像頭與USB攝像頭相比,在處理相同幀數(shù)圖片時,CSI攝像頭處理的時間更短,速度更快,同時CPU的占用率也比USB攝像頭低,USB攝像頭在工作時CPU占用率的波動是50%~80%,而CSI工作時CPU的占用率僅在10%~20%之間波動。對于樹莓派來說,受限于CPU的性能,過高的CPU占用率會導(dǎo)致發(fā)熱嚴(yán)重,雖然樹莓派本身有散熱風(fēng)扇,但是在長時間的過熱可能會對樹莓派上的零件造成破壞。考慮到以上這些因素,最后選擇使用CSI攝像頭。如圖1所示,樹莓派CSI攝像頭的電路接口圖。
圖1 CSI攝像頭電路接口圖
遠(yuǎn)程寵物照顧系統(tǒng)的舵機(jī)模塊選用的是MG995舵機(jī)。舵機(jī)簡單的說就是集成了直流電機(jī),電機(jī)控制器和減速器等,并封裝在一個便于安裝的外殼里的伺服單元。能夠利用簡單的輸入信號比較精確的轉(zhuǎn)動給定角度的電機(jī)系統(tǒng)。MG995舵機(jī)的工作電壓是4.8V~6V,可以通過外置充電器的5V電壓進(jìn)行供電。
樹莓派上的GPIO接口有40個,如圖2所示,其中有兩個3V電源接口,兩個5V電源接口,以及26個GPIO接口,其中4號接線柱上的5V的電源接口和6號接線柱上的GND接口需要用來連接樹莓派的小型風(fēng)扇,以便于樹莓派散熱。舵機(jī)控制板通過杜邦線連接到樹莓派上的2號5V電源接口,1號3V電源接口,3號接線柱,5號接線柱的GPIO接口以及9號接線柱的GND接口,這樣就可以通過樹莓派給出的信號來控制舵機(jī)驅(qū)動板。
圖2 樹莓派GPIO接口電路圖
舵機(jī)的控制一般需要一個20ms的實際脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內(nèi)的角度控制脈沖部分。以MG995舵機(jī)為例,其控制關(guān)系應(yīng)為:
(1)0.5ms-------0度
(2)1.0ms-------45度
(3)1.5ms-------90度
(4)2.0ms-------135度
(5)2.5ms-------180度
因為MG995舵機(jī)接收PWM信號的頻率為50Hz,即周期為20ms,所以樹莓派發(fā)送的模擬PWM信號的周期也應(yīng)為20ms。設(shè)置舵機(jī)轉(zhuǎn)動45度角時,是投喂一個單位的寵物糧或飲用水,用戶就可以通過控制舵機(jī)的轉(zhuǎn)動角度來進(jìn)行定量投喂。如圖3所示。
圖3 舵機(jī)驅(qū)動板實物圖
通過軟件生成穩(wěn)定的PWM信號對于運(yùn)行Linux的樹莓派來說只是一種方法,在系統(tǒng)上運(yùn)行的其他進(jìn)程可能會隨時中斷PWM信號的生成。此時可以使用專門的外部芯片來完成此工作。PCA9685作為16路舵機(jī)驅(qū)動板可以同時控制多個舵機(jī),并且擁有32位高性能處理器,可以很大程度的減輕樹莓派的工作量,它擁有單獨(dú)的舵機(jī)供電電源,支持多種通信方式,擁有很好的擴(kuò)展性。
寵物照顧系統(tǒng)的軟件平臺使用的是Qt。對于本文中所敘述的系統(tǒng)來說,軟件方面需要實現(xiàn)的功能有:用戶登錄界面,用戶通過注冊用戶名和密碼來實現(xiàn)安全登錄。攝像頭模塊,對樹莓派上的攝像頭進(jìn)行控制,如視頻拍攝,圖片截取,格式轉(zhuǎn)換,解碼等。舵機(jī)模塊,通過模擬的PWM信號操控舵機(jī),使其轉(zhuǎn)動不同的角度,完成對寵物糧和飲用水的定量投放。如圖4所示,遠(yuǎn)程寵物照顧系統(tǒng)的軟件部分整體流程,此流程敘述了上述功能的完成過程。
圖4 寵物照顧系統(tǒng)軟件整體流程圖
本節(jié)敘述的是寵物照顧系統(tǒng)中的攝像頭軟件模塊,在該模塊中,用戶可以在主界面選擇查看視頻監(jiān)控。如圖5所示,程序會通過IP地址的調(diào)用來查看連接到樹莓派上的攝像頭所拍攝的畫面,并將其提供給用戶觀看,用戶也可以選擇保存一段視頻或者圖像便于日后觀看。
圖5 攝像頭模塊程序流程圖
進(jìn)入到流程后,用戶可以通過界面上提供的按鈕進(jìn)行操作。界面的上方顯示的是用戶登錄時所使用的用戶名,下方的設(shè)備1和設(shè)備2用戶可以自行選擇。如果用戶想要觀看設(shè)備1的畫面,就點擊設(shè)備1前方的選擇標(biāo)志,選擇完成后就可以在選項卡1中觀看監(jiān)控視頻。如果用戶想要觀看設(shè)備2的視頻監(jiān)控,操作流程與設(shè)備1相同。用戶可以通過選擇視頻模式或者圖片模式進(jìn)行觀看,當(dāng)用戶選擇視頻模式時,可以觀看到正常的監(jiān)控視頻。當(dāng)用戶處于非Wi-Fi模式時,可以選擇更加節(jié)省流量的圖片模式,選項卡中的畫面會每隔5秒變化一次。用戶還可以點擊視頻選擇保存,在視頻庫和圖片庫中會有用戶主動保存的視頻和圖片,用戶可以自行查看。當(dāng)保存的視頻或者圖像過多導(dǎo)致查找不便時,用戶可以通過視頻庫后方的時間表來查看保存的視頻或者圖像。
在設(shè)計用戶主界面時,為了滿足不同用戶的審美需求,在主頁面中加入了不同的顏色,用戶可以根據(jù)自身的喜好來選擇不同的界面外觀,更換主界面的風(fēng)格和顏色,有黑色,灰色,藍(lán)色,天藍(lán)色這四種顏色可供用戶選擇。同時為了保證界面美觀,窗口同樣設(shè)置為居中顯示。
寵物照顧系統(tǒng)中用來控制投喂的舵機(jī)模塊,其流程圖6所示,在本模塊中,需要控制舵機(jī)通過轉(zhuǎn)動不同的角度來投喂不同量的寵物糧和飲用水。
圖6 舵機(jī)程序流程圖
當(dāng)用戶選擇投喂時,系統(tǒng)會根據(jù)用戶選擇的投喂量,來生成輸出模擬PWM信號控制舵機(jī)轉(zhuǎn)動,設(shè)置舵機(jī)轉(zhuǎn)動45度角為一個單位量,當(dāng)用戶需要投喂兩個單位寵物糧時,舵機(jī)需要轉(zhuǎn)動90度角,即模擬PWM信號會給舵機(jī)1.5ms的高電平和18.5ms的低電平,這樣舵機(jī)就可以根據(jù)用戶的需要投放定量的寵糧。如圖7所示。
圖7 舵機(jī)舉例圖
在本模塊測試中,需要測試系統(tǒng)攝像頭能否正常進(jìn)行視頻監(jiān)控,用戶保存的視頻或者圖像能否正常存儲。
樹莓派在通電開啟后,腳本程序會自動給攝像頭使能,當(dāng)使能完成后,攝像頭進(jìn)入到正常工作狀態(tài),此時正常登錄的用戶就可以通過系統(tǒng)來進(jìn)行遠(yuǎn)程視頻監(jiān)控,進(jìn)入到此頁面后,用戶可以觀察到獨(dú)自在家的寵物。
當(dāng)用戶需要對拍攝的視頻和圖像進(jìn)行保存時,樹莓派上的攝像頭接收到指令,開始傳輸拍攝到的視頻或圖像,將其保存在設(shè)定好的地址中,如圖8所示,已保存的視頻圖像都應(yīng)在此地址中顯示。
圖8 測試圖片視頻保存位置
在本模塊測試中,需要測試舵機(jī)能否正常轉(zhuǎn)動,在樹莓派通電開啟后,舵機(jī)啟動處于正常工作狀態(tài)。當(dāng)用戶選擇投喂時,舵機(jī)收到來自上位機(jī)的指令,按照模擬的PWM信號給出的不同的脈沖寬度,轉(zhuǎn)動不同的角度,完成對寵物糧和飲用水的定量投放。如圖9所示,以兩個單位的投喂量為例,當(dāng)模擬PWM信號給出1.5ms高電平和18.5ms低電平時,舵機(jī)會轉(zhuǎn)動90度。
圖9 舵機(jī)測試圖
本文設(shè)計了基于Qt的寵物照顧系統(tǒng)。硬件控制板選用了樹莓派,軟件平臺選擇了Qt,經(jīng)過整體測試后取得了以下結(jié)論:
(1) 基于Qt的寵物照顧系統(tǒng)可以通過樹莓派上的CSI攝像頭遠(yuǎn)程視頻監(jiān)控獨(dú)自在家的寵物。
(2) 使用該系統(tǒng)的用戶可以通過用戶界面注冊用戶名和密碼,并通過用戶名和密碼登錄本系統(tǒng)。
(3) 使用該系統(tǒng)的用戶可以拍攝寵物活動的視頻或圖片,并且加以保存,并通過視頻圖像播放器進(jìn)行查看。
(4) 使用該系統(tǒng)用戶可以在遠(yuǎn)程對寵物進(jìn)行投喂,通過控制舵機(jī)的轉(zhuǎn)動角度來確定投喂的寵物糧或飲用水的量。
(5) 基于Qt的寵物照顧系統(tǒng)可以保存拍攝到的圖像和視頻。
(6) 本文設(shè)計了基于Qt的寵物照顧系統(tǒng),提出了一種新型的寵物飼養(yǎng)方式,解決了一些用戶無法遠(yuǎn)程照顧寵物的需求。