- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
标题科技创新-计算机控制小车走迷宫
科技创新3-- 计算机控制小车走迷宫
(M03小组)
概述:
小车走迷宫”,主要的方法示意图如下:
1. 图像处理本项目的第一步就是要实现图像的识别和处理。我们组选择了使用拥有开源代码库的Opencv做为我们的图像处理工具。Opencv在安装了visual studio之后便可在vc编译器上编程。在听了老师的讲座、自己查阅资料、试编例程后,就能一步步学会使用Opencv提供的工具,用来给我们服务。在图像处理阶段,要实现迷宫的识别,入口和出口的识别,小车位置的识别,小车头尾的识别等多重任务。
2. 路径判断在已能识别迷宫的基础上,实现根据出口和入口或根据小车位置和出口而求最短路径。相对于图像处理而言,路径的计算是相对简单的小问题了。但是,最佳路径在后续的步骤中将十分重要。
3.串口通信及单片机控制在这部分,还要简单地学习下单片机编程的知识。把自己的小车控制程序烧入单片机,同时学会如何在程序根据路径和小车位置给小车发送下一步的运行方向指令。串口通信的相关知识也需要有所了解。成员介绍
组长:
贾钟烨
负责上位机图像处理,迷宫路径识别与指令计算工作。
组员:
杨昊
负责单片机编程和硬件调试工作。
臧硕
负责串口通讯部分和硬件联合调试工作。
郑吉聪
负责迷宫,小车外壳制作,后期处理工作。
软件部分为图像处理,路径计算,串口通信三个部分。
软件执行总流程为:
其中,图像处理采用C++结合OpenCV实现,由于OpenCV 1.0不支持DirectX摄像头驱动,因此又配合了第三方库CameraDS以驱动摄像头。首先运行初始化。摄像头采集图像后,由于迷宫经投影角度发生变化,故使用函数OpenCV库函数cvWarpPerspective(),进行透视变换后得到迷宫的正上方俯视图。然后进行二值化。由于已知迷宫为4*4方格,因此编写函数checkVert(),checkHori() 对每个方格边界进行采样,采样遍历所有方格,之后可以得到图的矩阵。示意如下:
vert: check whether ( x, y) ( x, y+1) are connected
?????? if so, set ( x, y)-VertPlus ( x, y+1)-VertMinus to be true
hori: check whether ( x, y) ( x+1, y) are connected
?????? if so, set ( x, y)-HoriPlus ( x+1, y)-HoriMinus to be true
而后,进行路径计算,第一步得到的图的数据结构为一个特化的邻接矩阵。考虑到小车转弯难度较大,因此路径搜索采用特化的DFS,编写函数ComputePath()和递归函数goHoriPlus( ),goVertPlus( ),goVertPlus( ),goVertPlus( ) 优先考虑直行。搜索过程中使用一个“节点栈”保存路径信息,即到达节点时压栈,离开节点时弹栈,DFS至出口终结,路径上所经过的节点均保留在栈中。之后利用节点栈计算指令。编写函数 initInstruction( void) 根据节点坐标求出每一步应下达给小车的指令F(前进)、L(左转)、R(右转)。
最后,使用MuMega Technologies提供的VC++类CSerial实现串口通信,以下为其定义部分
其中使用Open函数用于打开端口,Close函数用于关闭端口,SendData函数用于发出字符。
使用一个自定义函数SendByte调用该类成员函数,并将其成员函数Open返回值(True表示端口正常打开)作为反馈值返回给图像处理程序以判断数据是否成功发送。通过发送与下位机程序约定好的代表各种动作命令的字符(F、L、R)以达到控制小车运动的效果。 运行截图:透视变换二值化计算路径和命令实验室提供器材简介:
小车分为三个部分,底板部份、车体部份和89S52部份。底板部分负责向小车车体部份的电机提供8V电压,向89S52提供 5V工作电压以及转换各种信号。车体部份主要为上层芯片和整体提供支撑,它的电机为小车提供动力前进。89S52部份负责识别收到的信号,并将其转换成电机的控制信号。
无线模块分为收发两部分,发送部分与串口连接,接受串行通讯标准的TTL高低电平,将其调制后作为无线信号发送出去。接受部份将发出的无线信号转化成标准 串行通讯信号发送给小车。无线接收模块的Vcc与89S52上层版的Vcc连接,GND接电路板的任一接地端。信号输出端与89S52上层版的RxD连 接,由于底板三极管通常是坏的,可将上层板RxD与底板分开。
USB转RS232线将增加电脑一个COM口,对于电脑与小车进行串行通信来说该线
您可能关注的文档
- 工程伦理守则.PPT
- 工程伦理管理学院-明新科技大学.PPT
- 工程-中达建设集团股份有限公司.DOC
- 工程技术研究中心建设项目-河北科技厅.DOC
- 工程教育专业认证-郑州轻工业学院教务处.DOC
- 工程环境影响评价评价.DOC
- 工程硕士学位论文模板-信息与控制工程学院.DOC
- 工程验收资料监督资料抽查记录-珠海住房和城乡规划建设局.DOC
- 工资薪金如何纳税税收协定四.PPT
- 工艺流程-衡阳环境保护局.DOC
- 《C语言程序设计:从计算思维到项目驱动(微课视频版)》课件 第8章 结构体与共用体.pptx
- 《初中毕业生学业考试指导书》 生物 第一部分 课件汇总 主题1--6 生物体的结构层次---遗传与进化.ppt
- 电路与电子技术-课件 第13章 时序逻辑电路.pptx
- 汽车生产现场管理 第2版 课件全套 模块一任务四 四 了解情商的能力组成 --- 8-7 任务五 三、设备安全管理的“三勤”.pptx
- 《智能车Python编程设计》 课件全套 第1--12章 Python程序设计(开场篇) ---Python的GUI编程.pptx
- 《AIGC与新媒体运营:文案写作图像处理音视频制作平台发布(慕课版)》-教案.docx
- 《智能车Python编程设计》 课件 第7--12章 Python函数及模块 ---Python的GUI编程 .pptx
- 《中小型企业网搭建》(中级篇)课件 项目1--5 组建中小企业的办公网 - -使用静态路由实现多部门网连通.pptx
- 电路与电子技术-课件 第12章 组合逻辑电路.pptx
- 《中小型企业网搭建》(中级篇)课件 项目6--10 通过动态路由实现多部门网连通 - -在企业网中部署IPv6 .pptx
原创力文档


文档评论(0)