西南民族大學電氣信息工程學院 楊旭瓊 賈雪蕾 鄧彥松
作為一種新的智能機器,機器魚具有機動性、高效性、低噪性等優(yōu)點,隨著它的問世和近幾年的不斷發(fā)展,機器魚已經(jīng)運用到了很多領域,如水域質(zhì)量檢測,海洋資源探測和水下地形勘探等。目前機器魚類型主要有遙控機器魚,語音機器魚及自主避障機器魚等。這里提出一種基于紅外的自主避障機器魚進行圖像采集的方案[2]。
整個系統(tǒng)由四個部分組成,分別是雙攝像頭組成的圖像采集模塊、由STM32微控制器組成的CPU模塊、彩色液晶顯示模塊、機器魚硬件平臺模塊、紅外測距避障模塊。硬件構(gòu)成框圖如圖1所示。
工作流程是:首先通過紅外傳感器傳回障礙物距離的模擬電壓信息,通過AD芯片轉(zhuǎn)換后傳送給CPU進行判斷,根據(jù)障礙物距離由CPU發(fā)出指令,控制機器魚硬件平臺做出動作,與此同時雙攝像頭將采集到的圖像信息存儲在存儲器中,并且機器魚的相關數(shù)據(jù)顯示在顯示屏上(如速度、方向等)。
雙攝像頭是系統(tǒng)的信息采集部分,而且考慮到攝像頭在機器魚的硬件平臺上工作,應該要求是單電源、抗噪能力較強、低功耗,以及以此同時的價格最好是相對較低。綜合以上的要求,決定使用OV7670攝像頭,它是一種CMOS圖像傳感器,其電源消耗量低,體積小,適合本系統(tǒng)對于元件的要求。攝像頭的放置是兩個攝像頭相互背對,布局如圖2所示;這樣布局的優(yōu)勢在于:雙攝像頭視角更為寬廣,可以一次性采集到周圍環(huán)境的圖像數(shù)據(jù)[1]。
在主控制器的選擇上,采用STM32F-103ZET6芯片,此芯片具有72MHz的主頻,32bit的位寬,具有從256K至512K字節(jié)的閃存程序儲存器和64K字節(jié)的SRAM,數(shù)據(jù)處理能力強,引腳資源豐富,有多達4個16位定時器,每個定時器有多達4路PWM波,適可合于精確控制舵機。強大的數(shù)據(jù)處理能力和較高的主頻適合于快速的完成最優(yōu)路徑選取的算法[3]。
機器魚舵機組是由三個舵機構(gòu)成,以魚體波函數(shù)為核心算法的智能機器,在舵機的配合運作下完成相應動作,進而來實現(xiàn)仿生機器魚的游動。其中,單片機通過所執(zhí)行的程序計算出各個關節(jié)的轉(zhuǎn)動角度,以此產(chǎn)生十五位的不同占空比的PWM波,控制舵機旋轉(zhuǎn),繼而控制“魚體”擺動[5]。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
圖2 機器魚布局
圖3 AD0809
圖4 電源供電模塊
圖5 主程序流程框圖
圖6 紅外模塊流程圖
紅外測距壁障模塊采用的傳感器是夏普公司的GP2Y0A21YKIR,AD芯片采用的是常用的8位的AD0809芯片,測距精度為0.3cm左右。GP2Y0A21YKIR是夏普公司推出的一款性價比高、最常用的紅外測距傳感器、其與GP2D12測量射程相同,但探測面積略有增加,可用來對物體的距離進行測量,實現(xiàn)機器人的避障功能。它不但體積小、功耗低、價格便宜,而且測距效果好,適合機器人使用;ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機直接接口。其硬件原理圖如圖3所示。
電源部分為整個系統(tǒng)提供工作電壓,這個模塊由4節(jié)可充電電池和穩(wěn)壓電路組成。四節(jié)可充電電池在沖滿電時電壓可以達到6.2V左右,所以為了得到5V的電壓我們采用AMS1117穩(wěn)壓芯片。AMS1117是一個正向低壓降穩(wěn)壓器,在1A電流下壓降為1.2V,內(nèi)部集成過熱保護和限流電路,是電池供電的最佳選擇。AMS1117有兩個版本:固定輸出版本和可調(diào)版本,這里采用固定輸出電壓為3.3V、5.0V的兩個版本,分別為電路部分和舵機供電。硬件電路如圖4所示。
芯片通過AD管腳對紅外傳感器的發(fā)射模塊傳送命令。通過返回光強產(chǎn)生相應的模擬電壓,經(jīng)過A/D轉(zhuǎn)換器后變成十位的二進制數(shù)據(jù)量,通過算法計算出到障礙物的距離。芯片判斷計算出的距離與預設值的邏輯關系,根據(jù)結(jié)果判斷是否執(zhí)行相應的程序進行躲避障礙物的動作。而雙攝像頭分別采集機器魚前后視覺狀況,經(jīng)處理后返回給觀察人員,以便了解魚體周圍環(huán)境狀況。具體流程框圖如圖5所示。
紅外傳感器是一種比較有效地接近覺傳感器,利用紅外線的定向傳播和反射能力檢測前方是否有障礙物。由于光的方向性好,紅外傳感器具有角度分辨率高,反映靈敏,結(jié)構(gòu)簡單等優(yōu)點。它的工作原理是:當有障礙物的時候,接收電路端口輸出的為高電平,沒有障礙的時候,端口輸出的為低電平。通過高低電平的判斷來識別是否有障礙物。[4]
紅外測距傳感器的信號經(jīng)過AD轉(zhuǎn)化后,傳給單片機,單片機根據(jù)傳回數(shù)據(jù)計算出障礙物與魚體之間的距離,在不同的距離段做出不同的動作。與此同時,雙攝像頭的數(shù)據(jù)進過STM32的DMA總線,存儲至存儲器中,以待調(diào)用。紅外模塊流程如圖6所示;核心程序如下:
攝像頭屬于字符類設備,所以能夠像字節(jié)流一樣被程序訪問,而且只能夠按順序讀寫[2]。同時,雙攝像頭在多功能機器魚(如:潛水類機器魚)中,可以選擇其他安裝方式(如:一上一下),以便對魚體的環(huán)境狀況進行更多視角的觀察。
本文介紹了借助雙攝像頭采集圖像信息,利用紅外測距實現(xiàn)機器魚智能避障的新方法。其中通過雙攝像使得采集的圖像數(shù)據(jù)更為全面,為后續(xù)自主視覺的發(fā)展提供了一定的幫助。最后,相信隨著科研的進步,機器魚的研究與設計會更加智能化,并給人類在海洋發(fā)展等方面提供更多的資源。
[1]樓永堅,曹向群.CMOS圖像傳感器的性能及應用發(fā)展[J].杭州電子工業(yè)學院學報,2003(02).
[2]黃福勇,向偉,楊洋.基于ARM自主避障機器魚設計[J].電子元器件應用,2012(07).
[3]萬少云,向強.基于TMS320F2812的自主視覺機器魚控制系統(tǒng)設計[J].西南民族大學學報自然科學版,2011(37).
[4]桑海泉,王碩,譚民,張志剛.基于紅外傳感器的仿生機器魚自主避障控制[J].系統(tǒng)仿真學報,2005(6).
[5]丁俐,余瑾,吳垠,王偉東.基于PIC單片機的仿生機器魚的舵機控制[J].微計算機信息(嵌入式與SOC),2010(26).