ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:323.91KB ,
资源ID:10638145      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10638145.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图像的摄取与图像处理算法的编写.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图像的摄取与图像处理算法的编写.docx

1、图像的摄取与图像处理算法的编写 王广超F07030095070309330图像的摄取与图像处理算法的编写,小车跟踪算法的编写张瑞韬F07030095070309334迷宫的制作,小车串口通信方面的实现李佳F07030095070309315单片机程序的编写,小车控制部分算法的编写,后勤徐晓宁F070300950703093迷宫的制作,小车壳子的制作,小车串口通信方面的实现摘 要:本项目设计实现小车在计算机控制下走出迷宫的功能。有一台小车和一个PC,小车以ATMEL公司的AT89S52芯片为核心,计算机用VC+与OpenCV处理采集到的图片判断小车及迷宫的位置信息,计算并选择路线,通过无线指令控

2、制小车动作,使之沿最短路径离开迷宫。关键词:OpenCV,迷宫算法,串口通信,单片机小车目 录1. 整体介绍 12. 硬件部分 32.1硬件元器件 42.2调试过程 83. 软件部分 93.1 图像处理 93.1.1 原始图像 93.1.2 透视变换 93.1.3 迷宫结构分析 93.1.4 最短路径 113.1.5 小车定位 113.2 小车实时调整 114. 串口通讯 134.1 有线方面 134.2 无线方面 135 . 项目总结与心得 156.致谢 171. 整体介绍 由摄像头(USB接口)实时捕捉迷宫内小车的位置情况,通过USB线缆传送至电脑里编写的上位机软件,软件通过图像识别找出当

3、前小车的位置信息及迷宫的信息,经过计算,作出控制决策,生成控制信号,并经通讯模块发送至小车。 小车上的控制电路对控制信号作出相应反应,驱动电机。2. 硬件部分2.1硬件元器件这次科创3实验,用到两块主要的芯片,一块是CMOS8位微控制器,其主要功能是: 兼容MCS-51指令系统 8k可反复擦写(1000次)ISP FLASH ROM 1000次擦写周期 32个双向I/O口 4.5-5.5V工作电压 3个16位可编程定时/计数器 时钟频率0-33MHz 全双工UART串行中断口 128x8bit内部RAM 低功耗空闲和省电模式 中断唤醒省电模式 3级加密位 看门狗(WDT)电路 软件设置空闲和省

4、电功能 灵活的ISP字节和分页编程 双数据寄存器指针AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。AT89S52使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,AT89S52拥有灵巧的8 位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16位定时器/

5、计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 其PDIP图如下:另一块芯片是L298N,用它来控制两个电机。管脚图如下:每个管脚正常工作时的电参数如下:2.2调试过程在小车硬件控制部分的设计过程中,其他方面进行得比较顺利,关键难点在于确定小车进退转弯的速度参数,由于迷宫材料打滑,此速度知道最后我们也没有成功实验出来,也可以说是

6、一个遗憾。3. 软件部分工具:VC+、OpenCV主要流程: 1摄像头获取原始图像2透视变换得到迷宫俯视图3分析迷宫结构4指定入口出口,计算最短路径5摄像头实时捕捉小车位置,与计算路径相比较,并通过串口自动向小车发送调整指令6小车最终到达出口3.1 图像处理3.1.1 原始图像利用OpenCV的cvQueryFrame函数从摄像头获取原始图像,虽然效率不高,但考虑到小车控制中各个环节的精度与效率,此处并不是瓶颈,故可以接受。3.1.2 透视变换迷宫路线计算和小车位置判断都基于透视变换后的俯视图,OpenCV提供了透视变换的函数WarpPerspective,该函数按照指定变换矩阵进行变换,而变

7、换矩阵由GetPerspectiveTransform从变换前后两个图像中的4个对应点计算出来。3.1.3 迷宫结构分析迷宫的分析可以通过“测试线”进行:矩形可看作迷垂直方向的宫壁,而红色细线即为其“测试线”(类似的,水平方向迷宫壁的“测试线”为垂直方向)。将迷宫等分为8*8的小块,则“测试线”应设置在每小块周围的4个迷宫壁的中垂线位置。通过判断“测试线”上迷宫壁的像素个数,可以推断出该“测试线”是否跨越了一个迷宫壁,从而得到整个迷宫的结构。右侧窗口为透视变换后的实时图像,蓝色的网格线将迷宫等分为8*8的小格。左侧的半个窗口为处理的结果,其中粉红色的区域即为迷宫的最短路径,是由右图中一个个的小

8、格组成。而黄色网格线即为关键的“测试线”,绿色部分为标记出的迷宫壁,可以看出“测试线”正好与迷宫壁正交,准确地检测出迷宫的结构。3.1.4 最短路径最短路径的计算采用标号的广度优先搜索,第一次搜索到出口时,搜索树的层数是最小的。而且搜索时尽量保持方向不变,就可以再多条最短路径中选择出转向次数最少的那条,易于控制。3.1.5 小车定位为了排除迷宫壁与迷宫地面的干扰,小车需要用蓝色包装。然后用摄像头进行小车的特写拍照(照片基本上就是一团蓝色),之后就可以通过OpenCV的CalcBackProject函数得到照片在实时图像中的反向投影。反向投影是一幅图像在另一幅图像中出现的概率,小车的特写在迷宫中

9、出现概率最大的地方自然就是小车当前在迷宫中的位置。而跟踪函数CamShift就是跟踪这块概率最大的区域,并返回这块区域的位置角度大小等信息。而小车定位最终确定小车在8*8的迷宫中哪一格,从而与路径信息比对。3.2 小车实时调整小车基本行进方式为大步向前、小步向前、小步后退、左转、右转。各状态两个电机的速度事先设置好,实际过程中只需向小车发送相应的指令即可。走迷宫的路径已计算出,小车的实时位置由摄像头捕捉并确定。由于小车一定被迷宫壁限制在正确的方向,对小车运动的判断只基于目前应该在的位置与下一步方向:当小车当前位置与应在位置有较大差距时根据情况发送小步前进后退指令,确保小车停在应在位置附近当小车

10、下一步方向不变时,大步前进。当小车下一步方向改变时,判断并发送左转右转指令,同时监视小车方向。由于迷宫壁的限制作用,小车一定能转向成功,并且方向的巨大改变能被明显的检测出来,则停止转向。直到到达出口为止。4. 串口通讯小车和电脑之间通过串口通信,有无线和有线两个方案,首先实现的是有线方案其实无线和有线的程序方面是一样的,硬件连接上有所区别罢了4.1 有线方面硬件:首先要在计算机上使用一个虚拟串口驱动程序将USB端口虚拟出一个串口,再用线联到小车对应端口就完成了。软件:串口程序有许多种写法,在C里也有对应的库函数,但由于我们要发送的消息结构比较简单,就不需要这些专用的库函数了,直接使用windo

11、ws.h中的函数了在有线的阶段,整个程序比较简单,因为计算机端每次发送,小车都能稳定正确地收到。4.2 无线方面但在无线的时候,小车的接收显得十分脆弱,我们的方案是首先多次发送,然后对发送的消息进行一定的加工。即加上初始的用于对齐的一个字符,在小车接收到此字符之后,再接受接下来的指令。但即使是这样,小车仍然不是十分听话,进过测试,只有当发送命令的次数超过10次/秒,而且保持连续不断地发送时,才能保证小车很好地执行指令。但这样的发送方案是我们所不能接受的,因为每次从摄像头拍摄,到图像处理,到给出路径,到发送指令需要的时间就远远超过这个限度。引起这个难点的主要原因在于,教室内每个无线发送和接收模块

12、的频率都是一样的,而且无限模块的发送功率都比较大,导致互相之间的干扰十分严重,小车经常接受到不属于自己的杂乱信号,对小车正确执行指令带来很大难度。由于我们不能保证在最后测试时不受其他小组的干扰,所以只能最后放弃无线计划。5 . 项目总结与心得这次科创对于我来说是一个非常严峻的挑战,涉及到的很多知识都是我们所未知的。 在这次科创当中,作为组长我充满了热情,在各组员们分工协作下,我们终于完成了计算机控制小车走迷宫。 我觉得这是一门非常好的课,从中我们学到了团结互助,提高了分析问题解决问题的能力,并能针对问题选择需要的知识并获取知识。这是非常宝贵的。6.致谢我们科创小组能够基本完成这次科技创新三的课程实验,是要感谢多位老师和同学的。首先要感谢开设这门课程并负责最终检验的的张士文老师,是他给我们宽松的氛围、齐备的材料,才使我们有信心和实力去做这个科创实验。其次要感谢的是轮流在实验室给予我们悉心指导的各位助教,是他们耐心地听我们的询问以及给我们指点才使我们能够顺利地走在正确的设计路线上,这使得我们受益匪浅,也是我们能顺利做完课程实验不可缺少的因素之一。还要感谢的是在实验室和我们一起做实验,给我们帮助指导的其他组同学,与他们在一起做科创实验我们互相学习,互相帮助,一起努力,一起奋斗,使得我们有了不断开拓进取的精神和动力。在此,我们对所有给予过指导和帮助的老师和同学致以衷心的感谢和敬意!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1