余國慶 張玉欣 邢吉生 鄭紅英 石鵬 馮笑揚
【摘要】本文設(shè)計了基于FPGA + Nios II處理器的魔方解算機器人。通過對兩個模擬攝像頭的數(shù)據(jù)進行解碼,得到魔方整體圖像,把圖像進行切割得到每個方塊的采樣點并通過中值濾波得到精確的顏色數(shù)據(jù)。FPGA主要完成耗時大和重復(fù)率高的圖像處理部分,Nios II處理器完成魔方解算等單步運行且重復(fù)率不高的操作,使用Avalon總線完成軟硬件之間的數(shù)據(jù)傳輸,最終控制電機完成魔方的還原。SOPC技術(shù)簡化了硬件電路的設(shè)計,降低系統(tǒng)的功耗,提高系統(tǒng)運行的穩(wěn)定性。
【關(guān)鍵詞】FPGA;Nios II處理器;機器人;魔方解算
一、
引言
FPGA克服了傳統(tǒng)CPU處理數(shù)據(jù)能力弱的特點,具有并行計算和可編程的特性。FPGA內(nèi)部擁有龐大的乘法器和硬件浮點運算部件,其乘法運算性能是一般CPU所不能媲美的,非常適合進行密集型計算任務(wù),如圖像處理、矩陣計算、卷積神經(jīng)網(wǎng)絡(luò)等。
二、系統(tǒng)結(jié)構(gòu)
系統(tǒng)工作流程及功能框圖如圖1所示。系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示,系統(tǒng)硬件主要由Cyclone II系列的FPGA芯片、模擬攝像頭、ADV7180視頻解碼芯片、SDRAM存儲器、ADV7123高速視頻DAC芯片、光電開關(guān)、步進電機等組成。系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示。
本系統(tǒng)工作流程是:通過兩個模擬攝像頭對魔方進行全方位采集圖像,通過解碼芯片得到數(shù)字化的圖像數(shù)據(jù)然后傳到FPGA中進行處理。FPGA首先把ITU-R BT.656接口協(xié)議的圖像數(shù)據(jù)解碼成Ycrcb格式緩存在SDRAM,然后再把每一幀圖像從SDRAM中讀出來進行切割圖像,得到每個方塊的像素點,緊接著進行中值濾波處理。然后把Ycrcb格式轉(zhuǎn)RGB格式,再從RGB格式轉(zhuǎn)成HSV格式,即圖像的明度、飽和度、色調(diào)。將解析完的顏色模型通過Avalon總線傳到Nios ii處理器中建造3階魔方模型,通過魔方算法把魔方還原步驟下傳到FPGA中FIFO里面,然后FIFO數(shù)據(jù)依次讀出控制步進電機轉(zhuǎn)動。
Nios ii處理器與FPGA分工合作,F(xiàn)PGA主要完成一些耗時大和重復(fù)率高的圖像處理部分,而Nios ii處理器則完成魔方解算這種單步運行且重復(fù)率不高的操作。這樣的設(shè)計方法大大減少了CPU的負荷,通過FPGA中流水線以及硬件復(fù)制等設(shè)計方法來進行硬件加速,極大地加快了整個魔方解算的時間。在步進電機控制中,由FPGA搭建分頻器產(chǎn)生PWM脈沖使得魔方轉(zhuǎn)動,使得整個魔方轉(zhuǎn)動更加的穩(wěn)定,而且能準確轉(zhuǎn)動某個角度。
三、魔方解算
魔方解算公式采用最普遍的層先法,先完成底層十字,再完成第一層的還原,然后完成第二層的還原,接著頂層十字還原,最后通過改變角塊和色塊的位置完成整個魔方的還原。
魔方方塊的顏色識別是整個魔方設(shè)計最重要的環(huán)節(jié),它主要包括圖像切割模塊、中值濾波模塊、RGB轉(zhuǎn)HSV模塊以及顏色識別模塊。圖像的坐標信息以及像素數(shù)據(jù)輸入到圖像切割模塊中,采樣每個魔方方塊中心3x3的RGB數(shù)據(jù),并儲存在3x3的像素矩陣中。接著把每個3x3的像素矩陣輸入到中值濾波模塊中,提取出中間值作為該方塊的顏色。由于只需對切割的圖像進行中值濾波,而圖像的刷新也僅僅達到每秒30幀的速度,所需要的數(shù)據(jù)帶寬并不大,所以通過多路選擇器對中值濾波模塊進行分時復(fù)用,這樣的做法同樣可以對每個3x3的像素矩陣進行濾波,同時也減少了硬件復(fù)制所帶來的硬件資源的浪費。同樣以分時復(fù)用的設(shè)計方法把每個像素數(shù)據(jù)輸入RGB轉(zhuǎn)HSV模塊以及顏色識別模塊,接著得到所需要的HSV格式的顏色數(shù)據(jù),最后把這些數(shù)據(jù)掛載在Avalon總線上等待Nios ii處理器的訪問。
四、實驗結(jié)果及分析
由于顏色數(shù)據(jù)受光線的影響較大,白天與晚上的數(shù)值上下浮動比較大,并且不同地方的光線條件也相差甚遠,因此采用HSV顏色模型來識別顏色,減少了誤差。除此之外,面對光線反光的問題,在實驗中需要添加擋光板來避免光線斜射導(dǎo)致的光滑平面的反光。這樣做使得機器人不會因為反光而識別不出來顏色。在后期的調(diào)試中,在保證性能的前提下,可以通過改良算法來減少轉(zhuǎn)動的步數(shù)。通過反復(fù)實驗,在步進電機每秒轉(zhuǎn)360度時,魔方轉(zhuǎn)動穩(wěn)定,并未出現(xiàn)丟步和失靈的現(xiàn)象,提高了魔方還原的效率。
通過改變魔方的地理位置以及轉(zhuǎn)動魔方的方向,改變每一個魔方平面上每種顏色的占比,并在不同光照強度下統(tǒng)計該設(shè)計的魔方機器人對各個顏色的識別率,每種顏色采樣次數(shù)為100次,在強光、中強光、弱光三種條件下分別進行實驗,魔方還原準確率達99%以上。
五、結(jié)論
本設(shè)計的魔方解算機器人,采用Nios ii + FPGA的設(shè)計方法,取代了傳統(tǒng)的CPU嵌入式系統(tǒng)設(shè)計,使用Avalon總線完成軟硬件之間的數(shù)據(jù)傳輸,極大地加快了數(shù)據(jù)的處理以及通信,同時SOPC技術(shù)還簡化了硬件電路的設(shè)計,實現(xiàn)在一個片內(nèi)完成電路的連接,降低系統(tǒng)的功耗以及運行的穩(wěn)定性。經(jīng)實驗驗證,本設(shè)計的魔方解算機器人魔方還原準確率較高,運行穩(wěn)定。
參考文獻:
[1]張艷珠,古長軍,王凡迪,朱嘯天.魔方機器人控制系統(tǒng)設(shè)計[J].沈陽理工大學(xué)學(xué)報,2016,35(3):43-46.
基金項目:北華大學(xué)省級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃資助項目“魔方解算機器人”(201910201110);北華大學(xué)“高頻電子技術(shù)”金課建設(shè)資助項目。
作者簡介:余國慶(1999-),男,漢族,安徽省亳州市人,本科生,研究方向:FPGA系統(tǒng)開發(fā);通訊作者:張玉欣()1979-),女,漢族,吉林省吉林市人,副教授,工學(xué)博士,研究方向:電氣設(shè)備故障診斷。