微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 速解魔方机器人(上)

速解魔方机器人(上)

时间:03-07 来源:电子产品世界 点击:

4.1.2   FPGA部分
在FPGA部分,分为六个模块:CCD图像采集模块、图 像处理模块、颜色识别模块、VGA显示模块、舵机转动模 块、SoC_System模块。
(1)CCD图像采集模块
CCD摄像头与CMOS摄像头相比,在强光或弱光的不 利条件下,图像画质都更高,我们直接采用友晶DE1-SoC配

图8 VGA方案一效果图  

图9 VGA方案二效果图

图10 VGA方案二效果图
套提供的稳定高效的CCD图像采集模块。 (2)图像处理模块 通过图像采集模块,得到一帧分辨率为640*480的RGB
图像,在图像处理模块中,把一帧画面中所需部分像素的RGB值存储到RAM中供颜色识别模块使用。
(3)颜色识别模块
此模块从RAM中读出魔方9个格子中心的10*10个像素 点的RGB数据,首先求出R、G、B各自的平均值,然后把这 些平均值通过lw_AXI_FPGA-to-HPS Bridge送到HPS部分。
(4)VGA显示模块

图11 舵机转动模块机械手臂    

图12 图像采集示意图
设计了两套VGA显示方案,分别如下:
方案一:将魔方的六个面展开平铺在VGA的右侧,在 魔方机器人还原魔方的过程中,这个平面效果图上的各个小块也能跟着转动,最后跟魔方机器人里面的魔方同步还原
成六面。在VGA左侧呈现的是CCD摄像头获取的画面,这 样大家也可以通过VGA显示直观地看到魔方机器人的工作状 况。效果如图8。
方案二:在开发板上运行Ubuntu12.4系统(如下图4-3所 示),在该系统下的Qt Creator环境中,通过OpenGL绘制了一 个3D效果的魔方,在VGA上呈现这个3D魔方,在魔方机器 人还原魔方的过程中,VGA上的3D魔方同步破解,与破解 系统一起同步完成破解。3D效果比平面效果最大的优势在 于,它给人的感觉更逼真,就像一个真的魔方在屏幕上自己 破解,给大家一种更好的视觉感受。效果如图9所示。
方案二所呈现的效果图是在i386的主机 上实现的,所使用的系统也是Ubuntu12.4, 但是在移植到DE1-SoC开发板的过程中出现 了有些库函数无法调用的问题,由于时间原 因,放弃了方案二,选择了方案一。
(5)舵机转动模块 通过控制PIO端口控制机械手臂的旋转
伸缩。机械手臂使用廉价环保的塑料条与舵 机拼接而成,结构设计确保稳定灵活,才能 准确还原魔方,因此我们设计了如图11所示结构的机械手
臂。
4.2 系统硬件设计
4.2.1   图像采集
摄像头输入的影像信号送至开发板上的电视译码芯片 (ADV7180),经过译码之后,转换成8位ITU_R BT.656标准 接口的影像数据送至Cycolne  V E FPGA,经ITU-R 656译码器 将亮度与彩度信号分开,再做解交错与缩放处理,然后将亮 度与彩度信号转换成VGA显示的红、绿、蓝信号,Cycolne VE FPGA将数字影像信
号 送 至 D E 1 开 发 板 上 的VG A数码转换芯片 (A DV 7 1 2 3 ) , 最后成 功完成用摄像头采集 图像。如图12所示。
*  T D _ D e t e c t : 侦 测 电 视 译 码 芯 片 解 出 来 的 水 平 同 步 和 垂 直 同 步 是 否 稳 定 。 另 外 , 由 于 N T S C 与 PA L 在 水 平 同 步 与 垂 直 同 步 的 时 序 特 性 上 有 细 微 差 别 , 在 此 还 可 以 简 单 侦 测 输 入 影 像的制式为NTSC还是PAL。
* Reset_Delay:当输入影像的控制信号稳定时,系统的
复位信号会清除。由于各个子模块接受到稳定的影像信号会 有时间差,所以设计不同延迟时间的复位信号。
* ITU_656_Decoder:8位ITU-R BT.656标准接口的影像 数据,再译码回16位亮度与彩度分开的数据影像。
* Sdram_Control_4Port:4-Port SDRAM控制器。
* YUV422_to_444:将16位亮度与彩度的影像数据,再生 成每像素24位的YCbCr的影像数据。
* VGA_Ctrl:VGA控制器,产生VGA显示端的水平同步 与垂直同步信号。

图13 颜色识别模块流程图

图14 魔方还原算法流程例图1

图15 魔方还原算法例图2
* I2C_AV_Config:串行I2C总线接口来控制译码器与音 频编译码器芯片。4.2.2 颜色识别:  颜色识别模块的数据流程如图13所示。 CCD摄像头获取的图像与数据的处理: 首 先 , 在 屏 幕 上 画 9 个 方 框 , 让 魔 方 的 9 个 格 子 在 框内,然后只获取框内区域的颜色数据。经过多次试验得出最合适的比例是,方框的边长占70个像素点。然后,因为存储 容量的限制,取每个方框正中心的10*10点阵的颜色信息代 表此方格色块的颜色信息。
由于之后需要对这些点的RGB进行整体处理,所以,首先获取9个格子的10*10的RGB存入RAM中, 9个RAM对应
9个格子的RGB缓存。然后,从9个RAM中取出RGB,求平均 值,这样就完成了数据的初步处理,得到了9个格子的RGB 的平均值。
识别结果处理:
将得到的54个色块的RGB值按顺序输入神经网络的162 维输入向量,将会得到54个色块的特征值。而标 准值分别 为:0表示白色,100表示红色,200表示蓝色,300表示绿 色,400表示黄色,500表示橙色,用特征值与标准值的误差 来判断最终输出颜色。(未完待续)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top