本文摘要:摘要:文章設計了一款基于STM32的WiFi視頻監控小車,可以代替人類執行危險環境偵察和科學探索等任務。小車采用STM32F103ZET6為主控制器,通過無線路由器在小車與控制終端間進行數據傳輸。攝像頭采集的視頻信息通過WiFi信號傳輸到控制終端,控制終端通過WiFi信號發送控
摘要:文章設計了一款基于STM32的WiFi視頻監控小車,可以代替人類執行危險環境偵察和科學探索等任務。小車采用STM32F103ZET6為主控制器,通過無線路由器在小車與控制終端間進行數據傳輸。攝像頭采集的視頻信息通過WiFi信號傳輸到控制終端,控制終端通過WiFi信號發送控制指令給小車從而遠程控制小車的電機轉動。經實驗測試,可以做到在用戶的控制界面上顯示實時監控畫面,控制小車四個方向的移動。
關鍵詞:視頻監控;STM32;WiFi;遠程控制
在當今電子科技高速發展的時代背景下,在我們的生活中充滿了各種科技產品,這些產品的系統不斷強大,功能也逐漸豐富。WiFi視頻監控小車作為近代的一種新的設計理念,它具有獨特的優點,例如成本低、結構簡單,又有著多種實用功能。其設計之初便是為了能夠代替人類到一些危險環境中執行任務,例如軍事偵察任務或是化工環境下的巡查工作。
監控論文范例:基于數據集成的電網全渠道一體化監控系統設計
事實證明,小車比人類更適合在惡劣且危險的環境高效地工作,可以極大地減少人力成本,并且降低了風險。本文研究的主要目的是在基于STM32的WiFi小車的基礎移動功能上對于視頻信息采集和傳輸功能的設計。最終,WiFi視頻監控小車能夠在通電情況下采集小車攝像頭前方的視頻信息,同時小車通過WiFi模塊的WiFi信號將采集到的視頻信息發送到PC上位機端或是Android手機端的應用程序上,并在控制終端的應用程序界面上顯示出來。同時,用戶可以在控制終端應用程序的控制界面上通過WiFi信號向視頻監控小車發送控制指令從而實現實時控制視頻監控小車的運動。
1系統總體設計
近些年來,處理器隨著科技高速發展,嵌入式操作系統也得到了更為廣泛地使用。以嵌入式操作系統為核心的圖像信息采集和無線信息傳輸系統也已廣泛應用于生活和工作中。本文就是基于STM32設計出WiFi視頻監控小車。如今的電腦(又可稱為PC上位機)和手機(本文主要介紹Android操作系統的智能手機)成為每個人必不可少的生活工具。使用STM32作為處理器,利用攝像頭采集圖像信息并通過WiFi信號傳遞給PC上位機或是手機端,并在應用程序的界面上顯示實時畫面,也可以通過WiFi信號發出控制指令給視頻監控小車,從而控制小車的移動。本文設計的基于STM32的WiFi視頻監控小車預期實現的功能如下:
(1)遠程控制移動功能:用戶可以遠程使用控制終端通過WiFi信號發送控制指令給視頻監控小車,從而控制視頻監控小車的前進、后退、左轉彎和右轉彎這些基本的移動功能。(2)數據無線通信功能:視頻監控小車和控制終端能通過WiFi信號互相連接,從而可以從控制終端發送控制指令給小車,小車也可以將采集到的視頻信息發送給控制終端。(3)控制終端顯示功能:在PC上位機端或是An-droid手機端上的應用程序可以實時顯示視頻監控小車采集的視頻圖像。
本文基于STM32的WiFi視頻監控小車系統的總體設計主要是硬件設計和軟件設計兩大方向。硬件設計主要是以STM32系列的處理器作為主控制器為基礎,再增加所需的視頻信息采集模塊和無線通信模塊。軟件模塊則是由小車選用硬件的驅動模塊程序設計和控制終端的應用程序設計組成。硬件的驅動程序主要是電機的驅動程序、USB攝像頭的視頻信息采集驅動程序和無線數據傳輸驅動程序這三部分組成,應用程序由PC上位機端和Android手機端的APP共同組成,但系統還需要有相關的調試程序和燒錄程序。
2硬件電路設計
2.1微處理器模塊
對于微處理器的選型是設計中的重點,要求微處理器可以幫助小車來控制各底層模塊,并通過無線信號與外部設備即終端建立聯系,從而控制電機的轉動、視頻信息數據的處理和傳輸等。綜合這些要求以及客觀條件,小車系統采用的處理器模塊是市面上主流的性能較為優越的STM32F103ZET6。
其在STM32系列的處理器內部擁有高速存儲器,還添加有8MHz的RC振蕩器,這使得處理器可以達到72MHz的工作頻率[1]。綜上所述,STM32系列處理器可以說是相關用戶們的首選。本系統采用的核心板添加了四個電機對應的串口引腳,并且在板子的角落處還設計了與WiFi模塊連接的串口引腳,不用再進行相關外設的添加,這使得實際的設計和操作更為簡單。
2.2電機驅動模塊
當今市面上主流的電機驅動芯片主要是L298N和L293D兩種型號,但對兩者之一的選取需要通過兩種電機驅動模塊的性能對比和實際的設計要求來決定。通過L298N和L293D的性能對比可知,L298N是L293D電機驅動芯片的高功率、大電流版本,L298N的性能更為優越,故本系統的電機驅動模塊選用L298N型號的電機驅動。通過控制輸入端口的電平高低就可以控制電機的正反轉。因為小車底盤沒有轉軸,所以為了實現小車的轉向通過模仿老式坦克的轉向方式,即利用小車四個電機的轉速差來實現小車的轉向功能。
2.3視頻采集模塊
視頻監控小車的視頻采集模塊即攝像頭,作為小車的核心之一,攝像頭的好與壞決定著實際的監控畫面質量及監控的效果。考慮到實際條件和設計需求,本系統采用的是USB數字攝像頭,沒有選用比較普遍的CMOS數字圖像傳感器。因為相對于后者,USB數字攝像頭的外觀更為緊湊一體化,且驅動開發更為簡單等優點,在實際使用時只需在USB-HOST驅動的基礎上加配攝像頭USB驅動便可輕松達到實時采集視頻信息的要求,所以更利于初學者使用[2]。
所以考慮到USB攝像頭更加方便實用,而且USB接口正好可以適合本系統所選取的無線路由器模塊,在實際使用時可以做到通電狀態下插上接口便可以使用。并且,依靠USB線路直接連接無線路由器獲得的電流電壓完全可以滿足USB攝像頭所需的電壓,從而就不用再連接電池組來獲取電源電壓,這就使得系統設計時可以不用考慮給攝像頭單獨供電,減少工作量和設計的復雜程度。
2.4無線路由器模塊
WiFi模塊是視頻監控小車設計的一個重要環節。在本次設計中采用無線路由器來代替普通的WiFi模塊。因為一個無線路由器可以在通電情況下制造出一個具有開放性的無線局域網,這樣用戶就可以通過PC上位機或是Android手機連接局域網的方式與視頻監控小車建立聯系。之后,打開控制終端上的應用程序,點擊連接后顯示實時的監控畫面便是連接成功了。
此時用戶就可以使用PC端或是Android手機上的應用程序軟件向視頻監控小車發送各種控制指令,以及接收小車采集的視頻信息數據并在應用程序界面上實時地顯示。因為WiFi信號是連接視頻監控小車和用戶控制終端的紐帶,所以選擇一個合適的無線路由器模塊對于整體的設計和實驗而言十分關鍵。結合系統設計的要求以及視頻監控小車自身攜帶的局限性考慮,本次設計采用了TP-LINK的TL-WR702N型號的150M迷你型無線路由器。這種無線路由器默認為AP(無線接入點)模式,其最高傳輸速率可以達到150Mbps,適用于15-60m2面積的范圍內?紤]其能夠滿足設計的需要,最重要的是這種無線路由器可以做到即插即用,并且自身的信號穩定、體積較小,大小只有普通信用卡的一半,自重只有170g,方便小車攜帶。根據這些因素,最終決定選用此類無線路由器。
2.5電源電路模塊
電源模塊是給整個系統提供穩定有效電壓的能源模塊,相當于整個系統的心臟,是確保系統中的每個模塊都可以正常運行的前提保障。電源電壓的獲取方式有兩種,一種是直接獲取直流電源輸入的電壓,另一種是使用USB電源通過USB接口來獲取電壓。而在本系統中小車的電源模塊則是采用兩節18650鋰電池組成的電池組,可以直接提供7.5V的電源電壓。但是由于系統中的各個模塊所需的額定電壓不相同,所以需要把兩節18650鋰電池組提供的7.5V電壓先進行一次降壓。
STM32系列處理器的外圍硬件模塊所需額定電壓為5V,而當提供的電源電壓高于額定電壓可能會損毀元器件,所以本系統采用LM2596降壓模塊來將電池組的7.5V降至5V。因為STM32的SWD接口和芯片的額定電壓為3.3V,現在已經有經過降壓處理的5V電壓,所以本系統還需要使用AMS1117穩壓器。AMS1117穩壓器可以將穩壓電源流入系統的5V電壓降為3.3V。為了安全考慮,在輸出低壓側加上了一個LED紅燈作為電流倒流時的警示燈。
3系統軟件程序設計
3.1操作系統的移植
相比較于其他嵌入式操作系統,嵌入式Linux操作系統是一種更受歡迎、使用者更多并且發展更完善的網絡操作系統。從其自身分析,因為Linux為開源系統并且無黑箱技術,所以根據網絡協議所有人都能對Linux的源代碼進行修改,開發出新代碼和新的功能來制造出獨特的操作系統。并且Linux操作系統在全球各地擁有的眾多Linux愛好者,可以作為Linux開發者的強大技術支持力量,用戶之間可以互相幫助并且共同開發。綜上所述,嵌入式Linux操作系統作為一種開源且可裁減的軟件平臺系統,是嵌入式產品開發時的首選系統[3]。
3.2應用程序設計
本系統中PC上位機上應用程序的開發是采用了QtCreator4.4.1開發工具軟件,使用的編程語言是C++。最終設計出來的應用程序需要實現的功能包括發送指令控制視頻監控小車的運動以及接收數據實時顯示監控畫面[4]。對于Android程序的開發則是使用Eclipse加JDK和ANT的組合,當然還要有Android對應的SDK和Android系統要使用Eclipse軟件時必要的插件。在使用時要先按照程序推薦的安裝流程操作,然后設計好環境變量。程序開發的簡要流程是:
(1)首先點擊Eclipse軟件界面左上方的File選項,再點擊后選擇彈出的一系列選項中的New選項。(2)其次選擇彈出的Project選項。選擇后會彈出一個對話窗,點擊其中的AndroidProject。(3)再次要在彈出的窗口輸入程序開發的相關參數。(4)最后可以編譯程序自動生成的代碼,注意此時代碼的不同和復雜程度就代表最終生成的Android應用程序的不同和復雜程度。
3.3驅動程序設計
3.3.1電機驅動程序設計
對于L298N電機驅動程序的設計要先了解其驅動芯片的引腳,和各個引腳的對應作用。每個L298N電機驅動模塊可以控制兩個電機的轉動,在此先對L298N電機驅動模塊的主要引腳的作用進行簡單說明。首先引腳如何控制左側電機A和右側電機B正反轉和停止的方式進行說明,其控制引腳端口的高低電平和小車電機旋轉方式的關系。
系統通過PWM脈沖調速的方式來改變電機的轉速,從而實現轉速差控制小車轉向。采用的PWM脈沖調速就是通過控制輸出的電平高低來控制調速。而輸出高低電平的頻率就是所謂的方波占空比。占空比是接通時間和周期時間之比,此外占空比通常通過百分比來表示。
所以總結來說,PWM脈沖調速就是通過改變占空比的方式來改變平均電壓,從而使對應電機的轉速發生變化[5]。通過下面的流程圖說明了當小車接收到控制終端的控制指令時,L298N如何驅動電機轉動從而控制小車的運動方式。當前進或后退時,兩個L298N控制四個電機同時同速正轉或反轉。但當左轉或右轉時會對電機轉速進行調整。左轉時小車左側兩電機向后轉,右側的兩電機向前轉,但是為了讓小車能夠可以近似原地旋轉,右后方的電機轉速加大,從而使電機轉角變大。右轉時同理。
3.3.2視頻采集程序設計
USB攝像頭的工作原理其實就是通過圖像傳感器將物鏡轉換為電信號,然后再經過A/D轉換成數字圖像信號,最后將數字圖像信號發送給攝像頭內部DSP(數字信號處理)處理芯片進行相關的數據處理[6]。為了讓小車能正常采集處理視頻信息,要先將攝像頭的相關驅動加載到無線路由器中。
當小車通電各模塊正常啟動后,此時STM32F103ZET6處理器通過無線路由器控制USB攝像頭開始視頻信息的采集,采集到的視頻數據在攝像頭內部處理壓縮后通過USB傳輸到無線路由器中,然后再經過無線路由器將串口數據轉換為網絡數據通過WiFi信號發送給控制終端。用戶控制終端上的應用程序經過對數據的解碼處理后,便會在用戶界面顯示實時的監控畫面。
3.3.3無線數據傳輸程序設計
視頻監控小車和用戶控制終端之間就是通過無線數據傳輸來接收視頻信息和發送控制指令的。而無線數據傳輸是需要按照TCP/IP協議來進行工作的,TCP/IP協議是一個開放性的通信協議,在概念上可以分為應用層、傳輸層、IP層和數據鏈路層[7]。其中傳輸層的作用是用來服務上層運行中的應用層,可以給應用層提供一端到另一端的通信支持。而傳輸層自身中有兩個最重要的協議TCP和UDP,即傳輸控制協議和用戶 數據報協議。提到TCP/IP協議就要說TCP/IP協議棧。
在本系統設計中TCP/IP協議棧和控制終端應用程序的接口被設計成一種Socket標準的API接口,這可以用來封裝協議棧內部的大部分底層文件,方便后來的修改編制。無線數據傳輸的具體流程是當無線路由器經過初始化過后,打開控制終端的WiFi開關進行搜索,搜索到創建好的網絡服務器IP地址:192.168.1.1,其視頻端口:8080,控制端口:2001[8]。進行設置連接,連接成功后就可以進行數據傳輸,此時會在控制界面上顯示監控畫面。關閉連接后會自動退出程序,結束監控控制畫面。
4系統測試
先是對程序進行燒錄,當編寫好的程序燒錄成功后對小車主要硬件中的電機和無線路由器進行測試,最后就是PC上位機和Android手機上的應用程序的測試。通過對系統軟硬件和整體的測試,驗證了系統的可行性和穩定實用性。測試的最終結果表明,小車各部分都能正常工作,整體系統在通電情況下,用戶的控制終端可以通過正常的WiFi信號實現對視頻監控小車的遠程移動控制以及實時地顯示視頻監控畫面,基本上達到了最初的設計目標。
5結束語
雖然設計出的WiFi視頻監控小車達到了預期的設計要求,但是小車本身還是有一些缺陷。隨著自動化和智能化的普及,工業生產對于智能小車的要求也越來越高。本文的視頻監控小車只是智能化小車的一個分支,設計的小車硬件比較簡單并且只能實現一些簡單的功能,但為以后更加智能化地設計打下了一個基礎。
參考文獻:
[1]王威棟.DesignofTwo-DimensionalUltrasonicWindSpeedMeasurementSystemBasedonSTM32F103ZET6[J].JournalofElectricalEngineering,2018,6(4):283-290.
[2]劉勇軍.基于STM32智能斷路器的設計[J].智能建筑電氣技術,2014,8(1):67-70.
[3]盛蕾.WiFi網絡研究及基于Linux的測試平臺的實現[D].上海:同濟大學,2007.[4]方國賢.基于STM32智能小車的設計與實現[D].武漢:武漢輕工大學,2018.
作者:戴夢飛,趙俊鋒
轉載請注明來自發表學術論文網:http://www.cnzjbx.cn/dzlw/29063.html