速解魔方機(jī)器人(上)
4.1.2 FPGA部分
在FPGA部分,分為六個(gè)模塊:CCD圖像采集模塊、圖 像處理模塊、顏色識(shí)別模塊、VGA顯示模塊、舵機(jī)轉(zhuǎn)動(dòng)模 塊、SoC_System模塊。
(1)CCD圖像采集模塊
CCD攝像頭與CMOS攝像頭相比,在強(qiáng)光或弱光的不 利條件下,圖像畫(huà)質(zhì)都更高,我們直接采用友晶DE1-SoC配
圖8 VGA方案一效果圖
圖9 VGA方案二效果圖
圖10 VGA方案二效果圖
套提供的穩(wěn)定高效的CCD圖像采集模塊。 (2)圖像處理模塊 通過(guò)圖像采集模塊,得到一幀分辨率為640*480的RGB
圖像,在圖像處理模塊中,把一幀畫(huà)面中所需部分像素的RGB值存儲(chǔ)到RAM中供顏色識(shí)別模塊使用。
(3)顏色識(shí)別模塊
此模塊從RAM中讀出魔方9個(gè)格子中心的10*10個(gè)像素 點(diǎn)的RGB數(shù)據(jù),首先求出R、G、B各自的平均值,然后把這 些平均值通過(guò)lw_AXI_FPGA-to-HPS Bridge送到HPS部分。
(4)VGA顯示模塊
圖11 舵機(jī)轉(zhuǎn)動(dòng)模塊機(jī)械手臂
圖12 圖像采集示意圖
設(shè)計(jì)了兩套VGA顯示方案,分別如下:
方案一:將魔方的六個(gè)面展開(kāi)平鋪在VGA的右側(cè),在 魔方機(jī)器人還原魔方的過(guò)程中,這個(gè)平面效果圖上的各個(gè)小塊也能跟著轉(zhuǎn)動(dòng),最后跟魔方機(jī)器人里面的魔方同步還原
成六面。在VGA左側(cè)呈現(xiàn)的是CCD攝像頭獲取的畫(huà)面,這 樣大家也可以通過(guò)VGA顯示直觀地看到魔方機(jī)器人的工作狀 況。效果如圖8。
方案二:在開(kāi)發(fā)板上運(yùn)行Ubuntu12.4系統(tǒng)(如下圖4-3所 示),在該系統(tǒng)下的Qt Creator環(huán)境中,通過(guò)OpenGL繪制了一 個(gè)3D效果的魔方,在VGA上呈現(xiàn)這個(gè)3D魔方,在魔方機(jī)器 人還原魔方的過(guò)程中,VGA上的3D魔方同步破解,與破解 系統(tǒng)一起同步完成破解。3D效果比平面效果最大的優(yōu)勢(shì)在 于,它給人的感覺(jué)更逼真,就像一個(gè)真的魔方在屏幕上自己 破解,給大家一種更好的視覺(jué)感受。效果如圖9所示。
方案二所呈現(xiàn)的效果圖是在i386的主機(jī) 上實(shí)現(xiàn)的,所使用的系統(tǒng)也是Ubuntu12.4, 但是在移植到DE1-SoC開(kāi)發(fā)板的過(guò)程中出現(xiàn) 了有些庫(kù)函數(shù)無(wú)法調(diào)用的問(wèn)題,由于時(shí)間原 因,放棄了方案二,選擇了方案一。
(5)舵機(jī)轉(zhuǎn)動(dòng)模塊 通過(guò)控制PIO端口控制機(jī)械手臂的旋轉(zhuǎn)
伸縮。機(jī)械手臂使用廉價(jià)環(huán)保的塑料條與舵 機(jī)拼接而成,結(jié)構(gòu)設(shè)計(jì)確保穩(wěn)定靈活,才能 準(zhǔn)確還原魔方,因此我們?cè)O(shè)計(jì)了如圖11所示結(jié)構(gòu)的機(jī)械手
臂。
4.2 系統(tǒng)硬件設(shè)計(jì)
4.2.1 圖像采集
攝像頭輸入的影像信號(hào)送至開(kāi)發(fā)板上的電視譯碼芯片 (ADV7180),經(jīng)過(guò)譯碼之后,轉(zhuǎn)換成8位ITU_R BT.656標(biāo)準(zhǔn) 接口的影像數(shù)據(jù)送至Cycolne V E FPGA,經(jīng)ITU-R 656譯碼器 將亮度與彩度信號(hào)分開(kāi),再做解交錯(cuò)與縮放處理,然后將亮 度與彩度信號(hào)轉(zhuǎn)換成VGA顯示的紅、綠、藍(lán)信號(hào),Cycolne VE FPGA將數(shù)字影像信
號(hào) 送 至 D E 1 開(kāi) 發(fā) 板 上 的VG A數(shù)碼轉(zhuǎn)換芯片 (A DV 7 1 2 3 ) , 最后成 功完成用攝像頭采集 圖像。如圖12所示。
* T D _ D e t e c t : 偵 測(cè) 電 視 譯 碼 芯 片 解 出 來(lái) 的 水 平 同 步 和 垂 直 同 步 是 否 穩(wěn) 定 。 另 外 , 由 于 N T S C 與 PA L 在 水 平 同 步 與 垂 直 同 步 的 時(shí) 序 特 性 上 有 細(xì) 微 差 別 , 在 此 還 可 以 簡(jiǎn) 單 偵 測(cè) 輸 入 影 像的制式為NTSC還是PAL。
* Reset_Delay:當(dāng)輸入影像的控制信號(hào)穩(wěn)定時(shí),系統(tǒng)的
復(fù)位信號(hào)會(huì)清除。由于各個(gè)子模塊接受到穩(wěn)定的影像信號(hào)會(huì) 有時(shí)間差,所以設(shè)計(jì)不同延遲時(shí)間的復(fù)位信號(hào)。
* ITU_656_Decoder:8位ITU-R BT.656標(biāo)準(zhǔn)接口的影像 數(shù)據(jù),再譯碼回16位亮度與彩度分開(kāi)的數(shù)據(jù)影像。
* Sdram_Control_4Port:4-Port SDRAM控制器。
* YUV422_to_444:將16位亮度與彩度的影像數(shù)據(jù),再生 成每像素24位的YCbCr的影像數(shù)據(jù)。
* VGA_Ctrl:VGA控制器,產(chǎn)生VGA顯示端的水平同步 與垂直同步信號(hào)。
圖13 顏色識(shí)別模塊流程圖
圖14 魔方還原算法流程例圖1
圖15 魔方還原算法例圖2
* I2C_AV_Config:串行I2C總線接口來(lái)控制譯碼器與音 頻編譯碼器芯片。4.2.2 顏色識(shí)別: 顏色識(shí)別模塊的數(shù)據(jù)流程如圖13所示。 CCD攝像頭獲取的圖像與數(shù)據(jù)的處理: 首 先 , 在 屏 幕 上 畫(huà) 9 個(gè) 方 框 , 讓 魔 方 的 9 個(gè) 格 子 在 框內(nèi),然后只獲取框內(nèi)區(qū)域的顏色數(shù)據(jù)。經(jīng)過(guò)多次試驗(yàn)得出最合適的比例是,方框的邊長(zhǎng)占70個(gè)像素點(diǎn)。然后,因?yàn)榇鎯?chǔ) 容量的限制,取每個(gè)方框正中心的10*10點(diǎn)陣的顏色信息代 表此方格色塊的顏色信息。
由于之后需要對(duì)這些點(diǎn)的RGB進(jìn)行整體處理,所以,首先獲取9個(gè)格子的10*10的RGB存入RAM中, 9個(gè)RAM對(duì)應(yīng)
9個(gè)格子的RGB緩存。然后,從9個(gè)RAM中取出RGB,求平均 值,這樣就完成了數(shù)據(jù)的初步處理,得到了9個(gè)格子的RGB 的平均值。
識(shí)別結(jié)果處理:
將得到的54個(gè)色塊的RGB值按順序輸入神經(jīng)網(wǎng)絡(luò)的162 維輸入向量,將會(huì)得到54個(gè)色塊的特征值。而標(biāo) 準(zhǔn)值分別 為:0表示白色,100表示紅色,200表示藍(lán)色,300表示綠 色,400表示黃色,500表示橙色,用特征值與標(biāo)準(zhǔn)值的誤差 來(lái)判斷最終輸出顏色。(未完待續(xù))
評(píng)論