基于PIC單片機及圖像處理技術(shù)設(shè)計的智能臺球機器人
臺球源于英國,它是一項在國際上廣泛流行的高雅室內(nèi)體育運動。隨著各種運動的興起發(fā)展,臺球以其內(nèi)涵高雅、放松身心的特點越來越受大家歡迎。依靠單片機技術(shù)的日益成熟,基于單片機的小型化高精度控制過程的廣泛應用,色度學、先進光電成像技術(shù)、計算機技術(shù)和圖像處理技術(shù)的飛速發(fā)展和電機驅(qū)動技術(shù)、傳感器技術(shù)以及控制技術(shù)的不斷發(fā)展,我們計劃設(shè)計可以與人對打的臺球智能機器人,使人們可以在即使一個人的情況之下也可以享受臺球帶來的娛樂、休閑。
本文引用地址:http://butianyuan.cn/article/201612/326403.htm我們這次設(shè)計的智能臺球機器是以PIC單片機為核心的控制系統(tǒng),結(jié)合了圖像處理技術(shù),PIC單片機控制電機系統(tǒng),以及機械機構(gòu)設(shè)計技術(shù)等方面的知識,利用了各種芯片來實現(xiàn)對臺球系統(tǒng)的圖像采集處理技術(shù),同時,使用各種電機來控制機器人的運動和球桿的揮灑角度和力度系統(tǒng)。在系統(tǒng)結(jié)構(gòu)上本設(shè)計的系統(tǒng)可以分為兩個方面:圖像處理系統(tǒng)、智能運動系統(tǒng)。智能運動系統(tǒng)又包含兩個內(nèi)容:運載系統(tǒng)和球桿系統(tǒng)。圖像處理系統(tǒng)采集桌面臺球的各種信息;智能運動系統(tǒng)通過各種電機實現(xiàn)機器人的運動和揮球運動。
系統(tǒng)總體機構(gòu)
該智能臺球機器人由3部分構(gòu)成:圖像采集處理系統(tǒng)、智能運載系統(tǒng)和智能球桿系統(tǒng)。
(一)、系統(tǒng)總體布局與原理框圖
通過microchip公司生產(chǎn)的32位PIC單片機對CMOS采集過來的圖像信息分析處理,然后向各個電機驅(qū)動電路發(fā)送相應的指令信息,控制電機的轉(zhuǎn)向和轉(zhuǎn)速,執(zhí)行小車的運動,球桿瞄準,以及控制球桿擊球的力度各項操作,完成一個智能臺球機器人的自動捕捉和擊球全過程。其原理框圖如下所示:
(二)、系統(tǒng)的技術(shù)特點
該智能臺球機器人結(jié)合了圖像處理系統(tǒng),PIC單片機控制電機系統(tǒng),以及機械機構(gòu)系統(tǒng)等方面的知識,是一個跨學科,多領(lǐng)域知識交叉的產(chǎn)品設(shè)計。智能臺球機器人主要是由圖像處理系統(tǒng)、電機驅(qū)動和測速系統(tǒng),以及機械機構(gòu)系統(tǒng)來協(xié)調(diào)完成智能擊球過程的。
圖像采集上對比CCD攝像頭的特點CMOS攝像頭不需要用視頻采集卡就能輸出數(shù)字信號,內(nèi)帶A/D轉(zhuǎn)換,系統(tǒng)體積較小。
圖像處理上利用CPLD和DSP協(xié)調(diào)的模塊,大大減少需要傳輸?shù)臄?shù)據(jù),加快了系統(tǒng)的傳輸速度,提高了上位機的工作效率。
運載系統(tǒng)主要利用伺服電機驅(qū)動,伺服電動機機械特性和調(diào)節(jié)特性均為線性, 動態(tài)響應快, 控制精度高, 可靠性高, 是自動控制系統(tǒng)中一種很好的執(zhí)行元件。
球桿系統(tǒng)主要通過步進電機W1控制球桿的轉(zhuǎn)角來對擊球角度的瞄準,步進電機是數(shù)字控制電機,電機的轉(zhuǎn)速、停止的位置取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,非超載狀態(tài)下,根據(jù)上述線性關(guān)系,再加上步進電機只有周期性誤差而無累積誤差,因此步進電機適用于單片機控制。伺服電機W2控制球桿擊球的速度,利用伺服電機高精度、高可靠性的性能以實現(xiàn)準確擊球入袋的任務(wù)。
(三)、系統(tǒng)硬件組成及工作原理
1、 圖像處理系統(tǒng)
1.1 圖像處理系統(tǒng)的原理框圖
根據(jù)智能攝像機的工作原理,結(jié)合以前的數(shù)字圖像處理研究的成果,本圖像采集系統(tǒng)設(shè)計包括圖像采集、圖像存儲、數(shù)據(jù)處理三個部分。對比CCD與CMOS圖像傳感器的優(yōu)缺點,決定采用CMOS數(shù)字圖像傳感器來構(gòu)建系統(tǒng)的數(shù)字化采集單元。
系統(tǒng)原理如圖1-1所示,通過攝像頭獲取桌面球的位置與顏色信息,通過CPLD采集控制器和FIFO幀處理器來進行圖像存儲,并將數(shù)字信號傳輸?shù)紻SP數(shù)字信號處理器進行處理,采集球的位置信息和距離信息。將其傳輸給單片機進行控制,來實現(xiàn)電機的運動。
1.2 圖像處理系統(tǒng)的主要部件
1.2.1 CMOS圖像傳感器
我們采用的CMOS數(shù)字攝像頭是OV6620。
OV6620采用PAL制式(國內(nèi)的普通電視機制式),每秒25幀,分辨率為356*292,內(nèi)部集成了AD轉(zhuǎn)換模塊和視頻分離模塊,省去了1881視頻分離芯片。當然,也可以當模擬攝像頭來使用,比如調(diào)焦時,這時可以將視頻信號端接至OV6620的VTO端即可。
OV6620的優(yōu)點:供電電壓低,簡化電路;內(nèi)部集成AD和視頻分離模塊,簡化電路,并且使得采集程序簡單,采集質(zhì)量高;視頻信號轉(zhuǎn)換在內(nèi)部進行,減輕CPLD控制器負擔。
OV6620共有32個引腳,但我們真正能用到的不多。我在做智能車時僅僅用到13個引腳,其他引腳并未使用?,F(xiàn)在把常用的引腳列出來: Y0~Y7(數(shù)據(jù)輸出端,接單片機IO口)、VSYNC(場中斷信號端)、HREF(行中斷信號端)、VCC(接5V)、GND(接地)、VTO(接視頻采集卡調(diào)焦),其他可能會使用到的引腳:PCLK(像素同步信號端)、FODD(奇偶場信號端)。
1.2.2 幀存儲器
美國Averlogic公司的大容量FIFO AL422B作為采集-處理的共享數(shù)據(jù)RAM。AL422B的存儲容量為3MB。由于目前1幀圖像信息通暢包含640*480個像素,每個像素占用1~3B,而市面上很多視頻存儲器由于容量限制,無法存儲1幀圖像的完整信息,其工作頻率達50MHz。AL422B應用的要點如下:
1、384k*8b FIFO,支持VGA/CCIR/NTSC/PAL和HDTV分片率
2、獨立的讀/寫操作可接受不同的I/O數(shù)據(jù)率
3、高速異步串行存取,讀寫時鐘周期為20ns
4、輸出使能控制,自行刷新數(shù)據(jù)
5、工作電壓可為5V或3.3V
1.2.3 CPLD視頻采集器
這一部分的核心控制是由可編程門陣列FPGA發(fā)展為圖像采集處理的高速化、小型化、智能化開辟了新的空間。核心控制CPLD選用Altera公司的EMP7128SL85-15,主要用它來完成FIFO寫控制,通知DSP讀數(shù)據(jù)信號的產(chǎn)生等功能。EPM7128SL85-15具有2500個可用邏輯門,128個宏單元,8個邏輯塊,讀寫速度為15ns,帶有67個可供用戶使用的I/O引腳,PLCC封裝,可通過JTAG接口實現(xiàn)在線片成。通過硬件描述語言(VHDL)在集成開發(fā)環(huán)境MAX PLUS Ⅱ下完成邏輯設(shè)計,提高了系統(tǒng)的可靠性,又降低了成本。CPLD的核心任務(wù)是是實現(xiàn)AL422B芯片的需要。
1.2.4 DSP數(shù)字信號處理器
采用TI公司的TMS320VC5402 DSP讀取AL422B中的視頻數(shù)據(jù),并經(jīng)過軟件對其進行實時處理,處理后數(shù)據(jù)量將大大減少。TMS320VC5402 DSP主要特點如下:
先進的改造型哈佛結(jié)構(gòu),操作速率可達100MI/S。先進的多總線結(jié)構(gòu),3條16b數(shù)據(jù)存儲總線和1條程序存儲總線;40b算術(shù)邏輯單元,包括1個40b桶形移位器和2個40b累加器;一個17*17乘法器和1個40b專用加法器,允許16b帶符號的懲罰;8個輔助寄存器及1個軟件棧,數(shù)據(jù)/程序?qū)ぶ房臻g1Mb*16b,內(nèi)置4k*16bROM和16k*16bRAM;內(nèi)置可編程等待狀態(tài)發(fā)生器,鎖相環(huán)時鐘產(chǎn)生器,2個多通道緩沖串行口,1個8b并行于外部處理器通信的HPI口,2個16b定時器以及6個通道DMA控制器;低功耗,工作電源有3V和1.8V。
2、 智能運動系統(tǒng)
2.1 運載系統(tǒng)
2.1.1 運載系統(tǒng)的原理框圖
通過前面的圖像處理系統(tǒng)計算出的擊球點的位置,計算出小車的行進路線輸出給小車的驅(qū)動系統(tǒng),使小車行駛到指定地點。
2.1.2 運載實現(xiàn)系統(tǒng)的主要部件
1、 機器人小車驅(qū)動系統(tǒng)機器人小車驅(qū)動系統(tǒng)由控制器、功率變換器及電動機三個主要部分組成。
( 1) 電機數(shù)量的選擇為了讓小車能靈活轉(zhuǎn)彎采用三輪小車, 前輪是拖動輪, 兩個后輪分別用兩臺電機驅(qū)動。當分別改變兩臺電機方向時, 可以使小車前進、后退和轉(zhuǎn)彎。
( 2) 電機種類的選擇電動小車采用伺服電動機驅(qū)動系統(tǒng)。伺服電動機機械特性和調(diào)節(jié)特性均為線性, 動態(tài)響應快, 控制精度高, 可靠性高, 是自動控制系統(tǒng)中一種很好的執(zhí)行元件。加上合適的驅(qū)動系統(tǒng), 完全可以完成機器人的各種功能。
2、 車速及路程計算模塊的選擇
采用開關(guān)型霍爾集成片, 在車輪上均勻地固定多個磁鐵, 車輪轉(zhuǎn)動時產(chǎn)生脈沖, 通過脈沖的計數(shù),對速度進行測量。用轉(zhuǎn)速乘以車輪的周長, 就是小車行駛的路程。由于霍爾傳感器體積小, 靈敏度高,傳送過程中無抖動現(xiàn)象且檢測安裝簡單, 廣泛應用于電機測速系統(tǒng)。
3、 電源選擇方案
根據(jù)小車需要不停地運動, 采用單一電源供電方案, 電方式比較簡單,但由于電動機起動瞬間電流很大, 而且PWM 驅(qū)動的電動機電流波動較大, 會造成電源電壓不穩(wěn), 影響其他電路的正常工作。此方案將電機驅(qū)動利用光電耦合器進行連接。這樣可以解決由于PWM 驅(qū)動的電動機電流波動對系統(tǒng)穩(wěn)定性的影響, 從而提高了系統(tǒng)的可靠性。2.2 球桿系統(tǒng)
2.2.1 球桿系統(tǒng)的原理框圖
根據(jù)圖像處理分析所得的桌面各球分布情況,和單片機編程語言中所設(shè)定選擇各球的順序,確定了目標球的位置。小車運行至球桿能夠擊到白球的距離范圍內(nèi),此小車移動過程中,球桿收至與球桌邊緣平行的方向,電機W1和W2均停止轉(zhuǎn)動。
到達擊球范圍內(nèi)時,小車停止運行,根據(jù)圖像處理結(jié)果,以小車所在邊緣為基線,分析球桿所應該旋轉(zhuǎn)的角度,把該信息賦予PIC32單片機,然后,通過單機片發(fā)送脈沖信號到步進電機驅(qū)動器M1,控制步進電機W1完成相應角度的旋轉(zhuǎn)。旋轉(zhuǎn)過程中,為了提高步進電機運行到位的,從起始到接近所需角度的過程中,可以用連續(xù)高頻脈沖縮短時間,然后在接近預定值的時候,則選用間斷低頻脈沖控制電機點動到位,中斷其運行。
接著,根據(jù)圖像處理結(jié)果,分析其桌球運動的路徑長度,在單片機中預設(shè)相應的長度范圍,將其所需力度分為從高到低分為五檔;接著,通過單片機接收力度檔位信息,發(fā)送相應的脈沖到伺服電機驅(qū)動器M2,使伺服電機W2分別以不同的速度連續(xù)轉(zhuǎn)動一周,結(jié)束之后中斷其運行。
由于電機W2的轉(zhuǎn)動,帶動曲柄滑塊機構(gòu)的球桿做急回運動,快速擊球,然后較緩慢地返回原位置。
擊球完畢,白球獲得預定方向的速度接著進行擊打彩球入袋,然后各球按照后續(xù)運動軌跡運行至動能為零靜止。
等待桌面各球靜止,重新掃描桌面情況,進行新一輪的圖像處理分析,選擇下一個擊球目標,球桿旋轉(zhuǎn)收回到與球桌邊緣平行,小車運行至下一個目標的擊球距離范圍。
2.2.1 球桿系統(tǒng)的主要部件
步進電機W1
W1用于旋轉(zhuǎn)調(diào)整球桿部分的角度。
步進電機是數(shù)字控制電機,將脈沖信號轉(zhuǎn)換成角位移,電機的轉(zhuǎn)速、停止的位置取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,非超載狀態(tài)下,根據(jù)上述線性關(guān)系,再加上步進電機只有周期性誤差而無累積誤差,因此步進電機適用于單片機控制。步進電機通過輸入脈沖信號進行控制,即電機的總轉(zhuǎn)動角度由輸入脈沖總數(shù)決定,而電機的轉(zhuǎn)速由脈沖的信號頻率決定。
直流伺服電機W2
W2用于控制球桿擊球的速度。
伺服電動機機械特性和調(diào)節(jié)特性均為線性, 動態(tài)響應快, 控制精度高, 可靠性高, 是自動控制系統(tǒng)中一種很好的執(zhí)行元件。加上合適的驅(qū)動系統(tǒng), 完全可以按照準確的轉(zhuǎn)速和轉(zhuǎn)向完成各種功能。
步進電機驅(qū)動器L297芯片
步進電機的驅(qū)動是根據(jù)單片機產(chǎn)生的控制信號進行工作。因此,通過向步進電機驅(qū)動電路發(fā)送信號就能實現(xiàn)對步進電機的控制。
L297芯片是具有20管腳的雙列直插式塑膠封裝的步進電機驅(qū)動器。它最多可產(chǎn)生四相驅(qū)動信號,能用半步(八拍)和全步(四拍)等方式驅(qū)動單片機控制雙相兩極或四相單極步進電機。其核心是脈沖分配器,L297還設(shè)有兩個PWM斬波器來控制繞線組電流。是想愛你恒流斬波控制。適用于雙極性兩相步進電機或單極性四相步進電機的控制。L297只需從上位機接受方向(正、反轉(zhuǎn)),模式(半步、基本步距),時鐘(步進脈沖)3個輸入信號。其工作初始狀態(tài)是ABCD=0101
L297驅(qū)動器M1的輸出控制步進電機W1。
伺服電機驅(qū)動器BA6688L和BAL6686芯片
由單片機產(chǎn)生的PWM信號經(jīng)接收通道進入信號解調(diào)電路BA6688L的12腳進行解調(diào), 獲得一個直流偏置電壓, 該直流偏置電壓與電位器的電壓比較, 由BA6688L 的3腳輸出,送入電機驅(qū)動集成電路BAL6686, BAL6686 的輸出信號驅(qū)動伺服電動機W2。改變PWM 信號的占空比,可以控制電動機的轉(zhuǎn)向和轉(zhuǎn)速。
標準球桿
球桿擊球端設(shè)置為圓球狀光滑表面結(jié)構(gòu);中間部分套在固定的小車基座上;在小車基座的兩固定端設(shè)計為一個曲柄滑塊機構(gòu),控制球桿擊打白球。
3、單片機的選擇
單片機選用microship公司的Cerebot 32MX4系列單片機。該Cerebot 32MX4的主要特點是具有一個全新Microchip® PIC32™微控制器。PIC32可提供工作頻率80MHz的32位MIPS處理器內(nèi)核、512KB的編程FLASH、32KB的RAM內(nèi)存以及眾多的外圍設(shè)備。這些設(shè)備包括USB控制器、定時器/計數(shù)器、串口控制器、A/D轉(zhuǎn)換器以及更多的設(shè)備。該板具有大量的I/O接口和電源選項,其中也包括USB電源。它同時還具有與Microchip MPLAB開發(fā)軟件相兼容的內(nèi)置編程、調(diào)試電路。 Cerebot 32MX4擁有九個Digilent Pmod™外圍模塊連接器。可連接的Digilent Pmod包括H-bridge驅(qū)動、模數(shù)和數(shù)模轉(zhuǎn)換器、蜂鳴器、滑動開關(guān)、按鍵開關(guān)、LED指示燈、以及易于連接的轉(zhuǎn)換器。
主要 用來實現(xiàn)對dsp數(shù)字信號處理器的部分數(shù)據(jù)進行處理,與單片機獲得的其他系統(tǒng)信息進行綜合分析,輸出系統(tǒng)所需的控制信號,對其他部分的運動進行分析和控制。
三、軟件流程
(一)系統(tǒng)軟件流程
在每次工作之前都要對單片機進行初始化設(shè)置,然后再由單片機控制系統(tǒng)的運作,總流程如右圖所示:
先啟動圖像處理系統(tǒng),對采集到的信息進行分析和處理。得到擊打臺球的位置。根據(jù)圖像處理系統(tǒng)的結(jié)果,通過單片機啟動伺服電機,使小車運行到指定位置,然后控制步進電機調(diào)節(jié)球桿的角度,通過機械方式打擊出球。
(二)、圖像處理系統(tǒng)的軟件流程
在CMOS攝像機開始輸出信號之前,需要對OV6620的寄存器進行配置,使其輸出系統(tǒng)所需要的圖像格式。
在每次系統(tǒng)設(shè)定工作都要對CMOS寄存器進行設(shè)置,我們通過單片機對其進行初始化設(shè)置,主要是設(shè)置表中的寄存器。系統(tǒng)流程圖如圖2。系統(tǒng)執(zhí)行上電加載DSP程序,初始化程序后,單片機初始化OV6620和AL422B芯片。然后DSP即發(fā)送開始采集指令給CPLD,實現(xiàn)總線控制權(quán)交接,CPLD獲得總線控制權(quán)。通過CMOS采集一幀圖像解碼后存到FIFO存儲器中,當一幀數(shù)據(jù)寫入幀緩存后,CPLD關(guān)閉CMOS輸出,放棄總線控制權(quán),并發(fā)送信號給DSP,進入圖像處理程序。DSP通過緩存器和CLPD獲得圖像數(shù)據(jù),同時處理后數(shù)據(jù)傳輸?shù)絇IC進行電機控制部分。
我們采取的是一種基于DSP和CLPD結(jié)構(gòu)的圖像采集和處理系統(tǒng)設(shè)計方法。CPLD實質(zhì)上起到總線控制器的作用,DSP制作圖形算法使用,圖像采集獨立自主進行,不參與采集過程,節(jié)省了DSP的時間,實時性好,實現(xiàn)了模塊化設(shè)計的思想。系統(tǒng)軟件對圖像進行灰度、邊緣提取、反色的算法。
(三)、智能化系統(tǒng)的軟件流程
1.、小車系統(tǒng)軟件流程
1、1 伺服電機驅(qū)動電路
下圖為伺服電動機驅(qū)動電路, 本系統(tǒng)有兩組驅(qū)動電路, 分別負責兩個后輪電動機的驅(qū)動, 控制電機的轉(zhuǎn)向及轉(zhuǎn)速(轉(zhuǎn)角)。首先由單片機產(chǎn)生的PWM信號經(jīng)接收通道進入信號解調(diào)電路BA 6688L的12腳進行解調(diào), 獲得一個直流偏置電壓, 該直流偏置電壓與電位器的電壓比較, 由BA6688L 的3腳輸出,送入電機驅(qū)動集成電路BAL6686, BAL6686 的輸出信號驅(qū)動伺服電動機。改變PWM 信號的占空比,可以控制電機的轉(zhuǎn)向和轉(zhuǎn)速。
1、2 測速檢測電路的設(shè)計與實現(xiàn)
霍爾集成傳感器是將霍爾元件、放大器、施密特觸發(fā)器以及輸出電路集成在一塊芯片上, 為用戶提供一種簡單化的和比較完善的磁敏傳感器。霍爾傳感器測速的原理: 傳感器的位置固定在靠近小車車輪的適當位置, 小車的輪上裝幾個磁鐵, 每當磁鐵轉(zhuǎn)過霍爾傳感器時, 引起磁場的變化。霍爾集成傳感器分為線性型和開關(guān)型兩大類, 本系統(tǒng)中選用的是開關(guān)型霍爾集成傳感器SS44E。SS44E 傳感器的信號放大器將霍爾元件產(chǎn)生的幅值隨磁場強度變化的霍爾電壓放大后再經(jīng)信號變換器, 驅(qū)動器進行整形,放大后輸出幅度相等, 頻率變化的方波信號脈沖, 計算脈沖的個數(shù), 即可確定旋轉(zhuǎn)物體的速度。如我們在小車的軸上安裝了4塊磁鐵, 則車輪旋轉(zhuǎn)一周霍爾傳感器計數(shù)4個脈沖。用1m in計量的脈沖數(shù)除以4就是小車的轉(zhuǎn)速。
2、球桿系統(tǒng)軟件流程
在步進電機控制電路開始工作之前,需要對驅(qū)動器L297的主要參數(shù)進行初始化,然后對它進行將要運算控制的配置。
當導路小車到達擊球距離范圍內(nèi)靜止的時,單片機中斷,并跳轉(zhuǎn)到步進電機W1驅(qū)動電路,首先,單片機對步進電機驅(qū)動器M1進行初始化,然后驅(qū)動步進電機驅(qū)動器對步進電機W1進行初始化,單片機把相應頻率的脈沖信號傳送至驅(qū)動器M1,通過驅(qū)動器的緩存配置,控制電機W1按照要求的N個脈沖進行逆時針或者順時針步進運行,直到旋轉(zhuǎn)相應的α角后,電機W1驅(qū)動電路中斷;單片機中斷,跳出到伺服電機驅(qū)動電路W2,對伺服電機驅(qū)動器M2進行初始化,然后驅(qū)動伺服電機驅(qū)動器對伺服電機W2進行初始化,單片機把相應頻率的連續(xù)脈沖信號傳送至驅(qū)動器M2,通過驅(qū)動器的緩存配置,控制電機W2作順時針連續(xù)旋轉(zhuǎn),直到旋轉(zhuǎn)滿一周后,電機W2驅(qū)動電路中斷,電機W2旋轉(zhuǎn)過程中帶動機械曲柄滑塊機構(gòu)做急回運動,快速擊打白球,使得白球運動擊打彩球入袋。擊球完畢,再次驅(qū)動電機W1逆向旋轉(zhuǎn)α角,至原初始與球桌邊緣平行的位置。則一次單片機控制擊打制定目標球過程結(jié)束。
該球桿系統(tǒng)中,通過對圖像處理后的目標結(jié)果進行定位,然后采用了高精度的單片機控制步進電機電子電路,伺服電機帶動球桿機械運動和機構(gòu)傳動進行擊球,實現(xiàn)了一個較為智能化的智能桌球機器人。
評論