2008—科技创新【3】

——M07组

           
项目介绍 成员信息 整体说明 系统改进 心得体会 附录

项目名称

计算机控制小车走迷宫

项目目的 1、培养团结合作精神。

2、培养电子电路的设计和调试能力。

3、培养对微处理器的初步认识及使用。

4、学习了解图像处理的方法

项目内容

利用计算机处理采集到的图片判断小车及迷宫的相对位置,迷宫信息,通过指令控制小车动作,使之在最短时间内离开迷宫。

硬件材料

89S52单片机控制的小车、RS232有线收发模块、USB转RS232串口线、计算机、摄像头

完成情况

1、串口通信基本完成

2、通过摄像头捕捉迷宫内小车位置情况,传回计算机的控制软件,点选起始及终止位置并计算路径,给小车指令,使小车按路线走出迷宫。但有时结果不理想,对小车位置的确认不稳定,转弯不如意,需要较大的辅助才能走出迷宫。

TOP

 

成员

学号

分工情况

组长

沈小舜

5060309404

主要负责小车控制程序、串口程序的编写及调试

组员

马兆钦

5060309402

共同负责有关迷宫算法和图像处理的编写及调试

谭思超

5060309405

徐天柱

5060309406

主要负责硬件材料的检测使用、报告的撰写

 

 

左起马兆钦、徐天柱、谭思超、沈小舜

   

TOP

由摄像头(USB接口)实时捕捉迷宫内小车的位置情况,通过USB线缆传送至电脑里编写的上位机软件,软件通过图像识别找出当前小车的位置信息及迷宫的信息,经过计算,作出控制决策,生成控制信号,并经通讯模块发送至小车。玩具小车上的控制电路对控制信号作出相应反应,驱动电机。

        1、硬件部分

            1)检查

                a.检查电路板是否装配正确

                b.检查电源线是否连接正确(非常重要)

                c.检查电路是否存在短路现象

                d.检查下载线是否安装正确

 

            2)安装

图1  底板 图2  程序模块 图3  模块安装图

      a.注意安装方向

      b.装配时保证红线所标位置(下载端口)在小车远端

 

            3)检测短路

本实验使用数字万用表来检测电路,将万用表调至欧姆档,点击Range按钮使万用表左上角出现标志,当万用表红线与黑线接触时,万用表会发出警报声表示短路。

如图所示,将万用表红线与小车电源红线接触,万用表黑线与小车电源黑线接触,如果万用表发出报警声,说明小车存在短路现象,请重新检查电路。

 

            4)电源部分

图4  电压源 图5  小车电源线 图6  电压源与小车连线图

    点击按钮+VSET,输入电压8V,点击ENTER,需要接通电路时点击OUTPUT

    红色+所标位置为小车正极,与电压源+端相连;黑色-所标位置为小车负极,与电压源COM端相连

如图连线通电后小车即可运转

 

            5)其他连线

电机线连线

红色方框所画4根导线为电机驱动导线,从左到右将其依次标号为1234,依次按图示与电机连接

 

下载线连接

下载线是将电脑中的程序烧制小车中的必备工具,当以上检查都已完成后,可以连接下载线并烧制程序了

 

USB转RS232线连接

此串口线将增加电脑一个COM口,根据电脑的不同,初始被赋予的COM口地址也不同,可以在设备管理器中对端口地址进行查找。

对于电脑与小车进行串行通信来说该线是透明的。其USB端接电脑,TxD接无线发送模块的数据端,Vcc与发送模块Vcc相连,GND与发送模块GND连接。

TOP

        2、软件部分

            1)图像处理

本小组采用OPEN CV软件进行图像处理,OPEN CV模块如下图所示本小组采用OPEN CV软件进行图像处理,OPEN CV模块如左图所示。

其中:

CV:图像处理、视觉算法

CXCORE:基本数据结构、运算

Highgui:GUI,图像、视频接口

 

图像的实时采集

  • 光源亮度要足够、均匀

  • 成像的投影关系

  • 镜头聚焦使整个场景清晰

 

            2)单片机

                小车上的控制电路对控制信号作出相应反应,驱动电机。

                系统设计应当至少完成控制程序与控制电路两部分。

                软件中的单片机便是控制程序。

            3)串口通信

                具体功能:由摄像头(USB接口)实时捕捉迷宫内小车的位置情况,

                通过USB线缆传送至电脑里编写的上位机软件,软件通过图像识别找出当前小车的位置信息  及迷宫的信息,

                经过计算,作出控制决策,生成控制信号,并经通讯模块发送至小车。

TOP

1、硬件部分

1)小车的马达存在一定问题。在调试过程中,我组一度曾以为马达烧了,后来发现是齿轮有时会卡住,尤其是小车负载一定重物之后。我们为马达上了点油之后该情况有了显著好转

2)由于小车经常需要调试、检测,而某几根导线又比较“脆弱”,时常就会断落,所以我们认为可以在导线的连接处连接一些接口以方便导线的连接

3)由于小车是按照摄像头所拍得的迷宫图片来进行路线计算实行的,所以对于图像的要求较高,在采光、摄像头像素方面都有很高的要求,可以在这方面改进

2、软件部分

我们组的小车在稳定性方面不是很理想,虽然有几次可以自如转弯,但是在大多数情况下转弯都以失败告终。当然,这个问题很大一部分是出在迷宫图像的截取上,也就是光线的问题,但是在算法程序上也有值得改进的地方,可以采用边缘检测等技术来加强图像处理的抗干扰能力

3、外观部分

小车的外观改进应该是最明显的一项,不过我们小组在这方面并没有非常注重。外观部分主要有两点:焊接和装饰

1)焊接:焊接方面我们小组做得不是很理想,前文就提到了我们组的小车经常掉线,这虽然有小车的问题,也有我们本身焊接技术的问题

2)装饰:在装饰方面,我们认为可以为小车安装一个外壳,再安上车牌等,使其更加形象美观,这样还能有效保护电线,不过在材质方面如果是普通的纸张可能无法达到比较好的要求

TOP

沈小舜:

俗话说勇于创新的人都是充满勇气充满幻想的人,因为他们要走一条别人从没有走过的路,无论遇到什么问题都要自己去解决,自己去面对,自己去承担,在这次做科创的过程当中我体会到了创新的滋味。从拿到科创的材料到我们小组的项目得到了实现,我们都是一步一步摸索过来的,上网查资料,问老师,问同学,借书,自学,等等等等,都是那么地具有挑战性。从一开始什么艘不知道什么都不懂,到慢慢地,自己小组的项目有了眉目,我们感到由衷的喜悦。当前两个礼拜调试检测地时候,我们的小车在迷宫里跑起来的时候,我们是那么地有成就感,觉得那么多时间的努力没有白费,是非常值得的。虽然我们的小车不是很完善,只能走极其简单的迷宫,但我们在这整个过程中学到的东西不是用结果能够衡量的。

通过这次科创,也让我们理解了今后的学习再也不是老师教什么你就学什么,更重要的是一种自我学习的能力,从确立目标、设定计划、具体操作到达成目标,我们必须完全靠自己来进行,这种能力对我们大学生来说是非常重要的,也是我们事业成功所要必备的一种能力。通过这次科创,我们还学到了要做一件事,尤其是一件大事,往往只靠一个人是不行的,要靠团队的力量,一个人的力量是有限的,只有紧密地团结在团队的周围,这样才能循序渐进,获得进步,最后达成目标。这次科创也锻炼了我们的创新能力和钻研能力,这也是非常重要的。

总而言之,通过这次科创我的收获良多,体会非常丰富。希望上海交通大学电院的科创课程能越办越好,越办越吸引人。最后,我想衷心感谢我们的指导老师和助教老师们以及我们小组可爱的组员们,谢谢他们所有人的努力和所做的一切!谢谢!

马兆钦:

电院的特色课程,电院科创,我们在这个学期终于体会到了其中的乐趣

电院科创3,智能小车相关,这也是我们为什么选择这个项目的原因,然而并没有想到其中会涉及许多编程,所以给我们小车图象处理编程的初期造成了很大的困难,因为我们本身的编程能力不是很强。大家纷纷去找了些相关的书面资料,网上下载了些教程,初期的学习真的相当困难,opencv是一个建立在c++基础上的语言,俗话说换汤不换药,其实其核心思想还是有很多地方需要学习的,建立坐标,图像颗粒化,二维矢量分析等都是需要重点学习的。之后的实际编程遇到的困惑更为痛苦,不知从何入手,万事开头难。幸好找了几位在编程方面很有心得的同学做了些指导,顺利开始了图像处理。其间碰到的小问题也有许多,但相对于开始时的困惑已经不值一提了,进入了状态,也不知不觉花了蛮久的时间,终于设计完成。与小组搭档的硬件控制程序结合后,又进行了适当改进,小车总算能够开始迷宫之旅。

由于能力问题,小车的最短路径编程有一定误差,导致检测的时候让老师看了将近1个小时的尝试才终于走出迷宫,实在惭愧,不过,能够写出这个程序,我还是很满足的,希望以后有更多的机会来进一步的学习,也感谢张老师在科创中对我们的指导,谢谢!

谭思超:

首先我要说的是,我很自豪我们坚持完成了科创3的计算机控制小车走迷宫。

这个项目对我们来说很有难度,我们对相关的技术知识可以说是知之甚少,一切从零开始。面对这样的难题,我们并没有退缩,在科创的整个过程中经历了很多。我主要做图像处理方面的工作,第一个问题就是软件的学习。虽然听过两次老师关于图像处理的课程,但我还是无从下手。在我毫无进展的时候,别的同学向我伸出了援手,他们将自己在网上搜集到的教程与我分享,当我向他们提出问题时,也总能帮我解惑,我十分地感激他们。到了小车调试阶段,需要小组成员一起去试验室。虽然大家平时的课程很忙,但为了能做好科创,大家都抽出时间,一起调试。调试花去了我们很多的时间,原来准备好的软件,硬件,一到小车要开动时就出了问题,我们不得不仔细的查找问题出在哪儿。容易脱落的线头,周围多变的光线,都成了阻碍我们前进的障碍,但我们都一一克服。最后当我们的小车顺利地转过了一个弯道后,我们疲惫的脸上露出了开心的笑容。通过科创3,让我体会到了团队的力量,大家互相帮助,互相鼓励;让我体会到了创新的乐趣,在实验室中尽情思考更是是我获益良多。

最后,我要感谢我们的指导老师和帮助过我们的同学。

徐天柱:

记得第一次听说电院科创是在一节体育课上,一位同学抱怨他做的科创项目如何如何难,如何如何痛苦。从那时起我就对电院科创没啥好感,觉得那实在是一项又无趣又浪费时间的课程。但是本学期我参加了电院科创3,却彻底改变了我的看法。

我与同寝室的另三位同学一组,选择了计算机控制小车走迷宫这个项目。在小组分工时,我被分派的任务是硬件检测使用及报告的编写。说实话,这并不是一项很重的工作。关于硬件设施,就是在起初的时候需要稍加调试一下即可,最多也就是在导线掉落时重新焊接一下,至于报告编写也只要将大家的所作所为描写一番即可。可以说,我的工作在小组中是最轻松的。而事实上,我起初本来就没有投入太多的精力。然而,当同组同学在编程方面遇到难题愁眉不展却还专心研究时,当同组同学攻克一个难关的时候,看到大家沉浸在研究的氛围中,我深深被这种环境所感染,也一起投入其中,出谋划策。而当我逐渐深入地了解了我们组课题的内容时,我也对智能小车产生了浓厚的兴趣。在完成课题的过程中,我不仅学到了许多有关编程的知识,更重要的是,我深刻体会到了团队的力量,科创3不仅锻炼了我的动手能力,更锻炼了我们团队协作的能力。还记得我们的小车第一次在迷宫中拐过弯时,大家那种欢欣雀跃的样子,是我久久难以忘怀的。

虽然就结果而言,我们的小车还存在这样那样的问题,但我认为这是我们用汗水所换来的辛劳结晶,虽然不完美,但对我来说,对我们四人来说却有着不同寻常的意义。我非常庆幸自己参加了本次的科创3。最后,我还要感谢张老师在我们调试过程中对我们的指导和帮助!

TOP

小车使用说明

串口通信、单片机程序

OpenCV 程序

实验报告电子版

TOP