李 迪 鄭 智 林青松 李 志
(沈陽工學院,遼寧 撫順 110136)
近年來,隨著人們生活水平的提高,以智能小車為載體的輪式機器人走進了我們的生活,特別是在一些布線復雜、施工現(xiàn)場需要監(jiān)控的安全生活區(qū),必須依靠輪式機器人的視頻監(jiān)控技術(shù)。因此,基于嵌入式技術(shù)的無線通信視頻監(jiān)控輪式機器人誕生。與人工實際操作相比,突出其成本低和安全穩(wěn)定等優(yōu)點。目前已廣泛應(yīng)用于許多危險作業(yè)和工業(yè)場合。另外,輪式機器人不像人類一樣要采用很多的防護方式,所以更加適用于在困難和危險的作業(yè)環(huán)境中工作。
本文采用STM32作為智能小車的主控制器,驅(qū)動智能小車的直流電機。該小車的使用了電機驅(qū)動模塊,該驅(qū)動模塊的芯片使用的是L298N微集成電路電機驅(qū)動芯片,配合STM32核心板實現(xiàn)4臺直流電機的運行和PWM軟件調(diào)速。通過對直流電機的占空比電壓和平均電壓值的改變,電機的轉(zhuǎn)速也隨之變化,并驅(qū)動輪式機器人。輪式機器人的驅(qū)動狀態(tài)為:前進、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止。當輪式機器人在行駛過程中遇到障礙物時,紅外傳感器會對周圍障礙物進行檢測,輪式機器人自動停止或轉(zhuǎn)向。該系統(tǒng)的傳輸媒介是WiFi無線信號,控制終端使用手機或者主機,控制機器人的運動,并在控制界面上顯示攝像機捕捉到的視頻信息,從而對輪式機器人的周圍環(huán)境進行觀察和實時監(jiān)控。主要設(shè)計步驟如下:
(1)依據(jù)所給出方案中的實現(xiàn)要求,設(shè)計了智能小車的結(jié)構(gòu);
(2)依據(jù)主控制器的基本結(jié)構(gòu)和特點,設(shè)計了整體硬件電路模塊。整個系統(tǒng)硬件部分主要分3塊,分別為無線傳輸電路設(shè)計、紅外避障電路設(shè)計、電機驅(qū)動電路設(shè)計等。
(3)選擇符合系統(tǒng)設(shè)計要求的系統(tǒng)軟件,并用其軟件進行驅(qū)動程序代碼和應(yīng)用軟件代碼的編寫。依據(jù)系統(tǒng)所需的功能,從系統(tǒng)信號穩(wěn)定傳輸?shù)慕嵌瘸霭l(fā),對電機驅(qū)動、調(diào)速、無線路由器系統(tǒng)改造、視頻信息接收與傳輸、紅外避障模塊改造及控制接口設(shè)計進行了分析和設(shè)計,并完成了代碼的編寫和調(diào)試。
(4)實行軟件與硬件的結(jié)合,對整個系統(tǒng)進行了多次測試。為了提高系統(tǒng)的準確性和穩(wěn)定性,對試驗中存在的問題進行了改進。
硬件部分主要由單片機控制模塊、電機驅(qū)動模塊、電源模塊、紅外避障模塊控制終端模塊和無線視頻監(jiān)控模塊組成。硬件系統(tǒng)圖如下圖1示:
圖1 硬件系統(tǒng)圖
主控模塊STM32F103C8T6C8T6是主控模塊的主控制器。STM32F103C8T6C8T6是一款32位ARM的低端微控制器。該系列芯片由ST公司生產(chǎn),核心為Cortex-M3。根據(jù)片上閃存的大小,芯片可分為小容量(16K和32K)、中容量(64K和128K)和大容量(256K、384K和512K)3類。該芯片集成了定時器、can、ADC、SPI、I2C、USB、UART等功能。STM32 F103C8T6C8T6采用keil編譯環(huán)境,利用c語言編程,支持stlink SWD在線調(diào)試。它主要用于收集信息,處理數(shù)據(jù),協(xié)調(diào)系統(tǒng)中各功能模塊的預期任務(wù)。
在機器人運行過程中,電源模塊需要向單片機、電機、模塊和傳感器供電。為保證系統(tǒng)可靠供電,選用18650可充電鋰電池。鋰離子電池的標稱電壓為3.7V,充電截止電壓為4.2V,LiFePO4電池的標稱電壓為3.2V,充電截止電壓為3.6V,容量通常為1200mah~3350mah,常用容量為2200mah~2600mah。
電機驅(qū)動模塊采用L298N芯片。L298N芯片是ST公司生產(chǎn)的,該芯片具有高電壓、大電流的特點。芯片封裝有15個引腳。主要優(yōu)勢是:電壓高,最大電壓為46v;輸出電流值大,瞬時峰值電流值達到3A,連續(xù)電流2A;額定功率25W,包含兩個H橋高壓大電流全橋驅(qū)動器,可驅(qū)動步進電機、直流電機,繼電器線圈等感性負載;采用標準邏輯電平信號控制;本研究采用L298N與STM32核心板無縫結(jié)合,實現(xiàn)四臺電機的無損擴展驅(qū)動和PWM調(diào)速。
紅外避障模塊采用HJ-IR2傳感器,不怕光。它相當于一個紅外電子開關(guān)。它檢測障礙物輸出的低電平,通常是高電平。當識別到障礙物存在時,接收器接收來自紅外管的紅外信號。芯片放大對比后,以低電平輸出,使模塊上的LED發(fā)光管發(fā)光,并且以低電平信號輸出。該信號可以成為單片機的信號輸入,并可對各種外部驅(qū)動模塊進行檢測和控制。
控制終端模塊有兩種:PC和Android手機。這兩種方式都可以掌控智能小車的多種運動方式。
該模塊通過USB接口實時采集輪式攝像機的運動狀態(tài),并通過該接口實現(xiàn)對機器人運動狀態(tài)的實時采集監(jiān)視。這個模塊主要用來完成輪式機器人及其各控制接口。由于機器人的機動性,其采用無線通信方式來完成傳輸數(shù)據(jù)。實現(xiàn)無線通信主要是通過無線路由器來完成的,使用路由器完成一個局域網(wǎng)的搭建,并在該局域網(wǎng)上執(zhí)行各種底層協(xié)議。該傳輸方式用于信號控制和控制終端與輪式機器人的交互。通過終端局域網(wǎng),將機器人的運行控制程序與終端相連。連接成功后,用戶可以使用控制終端設(shè)備,進入軟件用戶界面,可以向輪式機器人發(fā)送各種命令,獲得攝像機的視頻信息等數(shù)據(jù)。在該系統(tǒng)中,數(shù)碼相機的驅(qū)動程序被加載到無線路由器的固件中。當主控制器發(fā)送采集視頻的命令時,攝像機開始記錄。
軟件設(shè)計包括:主程序設(shè)計、電機驅(qū)動程序設(shè)計、紅外障礙物程序設(shè)計、視頻圖像采集程序設(shè)計、無線網(wǎng)絡(luò)數(shù)據(jù)傳輸程序設(shè)計。
電機的驅(qū)動主要由L298N驅(qū)動芯片操作,采用PWM調(diào)速方式對電機進行驅(qū)動和控制。脈沖寬度調(diào)制(簡稱PWM調(diào)制),PWM調(diào)制是利用微處理器的數(shù)字輸出控制模擬電路的一種非常有效的技術(shù)。PWM波的產(chǎn)生可以通過時鐘頻率、自動復位值等參數(shù)進行設(shè)定,從而調(diào)整PWM波的占空比和輸出頻率,即控制脈沖寬度。
紅外避障采用的是紅外避障傳感器模塊。模塊有3個引腳,電源VCC和地GND,還有用于傳輸信號的OUT引腳,信號是由高低電平兩種狀態(tài)組成的(高電平為3.3V,低電平為0V;高電平讀出來就是“1”,低電平讀出來就是“0”)。
模塊通電后,OUT引腳初始默認高電平輸出,當檢測到前方有障礙物時OUT會輸出低電平,因此會有一個高電平到低電平的變化過程,稱之為“下降沿”。通過區(qū)程序在單片機中設(shè)置“下降沿”為觸發(fā)外部中斷的條件。所以當紅外避障模塊檢測到前方有障礙物的時候,就會觸發(fā)中斷機制,從而執(zhí)行我們事先編寫好的一段程序,通過調(diào)整小車電機的轉(zhuǎn)速實現(xiàn)小車的轉(zhuǎn)彎,完成避障動作
數(shù)字攝像頭的工作過程是將光信號轉(zhuǎn)化成電信號的過程。物鏡通過圖像傳感器模塊轉(zhuǎn)變成電信號,然后再通過A/D轉(zhuǎn)換成數(shù)字圖像信號,最后再將數(shù)字圖像信號傳入數(shù)字攝像頭的內(nèi)部的DSP芯片進行處理。
在該系統(tǒng)中,數(shù)字攝像頭的驅(qū)動程序被加載到無線路由器的固件中。當主控制器發(fā)出視頻采集命令時,攝像頭開始工作,通過TCP協(xié)議將采集到的視頻信息發(fā)送到顯示界面,并通過WiFi無線路由器連接信號進行無線視頻顯示。
系統(tǒng)主程序主要完成子程序調(diào)用和各種初始化操作。首先,系統(tǒng)上電后,啟動初始化程序,判斷是否有避障中斷發(fā)送。當發(fā)生避障中斷時,執(zhí)行避障子程序。執(zhí)行完子程序后,發(fā)送電機控制信號。
以STM32F103C8T6C8T6單片機為控制器,在keil軟件中用C語言編程,對智能小車進行控制,完成小車的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等動作。小車的運行狀態(tài)是由紅外傳感器檢測外部信號,然后傳入單片機進行處理,再由單片機控制電機狀態(tài)實現(xiàn)。視頻監(jiān)控模塊可以捕捉輪式機器人的運動狀態(tài)和周圍環(huán)境,然后通過無線信號將采集到的視頻數(shù)據(jù)返回到控制界面,達到實時監(jiān)控的目的。無線路由模塊完成智能小車與各控制接口之間的通信。最后,實現(xiàn)了一個具有視頻監(jiān)控、自動避障和WiFi控制的智能小車控制系統(tǒng)。