朱賴紅,張少懷
(陜西科技大學 鎬京學院,陜西西安,721046)
隨著時代的快速發展,在人們物質需求得以滿足的前提下,越來越多的人開始追求精神方面的需求,開始飼養各種各樣的寵物。寵物是小朋友的玩伴,上班族會把寵物當作朋友以便緩解壓力,老年人或許會把寵物當作一種寄托。然而由于工作的繁忙,很多人不得不把寵物整天關在家里,這樣就無法得知寵物的狀況,像因疫情而起的特殊情況,導致很多寵物獨自在家,并且長時間無法得到照顧,無法進食飲水。于是,遠程寵物照顧系統便應運而生。
本文設計基于Qt的寵物照顧系統,通過Qt平臺進行程序設計并封裝,再由設計好的程序控制樹莓派上的CSI攝像頭以及舵機控制器,來達到遠程監控照顧寵物的目的。系統由樹莓派模塊,攝像頭模塊,舵機模塊,Qt軟件編程模塊組成。經過測試,系統功能齊全、運行穩定。
基于Qt的寵物照顧系統, Qt平臺進行程序設計并封裝,由設計好的程序控制樹莓派上的CSI攝像頭以及舵機控制器,達到遠程監控照顧寵物的目的。文中方案涉及到的主要技術有遠程視頻監控,舵機驅動,Qt軟件平臺編程以及樹莓派。
系統在軟件方面選擇了Qt作為軟件開發平臺,Qt是一個由Qt Company開發的跨平臺C++圖形用戶界面應用程序開發框架。它不僅可以開發GUI程序,還可以應用于開發非GUI程序。與其他的軟件創作平臺相比,Qt Creator 提供了一種簡單快速的設計UI的方法,即通過簡單的拖拽就能在“.ui”文件中設計各種功能的界面,配合上一些相對簡單的代碼,就可以設計出一些基本的UI界面。它還擁有很好的跨平臺特性,市面上的主流系統像Microsoft Windows,Linux,Solaris,SunOS,HP-UX,Digital UNIX等都被包含在內,這就讓使用者能夠更加便捷的進行設計和創作。
系統在硬件方面選擇了樹莓派。樹莓派的英文名字是Raspberry Pi是一種基于ARM的微型電腦主板,用SD/MicroSD卡作為其內存硬盤,主板上有1到4個USB接口,一個以太網接口,能夠連接鼠標,鍵盤,網線。它還擁有視頻模擬信號的電視輸出口,以及HDIM高清視頻輸出口。在連接顯示屏,鼠標,鍵盤的情況下,可以當作電腦來使用,執行一些簡單的任務。與其他的硬件開發板相比,樹莓派具有很便捷的開發環境,有可視化圖形界面與代碼界面兩種方式可以選擇,也有更大的開發空間,便于后續開發。
寵物照顧系統是由用戶登錄界面、攝像頭模塊、舵機模塊、樹莓派模塊所組成,其中各個模塊的功能如下:① 用戶登錄界面:用戶在登陸界面輸入相對應的用戶名和密碼,在錯誤的情況下需要重新輸入,在正確的情況下就可以登錄到視頻查看界面;② 攝像頭模塊:拍攝視頻圖像并且保存到設置好的地址中,使得用戶可以通過地址來調用攝像頭所拍攝到的視頻圖像;③ 舵機模塊:通過程序控制舵機轉動,從而達到對寵物糧和飲用水的定量投放;④ 樹莓派模塊:連接攝像頭和舵機驅動,使得這兩者可以通過程序進行調用。
在樹莓派中,常用的攝像頭有兩種,一種是USB接口的攝像頭,直接通過樹莓派上的USB接口進行連接,然后在樹莓派上通過指令下載驅動,安裝好即可使用,是一種比較通用的攝像頭。另外一種是CSI攝像頭, CSI攝像頭電路板通過一條15芯的排線與樹莓派進行連接,藍色標記對準網絡接口,用卡座來固定排線。
CSI攝像頭與USB攝像頭相比,在處理相同幀數圖片時,CSI攝像頭處理的時間更短,速度更快,同時CPU的占用率也比USB攝像頭低,USB攝像頭在工作時CPU占用率的波動是50%~80%,而CSI工作時CPU的占用率僅在10%~20%之間波動。對于樹莓派來說,受限于CPU的性能,過高的CPU占用率會導致發熱嚴重,雖然樹莓派本身有散熱風扇,但是在長時間的過熱可能會對樹莓派上的零件造成破壞??紤]到以上這些因素,最后選擇使用CSI攝像頭。如圖1所示,樹莓派CSI攝像頭的電路接口圖。

圖1 CSI攝像頭電路接口圖
遠程寵物照顧系統的舵機模塊選用的是MG995舵機。舵機簡單的說就是集成了直流電機,電機控制器和減速器等,并封裝在一個便于安裝的外殼里的伺服單元。能夠利用簡單的輸入信號比較精確的轉動給定角度的電機系統。MG995舵機的工作電壓是4.8V~6V,可以通過外置充電器的5V電壓進行供電。
樹莓派上的GPIO接口有40個,如圖2所示,其中有兩個3V電源接口,兩個5V電源接口,以及26個GPIO接口,其中4號接線柱上的5V的電源接口和6號接線柱上的GND接口需要用來連接樹莓派的小型風扇,以便于樹莓派散熱。舵機控制板通過杜邦線連接到樹莓派上的2號5V電源接口,1號3V電源接口,3號接線柱,5號接線柱的GPIO接口以及9號接線柱的GND接口,這樣就可以通過樹莓派給出的信號來控制舵機驅動板。

圖2 樹莓派GPIO接口電路圖
舵機的控制一般需要一個20ms的實際脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內的角度控制脈沖部分。以MG995舵機為例,其控制關系應為:
(1)0.5ms-------0度
(2)1.0ms-------45度
(3)1.5ms-------90度
(4)2.0ms-------135度
(5)2.5ms-------180度
因為MG995舵機接收PWM信號的頻率為50Hz,即周期為20ms,所以樹莓派發送的模擬PWM信號的周期也應為20ms。設置舵機轉動45度角時,是投喂一個單位的寵物糧或飲用水,用戶就可以通過控制舵機的轉動角度來進行定量投喂。如圖3所示。

圖3 舵機驅動板實物圖
通過軟件生成穩定的PWM信號對于運行Linux的樹莓派來說只是一種方法,在系統上運行的其他進程可能會隨時中斷PWM信號的生成。此時可以使用專門的外部芯片來完成此工作。PCA9685作為16路舵機驅動板可以同時控制多個舵機,并且擁有32位高性能處理器,可以很大程度的減輕樹莓派的工作量,它擁有單獨的舵機供電電源,支持多種通信方式,擁有很好的擴展性。
寵物照顧系統的軟件平臺使用的是Qt。對于本文中所敘述的系統來說,軟件方面需要實現的功能有:用戶登錄界面,用戶通過注冊用戶名和密碼來實現安全登錄。攝像頭模塊,對樹莓派上的攝像頭進行控制,如視頻拍攝,圖片截取,格式轉換,解碼等。舵機模塊,通過模擬的PWM信號操控舵機,使其轉動不同的角度,完成對寵物糧和飲用水的定量投放。如圖4所示,遠程寵物照顧系統的軟件部分整體流程,此流程敘述了上述功能的完成過程。

圖4 寵物照顧系統軟件整體流程圖
本節敘述的是寵物照顧系統中的攝像頭軟件模塊,在該模塊中,用戶可以在主界面選擇查看視頻監控。如圖5所示,程序會通過IP地址的調用來查看連接到樹莓派上的攝像頭所拍攝的畫面,并將其提供給用戶觀看,用戶也可以選擇保存一段視頻或者圖像便于日后觀看。

圖5 攝像頭模塊程序流程圖
進入到流程后,用戶可以通過界面上提供的按鈕進行操作。界面的上方顯示的是用戶登錄時所使用的用戶名,下方的設備1和設備2用戶可以自行選擇。如果用戶想要觀看設備1的畫面,就點擊設備1前方的選擇標志,選擇完成后就可以在選項卡1中觀看監控視頻。如果用戶想要觀看設備2的視頻監控,操作流程與設備1相同。用戶可以通過選擇視頻模式或者圖片模式進行觀看,當用戶選擇視頻模式時,可以觀看到正常的監控視頻。當用戶處于非Wi-Fi模式時,可以選擇更加節省流量的圖片模式,選項卡中的畫面會每隔5秒變化一次。用戶還可以點擊視頻選擇保存,在視頻庫和圖片庫中會有用戶主動保存的視頻和圖片,用戶可以自行查看。當保存的視頻或者圖像過多導致查找不便時,用戶可以通過視頻庫后方的時間表來查看保存的視頻或者圖像。
在設計用戶主界面時,為了滿足不同用戶的審美需求,在主頁面中加入了不同的顏色,用戶可以根據自身的喜好來選擇不同的界面外觀,更換主界面的風格和顏色,有黑色,灰色,藍色,天藍色這四種顏色可供用戶選擇。同時為了保證界面美觀,窗口同樣設置為居中顯示。
寵物照顧系統中用來控制投喂的舵機模塊,其流程圖6所示,在本模塊中,需要控制舵機通過轉動不同的角度來投喂不同量的寵物糧和飲用水。

圖6 舵機程序流程圖
當用戶選擇投喂時,系統會根據用戶選擇的投喂量,來生成輸出模擬PWM信號控制舵機轉動,設置舵機轉動45度角為一個單位量,當用戶需要投喂兩個單位寵物糧時,舵機需要轉動90度角,即模擬PWM信號會給舵機1.5ms的高電平和18.5ms的低電平,這樣舵機就可以根據用戶的需要投放定量的寵糧。如圖7所示。

圖7 舵機舉例圖
在本模塊測試中,需要測試系統攝像頭能否正常進行視頻監控,用戶保存的視頻或者圖像能否正常存儲。
樹莓派在通電開啟后,腳本程序會自動給攝像頭使能,當使能完成后,攝像頭進入到正常工作狀態,此時正常登錄的用戶就可以通過系統來進行遠程視頻監控,進入到此頁面后,用戶可以觀察到獨自在家的寵物。
當用戶需要對拍攝的視頻和圖像進行保存時,樹莓派上的攝像頭接收到指令,開始傳輸拍攝到的視頻或圖像,將其保存在設定好的地址中,如圖8所示,已保存的視頻圖像都應在此地址中顯示。

圖8 測試圖片視頻保存位置
在本模塊測試中,需要測試舵機能否正常轉動,在樹莓派通電開啟后,舵機啟動處于正常工作狀態。當用戶選擇投喂時,舵機收到來自上位機的指令,按照模擬的PWM信號給出的不同的脈沖寬度,轉動不同的角度,完成對寵物糧和飲用水的定量投放。如圖9所示,以兩個單位的投喂量為例,當模擬PWM信號給出1.5ms高電平和18.5ms低電平時,舵機會轉動90度。

圖9 舵機測試圖
本文設計了基于Qt的寵物照顧系統。硬件控制板選用了樹莓派,軟件平臺選擇了Qt,經過整體測試后取得了以下結論:
(1) 基于Qt的寵物照顧系統可以通過樹莓派上的CSI攝像頭遠程視頻監控獨自在家的寵物。
(2) 使用該系統的用戶可以通過用戶界面注冊用戶名和密碼,并通過用戶名和密碼登錄本系統。
(3) 使用該系統的用戶可以拍攝寵物活動的視頻或圖片,并且加以保存,并通過視頻圖像播放器進行查看。
(4) 使用該系統用戶可以在遠程對寵物進行投喂,通過控制舵機的轉動角度來確定投喂的寵物糧或飲用水的量。
(5) 基于Qt的寵物照顧系統可以保存拍攝到的圖像和視頻。
(6) 本文設計了基于Qt的寵物照顧系統,提出了一種新型的寵物飼養方式,解決了一些用戶無法遠程照顧寵物的需求。