1、1基于 FPGA 的运动控制系统2摘要:本系统采用 Cyclone ii 系列 FPGA 芯片为控制核心,利用皮肤检测和Bresenham 等原理实现对体态的检测、显示和小车控制。系统由 FPGA 体感识别系统和小车驱动控制系统组成。FPGA 体感识别系统由 Verilog 语言编写而成,该系统采集摄像头视频信息,通过皮肤检测原理获得体感信息。根据体感信息,产生相应的小车命令利用 NRF24L01 无线传感器发送至小车,同时利用Bresenham 算法在 VGA 显示屏上画出与体感信息对应的小人。小车驱动控制系统利用 MSP430F449 为控制核心,接受 NRF24L01 的信息后,通过 L
2、297+L298驱动模块驱动小车行进。整个系统易于操作,人际交互友好。关键词:FPGA,体感识别,皮肤检测,Bresenham,小车驱动3目录1 引言 .41.1 系统介绍 .41.2 系统功能描述 .42 系统整体方案 .53 系统设计与实现 .73.1 皮肤检测模块 .73.2 Bresenham 绘图模块 .83.3 无线控制模块 .93.4 小车驱动模块 .104 系统分析 .125 总结 .15参考文献 .1641 引言1.1 系统介绍体感技术属于 NUI(自然人机界面)的范畴,可以让用户通过肢体语言与周边设备或环境互动,其实现手段主要包括:惯性感测、光学感测以及惯性及光学联合感测。
3、市场上比较成熟的产品主要有:微软的 Kinect、索尼的 PS Move、任天堂的 Vii 以及来自华硕的 Xtion。但是上述的技术对于软件和硬件要求都比较高,不易于学习。本系统利用 DE2FPGA 开发板和摄像头,结合了 OpenCV 的皮肤检测思想,完成了手部追踪和脸部追踪的体感识别。该系统主要是追踪手部信息,根据不同的手势信息来驱动小车行走。体感识别由 Verilog 编写而成,整体思路简明清晰。同时,该系统还增加了虚拟小人的显示,小人会跟随手部信息而变化,使得整个系统操作起来更加生动有趣。1.2 系统功能描述本设计选用 FPGA 硬件处理信号,对图像信号的采集、存储数据同时进行,可以
4、达到高速的并行采集、实时分析和同步存储的目的。我们采用 Altera 公司的 Cyclone II EP2C35F672C6,为保证 FPGA 的稳定工作,选用 25M 的时钟对TRDB-D5M CMOS 摄像头的图像信号进行并行采集。将采集到的图像调整到 640480 的大小并将数据暂时存入 SDRAM 中。同时 VGA 控制模块读取SDRAM 中的信息,将视频信息显示在 VGA 屏上。本设计利用皮肤检测不断对视频信息中的皮肤进行追踪,从而实现手势追踪,并在左右屏中算出皮肤的中心点作为手部信息的坐标点,以此作为手势信息。根据上述手势信息,产生对小车的控制命令,通过 Nrf24L01 无线模块
5、发送至小车。小车接受信息后,作出相应行走动作。本系统提供按键便于用户进进行功能选择,如显示真实视频信息、皮肤信5息、虚拟小人等。皮肤信息用于不同背景环境下手势动作的调整,减少了系统的误判。62 系统整体方案该系统主要由 FPGA 体感识别系统和 MSP430 小车系统两个部分组成。系统框架图如图 2.1。小车控制系统体感识别系统F P G AM S P 4 3 0摄像头V G A显示器N R F 2 4 L 0 1电源电机驱动器步进电机小车N R F 2 4 L 0 1图 2.1 系统框图在 FPGA 体感识别系统中,首先通过 D5M 采集视频信息,因为该摄像头采集到的图像是 RAW 类型的图
6、像,不便于 VGA 显示,所以必须把 RAW 图像转化为 RGB 模式的图像,存入 SDRAM 中,以便 VGA 显示时使用。在SDRAM 控制时使用了 FIFO 的形式,实现了 SDRAM 的多接口写入和读出。从SDRAM 中读出的 RGB 信息,一方面可以送至 VGA 控制模块中,当(SW17/average a 16x16 cell blockwe_ds8);we_dsB 时,我们则认为该像素点为皮肤。利用上述思想,对视频信息处理后,可得出皮肤信息,算出左右区域皮肤像素点位置的平均值,视为左臂和右臂的位置信息。根据左臂和右臂在屏幕上的位置信息,产生小车控制信息,然后对小车进行无线控制。同
7、时根据左臂和右臂的位置信息,利用 Bresenham 算法从设定好的图表中划出简化的人形。3.2 Bresenham 绘图模块真实的直线是连续的,但由于显示器的精度是有限的,不可能真正显示连续的直线,用一系列离散化后的点来近似表现这条直线,如图 3.1 和图 3.2 所示。图 3.1 实际要求的直线及其近似点图 3.2 离散化后用像素点表示的直线Bresenham 直线算法能够高效地找到这些离散的点,其实现原理如图 3.3 所示。根据 Bresenham 算法,能准确的绘制出与控制者相同的动作信息,并反映到虚拟动画小人上。10图 3.3Bresenham 流程图3.3 无线控制模块从皮肤检测模块中可获知左手和右手的位置信息,将左手 Y 轴的位置信息、两手 X 和 Y 距离差信息和两手位置大小信息打包送至 NRF24L01 无线模块。NRF24L01 是 2.4GHz 的 ISM 频段的单片无线收发器芯片,它是 4 线 SPI通讯端口,通讯速率最高可达 8Mbp。利用 Verilog 模拟 SPI 通信,将数据送至NRF24L01 中, NRF24L01 自动将信息发送出去。无线控制模块具体实现如表 3.2 所示。3.4 小车驱动模块本系统小车由参赛队员自行设计加工完成,使用二项四拍的步进电机,利