



免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的运动控制系统摘要:本系统采用Cyclone ii系列FPGA芯片为控制核心,利用皮肤检测和Bresenham等原理实现对体态的检测、显示和小车控制。系统由FPGA体感识别系统和小车驱动控制系统组成。FPGA体感识别系统由Verilog语言编写而成,该系统采集摄像头视频信息,通过皮肤检测原理获得体感信息。根据体感信息,产生相应的小车命令利用NRF24L01无线传感器发送至小车,同时利用Bresenham算法在VGA显示屏上画出与体感信息对应的小人。小车驱动控制系统利用MSP430F449为控制核心,接受NRF24L01的信息后,通过L297+L298驱动模块驱动小车行进。整个系统易于操作,人际交互友好。关键词:FPGA,体感识别,皮肤检测,Bresenham,小车驱动目录1 引言41.1 系统介绍41.2 系统功能描述42 系统整体方案53系统设计与实现73.1 皮肤检测模块73.2 Bresenham绘图模块83.3 无线控制模块93.4 小车驱动模块104 系统分析125 总结15参考文献161 引言1.1 系统介绍体感技术属于NUI(自然人机界面)的范畴,可以让用户通过肢体语言与周边设备或环境互动,其实现手段主要包括:惯性感测、光学感测以及惯性及光学联合感测。市场上比较成熟的产品主要有:微软的Kinect、索尼的PS Move、任天堂的Vii以及来自华硕的Xtion。但是上述的技术对于软件和硬件要求都比较高,不易于学习。本系统利用DE2FPGA开发板和摄像头,结合了OpenCV的皮肤检测思想,完成了手部追踪和脸部追踪的体感识别。该系统主要是追踪手部信息,根据不同的手势信息来驱动小车行走。体感识别由Verilog编写而成,整体思路简明清晰。同时,该系统还增加了虚拟小人的显示,小人会跟随手部信息而变化,使得整个系统操作起来更加生动有趣。1.2 系统功能描述本设计选用FPGA硬件处理信号,对图像信号的采集、存储数据同时进行,可以达到高速的并行采集、实时分析和同步存储的目的。我们采用Altera公司的Cyclone II EP2C35F672C6,为保证FPGA的稳定工作,选用 25M的时钟对TRDB-D5M CMOS摄像头的图像信号进行并行采集。将采集到的图像调整到640480的大小并将数据暂时存入SDRAM中。同时VGA控制模块读取SDRAM中的信息,将视频信息显示在VGA屏上。本设计利用皮肤检测不断对视频信息中的皮肤进行追踪,从而实现手势追踪,并在左右屏中算出皮肤的中心点作为手部信息的坐标点,以此作为手势信息。根据上述手势信息,产生对小车的控制命令,通过Nrf24L01无线模块发送至小车。小车接受信息后,作出相应行走动作。本系统提供按键便于用户进进行功能选择,如显示真实视频信息、皮肤信息、虚拟小人等。皮肤信息用于不同背景环境下手势动作的调整,减少了系统的误判。2 系统整体方案该系统主要由FPGA体感识别系统和MSP430小车系统两个部分组成。系统框架图如图2.1。图 2.1系统框图在FPGA体感识别系统中,首先通过D5M采集视频信息,因为该摄像头采集到的图像是RAW类型的图像,不便于VGA显示,所以必须把RAW图像转化为RGB模式的图像,存入SDRAM中,以便VGA显示时使用。在SDRAM控制时使用了FIFO的形式,实现了SDRAM的多接口写入和读出。从SDRAM中读出的RGB信息,一方面可以送至VGA控制模块中,当(SW17&SW16)=1时,显示视频信息;另一方面送至皮肤检测模块,将检测为皮肤的区域颜色设为白色,中心点为红色,非皮肤区域为黑色,当(SW17&SW16)=1时,显示皮肤信息。皮肤检测获得的手势信息一方面送至虚拟小人显示模块,该模块利用Bresenham算法画出虚拟小人,存于SRAM中,当SW16=1时,显示虚拟小人;另外一方面送至小车控制模块,根据手势信息在屏幕上的位置信息,利用无线传感器给小车发送行走命令。其具体流程图如图2.2所示。MSP430小车系统由MSP430F499控制器,NRF24L01无线模块、L297+L298组合为小车驱动器和二项四拍步进电机组成。MCU不断读取NRf24L01接收端的信息,根据受到的指令,分别给驱动器不同频率的方波和方向信息。驱动器将不同频率的方波转换成不同频率的PWM波,从而实现了小车的前进、后退、加速、减速、转弯等动作。图2.2 FPGA系统流程图3系统设计与实现系统实现的主要原理是利用皮肤与周围事物在像素点上YUV的值不相同,以此检测出皮肤。根据皮肤检测所得到的左臂和左臂的位置信息,产生小车移动命令,通过Nrf24l01无线模块发送至小车。小车对接受到的信息进行处理,作出相应行为。3.1 皮肤检测模块在视频信息中,每帧中图像的像素点都有R、G和B三个分量的值,将R、G和B转换成YUV格式,公式如下: Y=(R+2G+B)/4,U=R-G,V=B-G具体实现代码如表3.1所示:表3.1 皮肤检测模块算法实现/IF100(R-G)BLUE,ITSASKINPIXEL/(G-B)CHECKISNOTDONEASITSREDUNDANTFORLIVECAMERAFEEDSif(Ur10d100&UrBlue)begindata_in8)+16hFF;/averagea16x16cellblockwe_ds=1b1;/alwayswriteendelsebegindata_in8);we_ds=1b1;/alwayswriteend 由于SDRAM和SRAM分别被占用,对于皮肤检测只能是用Verilog语言编写。将读取到的RGB信息转换成YUV信息。将YUV信息送至皮肤滤波器即可产生皮肤图像信息。作品所利用的DE2的VGA的RGB都是10bit的。经过多次实验得出,当像素点符合100U500时属于皮肤的颜色范围。当像素点符合100UB时,我们则认为该像素点为皮肤。利用上述思想,对视频信息处理后,可得出皮肤信息,算出左右区域皮肤像素点位置的平均值,视为左臂和右臂的位置信息。根据左臂和右臂在屏幕上的位置信息,产生小车控制信息,然后对小车进行无线控制。同时根据左臂和右臂的位置信息,利用Bresenham算法从设定好的图表中划出简化的人形。3.2 Bresenham绘图模块真实的直线是连续的,但由于显示器的精度是有限的,不可能真正显示连续的直线,用一系列离散化后的点来近似表现这条直线,如图3.1和图3.2所示。图3.1 实际要求的直线及其近似点图3.2 离散化后用像素点表示的直线Bresenham直线算法能够高效地找到这些离散的点,其实现原理如图3.3所示。根据Bresenham算法,能准确的绘制出与控制者相同的动作信息,并反映到虚拟动画小人上。图3.3Bresenham流程图3.3 无线控制模块从皮肤检测模块中可获知左手和右手的位置信息,将左手Y轴的位置信息、两手X和Y距离差信息和两手位置大小信息打包送至NRF24L01无线模块。NRF24L01是2.4GHz的ISM 频段的单片无线收发器芯片,它是4线SPI通讯端口,通讯速率最高可达8Mbp。利用Verilog模拟SPI通信,将数据送至NRF24L01中,NRF24L01自动将信息发送出去。无线控制模块具体实现如表3.2所示。3.4 小车驱动模块本系统小车由参赛队员自行设计加工完成,使用二项四拍的步进电机,利用L297+L298模块控制小车,控制简易,性能稳定。小车MCU是利用TI的MSP430系列的MCU,拥有时钟资源丰富,功耗低,编程简易等特点。利用MSP430读表3.2无线控制模块代码实现nrf24l01_control U10( .clk(nrf_clk), .reset_n(DLY_En), .key(start_end_1), .ce(GPIO_00), .irq(GPIO_05), .en_signal(nr_se_en_signal1), .tx_isdone(se_nr_end_signal1), .tx_data_byte(Tx_data_byte1), .tx_address_data(Tx_address_data1), .rx_data(rx_data1), .nrf_send_data(send_data)/(6h00,SW) );send_function U11( .clk(nrf_clk), .reset_n(DLY_En),.send_en_signal(nr_se_en_signal1),.tx_data_byte(Tx_data_byte1),.tx_address_data(Tx_address_data1),.rx_data(rx_data1),.CSN(GPIO_01),.MISO(GPIO_04),.MOSI(GPIO_03),.SCLK(GPIO_02),.send_end(se_nr_end_signal1);根据MRF24L01接收到的数据,将数据进行处理,转换成不同频率的方波和方向信息,通过IO送至L297模块。L297会根据接受的方波产生二项四拍步进电机所需的PWM波。L297+L298电路图如图3.4所示。图3.4 小车L297+L298电路图4 系统结果与分析系统对小车运动控制的状态如表4.1所示。表4.1小车动作控制表控制者动作小车动作双手摊开,水平朝外启动双手摊开,向上托举前进双手摊开,向下平放后退双手合拢,水平朝外刹车双手摊开,左手高于右手左转双手摊开,右手高于左手右转如图4.1所示,当控制者双手摊开,水平朝外时,位于FPGA上的皮肤检测模块检测出双手的位置,绘制皮肤点集,如图4.1中图所示,图中白色标注点为皮肤点,红色标注点为皮肤中心点。同时,系统还会绘制模拟小人以显示控制者的动作,如图4.1右图所示,控制者并拢双手,动画小人也并拢双手,此外,系统还提供了硬件按键,使得控制者可以在皮肤点集图和模拟小人图之间流畅切换。经过反复测试,系统能成功快速识别出启动动作,识别率达90%,位于小车上的无线模块接收到FPGA发送过来的前进信息后,小车开始启动,实验表明,小车反映速度极快,能迅速对FPGA的控制指令做出反映。图4.1 小车启动动作检测图小车前进动作的检测如图4.2所示,当控制者双手平放并保持向上托举的状态时,位于FPGA上的皮肤检测模块检测出双手的位置,绘制皮肤点集,如图4.2中图所示,图中白色标注点为皮肤点,聚集在屏幕上部分,系统成功检测出托举动作,经反复实验,该动作识别率达98%,无线模块接收到FPGA发送过来的前进信息后,做出前进动作命令,小车前进。除了控制前进动作以外,系统还创新性的添加进了速度控制机制,控制者双手托举得越高,皮肤检测模块最终计算出的小车行进速度就越快,同时,为了防止小车速度过快带来的前进不稳定的问题,系统设置了最高运行速度阈值1m/s,当计算出的速度值高于阈值时,将按阈值替代处理。图4.2小车前进动作检测图小车的后退动作检测原理类似前进动作,控制者双手摊开,向下平放,如图4.3所示,FPGA皮肤检测模块检测出皮肤点集,并绘制于屏幕下方,动画小人模拟相应的动作。经反复实验,该动作识别率达92%。图4.3 小车后退动作检测图控制者双手摊开并且左手放置高于右手时,代表发出小车左转命令,如图4.4所示,FPGA皮肤检测模块检测出皮肤点集分别位于屏幕左下角和屏幕右上角,动画小人抬高左手,放低右手,成功模拟出控制者的手势。经实验,该动作识别率达95%。图4.4 小车左转动作检测图小车右转实现方法类似左转,控制者双手摊开并且右手放置高于左手,代表发出小车右转命令,如图4.5所示,FPGA皮肤检测模块检测出皮肤点集分别位于屏幕左上角和屏幕右下角,动画小人抬高左手,放低右手,成功模拟出控制者的手势。经实验,该动作识别率达94%。图4.5 小车右转动作检测图小车的刹车与前几个动作较为不同,控制者双手合拢,掌心水平朝外,如图4.6所示,皮肤检测模块检测出皮肤点集位于屏幕中下方,动画小人作停止状态。图4.6 小车停止5 总结本文对基于FPGA的小车体感识别控制系统具体设计方案进行了详细介绍,介绍了该系统实现的原理和设计方法。在系统算法方面,本文首先分别介绍了皮肤检测算法和Bresenham算法的基本原理,采用FPGA实现了图像的采集、显示和复杂算法处理,利用纯硬件的处理方式不仅提高了图像处理速度,而且减小了系统的体积。本次系统设计使用的是友晶公司的DE2开发板和D5M摄像头实现了体感识别的功能,大大减少了体感识别学习的成本。同时程序简易,更易于更多的人学习。同时,我们的设计还存在很多的不足,去环境的干扰与识别的稳定性和准确度方面都不是太好。以上的不足一方面是Verilog语言在图像处理方面的局限性,利用较为成熟的软件图像处理效果会更好,另外一方面由于FPGA开发板资源的有限,很多功能被限制了。通过亲身去研究和实现体感识别,更加深入了解这门技术的发展空间之大。相信随着技术的发展,越来越多体感方面的技术会越来越多地应用到我们生活的方方面面,提高了操作电子产品的简易性、有趣性。参考文献1Ooi, M, P. Hardware implementation for face detection on Xilinx Virtex-II FPGA using the reversible compone
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 集安市2025-2026学年九年级下学期语文月考测试试卷
- 高速铁路行车安全课件
- 高速铁路工务安全课件
- 电脑知识培训技术课程课件
- 建设工程涉及土地利用总体规划修改服务合同
- 电脑打开课件显示问题
- qe考试题及答案
- 电磁学知识培训心得总结
- 电焊知识点培训总结课件
- 电焊班基础知识培训课件
- 公共基础知识试题(附答案)
- 人教版物理九年级全一册16.1《电压》听评课记录
- 2025年湖北省中考语文真题(含答案)
- (2025年标准)被迫堕胎补偿协议书
- 2025年四川三支一扶考试公共基础知识试卷
- 咸阳赤壁市事业单位招聘笔试真题2024
- 战术基础动作低姿匍匐
- 2025年公文核改竞赛试题及答案
- 2025年秋季学期开学第一次中层班子会上校长精彩讲话:向小处看往实里干朝远处谋
- 下肢开放性损伤课件
- 有机硅行业面试攻略:高级岗位面试题库
评论
0/150
提交评论