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