计算机控制小车走迷宫实验报告.docx_第1页
计算机控制小车走迷宫实验报告.docx_第2页
计算机控制小车走迷宫实验报告.docx_第3页
计算机控制小车走迷宫实验报告.docx_第4页
计算机控制小车走迷宫实验报告.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科技创新【3】实验报告项目名称:计算机控制小车走迷宫目录一、团队信息 2二、整体介绍 3三、硬件部分 4四、软件部分 7五、实验总结 10一、 团队信息1、组员信息2、分工情况:负责处理图像,将图像数据转换为二维数组;通过比较和运算提取颜色;撰写实验报告。:负责用C+实现迷宫算法,提取路径,生成最佳路径;撰写实验报告。:负责串口通信,小车控制模块编程;撰写实验报告。:负责用C+实现迷宫算法,调试,拍照片、视频;撰写实验报告。:负责小车硬件焊接,处理图像,将图像数据转换为二维数组;撰写实验报告。二、 整体介绍实验整体介绍实验方案设计实验方案:1. 由摄像头(USB接口)实时捕捉迷宫内小车的位置和迷宫地形,通过USB线缆传送至电脑里编写的上位机软件,软件通过图像识别找出当前小车的位置信息及迷宫的信息,经过计算,作出控制决策,生成控制信号,并经通讯模块发送至小车。 2. 小车上的控制电路对控制信号作出相应反应,驱动电机。 三、硬件部分1、实验室室提供器材简介: 小车分为三个部分,底板部份、车体部份和89S52部份。底板部分责向小车车体部份的电机提供8V电压,向89S52提供5V工作电压以及转换各种信号。车体部份主要为上层芯片和整体提供支撑,它的电机为小车提供动力前进。89S52部份负责识别收到的信号,并将其转换成电机的控制信号。 无线模块分为收发两部分,发送部分与串口连接,接受串行通讯标准的TTL高低电平,将其调制后作为无线信号发送出去。接受部份将发出的无线信号转化成标准 串行通讯信号发送给小车。无线接收模块的Vcc与89S52上层版的Vcc连接,GND接电路板的任一接地端。信号输出端与89S52上层版的RxD连 接,由于底板三极管通常是坏的,可将上层板RxD与底板分开。 USB转RS232线将增加电脑一个COM口,对于电脑与小车进行串行通信来说该线是透明的。其USB端接电脑,TxD接无线发送模块的数据端,Vcc与发送模块Vcc相连,GND与发送模块GND连接。2、芯片介绍: AT89S52: AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。AT89S52使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统 可编程,亦适于常规编程器。在单芯片上,AT89S52拥有灵巧的8 位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 与MCS51兼容;8K支持在线编程(ISP)的FLASH结构程序存储器,1000次擦写寿命;工作电压为4.0V5.5V;全静态工作:024MHz;3级程序安全加密保护;256*8位内部RAM;32个可编程I/O端口;3个16位定时器/计数器;8个中断源;一个全双工异步串口;支持低功耗及掉电模式;支持中断从掉电模式唤醒;内置看门狗;双数据指针;工业级产品,温度范围(-40C到85C),PU为无铅环保产品。 另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 其PDIP图如下: AT89S52芯片的PDIP图L298N:L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如图1中U4所示,1脚和 15脚可单独引出连接电流采样电阻器,形成电流传感信号。 L298可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。1298的逻辑功能如表1所列。表1 1298N的逻辑功能ENA(B) INl(IN3) IN2(IN4) 电机运行情况 H H L 正转 H L H 反转 H 同IN2(IN4) 同INl(IN3) 快速停止 L X X 停止 L298N管脚图如下: Intel8253输出二组PWM波,每一组PWM波用来控制一个电机的速 度另外二个IO口可以控制电机的正反转控制方法与控制电路都比较简单。即P10、P11控制第一个电机的方向,输入的:PWMl控制第一个电机的速 度;P12、P13控制第二个电机的方向,输入的PWM2控制第二个电机的速度。 由于电机在正常工作时对电源的干扰很大,只用一组电源时会影响单片机的正常工作。所以选用 双电源供电。一组5V电源给单片机和控制电路供电,另外一组5V、9V电源给L298N的+VSS、+VS供电。在控制部分和电机驱动部分之间用光耦隔开,以免影响控制部分电源的品质。四、 软件部分工具:VC+、Labview主要流程: 1、摄像头获取原始图像2、用Labview的“参数.vi”对图像进行提取像素处理得到当时环境下提取各种颜色最好的参数,并检测摄像头生成矩阵的大3、更改visualc+的cin.dsp中提取颜色的参数和处理矩阵的参数,并生成cin .lsb文件4、将cin.lsb文件导入Labview的“迷宫.vi”5、Labview的“迷宫.vi”将图像处理成二维数组,传输到cin模块,通过里面的迷宫算法,处理得到小车最近运行的五条指令6、重复运行过程五,直到小车走到迷宫的目的地 1、摄像头获取原始图像虽然理论上可以可以使用任意型号的摄像头,但是考虑到摄像头的运行数度、视角、色彩等方面的性质,一般采用色彩分辨能力高一点的,而且不能太昏暗。迷宫可能有很多反光的地方,如果摄像头不是太好,要尽量避免在这种情况下工作,不然会耗费很多时间。迷宫是红色的,与之对应,分别用蓝色和绿色标识小车和迷宫出口。2、用Labview的“参数.vi”对图像进行提取像素处理得到当时环境下提取各种颜色最好的参数,并检测摄像头生成矩阵的大小对图像生成的二维数组每一个单元进行分色处理,各个颜色的参数与四个参考值进行比较,满足某一种参数条件的认为是红色,满足某一总参数条件的认为是蓝色,满足另一总参数条件的认为是绿色。出于对对实际情况的考虑,我们需要把红色数组加宽,可以用数组卷积来完成。处理完成之后非红色的通道就变得很窄。调试各个参数,找到最合适的参数组合来实现需要的提取效果。通过前面板中显示的大小,可以看出摄像头处理后生成的二维数组的大小。图一:参数.vi的程序框图图二:参数.vi的前面板3、更改visualc+的cin.dsp中提取颜色的参数和处理矩阵的参数,并生成cin .lsb文件图三:数组大小参数通过修改上面程序中的代码,就可以让程序适合于各种摄像头。接收数组后,先用提取颜色的参数对它们进行二值化,除了起点是200、终点是-200外。然后调用自己编写的卷积函数,创建一个新的数组,将红色区域拓宽,以免小车撞墙。(附件中没有C+的卷积函数)得到新的数组后对数组进行缩小,对16*16的小方块进行求和,满足一定的条件时分别界定为红色,蓝色和绿色。搜索数组,找到起点和终点。然后调用迷宫算法得到路径。迷宫算法是采用清华大学数据结构课本上的迷宫算法,1代表不能走的地方,0代表通路。用探测法可以找到一条路径(如果存在的话)。但路径有的时候会出现来回走,这在迷宫中是不可能实现的。所以我又加了一段程序,对路径进行改造,重起点开始,探测有没有来回的情况,如果有的话就从那一点走捷径,并将原来的路径删掉。将已探测的点做标记,就不会导致重复探测。得到路径后在算出小车下五步的动作。分时输出。4、将cin.lsb文件导入Labview的“迷宫.vi”5、Labview的“迷宫.vi”将图像处理成二维数组,传输到cin模块,通过内面的迷宫算法,处理得到小车最近运行的五条指令。通过输出模块将指令发给小车。重复运行此过程,直到小车走到迷宫的目的地 五、实验总结1、调试总结1、关于selftest没有反应1)检查U1 U2输出电压是否正确。2)将+5直接接到电动机上,看转不?3)检查R4,DOT端必须接VCC(相当于上拉电阻)4)不幸还不行,估是那个芯片坏了,找助教吧。2、关于 RXD通讯直接将TXD(白色)接到RXD上是不行的(看原理图),因为RNN为Float时候相当于RXD接地。方案有2种:1)去掉电阻R3, R5(测试过),然后接TXD到RXD,当然,这样估计就不能升级为无线模式了。2)如果2个3极管都是好的,可以将TXD接到Wireless的第4个(从左向右),然后GND(黑色)接在第2个上,+5悬空(注意不能接第一个,因为他是3.3v的)GND的请不要和+5(红色)接触,不然可能会烧掉usb端口。之后就可以用UartAssist.exe之类的调试工具调试了。建议先写一个收到一个信号,变1次灯的程序。3、关于RXD失败的调试方法1)确保程序是正确。可以用+5触碰rxd,这样应该变灯2)对接TXD、RXD(蓝色和白色),随便发送点数据,看电脑上能否收到?3)检查波特率等参数。4)RXD如果失败,首先检查NPN是否故障,然后上电,如果RXD和GND通,则Q0坏了,否则,很可能是Q1坏了。5)把核心板取下,接上VCC GND,单独调试,如果成功,则问题出在下面,否则问题出在上面。(我们就是通过这样发现下面板子的问题的)6)如果还有其他疑难杂症,请检查引脚上下是否通。4、关于实际运行时的调试 1)根据当时光线等具体条件,调整参数,使程序能够提取出比较合适的颜色效果。 2)根据图像处理和指令生成的具体结果,调整提取路径模块矩阵卷积时所选矩阵的维数,使其既不太低以致不能消除噪声点或使程序运行比较慢,又不太高以致不能生成正确的指令。 3)根据小车运行情况调整速度参数,使小车能够完美的走出迷宫。2、个人总结肖蒙:出于极大的好奇心理,我们选择了这个题目,但是当我们真正开始要做的时候,却发现无 从下手。通过仔细阅读课件,查阅相关资料,请教张老师和同学,我们渐渐理清了思路,大家开始分工行动。在此次科创活动中,我担任了小组长并负责图像采集和 处理部分。通过此次科创活动,我锻炼了自己的组织和协调能力,学到了有关图像处理的基本知识,并了解了迷宫的基本算法。同时,在后期调试过程中,我本以为 理论上做好,问题就应该不大了,但是到了实验室菜发现问题并没有那么简单,程序的实际运行和预想相差很大,于是我们又不得不改变思路。在整个过程中我们尝到了酸甜苦辣,虽然和别的组相比落后了一点,但能体会到这个过程就是最大的收获。费威:关于这次科创做下来,我想我们大家都收获了不少吧!各个小组中,虽然有成功的,也必然有不成功的,但每个组的每个成员都应该收获了不少。因为这是很多人的第一次接触单片机,将知识与实际结合。但这不是我的第一次,其实之前我有类似的经验。这次科创给我的收获中,知识的应用是一个方面,实践是一个方面,更重要的是对一个团队的认识。知识上,学会了Labview,学会了在不懂的情况下怎么靠查找资料解决问题;时间上,体会到是基于设想总是差很多的,不能因为一点小问题影响了整个进程;从团队的角度,明白了团队精神的重要性,明白了各个组员之间要有好的分工和协作,才能避免不必要的问题。饶伟:当初抱着锻炼自己动手能力的态度选择了科创3 计算机控制小车走迷宫,并选择了编写小车程序和小车调试的任务,现在课程结束了,回想当初自己付出的努力,真的感觉太美妙了。 连续的泡试验室、编程序、焊接线板,可以说是自己大二繁忙、充实生活的一个剪影。当初因为小车的一些引脚接线出问题,一个人拿着万用表一个引脚接一个引脚的测量、大热天拿着电烙铁焊接板子,当时实在是太满足了,看着自己额头上的汗水,自己心里也美滋滋的。 编写程序的时候,因为要涉及到中断、串行通信等知识,而这些在我们学习微机原理之前都是十分陌生的东西,因此在网上、图书馆繁忙的查找资料、整理思路也是那一段时间过的最快乐的日子了。 这学期的科创3结束了,但我们的科创之路不会结束。因为我在自己的心理面有了那种跟同学合作、互相探讨、不断追求的科创精神。刘鑫:在此次科创过程中,我第一次尝试从早到晚泡在实验室,一个小组团结在一起,为了一个共同的目标而努力。我想除了学到了 一定的知识之外,这就是我在本次科创中最大的收获了。我自己认为本人在实验过程中尽心尽力,在实验室里和同伴们一起调试,一起拍照,一起奋斗,我相信这就 是最好的。申彤:科技创新是一个充分锻炼大学生动手能力,将理论和实际联系在一起的好方法。控制小车走迷宫,单凭这个题目,我就被深深地吸引上来。从一开始的毫无头绪,到后来的渐渐了解,再到最后的将之实现完成,每一步都显得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论