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