文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)10-0026-03
隨著經(jīng)濟(jì)發(fā)展的高速化,人們的生活節(jié)奏也越來(lái)越快,,家政機(jī)器人DR(Domestic Robot),,因能夠代替人完成家政服務(wù)工作而受到了更多都市市民的青睞。目前,,低端DR以單一的輸入功能如清潔功能等重復(fù)性作業(yè)為主,,缺乏與用戶(hù)的交互;高端DR雖然功能完善,,但是價(jià)格昂貴,,不易為普遍用戶(hù)接受。本文設(shè)計(jì)的系統(tǒng)是通過(guò)上位機(jī)的路線(xiàn)繪制程序與用戶(hù)進(jìn)行交互,,以低成本便捷的方式實(shí)現(xiàn)對(duì)DR的室內(nèi)定位控制(Indoor Positioning Control),,具有很好的實(shí)用性。
1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)整體構(gòu)架分為上位機(jī)信息發(fā)送系統(tǒng)和機(jī)器人子系統(tǒng)兩個(gè)部分,。上位機(jī)端采用VB編寫(xiě)的繪制路線(xiàn)程序作為可視控制平臺(tái),,實(shí)現(xiàn)房屋布局圖載入,、行進(jìn)路線(xiàn)繪制、坐標(biāo)提取,、路線(xiàn)信息計(jì)算與無(wú)線(xiàn)傳輸?shù)裙δ?。機(jī)器人處理子系統(tǒng)采用FPGA芯片作為核心處理器,結(jié)合SoPC技術(shù)和Verilog硬件描述語(yǔ)言以完成對(duì)FPGA芯片的配置,、Nios II軟核實(shí)現(xiàn)路線(xiàn)信息的無(wú)線(xiàn)接收,、提取路線(xiàn)信息。使用Verilog硬件描述語(yǔ)言搭建電機(jī)和舵機(jī)的PWM控制模塊,控制電機(jī)與舵機(jī)配合,,完成路線(xiàn)的行駛,。其系統(tǒng)框圖如圖1所示。
2.1.2 串口無(wú)線(xiàn)模塊
PC機(jī)路線(xiàn)繪制程序?qū)⑿畔⒋虬ㄟ^(guò)串口傳輸?shù)綗o(wú)線(xiàn)模塊CC1100-232后發(fā)送出去,。CC1100是TI公司的高性能無(wú)線(xiàn)通信芯片,,采用串口工作方式,可以工作在433 MHz/868 MHz/915 MHz公用頻段,,串口速率為1.2 Kb/s~38.4 Kb/s,。在無(wú)線(xiàn)傳感器、家庭自動(dòng)化,、機(jī)器人控制等領(lǐng)域有著廣泛的應(yīng)用,。
2.2 機(jī)器人子系統(tǒng)
機(jī)器人子系統(tǒng)的功能是實(shí)現(xiàn)路線(xiàn)信息的接收與執(zhí)行,由FPGA處理器,、CC1100-232無(wú)線(xiàn)模塊,、機(jī)器人模型組成。
2.2.1 機(jī)器人模型
微元路線(xiàn)的準(zhǔn)確實(shí)現(xiàn)需要機(jī)器人根據(jù)路線(xiàn)信息準(zhǔn)確地行走,,機(jī)器人模型設(shè)計(jì)的關(guān)鍵在于行進(jìn)部分的設(shè)計(jì),,本系統(tǒng)的機(jī)器人行進(jìn)部分由兩個(gè)從動(dòng)輪、一個(gè)帶碼盤(pán)的驅(qū)動(dòng)輪,、光電對(duì)管TCRT5000和電機(jī)模組組成,。驅(qū)動(dòng)輪的電機(jī)模組分為130電機(jī)和5010舵機(jī)兩部分,電機(jī)與舵機(jī)安裝于驅(qū)動(dòng)輪上,,電機(jī)帶動(dòng)驅(qū)動(dòng)輪轉(zhuǎn)動(dòng),舵機(jī)帶動(dòng)驅(qū)動(dòng)輪旋轉(zhuǎn),。PWM波可以控制電機(jī),、舵機(jī)轉(zhuǎn)動(dòng),調(diào)節(jié)PWM波的占空比可以改變電機(jī)轉(zhuǎn)速和舵機(jī)的轉(zhuǎn)動(dòng)角度,。在驅(qū)動(dòng)輪上帶有碼盤(pán)和光電對(duì)管TCRT5000,,兩者結(jié)合可以準(zhǔn)確地記錄驅(qū)動(dòng)輪轉(zhuǎn)動(dòng)了多少碼格。
機(jī)器人的行進(jìn)方式有兩種:(1)舵機(jī)偏轉(zhuǎn)為0°時(shí),,電機(jī)作用驅(qū)動(dòng)輪,,機(jī)器人直線(xiàn)行駛,;(2)舵機(jī)偏轉(zhuǎn)90°時(shí),電機(jī)作用驅(qū)動(dòng)輪,,機(jī)器人繞幾何中心點(diǎn)轉(zhuǎn)動(dòng),,如圖4所示。
每次微元的路線(xiàn)機(jī)器人的執(zhí)行方式都是舵機(jī)擺至90°,,電機(jī)驅(qū)動(dòng)輪行進(jìn)使機(jī)器人繞中心點(diǎn)轉(zhuǎn)動(dòng)相應(yīng)轉(zhuǎn)角,,然后舵機(jī)擺正,電機(jī)驅(qū)動(dòng)機(jī)器人行走微元路線(xiàn)相應(yīng)的距離,。
2.2.2 FPGA控制模塊
系統(tǒng)采用Altera Cyclone III EP3C16 FPGA芯片,,Verilog硬件描述語(yǔ)言完成復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)。Altera公司的SoPC技術(shù)可自定義IP核配置NIOS軟核,,可定制性高[1],。通過(guò)軟硬件協(xié)同設(shè)計(jì)使整個(gè)系統(tǒng)的FPGA實(shí)現(xiàn)更加靈活與高效。
本系統(tǒng)使用Nios II系統(tǒng)通過(guò)C語(yǔ)言編寫(xiě)UART串口模塊程序,,與串口無(wú)線(xiàn)模塊CC1100-232進(jìn)行通信提取路線(xiàn)信息,,控制PIO口進(jìn)行相應(yīng)的中斷檢測(cè)與中斷服務(wù)。軟件設(shè)計(jì)的整個(gè)流程可以在Nios IDE環(huán)境中完成,。在Nios II系統(tǒng)開(kāi)發(fā)過(guò)程中,,使用寄存器操作方式訪(fǎng)問(wèn)PIO口[2]:即定義一個(gè)寄存器結(jié)構(gòu)體,然后通過(guò)訪(fǎng)問(wèn)結(jié)構(gòu)體元素的方式讀寫(xiě)PIO口數(shù)據(jù),,如圖5所示,。
使用Verilog語(yǔ)言搭建電機(jī)與舵機(jī)的控制模塊以及光電對(duì)管的計(jì)數(shù)模塊,如圖6所示,。圖中,,電機(jī)部分:cp50m為50 MHz時(shí)鐘輸入端;jian為光電對(duì)管檢測(cè)輸入端,,內(nèi)部計(jì)數(shù)器完成對(duì)它的計(jì)數(shù),;en為參數(shù)設(shè)置使能;len[15..0]為計(jì)數(shù)預(yù)設(shè)定值,,由Nios II軟核根據(jù)路線(xiàn)信息計(jì)算得出參考值,;dir為電機(jī)轉(zhuǎn)向控制輸入端,根據(jù)輸入控制信號(hào)ctrl1,、ctrl2完成對(duì)電機(jī)控制,。pwm輸出信號(hào)實(shí)現(xiàn)電機(jī)轉(zhuǎn)速控制,finish信號(hào)負(fù)責(zé)動(dòng)作執(zhí)行完畢后向Nios II軟核發(fā)送完成信息,。舵機(jī)部分:為了方便控制舵機(jī)只需要旋轉(zhuǎn)0°或90°即可,,控制時(shí)通過(guò)pulse輸出端輸出周期為20 ms、高電平為0.5 ms的PWM波,舵機(jī)轉(zhuǎn)向即為0°,;輸出周期 20 ms,,高電平為1.5 ms的PWM波, 舵機(jī)轉(zhuǎn)向即為90°,。舵機(jī)轉(zhuǎn)向由dir控制,。
通過(guò)Nios II系統(tǒng)與電機(jī)舵機(jī)控制模塊完成對(duì)FPGA核心處理器的配置后,整個(gè)系統(tǒng)搭建完畢,,F(xiàn)PGA控制器框圖如圖7所示,。
2.2.3 機(jī)器人子系統(tǒng)路線(xiàn)信息執(zhí)行過(guò)程
機(jī)器人子系統(tǒng)執(zhí)行時(shí),串口無(wú)線(xiàn)模塊CC1100-232接收由發(fā)射端傳遞的路線(xiàn)信息,,數(shù)據(jù)接收完成后相應(yīng)信號(hào)管腳置高,。Nios II系統(tǒng)相應(yīng)的IO口檢測(cè)后產(chǎn)生中斷,啟動(dòng)中斷函數(shù),,通過(guò)串口讀取接收模塊信息(接收信息包含路線(xiàn)的長(zhǎng)度和轉(zhuǎn)角兩部分內(nèi)容),。
驅(qū)動(dòng)輪的直徑為5 cm,驅(qū)動(dòng)輪上碼盤(pán)的碼格數(shù)為100個(gè),,設(shè)計(jì)數(shù)值為x1,,則其行進(jìn)距離L為:
若機(jī)器人按照式(1)直行某確定距離L,應(yīng)根據(jù)式(4)設(shè)置好相應(yīng)的計(jì)數(shù)值x1,;若使機(jī)器人旋轉(zhuǎn)某個(gè)角度θ,,應(yīng)根據(jù)式(5)設(shè)置好相應(yīng)的計(jì)數(shù)值x2。
分析設(shè)定好光電計(jì)數(shù)器的預(yù)設(shè)定值后就可以啟動(dòng)機(jī)器人行進(jìn),。首先是轉(zhuǎn)角,,舵機(jī)偏轉(zhuǎn)90°后,Nios II系統(tǒng)將轉(zhuǎn)角預(yù)設(shè)定值x2傳給電機(jī)模塊len[15..0],,然后驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)讓機(jī)器人旋轉(zhuǎn),,驅(qū)動(dòng)輪轉(zhuǎn)動(dòng)時(shí)碼盤(pán)的遮光部分使光電對(duì)管斷開(kāi)檢測(cè)管腳為0,透光部分使光電對(duì)管正常工作檢測(cè)管腳為1,,計(jì)數(shù)器對(duì)檢測(cè)管腳的脈沖計(jì)數(shù),。當(dāng)計(jì)數(shù)值與預(yù)設(shè)值相等時(shí),機(jī)器人轉(zhuǎn)角完成,,此時(shí)finish信號(hào)置高,,Nios II系統(tǒng)檢測(cè)到此信號(hào)后就會(huì)控制舵機(jī)模塊使舵機(jī)擺正,接著加載距離信息的預(yù)設(shè)值x1,,進(jìn)行直線(xiàn)行進(jìn),,執(zhí)行完畢后機(jī)器人系統(tǒng)進(jìn)入等待下一次路線(xiàn)信息接收狀態(tài)。
本文闡述了一種采用繪圖板上位機(jī)實(shí)現(xiàn)的可視化家政機(jī)器人控制方法,。利用FPGA配置靈活性的特點(diǎn),結(jié)合Altera公司的SoPC技術(shù),,使整個(gè)系統(tǒng)軟硬件協(xié)調(diào)配合完成信息傳遞和處理,。位置可視化的優(yōu)勢(shì)在于可更方便地讓使用者對(duì)DR進(jìn)行實(shí)時(shí)的調(diào)度,,以更加人性化的方式方便了行動(dòng)不便的使用者。本方法以其易于實(shí)現(xiàn)和控制的特點(diǎn)為家政機(jī)器人定位系統(tǒng)提供了一個(gè)有效可行的方案,。
參考文獻(xiàn)
[1] 赫建國(guó),,倪德克,鄭燕.基于Nios II內(nèi)核的FPGA電路系統(tǒng)設(shè)計(jì).第1版[M].北京:電子工業(yè)出版社,,2010:110-142.
[2] 周立功.SoPC嵌入式系統(tǒng)基礎(chǔ)教程.第1版[M].北京:北京航空航天大學(xué)出版社,,2006:194-218.